Commit Graph

143 Commits

Author SHA1 Message Date
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
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 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 b0c1a8a4a6
chore: release @waku/interfaces@0.0.7 2023-01-18 15:16:00 +11:00
Danish Arora e0e8e655f8
chore: fix peer discovery peer-exchange (#1069)
* fix: discovery for peer-exchange

use the bootstrap node as a starter to send a
peer-exchange query to, and emit the response
peers received from it for further connection to
libp2p using the peer-discovery interface

* init: test for libp2p bootstrap/discovery for
peer-exchange

* temp-add: console.logs for easier debugging

* add: peer discovery test & rm: console.logs

* chore: rm  and redundant spec test

* add: interval for peer exchange queries
we set an interval to query a peer every 5 minutes
for peer exchange, and add new peers if found

* address: reviews
- add `type` for imports not using values
- better handling for peer-exchange query interval

* chore: fix tsc for peer-exchange
use node16 for module resolution

* chore: add extra exports to fix typedoc warnings
ref: https://github.com/TypeStrong/typedoc/issues/1739
2023-01-04 14:35:44 +05:30
fryorcraken.eth f48278adce
chore: remove waku dep from @waku/interfaces by defining IEnr
@waku packages are expected to (dev)depend on @waku/interfaces to
implement them. Hence, to avoid possible cyclic (dev)dependency, define
IEnr interface and use it as a type across @waku/packages.
2022-12-21 15:40:34 +11:00
fryorcraken.eth de1643be61
chore: release @waku/interfaces@0.0.6 2022-12-15 14:43:15 +11:00
dependabot[bot] 872c9cd0df
build(deps-dev): bump cspell from 5.21.2 to 6.17.0
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 5.21.2 to 6.17.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/v5.21.2...v6.17.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-13 13:46:02 +11:00
fryorcraken.eth c6b86a33bc
doc: update changelogs 2022-12-12 22:36:14 +11:00
fryorcraken.eth f743cfd1ca
chore: rename node interfaces to include `Node` in name
Also rename node with only relay to `RelayNode`.
2022-12-12 22:36:14 +11:00
fryorcraken.eth 53af8994bd
feat: added `I` prefix to protocols interfaces
This will enable the remove of `Waku` prefix on all protocol
implementations, which is redundant due to the context.
2022-12-12 22:36:09 +11:00
fryorcraken.eth cc691e26ce
feat: added `I` prefix to message/codec interfaces
To make it easier to differentiate with their implementations.
2022-12-12 22:13:46 +11:00
fryorcraken.eth a7c4bb9cbf
refactor: split interface definition in separate files 2022-12-12 22:13:45 +11:00
Danish Arora 0ca7fd790c
feat!: implement peer exchange (#1027)
* wip -- yet to test

* update: draft

* wip

* support passing flags manually to nwaku node

* refactor peer-exchange test

* switch response from uint8array to ENR

* rm: unnecesary logs

* implement clas

* fix: for loop

* init-wip: directories

* setup: new package & fix circular deps

* bind a response handler

* wip: refactor & update test

* test logs

* wip code - debugging

* address: comments

* Update packages/core/src/lib/waku_peer_exchange/peer_discovery.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/core/src/lib/waku_peer_exchange/peer_discovery.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* address: comments

* address: comments

* address: comments

* address: comments

* address: comments

* fix: test build

* refactor

* fix: build

* comply with API

* numPeers: use number instead of bigint

* fix: build

* Update packages/peer-exchange/package.json

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/peer-exchange/src/waku_peer_exchange.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/peer-exchange/src/waku_peer_exchange.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/peer-exchange/src/waku_peer_exchange.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* address: comments, add eslint config

* Update packages/peer-exchange/.eslintrc.cjs

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* Update packages/peer-exchange/src/index.ts

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* address comments

* test works with test fleet

* rm: only for px test => run all tests

* fix: tests

* reorder packages for build, and fix imports

* remove: px test doesnt work with local nodes

* chore: move proto into a separate package

* fix: proto dir

* fix: build

* fix: ci

* add: index for proto

* fix: ci

* Update packages/proto/package.json

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>

* address comments

* chore: run failing test with higher timeout

* chore: run failing test with higher timeout

* fix: ci

Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2022-12-07 11:35:30 +05:30
fryorcraken.eth 2dddaa193a
chore: merge tsconfig
No need to duplicate the config.
2022-12-02 15:54:30 +11:00
Danish Arora 2215e44985
Merge branch 'master' into danisharora/improve-cursor-api 2022-11-21 17:56:18 +05:30
danisharora099 36a01c3c30
address comments 2022-11-21 13:20:21 +05:30
fryorcraken.eth dfa7c6b107
chore: release core@0.0.6 2022-11-18 13:27:36 +11:00
danisharora099 100eb4c4b4
Merge branch 'master' into danisharora/cursor-support-store 2022-11-17 13:00:48 +05:30
fryorcraken.eth a372307a30
refactor: adopt dependency injection patter for other Waku protocols
It actually simplies the API as the caller does not need to pass
libp2p to each protocol anymore (when not using a `create*` helper).
2022-11-17 12:06:43 +11:00
fryorcraken.eth 8dfb133cd7
fix: libp2p upgrade (no more autodial + constructor dependency injection) 2022-11-16 21:27:33 +11:00
fryorcraken.eth 910fc5a6b2
chore: bump several libp2p dependencies 2022-11-16 21:27:33 +11:00
fryorcraken.eth 9d2df1d620
chore: bump libp2p to 0.40.0 2022-11-16 21:27:32 +11:00
Danish Arora 9613e9c41d
Merge branch 'master' into danisharora/cursor-support-store 2022-11-16 13:26:35 +05:30
fryorcraken.eth 59992832fe
feat!: add Waku Message ephemeral support 2022-11-16 11:00:43 +11:00
danisharora099 0169a0ccb1
functionality works! test wip 2022-11-15 05:17:24 +05:30
fryorcraken.eth 7a75eb03b7
chore(interfaces): release @waku/interfaces@0.0.4 2022-11-11 16:47:28 +11:00
fryorcraken.eth 3ab78eacee
chore(interfaces/core): bump libp2p to 0.39.5
Fixes connection-manager bug
2022-11-11 16:12:52 +11:00
fryorcraken.eth bca31a6fa5
chore(interfaces): release 0.0.3 2022-11-11 15:48:14 +11:00
fryorcraken.eth 063fac71e2
chore(interfaces): bump libp2p 2022-11-09 14:48:44 +11:00
fryorcraken.eth d9799ada56
chore: remove unneeded `release` script
We now release from the root.
2022-11-04 15:26:50 +11:00
fryorcraken.eth be45358e9c
Release 0.0.2 2022-11-04 14:54:12 +11:00
fryorcraken.eth 8aa9b43f61
feat!: split outgoing and incoming message interface
While the data structure are similar, they serve different purposes.
Having the same type has show to confuse API consumers

Resolves #979
2022-11-04 14:30:59 +11:00
fryorcraken.eth 5a78b5f246
chore: Remove semantic-release-monorepo, move semantic-release to root 2022-11-04 10:04:38 +11:00
fryorcraken.eth 69c94db23a
chore: fix doc 2022-11-02 15:05:12 +11:00
fryorcraken.eth 9d54462893
chore: lerna skip non-existent scripts 2022-11-01 20:14:01 +11:00
fryorcraken.eth 052d5c9d20
chore: only bump patch versions for now 2022-11-01 19:41:34 +11:00
fryorcraken.eth 9d74c9f6fe
fix: core check pass 2022-11-01 19:33:33 +11:00
fryorcraken.eth c409076365
fix: @waku/interfaces 2022-11-01 19:15:06 +11:00
fryorcraken.eth 057507f94f
fix: @waku/interfaces 2022-11-01 16:30:24 +11:00
fryorcraken.eth 4eddad3166
fix: @waku/interfaces 2022-11-01 15:16:38 +11:00
fryorcraken.eth 16eaa911a9
chore: new @waku/interfaces package 2022-11-01 14:48:52 +11:00