libp2p 0.35.7 → 0.35.8-bf1fc32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/index.min.js +55 -0
  2. package/dist/src/circuit/auto-relay.d.ts +8 -10
  3. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  4. package/dist/src/connection-manager/auto-dialler.d.ts +1 -1
  5. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  6. package/dist/src/connection-manager/index.d.ts +1 -2
  7. package/dist/src/connection-manager/index.d.ts.map +1 -1
  8. package/dist/src/content-routing/utils.d.ts +3 -3
  9. package/dist/src/content-routing/utils.d.ts.map +1 -1
  10. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  11. package/dist/src/dialer/dial-request.d.ts.map +1 -1
  12. package/dist/src/dialer/index.d.ts +5 -5
  13. package/dist/src/dialer/index.d.ts.map +1 -1
  14. package/dist/src/identify/index.d.ts +4 -4
  15. package/dist/src/identify/index.d.ts.map +1 -1
  16. package/dist/src/index.d.ts +6 -6
  17. package/dist/src/index.d.ts.map +1 -1
  18. package/dist/src/metrics/index.d.ts +9 -4
  19. package/dist/src/metrics/index.d.ts.map +1 -1
  20. package/dist/src/metrics/tracked-map.d.ts +6 -1
  21. package/dist/src/metrics/tracked-map.d.ts.map +1 -1
  22. package/dist/src/peer-routing.d.ts +1 -1
  23. package/dist/src/peer-routing.d.ts.map +1 -1
  24. package/dist/src/peer-store/address-book.d.ts +28 -84
  25. package/dist/src/peer-store/address-book.d.ts.map +1 -1
  26. package/dist/src/peer-store/index.d.ts +25 -94
  27. package/dist/src/peer-store/index.d.ts.map +1 -1
  28. package/dist/src/peer-store/key-book.d.ts +31 -15
  29. package/dist/src/peer-store/key-book.d.ts.map +1 -1
  30. package/dist/src/peer-store/metadata-book.d.ts +33 -29
  31. package/dist/src/peer-store/metadata-book.d.ts.map +1 -1
  32. package/dist/src/peer-store/pb/peer.d.ts +222 -0
  33. package/dist/src/peer-store/proto-book.d.ts +27 -28
  34. package/dist/src/peer-store/proto-book.d.ts.map +1 -1
  35. package/dist/src/peer-store/store.d.ts +73 -0
  36. package/dist/src/peer-store/store.d.ts.map +1 -0
  37. package/dist/src/peer-store/types.d.ts +202 -0
  38. package/dist/src/peer-store/types.d.ts.map +1 -0
  39. package/dist/src/ping/index.d.ts.map +1 -1
  40. package/dist/src/record/peer-record/index.d.ts +2 -2
  41. package/dist/src/record/peer-record/index.d.ts.map +1 -1
  42. package/dist/src/registrar.d.ts +5 -5
  43. package/dist/src/registrar.d.ts.map +1 -1
  44. package/dist/src/upgrader.d.ts.map +1 -1
  45. package/package.json +18 -25
  46. package/src/circuit/auto-relay.js +19 -19
  47. package/src/connection-manager/auto-dialler.js +9 -4
  48. package/src/connection-manager/index.js +39 -22
  49. package/src/content-routing/utils.js +4 -4
  50. package/src/dht/dht-peer-routing.js +2 -6
  51. package/src/dialer/dial-request.js +4 -1
  52. package/src/dialer/index.js +22 -10
  53. package/src/identify/index.js +28 -23
  54. package/src/index.js +33 -27
  55. package/src/metrics/index.js +15 -8
  56. package/src/metrics/tracked-map.js +45 -13
  57. package/src/peer-routing.js +4 -1
  58. package/src/peer-store/address-book.js +242 -227
  59. package/src/peer-store/index.js +77 -110
  60. package/src/peer-store/key-book.js +99 -54
  61. package/src/peer-store/metadata-book.js +171 -101
  62. package/src/peer-store/pb/peer.d.ts +222 -0
  63. package/src/peer-store/pb/peer.js +643 -0
  64. package/src/peer-store/pb/peer.proto +31 -0
  65. package/src/peer-store/proto-book.js +171 -105
  66. package/src/peer-store/store.js +250 -0
  67. package/src/peer-store/types.ts +245 -0
  68. package/src/ping/index.js +6 -0
  69. package/src/record/peer-record/index.js +1 -1
  70. package/src/record/utils.js +1 -1
  71. package/src/registrar.js +4 -4
  72. package/src/upgrader.js +3 -1
  73. package/dist/src/peer-store/book.d.ts +0 -81
  74. package/dist/src/peer-store/book.d.ts.map +0 -1
  75. package/dist/src/peer-store/persistent/consts.d.ts +0 -6
  76. package/dist/src/peer-store/persistent/consts.d.ts.map +0 -1
  77. package/dist/src/peer-store/persistent/index.d.ts +0 -129
  78. package/dist/src/peer-store/persistent/index.d.ts.map +0 -1
  79. package/dist/src/peer-store/persistent/pb/address-book.d.ts +0 -198
  80. package/dist/src/peer-store/persistent/pb/proto-book.d.ts +0 -59
  81. package/src/peer-store/book.js +0 -124
  82. package/src/peer-store/persistent/consts.js +0 -15
  83. package/src/peer-store/persistent/index.js +0 -408
  84. package/src/peer-store/persistent/pb/address-book.d.ts +0 -198
  85. package/src/peer-store/persistent/pb/address-book.js +0 -522
  86. package/src/peer-store/persistent/pb/address-book.proto +0 -27
  87. package/src/peer-store/persistent/pb/proto-book.d.ts +0 -59
  88. package/src/peer-store/persistent/pb/proto-book.js +0 -157
  89. package/src/peer-store/persistent/pb/proto-book.proto +0 -5
