From a95315eeb5a12b944cbb267a22908642fe2f280e Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:21:51 +1000 Subject: [PATCH 1/5] Ensure node address is returned for Object type responses --- src/lib/discovery.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/discovery.ts b/src/lib/discovery.ts index 327bb236ee..b7be798778 100644 --- a/src/lib/discovery.ts +++ b/src/lib/discovery.ts @@ -61,7 +61,7 @@ export async function getBootstrapNodes( if (typeof nodes === 'object') { nodes = Object.values(nodes); - getPseudoRandomSubset(nodes, wantedNumber); + return getPseudoRandomSubset(nodes, wantedNumber); } throw `Failed to retrieve bootstrap nodes: response format is not supported: ${JSON.stringify( From 640a672257b46f3eb4c49a565b82d93993ea0a80 Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:22:23 +1000 Subject: [PATCH 2/5] Do not setup libp2p discovery module if we fail to retrieve node addrs --- src/lib/waku.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/waku.ts b/src/lib/waku.ts index 55833a6350..286cd3487e 100644 --- a/src/lib/waku.ts +++ b/src/lib/waku.ts @@ -202,14 +202,14 @@ export class Waku { } if (bootstrap !== undefined) { - // Note: this overrides any other peer discover - libp2pOpts.modules = Object.assign(libp2pOpts.modules, { - peerDiscovery: [Bootstrap], - }); - try { const list = await bootstrap(); + // Note: this overrides any other peer discover + libp2pOpts.modules = Object.assign(libp2pOpts.modules, { + peerDiscovery: [Bootstrap], + }); + libp2pOpts.config.peerDiscovery = { [Bootstrap.tag]: { list, From 2eb88068ae26607c1f001ec9895b9e890dbe03cb Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:22:35 +1000 Subject: [PATCH 3/5] Test default discovery as part of the CI --- src/lib/waku.spec.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/lib/waku.spec.ts b/src/lib/waku.spec.ts index 528d7649df..d822c8bae3 100644 --- a/src/lib/waku.spec.ts +++ b/src/lib/waku.spec.ts @@ -31,6 +31,25 @@ describe('Waku Dial', function () { }); describe('Bootstrap', function () { + it('Passing a boolean', async function () { + // This test depends on fleets.status.im being online. + // This dependence must be removed once DNS discovery is implemented + this.timeout(20_000); + + waku = await Waku.create({ + staticNoiseKey: NOISE_KEY_1, + bootstrap: true, + }); + + const connectedPeerID: PeerId = await new Promise((resolve) => { + waku.libp2p.connectionManager.on('peer:connect', (connection) => { + resolve(connection.remotePeer); + }); + }); + + expect(connectedPeerID).to.not.be.undefined; + }); + it('Passing an array', async function () { this.timeout(10_000); From 6b11bc7183534299e66441e0061263f5bc9213d5 Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:24:56 +1000 Subject: [PATCH 4/5] Update Changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09b0f4fa4b..86ce413215 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- `Error: Bootstrap requires a list of peer addresses` error when using `bootstrap: true` in `Waku.create`. + ## [0.13.0] - 2021-09-16 ### Changed From 129b6a97d474087005822a9990dba1758195bb79 Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Tue, 21 Sep 2021 14:56:49 +1000 Subject: [PATCH 5/5] Release 0.13.1 --- CHANGELOG.md | 5 ++++- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86ce413215..3ebc56e477 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.13.1] - 2021-09-21 + ### Fixed - `Error: Bootstrap requires a list of peer addresses` error when using `bootstrap: true` in `Waku.create`. @@ -227,7 +229,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [ReactJS Chat App example](./examples/web-chat). - [Typedoc Documentation](https://status-im.github.io/js-waku/docs). -[Unreleased]: https://github.com/status-im/js-waku/compare/v0.13.0...HEAD +[Unreleased]: https://github.com/status-im/js-waku/compare/v0.13.1...HEAD +[0.13.1]: https://github.com/status-im/js-waku/compare/v0.13.0...v0.13.1 [0.13.0]: https://github.com/status-im/js-waku/compare/v0.12.0...v0.13.0 [0.12.1]: https://github.com/status-im/js-waku/compare/v0.12.0...v0.12.1 [0.12.0]: https://github.com/status-im/js-waku/compare/v0.11.0...v0.12.0 diff --git a/package-lock.json b/package-lock.json index 65bed8019e..471685af9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "js-waku", - "version": "0.13.0", + "version": "0.13.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "js-waku", - "version": "0.13.0", + "version": "0.13.1", "license": "MIT OR Apache-2.0", "dependencies": { "@chainsafe/libp2p-noise": "^4.1.1", diff --git a/package.json b/package.json index 84211eb4f3..3486aca4c5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "js-waku", - "version": "0.13.0", + "version": "0.13.1", "description": "TypeScript implementation of the Waku v2 protocol", "main": "build/main/index.js", "typings": "build/main/index.d.ts",