diff --git a/packages/libp2p/src/address-manager.ts b/packages/libp2p/src/address-manager.ts index 15457709b7..76f9b8b03a 100644 --- a/packages/libp2p/src/address-manager.ts +++ b/packages/libp2p/src/address-manager.ts @@ -136,13 +136,8 @@ export class AddressManager implements AddressManagerInterface { _updatePeerStoreAddresses (): void { // if announce addresses have been configured, ensure they make it into our peer // record for things like identify - const addrs = this.getAnnounceAddrs() - .concat(this.components.transportManager.getAddrs()) - .concat( - [...this.observed.entries()] - .filter(([_, metadata]) => metadata.confident) - .map(([str]) => multiaddr(str)) - ).map(ma => { + const addrs = this.getAddresses() + .map(ma => { // strip our peer id if it is present if (ma.getPeerId() === this.components.peerId.toString()) { return ma.decapsulate(`/p2p/${this.components.peerId.toString()}`) @@ -369,6 +364,7 @@ export class AddressManager implements AddressManagerInterface { this.log('add DNS mapping %s to %s', ip, domain) this.ipDomainMappings.set(ip, domain) }) + this._updatePeerStoreAddresses() } removeDNSMapping (domain: string): void { @@ -378,6 +374,7 @@ export class AddressManager implements AddressManagerInterface { this.ipDomainMappings.delete(key) } } + this._updatePeerStoreAddresses() } addPublicAddressMapping (internalIp: string, internalPort: number, externalIp: string, externalPort: number = internalPort, protocol: 'tcp' | 'udp' = 'tcp'): void { @@ -389,6 +386,7 @@ export class AddressManager implements AddressManagerInterface { }) this.publicAddressMappings.set(key, mappings) + this._updatePeerStoreAddresses() } removePublicAddressMapping (internalIp: string, internalPort: number, externalIp: string, externalPort: number = internalPort, protocol: 'tcp' | 'udp' = 'tcp'): void { @@ -402,5 +400,7 @@ export class AddressManager implements AddressManagerInterface { } else { this.publicAddressMappings.set(key, mappings) } + + this._updatePeerStoreAddresses() } }