@@ -0,0 +1,73 @@
1
+ export = PersistentStore;
2
+ declare class PersistentStore {
3
+ /**
4
+ * @param {import('interface-datastore').Datastore} datastore
5
+ */
6
+ constructor(datastore: import('interface-datastore').Datastore);
7
+ _datastore: import("interface-datastore").Datastore;
8
+ lock: any;
9
+ /**
10
+ * @param {PeerId} peerId
11
+ * @returns {Key}
12
+ */
13
+ _peerIdToDatastoreKey(peerId: PeerId): Key;
14
+ /**
15
+ * @param {PeerId} peerId
16
+ */
17
+ has(peerId: PeerId): Promise<boolean>;
18
+ /**
19
+ * @param {PeerId} peerId
20
+ */
21
+ delete(peerId: PeerId): Promise<void>;
22
+ /**
23
+ * @param {PeerId} peerId
24
+ * @returns {Promise<import('./types').Peer>} peer
25
+ */
26
+ load(peerId: PeerId): Promise<import('./types').Peer>;
27
+ /**
28
+ * @param {Peer} peer
29
+ */
30
+ save(peer: Peer): Promise<import("./types").Peer>;
31
+ /**
32
+ * @param {PeerId} peerId
33
+ * @param {Partial<Peer>} data
34
+ */
35
+ patch(peerId: PeerId, data: Partial<Peer>): Promise<import("./types").Peer>;
36
+ /**
37
+ * @param {PeerId} peerId
38
+ * @param {Partial<Peer>} data
39
+ */
40
+ patchOrCreate(peerId: PeerId, data: Partial<Peer>): Promise<import("./types").Peer>;
41
+ /**
42
+ * @param {PeerId} peerId
43
+ * @param {Partial<Peer>} data
44
+ * @param {Peer} peer
45
+ */
46
+ _patch(peerId: PeerId, data: Partial<Peer>, peer: Peer): Promise<import("./types").Peer>;
47
+ /**
48
+ * @param {PeerId} peerId
49
+ * @param {Partial<Peer>} data
50
+ */
51
+ merge(peerId: PeerId, data: Partial<Peer>): Promise<import("./types").Peer>;
52
+ /**
53
+ * @param {PeerId} peerId
54
+ * @param {Partial<Peer>} data
55
+ */
56
+ mergeOrCreate(peerId: PeerId, data: Partial<Peer>): Promise<import("./types").Peer>;
57
+ /**
58
+ * @param {PeerId} peerId
59
+ * @param {Partial<Peer>} data
60
+ * @param {Peer} peer
61
+ */
62
+ _merge(peerId: PeerId, data: Partial<Peer>, peer: Peer): Promise<import("./types").Peer>;
63
+ all(): AsyncGenerator<import("./types").Peer, void, unknown>;
64
+ }
65
+ declare namespace PersistentStore {
66
+ export { PeerStore, EventName, Peer };
67
+ }
68
+ import PeerId = require("peer-id");
69
+ import { Key } from "interface-datastore/key";
70
+ type Peer = import('./types').Peer;
71
+ type PeerStore = import('./types').PeerStore;
72
+ type EventName = import('./types').EventName;
73
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/peer-store/store.js"],"names":[],"mappings":";AA2BA;IACE;;OAEG;IACH,uBAFW,OAAO,qBAAqB,EAAE,SAAS,EAOjD;IAJC,oDAA2B;IAC3B,UAEE;IAGJ;;;OAGG;IACH,8BAHW,MAAM,GACJ,GAAG,CAUf;IAED;;OAEG;IACH,YAFW,MAAM,oBAIhB;IAED;;OAEG;IACH,eAFW,MAAM,iBAIhB;IAED;;;OAGG;IACH,aAHW,MAAM,GACJ,QAAQ,OAAO,SAAS,EAAE,IAAI,CAAC,CAuB3C;IAED;;OAEG;IACH,WAFW,IAAI,mCAwBd;IAED;;;OAGG;IACH,cAHW,MAAM,QACN,QAAQ,IAAI,CAAC,mCAMvB;IAED;;;OAGG;IACH,sBAHW,MAAM,QACN,QAAQ,IAAI,CAAC,mCAiBvB;IAED;;;;OAIG;IACH,eAJW,MAAM,QACN,QAAQ,IAAI,CAAC,QACb,IAAI,mCAQd;IAED;;;OAGG;IACH,cAHW,MAAM,QACN,QAAQ,IAAI,CAAC,mCAMvB;IAED;;;OAGG;IACH,sBAHW,MAAM,QACN,QAAQ,IAAI,CAAC,mCAiBvB;IAED;;;;OAIG;IACH,eAJW,MAAM,QACN,QAAQ,IAAI,CAAC,QACb,IAAI,mCAoCd;IAED,6DAUC;CACF;;;;;;YAjOY,OAAO,SAAS,EAAE,IAAI;iBAFtB,OAAO,SAAS,EAAE,SAAS;iBAC3B,OAAO,SAAS,EAAE,SAAS"}
@@ -0,0 +1,202 @@
1
+ import type PeerId from 'peer-id';
2
+ import type { Multiaddr } from 'multiaddr';
3
+ import type Envelope from '../record/envelope';
4
+ import type { PublicKey } from 'libp2p-interfaces/src/keys/types';
5
+ export interface Address {
6
+ /**
7
+ * Peer multiaddr
8
+ */
9
+ multiaddr: Multiaddr;
10
+ /**
11
+ * Obtained from a signed peer record
12
+ */
13
+ isCertified: boolean;
14
+ }
15
+ export interface Peer {
16
+ /**
17
+ * Peer's peer-id instance
18
+ */
19
+ id: PeerId;
20
+ /**
21
+ * Peer's addresses containing its multiaddrs and metadata
22
+ */
23
+ addresses: Address[];
24
+ /**
25
+ * Peer's supported protocols
26
+ */
27
+ protocols: string[];
28
+ /**
29
+ * Peer's metadata map
30
+ */
31
+ metadata: Map<string, Uint8Array>;
32
+ /**
33
+ * May be set if the key that this Peer has is an RSA key
34
+ */
35
+ pubKey?: PublicKey;
36
+ /**
37
+ * The last peer record envelope received
38
+ */
39
+ peerRecordEnvelope?: Uint8Array;
40
+ }
41
+ export interface CertifiedRecord {
42
+ raw: Uint8Array;
43
+ seqNumber: number;
44
+ }
45
+ export interface AddressBookEntry {
46
+ addresses: Address[];
47
+ record: CertifiedRecord;
48
+ }
49
+ export interface Book<Type> {
50
+ /**
51
+ * Get the known data of a peer
52
+ */
53
+ get: (peerId: PeerId) => Promise<Type>;
54
+ /**
55
+ * Set the known data of a peer
56
+ */
57
+ set: (peerId: PeerId, data: Type) => Promise<void>;
58
+ /**
59
+ * Remove the known data of a peer
60
+ */
61
+ delete: (peerId: PeerId) => Promise<void>;
62
+ }
63
+ /**
64
+ * AddressBook containing a map of peerIdStr to Address.
65
+ */
66
+ export interface AddressBook {
67
+ /**
68
+ * ConsumePeerRecord adds addresses from a signed peer record contained in a record envelope.
69
+ * This will return a boolean that indicates if the record was successfully processed and added
70
+ * into the AddressBook
71
+ */
72
+ consumePeerRecord: (envelope: Envelope) => Promise<boolean>;
73
+ /**
74
+ * Get the raw Envelope for a peer. Returns
75
+ * undefined if no Envelope is found
76
+ */
77
+ getRawEnvelope: (peerId: PeerId) => Promise<Uint8Array | undefined>;
78
+ /**
79
+ * Get an Envelope containing a PeerRecord for the given peer.
80
+ * Returns undefined if no record exists.
81
+ */
82
+ getPeerRecord: (peerId: PeerId) => Promise<Envelope | undefined>;
83
+ /**
84
+ * Add known addresses of a provided peer.
85
+ * If the peer is not known, it is set with the given addresses.
86
+ */
87
+ add: (peerId: PeerId, multiaddrs: Multiaddr[]) => Promise<void>;
88
+ /**
89
+ * Set the known addresses of a peer
90
+ */
91
+ set: (peerId: PeerId, data: Multiaddr[]) => Promise<void>;
92
+ /**
93
+ * Return the known addresses of a peer
94
+ */
95
+ get: (peerId: PeerId) => Promise<Address[]>;
96
+ /**
97
+ * Get the known multiaddrs for a given peer. All returned multiaddrs
98
+ * will include the encapsulated `PeerId` of the peer.
99
+ */
100
+ getMultiaddrsForPeer: (peerId: PeerId, addressSorter?: (ms: Address[]) => Address[]) => Promise<Multiaddr[]>;
101
+ }
102
+ /**
103
+ * KeyBook containing a map of peerIdStr to their PeerId with public keys.
104
+ */
105
+ export interface KeyBook {
106
+ /**
107
+ * Get the known data of a peer
108
+ */
109
+ get: (peerId: PeerId) => Promise<PublicKey | undefined>;
110
+ /**
111
+ * Set the known data of a peer
112
+ */
113
+ set: (peerId: PeerId, data: PublicKey) => Promise<void>;
114
+ /**
115
+ * Remove the known data of a peer
116
+ */
117
+ delete: (peerId: PeerId) => Promise<void>;
118
+ }
119
+ /**
120
+ * MetadataBook containing a map of peerIdStr to their metadata Map.
121
+ */
122
+ export interface MetadataBook extends Book<Map<string, Uint8Array>> {
123
+ /**
124
+ * Set a specific metadata value
125
+ */
126
+ setValue: (peerId: PeerId, key: string, value: Uint8Array) => Promise<void>;
127
+ /**
128
+ * Get specific metadata value, if it exists
129
+ */
130
+ getValue: (peerId: PeerId, key: string) => Promise<Uint8Array | undefined>;
131
+ /**
132
+ * Deletes the provided peer metadata key from the book
133
+ */
134
+ deleteValue: (peerId: PeerId, key: string) => Promise<void>;
135
+ }
136
+ /**
137
+ * ProtoBook containing a map of peerIdStr to supported protocols.
138
+ */
139
+ export interface ProtoBook extends Book<string[]> {
140
+ /**
141
+ * Adds known protocols of a provided peer.
142
+ * If the peer was not known before, it will be added.
143
+ */
144
+ add: (peerId: PeerId, protocols: string[]) => Promise<void>;
145
+ /**
146
+ * Removes known protocols of a provided peer.
147
+ * If the protocols did not exist before, nothing will be done.
148
+ */
149
+ remove: (peerId: PeerId, protocols: string[]) => Promise<void>;
150
+ }
151
+ export interface PeerProtocolsChangeEvent {
152
+ peerId: PeerId;
153
+ protocols: string[];
154
+ }
155
+ export interface PeerMultiaddrsChangeEvent {
156
+ peerId: PeerId;
157
+ multiaddrs: Multiaddr[];
158
+ }
159
+ export interface PeerPublicKeyChangeEvent {
160
+ peerId: PeerId;
161
+ pubKey?: PublicKey;
162
+ }
163
+ export interface PeerMetadataChangeEvent {
164
+ peerId: PeerId;
165
+ metadata: Map<string, Uint8Array>;
166
+ }
167
+ export declare type EventName = 'peer' | 'change:protocols' | 'change:multiaddrs' | 'change:pubkey' | 'change:metadata';
168
+ export interface PeerStoreEvents {
169
+ 'peer': (event: PeerId) => void;
170
+ 'change:protocols': (event: PeerProtocolsChangeEvent) => void;
171
+ 'change:multiaddrs': (event: PeerMultiaddrsChangeEvent) => void;
172
+ 'change:pubkey': (event: PeerPublicKeyChangeEvent) => void;
173
+ 'change:metadata': (event: PeerMetadataChangeEvent) => void;
174
+ }
175
+ export interface PeerStore {
176
+ addressBook: AddressBook;
177
+ keyBook: KeyBook;
178
+ metadataBook: MetadataBook;
179
+ protoBook: ProtoBook;
180
+ getPeers: () => AsyncIterable<Peer>;
181
+ delete: (peerId: PeerId) => Promise<void>;
182
+ has: (peerId: PeerId) => Promise<boolean>;
183
+ get: (peerId: PeerId) => Promise<Peer>;
184
+ on: <U extends keyof PeerStoreEvents>(event: U, listener: PeerStoreEvents[U]) => this;
185
+ once: <U extends keyof PeerStoreEvents>(event: U, listener: PeerStoreEvents[U]) => this;
186
+ emit: <U extends keyof PeerStoreEvents>(event: U, ...args: Parameters<PeerStoreEvents[U]>) => boolean;
187
+ }
188
+ export interface Store {
189
+ has: (peerId: PeerId) => Promise<boolean>;
190
+ save: (peer: Peer) => Promise<Peer>;
191
+ load: (peerId: PeerId) => Promise<Peer>;
192
+ merge: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
193
+ mergeOrCreate: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
194
+ patch: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
195
+ patchOrCreate: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
196
+ all: () => AsyncIterable<Peer>;
197
+ lock: {
198
+ readLock: () => Promise<() => void>;
199
+ writeLock: () => Promise<() => void>;
200
+ };
201
+ }
202
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/peer-store/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ping/index.js"],"names":[],"mappings":";AAiBA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,4BAJW,MAAM,QACN,MAAM,GAAC,SAAS,GACd,QAAQ,MAAM,CAAC,CA2B3B;;;;cAtCY,OAAO,KAAK,CAAC;cAEb,OAAO,SAAS,CAAC;iBADjB,OAAO,WAAW,EAAE,SAAS;AAuC1C;;;;GAIG;AACH,6BAFW,MAAM,QAIhB;AAED;;;;GAIG;AACH,+BAFW,MAAM,QAIhB;mBArDY,OAAO,0CAA0C,EAAE,WAAW"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ping/index.js"],"names":[],"mappings":";AAiBA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,4BAJW,MAAM,QACN,MAAM,GAAC,SAAS,GACd,QAAQ,MAAM,CAAC,CA2B3B;;;;cAtCY,OAAO,KAAK,CAAC;cAEb,OAAO,SAAS,CAAC;iBADjB,OAAO,WAAW,EAAE,SAAS;AAuC1C;;;;GAIG;AACH,6BAFW,MAAM,QAOhB;AAED;;;;GAIG;AACH,+BAFW,MAAM,QAOhB;mBA3DY,OAAO,0CAA0C,EAAE,WAAW"}
@@ -1,6 +1,6 @@
1
1
  export = PeerRecord;
