Commit Graph

358 Commits

Author SHA1 Message Date
fryorcraken.eth 5a42efcd8d
chore: rename: peer exchange peers are not bootstrap peers 2023-03-10 10:23:40 +11:00
fryorcraken.eth 1181eadcf8
doc: fix references in comments 2023-03-10 10:23:39 +11:00
fryorcraken.eth 81ad14cad3
chore: segregate basic access to fields and more advanced logic
Move basic access to ENR fields (with conversion) to `RawEnr`

`ENR` inherits from `RawEnr` and add a layer of logic.
2023-03-10 10:23:39 +11:00
fryorcraken.eth 6dbcde041a
chore!: directly convert from ENR to `PeerInfo`, remove unneeded utility 2023-03-10 10:23:39 +11:00
fryorcraken.eth 84f114bfa4
chore: extract and simplify `getLocationMultiaddr`
Using switch/case when appropriate.
2023-03-10 10:23:39 +11:00
fryorcraken.eth af5c5733a5
chore: split functions 2023-03-10 10:23:39 +11:00
fryorcraken.eth 22ffcf571a
chore!: extract encoder code
Separation of concerns by moving encoding logic in new class.
2023-03-10 10:23:39 +11:00
fryorcraken.eth 130c49b636
chore!: extract decoder code
Separation of concerns by moving decoding logic in new class.
2023-03-10 10:23:38 +11:00
fryorcraken.eth 8fd1455122
chore: extract test code
createFrom* functions are only used in test.
By extracting them in different class it should help
bundlers.
2023-03-10 10:23:38 +11:00
fryorcraken.eth 031f4c0c21
chore: improve function name
By describe why one would use it.
2023-03-10 10:23:38 +11:00
fryorcraken.eth a513087637
chore: remove functions not used in prod 2023-03-10 10:23:38 +11:00
fryorcraken.eth 93ba160791
chore: remove unused keypair api 2023-03-10 10:23:38 +11:00
fryorcraken.eth 46a020c6b4
chore: split function as one part was only used in test 2023-03-10 10:23:38 +11:00
fryorcraken.eth 05b122e646
chore: remove unnecessary functions 2023-03-10 10:23:38 +11:00
dependabot[bot] 9e03644f48
chore(deps)(deps-dev): bump cspell from 6.26.3 to 6.28.0
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 6.26.3 to 6.28.0.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v6.26.3...v6.28.0)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-09 23:18:07 +00:00
fryorcraken.eth 952aadd7bb
fix(dns-discovery/peer-exchange): check if peer is already tagged
If we `continue` when the peer is already known by the `peerStore` then
the next step of checking the tags is useless (no tags if peer is not
known).

There are two ways around it:
1. either do nothing if peer is already in peer store
2. OR, do nothing if peer is in peer store and is already tagged

