From e01ef31d20be45779e9f2256e8767745358e2462 Mon Sep 17 00:00:00 2001 From: chad Date: Wed, 26 Jul 2023 11:31:28 -0500 Subject: [PATCH 1/3] fix: ignore peers with invalid multiaddrs (#1873) --- packages/libp2p/src/libp2p.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/libp2p/src/libp2p.ts b/packages/libp2p/src/libp2p.ts index 206c0c45d7..2ff30a1da6 100644 --- a/packages/libp2p/src/libp2p.ts +++ b/packages/libp2p/src/libp2p.ts @@ -98,8 +98,19 @@ export class Libp2pNode> extends components.events.addEventListener('peer:update', evt => { // if there was no peer previously in the peer store this is a new peer - if (evt.detail.previous == null) { - this.safeDispatchEvent('peer:discovery', { detail: evt.detail.peer }) + if (evt.detail.previous === null) { + + if(evt.detail.peer.addresses.length === 0) { + throw new CodeError('peer must have at least one multiaddr', codes.ERR_INVALID_MULTIADDR) + } + + const peerInfo: PeerInfo = { + id: evt.detail.peer.id, + multiaddrs: evt.detail.peer.addresses.map(a => a.multiaddr), + protocols: evt.detail.peer.protocols + } + + this.safeDispatchEvent('peer:discovery', { detail: peerInfo}) } }) From 933b06d7594536e5f8fa8416db0650fa9568b121 Mon Sep 17 00:00:00 2001 From: chad Date: Fri, 28 Jul 2023 11:47:12 -0500 Subject: [PATCH 2/3] chore: linting --- packages/libp2p/src/libp2p.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/libp2p/src/libp2p.ts b/packages/libp2p/src/libp2p.ts index 809ee96abc..5fd980b74a 100644 --- a/packages/libp2p/src/libp2p.ts +++ b/packages/libp2p/src/libp2p.ts @@ -99,18 +99,13 @@ export class Libp2pNode> extends components.events.addEventListener('peer:update', evt => { // if there was no peer previously in the peer store this is a new peer if (evt.detail.previous === null) { - - if(evt.detail.peer.addresses.length === 0) { - throw new CodeError('peer must have at least one multiaddr', codes.ERR_INVALID_MULTIADDR) - } - const peerInfo: PeerInfo = { id: evt.detail.peer.id, multiaddrs: evt.detail.peer.addresses.map(a => a.multiaddr), protocols: evt.detail.peer.protocols } - this.safeDispatchEvent('peer:discovery', { detail: peerInfo}) + this.safeDispatchEvent('peer:discovery', { detail: peerInfo }) } }) From 21f771929a64e6f4588cb834589049d98dad8bed Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Sat, 29 Jul 2023 14:40:03 -0500 Subject: [PATCH 3/3] fix: do double equals to cover undefined values (#1872) Co-authored-by: Alex Potsides --- packages/libp2p/src/libp2p.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/libp2p/src/libp2p.ts b/packages/libp2p/src/libp2p.ts index 5fd980b74a..5df57f3aaf 100644 --- a/packages/libp2p/src/libp2p.ts +++ b/packages/libp2p/src/libp2p.ts @@ -98,7 +98,7 @@ export class Libp2pNode> extends components.events.addEventListener('peer:update', evt => { // if there was no peer previously in the peer store this is a new peer - if (evt.detail.previous === null) { + if (evt.detail.previous == null) { const peerInfo: PeerInfo = { id: evt.detail.peer.id, multiaddrs: evt.detail.peer.addresses.map(a => a.multiaddr),