2
2
  /**
3
- * @typedef {import('../../peer-store/address-book.js').Address} Address
3
+ * @typedef {import('../../peer-store/types').Address} Address
4
4
  * @typedef {import('libp2p-interfaces/src/record/types').Record} Record
5
5
  */
6
6
  /**
@@ -56,5 +56,5 @@ import { Multiaddr } from "multiaddr";
56
56
  */
57
57
  declare function createFromProtobuf(buf: Uint8Array): PeerRecord;
58
58
  import { ENVELOPE_DOMAIN_PEER_RECORD } from "./consts";
59
- type Address = import('../../peer-store/address-book.js').Address;
59
+ type Address = import('../../peer-store/types').Address;
60
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/record/peer-record/index.js"],"names":[],"mappings":";AAYA;;;GAGG;AAEH;;GAEG;AACH;IACE;;;;;;;;;OASG;IACH;QAJ0B,MAAM,EAArB,MAAM;QACc,UAAU,EAA9B,SAAS,EAAE;QACK,SAAS;OAYnC;IATC,eAAyC;IACzC,kBAA8C;IAE9C,eAAoB;IACpB,wBAA4B;IAC5B,kBAA0B;IAG1B,iCAAyB;IAG3B;;;;OAIG;IACH,WAFa,UAAU,CAgBtB;IAED;;;;;OAKG;IACH,cAHW,OAAO,GACL,OAAO,CAuBnB;CACF;;;;cA9EY,OAAO,oCAAoC,EAAE,MAAM;;;AAgFhE;;;;;GAKG;AACH,yCAHW,UAAU,GACR,UAAU,CAUtB;;eA/FY,OAAO,kCAAkC,EAAE,OAAO"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/record/peer-record/index.js"],"names":[],"mappings":";AAYA;;;GAGG;AAEH;;GAEG;AACH;IACE;;;;;;;;;OASG;IACH;QAJ0B,MAAM,EAArB,MAAM;QACc,UAAU,EAA9B,SAAS,EAAE;QACK,SAAS;OAYnC;IATC,eAAyC;IACzC,kBAA8C;IAE9C,eAAoB;IACpB,wBAA4B;IAC5B,kBAA0B;IAG1B,iCAAyB;IAG3B;;;;OAIG;IACH,WAFa,UAAU,CAgBtB;IAED;;;;;OAKG;IACH,cAHW,OAAO,GACL,OAAO,CAuBnB;CACF;;;;cA9EY,OAAO,oCAAoC,EAAE,MAAM;;;AAgFhE;;;;;GAKG;AACH,yCAHW,UAAU,GACR,UAAU,CAUtB;;eA/FY,OAAO,wBAAwB,EAAE,OAAO"}
@@ -1,7 +1,7 @@
1
1
  export = Registrar;
