fix: address book guarantees no replicated entries are added (#927)

This commit is contained in:
Vasco Santos 2021-04-27 17:14:48 +02:00 committed by GitHub
parent ef4393649f
commit ac370fc967
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 4 deletions

View File

@ -307,10 +307,13 @@ class AddressBook extends Book {
throw errcode(new Error(`multiaddr ${addr} must be an instance of multiaddr`), ERR_INVALID_PARAMETERS)
}
addresses.push({
multiaddr: addr,
isCertified
})
// Guarantee no replicates
if (!addresses.find((a) => a.multiaddr.equals(addr))) {
addresses.push({
multiaddr: addr,
isCertified
})
}
})
return addresses

View File

@ -287,6 +287,14 @@ describe('addressBook', () => {
await defer.promise
})
it('does not add replicated content', () => {
// set 1
ab.set(peerId, [addr1, addr1])
const addresses = ab.get(peerId)
expect(addresses).to.have.lengthOf(1)
})
})
describe('addressBook.get', () => {