I opted for the second approach to ensure all peers are tagged properly.
2023-03-10 10:09:10 +11:00
fryorcraken.eth da1b18d995
feat: export `Decoder`, `Encoder` and `DecodedMessage` types from root
Fixes #1010
2023-03-08 09:52:27 +11:00
dependabot[bot] b9a5032930
chore(deps)(deps-dev): bump fast-check from 3.6.3 to 3.7.0
Bumps [fast-check](https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check) from 3.6.3 to 3.7.0.
- [Release notes](https://github.com/dubzzz/fast-check/releases)
- [Changelog](https://github.com/dubzzz/fast-check/blob/main/packages/fast-check/CHANGELOG.md)
- [Commits](https://github.com/dubzzz/fast-check/commits/v3.7.0/packages/fast-check)

---
updated-dependencies:
- dependency-name: fast-check
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-07 16:10:09 +00:00
fryorcraken.eth 56814ba740
chore: rename build-utils to avoid potential conflict 2023-03-07 16:44:57 +11:00
dependabot[bot] 28ec631432
chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.53.0 to 5.54.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.54.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-06 23:23:40 +00:00
dependabot[bot] 6e3953e210
chore(deps)(deps): bump @libp2p/peer-id from 2.0.1 to 2.0.2
Bumps [@libp2p/peer-id](https://github.com/libp2p/js-libp2p-peer-id) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/libp2p/js-libp2p-peer-id/releases)
- [Commits](https://github.com/libp2p/js-libp2p-peer-id/compare/@libp2p/peer-id-v2.0.1...@libp2p/peer-id-v2.0.2)

---
updated-dependencies:
- dependency-name: "@libp2p/peer-id"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 16:14:08 +00:00
fryorcraken.eth 0b93fdd76d
chore: extract exports path from package.json for rollup
Also sort eslint to lint JavaScript ESM files successfully.

Fixes #933
2023-03-01 15:46:21 +11:00
fryorcraken.eth 1a9b13f902
chore: use `BaseProtocol` on `WakuPeerExchange`
Ref: https://github.com/waku-org/js-waku/pull/1137
2023-02-28 13:49:36 +11:00
fryorcraken.eth 60e866f00d
chore: remove usage of `any` 2023-02-28 12:00:53 +11:00
fryorcraken.eth 6c37ee5f19
chore: make variable used as boolean, a boolean 2023-02-28 12:00:53 +11:00
dependabot[bot] 35dab5392d
chore(deps)(deps-dev): bump eslint from 8.34.0 to 8.35.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.34.0 to 8.35.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.34.0...v8.35.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 16:25:16 +00:00
fryorcraken.eth 81d6638067
chore: use pascal case for class name 2023-02-27 14:00:49 +11:00
fryorcraken.eth 967e6ffc7e
chore!: update store.proto
Ref: https://github.com/vacp2p/waku
2023-02-27 14:00:33 +11:00
fryorcraken.eth 5cf8ed2030
chore!: update message.proto: payload and content topic are always defined
Ref: https://github.com/vacp2p/waku
2023-02-27 14:00:33 +11:00
fryorcraken.eth 18d31381d2
chore: use pascal case for class name 2023-02-27 14:00:32 +11:00
fryorcraken.eth 3e93e8f49e
chore: update light_push.proto
Ref: https://github.com/vacp2p/waku/blob/main/waku/lightpush/v2beta1/lightpush.proto
2023-02-27 14:00:32 +11:00
fryorcraken.eth d6184fb41a
fixup! chore: update filter.proto 2023-02-27 14:00:32 +11:00
fryorcraken.eth f6130d65c9
chore: use pascal case for class name 2023-02-27 14:00:31 +11:00
fryorcraken.eth 5f0e8b72f5
chore: update filter.proto
Ref: https://github.com/vacp2p/waku
2023-02-27 14:00:31 +11:00
fryorcraken.eth 31740e7a3d
chore: add `build:esm` script so it can be called from root script 2023-02-27 14:00:31 +11:00
dependabot[bot] 911ccd0074
chore(deps)(deps-dev): bump puppeteer from 19.7.1 to 19.7.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 19.7.1 to 19.7.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v19.7.1...puppeteer-v19.7.2)

---
updated-dependencies:
- dependency-name: puppeteer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-26 23:12:33 +00:00
fryorcraken.eth 789bebed00
chore: add `BaseProtocol` class to req-resp protocols
Each protocol implementation have some common functionality.
Implements those in `BaseProtocol`, to be extended by each protocol
implementation.
2023-02-27 09:48:30 +11:00
fryorcraken.eth 7d29ed1d99
chore: move error throwing within `selectPeerForProtocol`
As all callers throw upon undefined result.
2023-02-27 09:48:30 +11:00
fryorcraken.eth c85b113df7
chore: use `this.multicodec` over constant
To enable extraction of common functions.
2023-02-27 09:48:10 +11:00
Danish Arora 6b87ca1c4d
chore: move `random_subset.ts` to `@waku/utils` (#1191) 2023-02-26 12:31:55 -07:00
dependabot[bot] d3156cdefb
chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.52.0 to 5.53.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.53.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-23 16:11:17 +00:00
fryorcraken.eth 8748484048
test: bump go-waku to 0.5.0 and re-enable a CI run against it 2023-02-20 21:32:42 +11:00
Danish Arora 24c24cc27d
feat!: ConnectionManager and KeepAliveManager (#1135)
* initialises ConnectionManager and KeepAliveManager
ports from previous PR and makes necessary improvements and reductions

* address: comments

* map a ConnectionManager instance with a WakuNode

* abstract event listeners logic

* minor fix

* minor cleaning

* instantiate KeepAliveManager instead of extending

* fix build and enable all tests

* fix CI

* address review

* refine event handlers
- only removes the previously attached callback from
the event handlers while shutting down service
- removes the requirement of passing around
`keepAliveOptions` and `relay` inside of
`ConnectionManager`

* add verbosity to interface

* make `dialPeer()` more readable

* use set to push tags to avoid duplicates

* fix: merge build

* remove: logging function

* rename startService and stopService

* remove: future TODO

added that as part of future refactor

* use the new libp2p api

* initialise options in constructor//fix TS error

* remove stale export

* address principal review

* reset test timeout to master
2023-02-20 15:30:59 +05:30
dependabot[bot] 6328ce0c39
chore(deps)(deps-dev): bump eslint from 8.33.0 to 8.34.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.33.0 to 8.34.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.33.0...v8.34.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-17 16:09:45 +00:00
Danish Arora 8d8874d2bb
fix: enable all tests (#1184) 2023-02-17 13:59:21 +05:30
Danish Arora 1b41569023
fix: remove initialising peer-exchange while creating a node (#1158)
* remove peer-exchange from @waku/core
- also removes the manual test for peer-exchange (assumption is that the
only way to initialise peer-exchange is through libp2p's peerDiscovery and
not manually) (ref:
https://github.com/waku-org/js-waku/pull/1158#discussion_r1108055234)

 # Please enter the commit message for your changes. Lines
starting

* fix: build

* update interop test

* decrease test duration for px auto discovery

* rm: only for tests

* address comment
2023-02-17 13:27:37 +05:30
dependabot[bot] 431815cf32
chore(deps)(deps-dev): bump cspell from 6.22.0 to 6.26.3
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 6.22.0 to 6.26.3.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v6.22.0...v6.26.3)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-17 01:57:03 +00:00
Danish Arora d8419d9e5c
feat: nwaku interop test for peer-exchange (#1129)
* handle a breaking edge case
- changes interval from static to increasing
- handles an edge case which resulted in unwanted return
from a function

* modularise code & make defaults configurable
- breaks the backoff code into a separate function
- makes default values configurable
- improve interval handling

* clean code for checking peer in peerStore

* address comments

* rename `backoff` to `abort`

* add locally run nwaku interop test for peer-exchange

* replace `--listen-address` with `--nat:extip`

* address improvements
2023-02-17 01:07:44 +05:30
fryorcraken.eth f66e9835f1
test: nwaku JSON RPC API now uses base64 encoding 2023-02-16 13:45:25 +11:00
dependabot[bot] 5ea04579a2
chore(deps)(deps-dev): bump rollup from 3.14.0 to 3.15.0
Bumps [rollup](https://github.com/rollup/rollup) from 3.14.0 to 3.15.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v3.14.0...v3.15.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-14 16:25:26 +00:00
Sasha dcb5908d5b
chore: update note in CHANGELOG and add missing (#1178) 2023-02-14 01:11:40 +01:00
fryorcraken.eth 0fde93c34a
chore: bump ts-loader and install where needed 2023-02-13 10:12:21 +11:00
Sasha f945eb90c4
feat: add mocha to dns-discovery (#1154) 2023-02-11 22:25:11 +01:00
fryorcraken.eth 97c3e8cfe5
chore: bump gh-pages and move it to root package (used by Jenkins) 2023-02-11 15:26:24 +11:00
fryorcraken.eth 2f2d266e81
chore!: bump protons from 5.1.0 to 7.0.2
Notable change: optionality of singular fields and optional values.

See https://github.com/ipfs/protons/releases
2023-02-10 22:26:46 +11:00
fryorcraken.eth d73f2a84db
chore: remove usage of jsdom 2023-02-10 19:44:59 +11:00
fryorcraken.eth f2706c21b6
chore: remove unused test configs 2023-02-10 16:34:52 +11:00
fryorcraken.eth 985dcb6414
chore: bump karma, puppeteer and plugins and install where used 2023-02-10 16:30:18 +11:00
fryorcraken.eth f473e751f7
chore: remove p-timeout from core, bump it in tests 2023-02-10 16:09:06 +11:00
fryorcraken.eth cb6d464021
chore: bump cspell 2023-02-10 16:09:05 +11:00
fryorcraken.eth 1bf740b7b4
chore: bump fast-check 2023-02-10 15:45:41 +11:00
fryorcraken.eth 0eb7ae5781
chore: bump and install @types/chai 2023-02-10 15:37:36 +11:00
fryorcraken.eth c0bbfd32c3
chore: bump and install @types/mocha 2023-02-10 15:32:38 +11:00
fryorcraken.eth 6b4dc1acf2
chore: bump eslint, prettier and related plugins 2023-02-10 15:18:29 +11:00
fryorcraken.eth 938157560f
chore: bump chai
Also install mocha in packages that uses it.
2023-02-10 14:02:02 +11:00
fryorcraken.eth eb3443c4b6
chore: bump mocha
Also install mocha in packages that uses it.
2023-02-10 13:59:44 +11:00
fryorcraken.eth 12d86e6abc
chore!: bump typescript
`module: "nodenext"` has been introduced. Enabling it for NodeJS tests
only.
2023-02-10 13:54:41 +11:00
fryorcraken.eth 8e3795f038
chore: bump rollup dependencies 2023-02-10 13:14:02 +11:00
fryorcraken.eth 88cc76d2b8
chore!: bump all prod dependencies 2023-02-10 13:06:33 +11:00
fryorcraken.eth f31400c8c4
chore: bump @noble dependencies 2023-02-10 11:22:25 +11:00
fryorcraken.eth c3b01751ce
chore: fix doc generation 2023-02-10 08:32:41 +11:00
fryorcraken.eth c2cef9a319
chore: run `npm update` 2023-02-10 08:32:41 +11:00
fryorcraken.eth 4fb3ab191d
chore: bump uint8arraylist and uint8arrays deps 2023-02-10 08:32:40 +11:00
fryorcraken.eth 3343a4acec
chore: bump multiformat deps 2023-02-10 08:32:40 +11:00
fryorcraken.eth a3c5050c1d
chore: fix dependencies for @waku/proto` package 2023-02-10 08:32:32 +11:00
fryorcraken.eth ab735908d3
chore: fix dependencies for @waku/peer-exchange` package 2023-02-09 19:31:12 +11:00
fryorcraken.eth 719ec8e2e7
chore: fix dev dependencies for tests package 2023-02-09 19:31:12 +11:00
fryorcraken.eth b9f526d3ff
chore: fix dev dependencies for `@waku/message-encryption` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 9c3deccd89
chore: fix dependencies for `@waku/interfaces` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 6f3a6d00d8
chore: fix dependencies for `@waku/enr` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 81bb74fa97
chore: fix dependencies for `@waku/dns-discovery` 2023-02-09 19:31:12 +11:00
fryorcraken.eth a4f6d3b98e
chore: fix dependencies for `@waku/create` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 6b8779b3be
chore: fix dependencies for `@waku/core` 2023-02-09 19:31:12 +11:00
fryorcraken.eth 803ae7bd8e
chore!: bump libp2p dependencies 2023-02-09 19:30:59 +11:00
Danish Arora 3b4bc8b25b
chore: update changelog & minor improvements (#1153)
* address comments from https://github.com/waku-org/js-waku/pull/1145

* fix: typedoc

* address comments in https://github.com/waku-org/js-waku/pull/1146#pullrequestreview-1286307508

- update changelog
- change naming for `EciesEncoderOptions` and
`SymmetricEncoderOptions`
2023-02-09 13:15:23 +05:30
Danish Arora 2a7d72be14
chore: decrease delay on the peer-exchange tests (#1141)
* decrease timeouts for peer-exchange tests

* reset dns test timeout
2023-02-08 11:09:52 +05:30
Danish Arora b33306655a
chore: move libp2p and byte utils to a single `utils` package (#1149)
* move libp2p and byte utils to a single `utils`
package

* set package version to 0.0.1
2023-02-06 11:22:36 +05:30
Danish Arora 8910a6d76a
chore: move args for `createEncoder` into non-repeating `options` & fix typedoc (#1146)
* move args for `createEncoder` into non-repeating `options` & fix typedoc

* update tests with new API
2023-02-02 11:37:28 +05:30
Danish Arora 10b3898762
chore: move protocols `CreateOptions` into interfaces (#1145)
* move protocols `CreateOptions` into interfaces and
add possible TODO

* remove: createOptions for PeerExchange

* update test with new API
2023-02-02 08:02:06 +05:30
Danish Arora 11819fc7b1
feat: DNS discovery as default bootstrap discovery (#1114)
* use DNS discovery as default bootstrap discovery

* fix: failing CI

* fix: typo

* introduce tagging, components & explicit tests

    libp2p wasn't by default tagging peers with dns-discovery as
"bootstrap"
    -- we are manually now tagging peers with "dns-discovery", and then
    running tests according to that

* fix: package installs

* fix: typedoc CI

* change tag name from dns-discovery to bootstrap

* update tag name in test

* fix CI

* address review

* add: prod enrtree and use as default
2023-01-31 19:47:46 +05:30
fryorcraken.eth 3aed340cb2
chore: only build what is necessary to test
Script to build enough to run tests locally and in CI (skip bundling).
2023-01-30 20:32:43 +11:00
fryorcraken.eth afa7262604
test: replace nwaku ip with local ip 2023-01-30 20:08:04 +11:00
fryorcraken.eth c8fa8ea20e
chore: remove unnecessary compilation flag for nwaku 2023-01-30 20:08:04 +11:00
fryorcraken.eth 171fd1e6df
fix: randomize the first port tried by portfinder 2023-01-30 20:07:46 +11:00
Danish Arora 380ba6987a
disable tests connecting to test fleet on the CI (#1138) 2023-01-30 11:29:12 +05:30
fryorcraken.eth 372ff6454f
chore: remove `@waku/peer-exchange` dependency
As per its name, `@waku/core` aims to contain, and only contains, the
minimal set of core functionalities needed for a developer to use Waku
in their webapp.

Hence, `@waku/core` should avoid depending on other Waku packages. If a
developer wishes to use functionality from other packages, they should
explicitly import such packages.
2023-01-27 09:08:28 +11:00
fryorcraken.eth a5ff788eed
feat: codec as a property of the protocol implementations
For easy access from `@waku/core` without the need to depend on package
implementing the protocol.
2023-01-27 09:08:02 +11:00
fryorcraken.eth 9a59e9dd64
chore: release @waku/message-encryption@0.0.9 2023-01-25 15:37:52 +11:00
fryorcraken.eth a5a748e2fd
chore: release @waku/dns-discovery@0.0.5 2023-01-25 15:35:12 +11:00
fryorcraken.eth 4e72cf2cff
chore: release @waku/core@0.0.10 2023-01-25 15:29:23 +11:00