2
2
  /**
3
3
  * @typedef {import('peer-id')} PeerId
4
- * @typedef {import('./peer-store')} PeerStore
4
+ * @typedef {import('./peer-store/types').PeerStore} PeerStore
5
5
  * @typedef {import('./connection-manager')} ConnectionManager
6
6
  * @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
7
7
  * @typedef {import('./').HandlerProps} HandlerProps
@@ -23,7 +23,7 @@ declare class Registrar {
23
23
  peerStore: PeerStore;
24
24
  connectionManager: ConnectionManager;
25
25
  });
26
- peerStore: import("./peer-store");
26
+ peerStore: import("./peer-store/types").PeerStore;
27
27
  connectionManager: import("./connection-manager");
28
28
  /**
29
29
  * Map of topologies
@@ -59,9 +59,9 @@ declare class Registrar {
59
59
  * Register handlers for a set of multicodecs given
60
60
  *
61
61
  * @param {Topology} topology - protocol topology
62
- * @returns {string} registrar identifier
62
+ * @returns {Promise<string>} registrar identifier
63
63
  */
64
- register(topology: Topology): string;
64
+ register(topology: Topology): Promise<string>;
65
65
  /**
66
66
  * Unregister topology.
67
67
  *
@@ -76,7 +76,7 @@ declare namespace Registrar {
76
76
  import Topology = require("libp2p-interfaces/src/topology");
77
77
  type Connection = import("libp2p-interfaces/src/connection/connection");
78
78
  type PeerId = import('peer-id');
79
- type PeerStore = import('./peer-store');
79
+ type PeerStore = import('./peer-store/types').PeerStore;
80
80
  type ConnectionManager = import('./connection-manager');
81
81
  type HandlerProps = import('./').HandlerProps;
82
82
  //# sourceMappingURL=registrar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../src/registrar.js"],"names":[],"mappings":";AAaA;;;;;;GAMG;AAEH;;GAEG;AAEH;;GAEG;AACH;IACE;;;;;OAKG;IACH;QAJ4B,SAAS,EAA1B,SAAS;QACgB,iBAAiB,EAA1C,iBAAiB;OAsB3B;IAjBC,kCAA0B;IAE1B,kDAA0C;IAE1C;;;;OAIG;IACH,YAFU,IAAI,MAAM,EAAE,QAAQ,CAAC,CAEJ;IAE3B,2FAA2F;IAE3F,qBAFuB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,CAE/D;IA+D1B;;;;;OAKG;IACH,0BAHW,UAAU,GACR,IAAI,CAMhB;IA5DD;;OAEG;IACH,4BATyB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,EAWxF;IAZD;;OAEG;IACH,0BAFyB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,CAIxF;IASD;;;;;OAKG;IACH,sBAHW,MAAM,GACJ,UAAU,GAAG,IAAI,CAI7B;IAED;;;;;OAKG;IACH,mBAHW,QAAQ,GACN,MAAM,CAiBlB;IAED;;;;;OAKG;IACH,eAHW,MAAM,GACJ,OAAO,CAInB;CAaF;;;;;;cA9GY,OAAO,SAAS,CAAC;iBACjB,OAAO,cAAc,CAAC;yBACtB,OAAO,sBAAsB,CAAC;oBAE9B,OAAO,IAAI,EAAE,YAAY"}
1
+ {"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../src/registrar.js"],"names":[],"mappings":";AAaA;;;;;;GAMG;AAEH;;GAEG;AAEH;;GAEG;AACH;IACE;;;;;OAKG;IACH;QAJ4B,SAAS,EAA1B,SAAS;QACgB,iBAAiB,EAA1C,iBAAiB;OAsB3B;IAjBC,kDAA0B;IAE1B,kDAA0C;IAE1C;;;;OAIG;IACH,YAFU,IAAI,MAAM,EAAE,QAAQ,CAAC,CAEJ;IAE3B,2FAA2F;IAE3F,qBAFuB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,CAE/D;IA+D1B;;;;;OAKG;IACH,0BAHW,UAAU,GACR,IAAI,CAMhB;IA5DD;;OAEG;IACH,4BATyB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,EAWxF;IAZD;;OAEG;IACH,0BAFyB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,CAIxF;IASD;;;;;OAKG;IACH,sBAHW,MAAM,GACJ,UAAU,GAAG,IAAI,CAI7B;IAED;;;;;OAKG;IACH,mBAHW,QAAQ,GACN,QAAQ,MAAM,CAAC,CAiB3B;IAED;;;;;OAKG;IACH,eAHW,MAAM,GACJ,OAAO,CAInB;CAaF;;;;;;cA9GY,OAAO,SAAS,CAAC;iBACjB,OAAO,oBAAoB,EAAE,SAAS;yBACtC,OAAO,sBAAsB,CAAC;oBAE9B,OAAO,IAAI,EAAE,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.js"],"names":[],"mappings":";AAiBA;;;;;;;;GAQG;AAEH;;;;;GAKG;AAEH;IACE;;;;;;;;OAQG;IACH;mBAPW,MAAM;;;;mCAIO,UAAU,KAAK,IAAI;sCACnB,UAAU,KAAK,IAAI;OAmB1C;IATC,kBAA0B;IAC1B,yCAAsB;IACtB,0EAAsB;IACtB,qFAAoB;IACpB,sCAAsC;IACtC,WADW,OAAO,QAAQ,CAAC,GAAG,IAAI,CACb;IACrB,yBAA0B;IAC1B,2BAlBsB,UAAU,KAAK,IAAI,CAkBT;IAChC,8BAlBsB,UAAU,KAAK,IAAI,CAkBH;IAGxC;;;;;;OAMG;IACH,uBAHW,mBAAmB,GACjB,QAAQ,UAAU,CAAC,CA6D/B;IAED;;;;;;OAMG;IACH,wBAHW,mBAAmB,GACjB,QAAQ,UAAU,CAAC,CAoE/B;IAED;;;;;;;;;;;;OAYG;IACH,0BA8GC;IAED;;;;;;;;OAQG;IACH,kBAGC;IAED;;;;;;;;;OASG;IACH,wBAqBC;IAED;;;;;;;;;;;OAWG;IACH,yBAqBC;IAED;;;;;;;;;OASG;IACH,2BAYC;IAED;;;;;;;;;OASG;IACH,0BAWC;CACF;;;;;2BAzbY,OAAO,uCAAuC,EAAE,mBAAmB;;oBACnE,OAAO,0CAA0C,EAAE,YAAY;aAC/D,OAAO,0CAA0C,EAAE,KAAK;mBACxD,OAAO,0CAA0C,EAAE,WAAW;cAC9D,OAAO,oCAAoC,EAAE,MAAM;;iBAEnD,OAAO,WAAW,EAAE,SAAS;;;;;UAK5B,mBAAmB;gBACnB,MAAM;cACN,MAAM"}
1
+ {"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.js"],"names":[],"mappings":";AAiBA;;;;;;;;GAQG;AAEH;;;;;GAKG;AAEH;IACE;;;;;;;;OAQG;IACH;mBAPW,MAAM;;;;mCAIO,UAAU,KAAK,IAAI;sCACnB,UAAU,KAAK,IAAI;OAmB1C;IATC,kBAA0B;IAC1B,yCAAsB;IACtB,0EAAsB;IACtB,qFAAoB;IACpB,sCAAsC;IACtC,WADW,OAAO,QAAQ,CAAC,GAAG,IAAI,CACb;IACrB,yBAA0B;IAC1B,2BAlBsB,UAAU,KAAK,IAAI,CAkBT;IAChC,8BAlBsB,UAAU,KAAK,IAAI,CAkBH;IAGxC;;;;;;OAMG;IACH,uBAHW,mBAAmB,GACjB,QAAQ,UAAU,CAAC,CA6D/B;IAED;;;;;;OAMG;IACH,wBAHW,mBAAmB,GACjB,QAAQ,UAAU,CAAC,CAoE/B;IAED;;;;;;;;;;;;OAYG;IACH,0BAgHC;IAED;;;;;;;;OAQG;IACH,kBAGC;IAED;;;;;;;;;OASG;IACH,wBAqBC;IAED;;;;;;;;;;;OAWG;IACH,yBAqBC;IAED;;;;;;;;;OASG;IACH,2BAYC;IAED;;;;;;;;;OASG;IACH,0BAWC;CACF;;;;;2BA3bY,OAAO,uCAAuC,EAAE,mBAAmB;;oBACnE,OAAO,0CAA0C,EAAE,YAAY;aAC/D,OAAO,0CAA0C,EAAE,KAAK;mBACxD,OAAO,0CAA0C,EAAE,WAAW;cAC9D,OAAO,oCAAoC,EAAE,MAAM;;iBAEnD,OAAO,WAAW,EAAE,SAAS;;;;;UAK5B,mBAAmB;gBACnB,MAAM;cACN,MAAM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libp2p",
3
- "version": "0.35.7",
3
+ "version": "0.35.8-bf1fc32",
4
4
  "description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
5
5
  "leadMaintainer": "Jacob Heun <jacobheun@gmail.com>",
6
6
  "main": "src/index.js",
@@ -20,20 +20,18 @@
20
20
  "scripts": {
21
21
  "lint": "aegir lint",
22
22
  "build": "aegir build",
23
- "build:proto": "npm run build:proto:circuit && npm run build:proto:identify && npm run build:proto:plaintext && npm run build:proto:address-book && npm run build:proto:proto-book && npm run build:proto:peer-record && npm run build:proto:envelope",
23
+ "build:proto": "npm run build:proto:circuit && npm run build:proto:identify && npm run build:proto:plaintext && npm run build:proto:address-book && npm run build:proto:proto-book && npm run build:proto:peer && npm run build:proto:peer-record && npm run build:proto:envelope",
24
24
  "build:proto:circuit": "pbjs -t static-module -w commonjs -r libp2p-circuit --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/circuit/protocol/index.js ./src/circuit/protocol/index.proto",
25
25
  "build:proto:identify": "pbjs -t static-module -w commonjs -r libp2p-identify --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/identify/message.js ./src/identify/message.proto",
26
26
  "build:proto:plaintext": "pbjs -t static-module -w commonjs -r libp2p-plaintext --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/insecure/proto.js ./src/insecure/proto.proto",
27
- "build:proto:address-book": "pbjs -t static-module -w commonjs -r libp2p-address-book --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/peer-store/persistent/pb/address-book.js ./src/peer-store/persistent/pb/address-book.proto",
28
- "build:proto:proto-book": "pbjs -t static-module -w commonjs -r libp2p-proto-book --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/peer-store/persistent/pb/proto-book.js ./src/peer-store/persistent/pb/proto-book.proto",
27
+ "build:proto:peer": "pbjs -t static-module -w commonjs -r libp2p-peer --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/peer-store/pb/peer.js ./src/peer-store/pb/peer.proto",
29
28
  "build:proto:peer-record": "pbjs -t static-module -w commonjs -r libp2p-peer-record --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/record/peer-record/peer-record.js ./src/record/peer-record/peer-record.proto",
30
29
  "build:proto:envelope": "pbjs -t static-module -w commonjs -r libp2p-envelope --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/record/envelope/envelope.js ./src/record/envelope/envelope.proto",
31
- "build:proto-types": "npm run build:proto-types:circuit && npm run build:proto-types:identify && npm run build:proto-types:plaintext && npm run build:proto-types:address-book && npm run build:proto-types:proto-book && npm run build:proto-types:peer-record && npm run build:proto-types:envelope",
30
+ "build:proto-types": "npm run build:proto-types:circuit && npm run build:proto-types:identify && npm run build:proto-types:plaintext && npm run build:proto-types:address-book && npm run build:proto-types:proto-book && npm run build:proto-types:peer && npm run build:proto-types:peer-record && npm run build:proto-types:envelope",
32
31
  "build:proto-types:circuit": "pbts -o src/circuit/protocol/index.d.ts src/circuit/protocol/index.js",
33
32
  "build:proto-types:identify": "pbts -o src/identify/message.d.ts src/identify/message.js",
34
33
  "build:proto-types:plaintext": "pbts -o src/insecure/proto.d.ts src/insecure/proto.js",
35
- "build:proto-types:address-book": "pbts -o src/peer-store/persistent/pb/address-book.d.ts src/peer-store/persistent/pb/address-book.js",
36
- "build:proto-types:proto-book": "pbts -o src/peer-store/persistent/pb/proto-book.d.ts src/peer-store/persistent/pb/proto-book.js",
34
+ "build:proto-types:peer": "pbts -o src/peer-store/pb/peer.d.ts src/peer-store/pb/peer.js",
37
35
  "build:proto-types:peer-record": "pbts -o src/record/peer-record/peer-record.d.ts src/record/peer-record/peer-record.js",
38
36
  "build:proto-types:envelope": "pbts -o src/record/envelope/envelope.d.ts src/record/envelope/envelope.js",
39
37
  "test": "aegir test",
@@ -42,10 +40,7 @@
42
40
  "test:browser": "aegir test -t browser",
43
41
  "test:examples": "cd examples && npm run test:all",
44
42
  "test:interop": "LIBP2P_JS=$PWD npx aegir test -t node -f ./node_modules/libp2p-interop/test/*",
45
- "prepare": "aegir build --no-bundle",
46
- "release": "aegir release -t node -t browser",
47
- "release-minor": "aegir release --type minor -t node -t browser",
48
- "release-major": "aegir release --type major -t node -t browser",
43
+ "prepare": "npm run build",
49
44
  "coverage": "nyc --reporter=text --reporter=lcov npm run test:node"
50
45
  },
51
46
  "repository": {
@@ -81,12 +76,12 @@
81
76
  },
82
77
  "dependencies": {
83
78
  "@vascosantos/moving-average": "^1.1.0",
84
- "abort-controller": "^3.0.0",
85
79
  "abortable-iterator": "^3.0.0",
86
80
  "aggregate-error": "^3.1.0",
87
- "any-signal": "^2.1.1",
81
+ "any-signal": "^3.0.0",
88
82
  "bignumber.js": "^9.0.1",
89
83
  "class-is": "^1.1.0",
84
+ "datastore-core": "^7.0.0",
90
85
  "debug": "^4.3.1",
91
86
  "err-code": "^3.0.0",
92
87
  "es6-promisify": "^7.0.0",
@@ -104,11 +99,12 @@
104
99
  "it-merge": "^1.0.0",
105
100
  "it-pipe": "^1.1.0",
106
101
  "it-take": "^1.0.0",
107
- "libp2p-crypto": "^0.21.0",
108
- "libp2p-interfaces": "^2.0.1",
102
+ "libp2p-crypto": "^0.21.1",
103
+ "libp2p-interfaces": "^4.0.0",
109
104
  "libp2p-utils": "^0.4.0",
110
105
  "mafmt": "^10.0.0",
111
106
  "merge-options": "^3.0.4",
107
+ "mortice": "^2.0.1",
112
108
  "multiaddr": "^10.0.0",
113
109
  "multiformats": "^9.0.0",
114
110
  "multistream-select": "^2.0.0",
@@ -126,7 +122,7 @@
126
122
  "sanitize-filename": "^1.6.3",
127
123
  "set-delayed-interval": "^1.0.0",
128
124
  "streaming-iterables": "^6.0.0",
129
- "timeout-abort-controller": "^2.0.0",
125
+ "timeout-abort-controller": "^3.0.0",
130
126
  "uint8arrays": "^3.0.0",
131
127
  "varint": "^6.0.0",
132
128
  "wherearewe": "^1.0.0",
@@ -141,7 +137,6 @@
141
137
  "@types/varint": "^6.0.0",
142
138
  "aegir": "^36.0.0",
143
139
  "buffer": "^6.0.3",
144
- "datastore-core": "^6.0.7",
145
140
  "delay": "^5.0.0",
146
141
  "into-stream": "^6.0.0",
147
142
  "ipfs-http-client": "^54.0.2",
@@ -152,13 +147,11 @@
152
147
  "libp2p-bootstrap": "^0.14.0",
153
148
  "libp2p-delegated-content-routing": "^0.11.0",
154
149
  "libp2p-delegated-peer-routing": "^0.11.1",
155
- "libp2p-floodsub": "^0.28.0",
156
- "libp2p-gossipsub": "^0.12.1",
157
- "libp2p-interfaces-compliance-tests": "^2.0.1",
158
- "libp2p-interop": "^0.5.0",
159
- "libp2p-kad-dht": "^0.27.1",
150
+ "libp2p-interfaces-compliance-tests": "^4.0.8",
151
+ "libp2p-interop": "^0.7.1",
152
+ "libp2p-kad-dht": "^0.28.6",
160
153
  "libp2p-mdns": "^0.18.0",
161
- "libp2p-mplex": "^0.10.1",
154
+ "libp2p-mplex": "^0.10.4",
162
155
  "libp2p-tcp": "^0.17.0",
163
156
  "libp2p-webrtc-star": "^0.25.0",
164
157
  "libp2p-websockets": "^0.16.0",
@@ -181,12 +174,12 @@
181
174
  "Friedel Ziegelmayer <dignifiedquire@gmail.com>",
182
175
  "Maciej Krüger <mkg20001@gmail.com>",
183
176
  "Hugo Dias <mail@hugodias.me>",
177
+ "dirkmc <dirkmdev@gmail.com>",
184
178
  "Volker Mische <volker.mische@gmail.com>",
185
179
  "Chris Dostert <chrisdostert@users.noreply.github.com>",
186
- "dirkmc <dirkmdev@gmail.com>",
180
+ "zeim839 <50573884+zeim839@users.noreply.github.com>",
187
181
  "Robert Kiel <robert.kiel@hoprnet.org>",
188
182
  "Richard Littauer <richard.littauer@gmail.com>",
189
- "zeim839 <50573884+zeim839@users.noreply.github.com>",
190
183
  "a1300 <matthias-knopp@gmx.net>",
191
184
  "Ryan Bell <ryan@piing.net>",
192
185
  "ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ <victorbjelkholm@gmail.com>",
@@ -8,7 +8,6 @@ const log = Object.assign(debug('libp2p:auto-relay'), {
8
8
  const { fromString: uint8ArrayFromString } = require('uint8arrays/from-string')
9
9
  const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
10
10
  const { Multiaddr } = require('multiaddr')
11
- const PeerId = require('peer-id')
12
11
 
13
12
  const { relay: multicodec } = require('./multicodec')
14
13
  const { canHop } = require('./circuit/hop')
@@ -22,7 +21,8 @@ const {
22
21
 
23
22
  /**
24
23
  * @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
25
- * @typedef {import('../peer-store/address-book').Address} Address
24
+ * @typedef {import('../peer-store/types').Address} Address
25
+ * @typedef {import('peer-id')} PeerId
26
26
  */
27
27
 
28
28
  /**
@@ -91,7 +91,7 @@ class AutoRelay {
91
91
 
92
92
  // If no protocol, check if we were keeping the peer before as a listenRelay
93
93
  if (!hasProtocol && this._listenRelays.has(id)) {
94
- this._removeListenRelay(id)
94
+ await this._removeListenRelay(id)
95
95
  return
96
96
  } else if (!hasProtocol || this._listenRelays.has(id)) {
97
97
  return
@@ -113,7 +113,7 @@ class AutoRelay {
113
113
  const supportsHop = await canHop({ connection })
114
114
 
115
115
  if (supportsHop) {
116
- this._peerStore.metadataBook.set(peerId, HOP_METADATA_KEY, uint8ArrayFromString(HOP_METADATA_VALUE))
116
+ await this._peerStore.metadataBook.setValue(peerId, HOP_METADATA_KEY, uint8ArrayFromString(HOP_METADATA_VALUE))
117
117
  await this._addListenRelay(connection, id)
118
118
  }
119
119
  } catch (/** @type {any} */ err) {
@@ -125,7 +125,6 @@ class AutoRelay {
125
125
  * Peer disconnects.
126
126
  *
127
127
  * @param {Connection} connection - connection to the peer
128
- * @returns {void}
129
128
  */
130
129
  _onPeerDisconnected (connection) {
131
130
  const peerId = connection.remotePeer
@@ -136,7 +135,9 @@ class AutoRelay {
136
135
  return
137
136
  }
138
137
 
139
- this._removeListenRelay(id)
138
+ this._removeListenRelay(id).catch(err => {
139
+ log.error(err)
140
+ })
140
141
  }
141
142
 
142
143
  /**
@@ -154,7 +155,7 @@ class AutoRelay {
154
155
  }
155
156
 
156
157
  // Get peer known addresses and sort them per public addresses first
157
- const remoteAddrs = this._peerStore.addressBook.getMultiaddrsForPeer(
158
+ const remoteAddrs = await this._peerStore.addressBook.getMultiaddrsForPeer(
158
159
  connection.remotePeer, this._addressSorter
159
160
  )
160
161
 
@@ -180,12 +181,11 @@ class AutoRelay {
180
181
  *
181
182
  * @private
182
183
  * @param {string} id - peer identifier string.
183
- * @returns {void}
184
184
  */
185
- _removeListenRelay (id) {
185
+ async _removeListenRelay (id) {
186
186
  if (this._listenRelays.delete(id)) {
187
187
  // TODO: this should be responsibility of the connMgr
188
- this._listenOnAvailableHopRelays([id])
188
+ await this._listenOnAvailableHopRelays([id])
189
189
  }
190
190
  }
191
191
 
@@ -197,7 +197,6 @@ class AutoRelay {
197
197
  * 3. Search the network.
198
198
  *
199
199
  * @param {string[]} [peersToIgnore]
200
- * @returns {Promise<void>}
201
200
  */
202
201
  async _listenOnAvailableHopRelays (peersToIgnore = []) {
203
202
  // TODO: The peer redial issue on disconnect should be handled by connection gating
@@ -209,29 +208,30 @@ class AutoRelay {
209
208
  const knownHopsToDial = []
210
209
 
211
210
  // Check if we have known hop peers to use and attempt to listen on the already connected
212
- for (const [id, metadataMap] of this._peerStore.metadataBook.data.entries()) {
211
+ for await (const { id, metadata } of this._peerStore.getPeers()) {
212
+ const idStr = id.toB58String()
213
+
213
214
  // Continue to next if listening on this or peer to ignore
214
- if (this._listenRelays.has(id) || peersToIgnore.includes(id)) {
215
+ if (this._listenRelays.has(idStr) || peersToIgnore.includes(idStr)) {
215
216
  continue
216
217
  }
217
218
 
218
- const supportsHop = metadataMap.get(HOP_METADATA_KEY)
219
+ const supportsHop = metadata.get(HOP_METADATA_KEY)
219
220
 
220
221
  // Continue to next if it does not support Hop
221
222
  if (!supportsHop || uint8ArrayToString(supportsHop) !== HOP_METADATA_VALUE) {
222
223
  continue
223
224
  }
224
225
 
225
- const peerId = PeerId.createFromB58String(id)
226
- const connection = this._connectionManager.get(peerId)
226
+ const connection = this._connectionManager.get(id)
227
227
 
228
228
  // If not connected, store for possible later use.
229
229
  if (!connection) {
230
- knownHopsToDial.push(peerId)
230
+ knownHopsToDial.push(id)
231
231
  continue
232
232
  }
233
233
 
234
- await this._addListenRelay(connection, id)
234
+ await this._addListenRelay(connection, idStr)
235
235
 
236
236
  // Check if already listening on enough relays
237
237
  if (this._listenRelays.size >= this.maxListeners) {
@@ -258,7 +258,7 @@ class AutoRelay {
258
258
  }
259
259
 
260
260
  const peerId = provider.id
261
- this._peerStore.addressBook.add(peerId, provider.multiaddrs)
261
+ await this._peerStore.addressBook.add(peerId, provider.multiaddrs)
262
262
 
263
263
  await this._tryToListenOnRelay(peerId)
264
264