libp2p 0.39.5 → 0.40.0-030dbc8

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 (170) hide show
  1. package/README.md +14 -2
  2. package/dist/src/address-manager/index.d.ts +18 -2
  3. package/dist/src/address-manager/index.d.ts.map +1 -1
  4. package/dist/src/address-manager/index.js +19 -6
  5. package/dist/src/address-manager/index.js.map +1 -1
  6. package/dist/src/circuit/auto-relay.d.ts +2 -2
  7. package/dist/src/circuit/auto-relay.d.ts.map +1 -1
  8. package/dist/src/circuit/auto-relay.js +12 -12
  9. package/dist/src/circuit/auto-relay.js.map +1 -1
  10. package/dist/src/circuit/index.d.ts +13 -3
  11. package/dist/src/circuit/index.d.ts.map +1 -1
  12. package/dist/src/circuit/index.js +1 -1
  13. package/dist/src/circuit/index.js.map +1 -1
  14. package/dist/src/circuit/pb/index.d.ts.map +1 -1
  15. package/dist/src/circuit/pb/index.js +29 -34
  16. package/dist/src/circuit/pb/index.js.map +1 -1
  17. package/dist/src/circuit/transport.d.ts +22 -7
  18. package/dist/src/circuit/transport.d.ts.map +1 -1
  19. package/dist/src/circuit/transport.js +26 -17
  20. package/dist/src/circuit/transport.js.map +1 -1
  21. package/dist/src/components.d.ts +110 -0
  22. package/dist/src/components.d.ts.map +1 -0
  23. package/dist/src/components.js +199 -0
  24. package/dist/src/components.js.map +1 -0
  25. package/dist/src/config.d.ts.map +1 -1
  26. package/dist/src/config.js +0 -11
  27. package/dist/src/config.js.map +1 -1
  28. package/dist/src/connection-manager/auto-dialler.d.ts +9 -2
  29. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  30. package/dist/src/connection-manager/auto-dialler.js +6 -6
  31. package/dist/src/connection-manager/auto-dialler.js.map +1 -1
  32. package/dist/src/connection-manager/dialer/index.d.ts +12 -6
  33. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  34. package/dist/src/connection-manager/dialer/index.js +12 -17
  35. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  36. package/dist/src/connection-manager/index.d.ts +41 -17
  37. package/dist/src/connection-manager/index.d.ts.map +1 -1
  38. package/dist/src/connection-manager/index.js +80 -81
  39. package/dist/src/connection-manager/index.js.map +1 -1
  40. package/dist/src/content-routing/index.d.ts +7 -2
  41. package/dist/src/content-routing/index.d.ts.map +1 -1
  42. package/dist/src/content-routing/index.js +4 -4
  43. package/dist/src/content-routing/index.js.map +1 -1
  44. package/dist/src/content-routing/utils.d.ts +1 -1
  45. package/dist/src/content-routing/utils.d.ts.map +1 -1
  46. package/dist/src/errors.d.ts +2 -1
  47. package/dist/src/errors.d.ts.map +1 -1
  48. package/dist/src/errors.js +1 -0
  49. package/dist/src/errors.js.map +1 -1
  50. package/dist/src/fetch/index.d.ts +7 -3
  51. package/dist/src/fetch/index.d.ts.map +1 -1
  52. package/dist/src/fetch/index.js +18 -6
  53. package/dist/src/fetch/index.js.map +1 -1
  54. package/dist/src/fetch/pb/proto.d.ts.map +1 -1
  55. package/dist/src/fetch/pb/proto.js +24 -35
  56. package/dist/src/fetch/pb/proto.js.map +1 -1
  57. package/dist/src/identify/index.d.ts +13 -3
  58. package/dist/src/identify/index.d.ts.map +1 -1
  59. package/dist/src/identify/index.js +41 -41
  60. package/dist/src/identify/index.js.map +1 -1
  61. package/dist/src/identify/pb/message.d.ts.map +1 -1
  62. package/dist/src/identify/pb/message.js +23 -34
  63. package/dist/src/identify/pb/message.js.map +1 -1
  64. package/dist/src/index.d.ts +13 -12
  65. package/dist/src/index.d.ts.map +1 -1
  66. package/dist/src/index.js.map +1 -1
  67. package/dist/src/insecure/index.d.ts +2 -8
  68. package/dist/src/insecure/index.d.ts.map +1 -1
  69. package/dist/src/insecure/index.js +5 -3
  70. package/dist/src/insecure/index.js.map +1 -1
  71. package/dist/src/insecure/pb/proto.d.ts.map +1 -1
  72. package/dist/src/insecure/pb/proto.js +24 -29
  73. package/dist/src/insecure/pb/proto.js.map +1 -1
  74. package/dist/src/keychain/index.d.ts +6 -2
  75. package/dist/src/keychain/index.d.ts.map +1 -1
  76. package/dist/src/keychain/index.js +19 -19
  77. package/dist/src/keychain/index.js.map +1 -1
  78. package/dist/src/libp2p.d.ts +1 -2
  79. package/dist/src/libp2p.d.ts.map +1 -1
  80. package/dist/src/libp2p.js +49 -73
  81. package/dist/src/libp2p.js.map +1 -1
  82. package/dist/src/nat-manager.d.ts +9 -2
  83. package/dist/src/nat-manager.d.ts.map +1 -1
  84. package/dist/src/nat-manager.js +3 -3
  85. package/dist/src/nat-manager.js.map +1 -1
  86. package/dist/src/peer-record-updater.d.ts +11 -2
  87. package/dist/src/peer-record-updater.d.ts.map +1 -1
  88. package/dist/src/peer-record-updater.js +10 -10
  89. package/dist/src/peer-record-updater.js.map +1 -1
  90. package/dist/src/peer-routing.d.ts +6 -2
  91. package/dist/src/peer-routing.d.ts.map +1 -1
  92. package/dist/src/peer-routing.js +4 -4
  93. package/dist/src/peer-routing.js.map +1 -1
  94. package/dist/src/ping/index.d.ts +7 -3
  95. package/dist/src/ping/index.d.ts.map +1 -1
  96. package/dist/src/ping/index.js +3 -3
  97. package/dist/src/ping/index.js.map +1 -1
  98. package/dist/src/pnet/index.d.ts +2 -17
  99. package/dist/src/pnet/index.d.ts.map +1 -1
  100. package/dist/src/pnet/index.js +4 -1
  101. package/dist/src/pnet/index.js.map +1 -1
  102. package/dist/src/pubsub/dummy-pubsub.d.ts +2 -1
  103. package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -1
  104. package/dist/src/pubsub/dummy-pubsub.js +4 -0
  105. package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
  106. package/dist/src/registrar.d.ts +9 -3
  107. package/dist/src/registrar.d.ts.map +1 -1
  108. package/dist/src/registrar.js +6 -6
  109. package/dist/src/registrar.js.map +1 -1
  110. package/dist/src/transport-manager.d.ts +9 -3
  111. package/dist/src/transport-manager.d.ts.map +1 -1
  112. package/dist/src/transport-manager.js +5 -6
  113. package/dist/src/transport-manager.js.map +1 -1
  114. package/dist/src/upgrader.d.ts +17 -5
  115. package/dist/src/upgrader.d.ts.map +1 -1
  116. package/dist/src/upgrader.js +55 -75
  117. package/dist/src/upgrader.js.map +1 -1
  118. package/package.json +39 -40
  119. package/src/address-manager/index.ts +34 -10
  120. package/src/circuit/README.md +6 -6
  121. package/src/circuit/auto-relay.ts +15 -15
  122. package/src/circuit/index.ts +16 -5
  123. package/src/circuit/pb/index.ts +29 -35
  124. package/src/circuit/transport.ts +49 -20
  125. package/src/components.ts +332 -0
  126. package/src/config.ts +0 -11
  127. package/src/connection-manager/auto-dialler.ts +17 -9
  128. package/src/connection-manager/dialer/index.ts +26 -25
  129. package/src/connection-manager/index.ts +136 -93
  130. package/src/content-routing/index.ts +13 -7
  131. package/src/errors.ts +2 -1
  132. package/src/fetch/index.ts +28 -10
  133. package/src/fetch/pb/proto.ts +24 -35
  134. package/src/identify/index.ts +57 -53
  135. package/src/identify/pb/message.ts +23 -35
  136. package/src/index.ts +12 -11
  137. package/src/insecure/index.ts +6 -3
  138. package/src/insecure/pb/proto.ts +24 -29
  139. package/src/keychain/index.ts +27 -22
  140. package/src/libp2p.ts +50 -79
  141. package/src/nat-manager.ts +14 -6
  142. package/src/peer-record-updater.ts +23 -13
  143. package/src/peer-routing.ts +12 -7
  144. package/src/ping/index.ts +12 -7
  145. package/src/pnet/index.ts +5 -1
  146. package/src/pubsub/dummy-pubsub.ts +3 -1
  147. package/src/registrar.ts +17 -10
  148. package/src/transport-manager.ts +16 -10
  149. package/src/upgrader.ts +78 -87
  150. package/src/version.ts +1 -1
  151. package/dist/src/connection-manager/dialer/auto-dialer.d.ts +0 -16
  152. package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +0 -1
  153. package/dist/src/connection-manager/dialer/auto-dialer.js +0 -43
  154. package/dist/src/connection-manager/dialer/auto-dialer.js.map +0 -1
  155. package/dist/src/metrics/index.d.ts +0 -93
  156. package/dist/src/metrics/index.d.ts.map +0 -1
  157. package/dist/src/metrics/index.js +0 -234
  158. package/dist/src/metrics/index.js.map +0 -1
  159. package/dist/src/metrics/moving-average.d.ts +0 -14
  160. package/dist/src/metrics/moving-average.d.ts.map +0 -1
  161. package/dist/src/metrics/moving-average.js +0 -40
  162. package/dist/src/metrics/moving-average.js.map +0 -1
  163. package/dist/src/metrics/stats.d.ts +0 -87
  164. package/dist/src/metrics/stats.d.ts.map +0 -1
  165. package/dist/src/metrics/stats.js +0 -183
  166. package/dist/src/metrics/stats.js.map +0 -1
  167. package/src/connection-manager/dialer/auto-dialer.ts +0 -65
  168. package/src/metrics/index.ts +0 -311
  169. package/src/metrics/moving-average.ts +0 -53
  170. package/src/metrics/stats.ts +0 -238
@@ -2,13 +2,10 @@ import { logger } from '@libp2p/logger';
2
2
  import errCode from 'err-code';
3
3
  import * as mss from '@libp2p/multistream-select';
4
4
  import { pipe } from 'it-pipe';
5
- // @ts-expect-error mutable-proxy does not export types
6
- import mutableProxy from 'mutable-proxy';
7
5
  import { codes } from './errors.js';
8
6
  import { createConnection } from '@libp2p/connection';
9
7
  import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events';
10
8
  import { peerIdFromString } from '@libp2p/peer-id';
11
- import { isInitializable } from '@libp2p/components';
12
9
  import { DEFAULT_MAX_INBOUND_STREAMS, DEFAULT_MAX_OUTBOUND_STREAMS } from './registrar.js';
13
10
  import { TimeoutController } from 'timeout-abort-controller';
14
11
  import { abortableDuplex } from 'abortable-iterator';
@@ -65,14 +62,15 @@ export class DefaultUpgrader extends EventEmitter {
65
62
  * Upgrades an inbound connection
66
63
  */
67
64
  async upgradeInbound(maConn) {
65
+ const accept = await this.components.connectionManager.acceptIncomingConnection(maConn);
66
+ if (!accept) {
67
+ throw errCode(new Error('connection denied'), codes.ERR_CONNECTION_DENIED);
68
+ }
68
69
  let encryptedConn;
69
70
  let remotePeer;
70
71
  let upgradedConn;
71
72
  let muxerFactory;
72
73
  let cryptoProtocol;
73
- let setPeer;
74
- let proxyPeer;
75
- const metrics = this.components.getMetrics();
76
74
  const timeoutController = new TimeoutController(this.inboundUpgradeTimeout);
77
75
  try {
78
76
  // fails on node < 15.4
@@ -83,19 +81,14 @@ export class DefaultUpgrader extends EventEmitter {
83
81
  const abortableStream = abortableDuplex(maConn, timeoutController.signal);
84
82
  maConn.source = abortableStream.source;
85
83
  maConn.sink = abortableStream.sink;
86
- if (await this.components.getConnectionGater().denyInboundConnection(maConn)) {
84
+ if (await this.components.connectionGater.denyInboundConnection(maConn)) {
87
85
  throw errCode(new Error('The multiaddr connection is blocked by gater.acceptConnection'), codes.ERR_CONNECTION_INTERCEPTED);
88
86
  }
89
- if (metrics != null) {
90
- ({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
91
- const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
92
- setPeer({ toString: () => idString });
93
- metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
94
- }
87
+ this.components.metrics?.trackMultiaddrConnection(maConn);
95
88
  log('starting the inbound connection upgrade');
96
89
  // Protect
97
90
  let protectedConn = maConn;
98
- const protector = this.components.getConnectionProtector();
91
+ const protector = this.components.connectionProtector;
99
92
  if (protector != null) {
100
93
  log('protecting the inbound connection');
101
94
  protectedConn = await protector.protect(maConn);
@@ -107,7 +100,7 @@ export class DefaultUpgrader extends EventEmitter {
107
100
  remotePeer,
108
101
  protocol: cryptoProtocol
109
102
  } = await this._encryptInbound(protectedConn));
110
- if (await this.components.getConnectionGater().denyInboundEncryptedConnection(remotePeer, {
103
+ if (await this.components.connectionGater.denyInboundEncryptedConnection(remotePeer, {
111
104
  ...protectedConn,
112
105
  ...encryptedConn
113
106
  })) {
@@ -128,19 +121,14 @@ export class DefaultUpgrader extends EventEmitter {
128
121
  }
129
122
  catch (err) {
130
123
  log.error('Failed to upgrade inbound connection', err);
131
- await maConn.close(err);
132
124
  throw err;
133
125
  }
134
- if (await this.components.getConnectionGater().denyInboundUpgradedConnection(remotePeer, {
126
+ if (await this.components.connectionGater.denyInboundUpgradedConnection(remotePeer, {
135
127
  ...protectedConn,
136
128
  ...encryptedConn
137
129
  })) {
138
130
  throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
139
131
  }
140
- if (metrics != null) {
141
- metrics.updatePlaceholder(proxyPeer, remotePeer);
142
- setPeer(remotePeer);
143
- }
144
132
  log('Successfully upgraded inbound connection');
145
133
  return this._createConnection({
146
134
  cryptoProtocol,
@@ -152,19 +140,20 @@ export class DefaultUpgrader extends EventEmitter {
152
140
  });
153
141
  }
154
142
  finally {
143
+ this.components.connectionManager.afterUpgradeInbound();
155
144
  timeoutController.clear();
156
145
  }
157
146
  }
158
147
  /**
159
148
  * Upgrades an outbound connection
160
149
  */
161
- async upgradeOutbound(maConn) {
150
+ async upgradeOutbound(maConn, opts) {
162
151
  const idStr = maConn.remoteAddr.getPeerId();
163
152
  if (idStr == null) {
164
153
  throw errCode(new Error('outbound connection must have a peer id'), codes.ERR_INVALID_MULTIADDR);
165
154
  }
166
155
  const remotePeerId = peerIdFromString(idStr);
167
- if (await this.components.getConnectionGater().denyOutboundConnection(remotePeerId, maConn)) {
156
+ if (await this.components.connectionGater.denyOutboundConnection(remotePeerId, maConn)) {
168
157
  throw errCode(new Error('The multiaddr connection is blocked by connectionGater.denyOutboundConnection'), codes.ERR_CONNECTION_INTERCEPTED);
169
158
  }
170
159
  let encryptedConn;
@@ -172,37 +161,44 @@ export class DefaultUpgrader extends EventEmitter {
172
161
  let upgradedConn;
173
162
  let cryptoProtocol;
174
163
  let muxerFactory;
175
- let setPeer;
176
- let proxyPeer;
177
- const metrics = this.components.getMetrics();
178
- if (metrics != null) {
179
- ({ setTarget: setPeer, proxy: proxyPeer } = mutableProxy());
180
- const idString = `${(Math.random() * 1e9).toString(36)}${Date.now()}`;
181
- setPeer({ toB58String: () => idString });
182
- metrics.trackStream({ stream: maConn, remotePeer: proxyPeer });
183
- }
164
+ this.components.metrics?.trackMultiaddrConnection(maConn);
184
165
  log('Starting the outbound connection upgrade');
166
+ // If the transport natively supports encryption, skip connection
167
+ // protector and encryption
185
168
  // Protect
186
169
  let protectedConn = maConn;
187
- const protector = this.components.getConnectionProtector();
188
- if (protector != null) {
189
- protectedConn = await protector.protect(maConn);
170
+ if (opts?.skipProtection !== true) {
171
+ const protector = this.components.connectionProtector;
172
+ if (protector != null) {
173
+ protectedConn = await protector.protect(maConn);
174
+ }
190
175
  }
191
176
  try {
192
177
  // Encrypt the connection
193
- ({
194
- conn: encryptedConn,
195
- remotePeer,
196
- protocol: cryptoProtocol
197
- } = await this._encryptOutbound(protectedConn, remotePeerId));
198
- if (await this.components.getConnectionGater().denyOutboundEncryptedConnection(remotePeer, {
199
- ...protectedConn,
200
- ...encryptedConn
201
- })) {
202
- throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
178
+ encryptedConn = protectedConn;
179
+ if (opts?.skipEncryption !== true) {
180
+ ({
181
+ conn: encryptedConn,
182
+ remotePeer,
183
+ protocol: cryptoProtocol
184
+ } = await this._encryptOutbound(protectedConn, remotePeerId));
185
+ if (await this.components.connectionGater.denyOutboundEncryptedConnection(remotePeer, {
186
+ ...protectedConn,
187
+ ...encryptedConn
188
+ })) {
189
+ throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
190
+ }
191
+ }
192
+ else {
193
+ cryptoProtocol = 'native';
194
+ remotePeer = remotePeerId;
195
+ }
196
+ upgradedConn = encryptedConn;
197
+ if (opts?.muxerFactory != null) {
198
+ muxerFactory = opts.muxerFactory;
203
199
  }
204
- // Multiplex the connection
205
- if (this.muxers.size > 0) {
200
+ else if (this.muxers.size > 0) {
201
+ // Multiplex the connection
206
202
  const multiplexed = await this._multiplexOutbound({
207
203
  ...protectedConn,
208
204
  ...encryptedConn
@@ -210,25 +206,18 @@ export class DefaultUpgrader extends EventEmitter {
210
206
  muxerFactory = multiplexed.muxerFactory;
211
207
  upgradedConn = multiplexed.stream;
212
208
  }
213
- else {
214
- upgradedConn = encryptedConn;
215
- }
216
209
  }
217
210
  catch (err) {
218
211
  log.error('Failed to upgrade outbound connection', err);
219
212
  await maConn.close(err);
220
213
  throw err;
221
214
  }
222
- if (await this.components.getConnectionGater().denyOutboundUpgradedConnection(remotePeer, {
215
+ if (await this.components.connectionGater.denyOutboundUpgradedConnection(remotePeer, {
223
216
  ...protectedConn,
224
217
  ...encryptedConn
225
218
  })) {
226
219
  throw errCode(new Error('The multiaddr connection is blocked by gater.acceptEncryptedConnection'), codes.ERR_CONNECTION_INTERCEPTED);
227
220
  }
228
- if (metrics != null) {
229
- metrics.updatePlaceholder(proxyPeer, remotePeer);
230
- setPeer(remotePeer);
231
- }
232
221
  log('Successfully upgraded outbound connection');
233
222
  return this._createConnection({
234
223
  cryptoProtocol,
@@ -258,17 +247,13 @@ export class DefaultUpgrader extends EventEmitter {
258
247
  }
259
248
  void Promise.resolve()
260
249
  .then(async () => {
261
- const protocols = this.components.getRegistrar().getProtocols();
250
+ const protocols = this.components.registrar.getProtocols();
262
251
  const { stream, protocol } = await mss.handle(muxedStream, protocols);
263
252
  log('%s: incoming stream opened on %s', direction, protocol);
264
- const metrics = this.components.getMetrics();
265
- if (metrics != null) {
266
- metrics.trackStream({ stream, remotePeer, protocol });
267
- }
268
253
  if (connection == null) {
269
254
  return;
270
255
  }
271
- const incomingLimit = findIncomingStreamLimit(protocol, this.components.getRegistrar());
256
+ const incomingLimit = findIncomingStreamLimit(protocol, this.components.registrar);
272
257
  const streamCount = countStreams(protocol, 'inbound', connection);
273
258
  if (streamCount === incomingLimit) {
274
259
  muxedStream.abort(errCode(new Error(`Too many inbound protocol streams for protocol "${protocol}" - limit ${incomingLimit}`), codes.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));
@@ -281,8 +266,9 @@ export class DefaultUpgrader extends EventEmitter {
281
266
  muxedStream.stat.protocol = protocol;
282
267
  // If a protocol stream has been successfully negotiated and is to be passed to the application,
283
268
  // the peerstore should ensure that the peer is registered with that protocol
284
- this.components.getPeerStore().protoBook.add(remotePeer, [protocol]).catch(err => log.error(err));
269
+ this.components.peerStore.protoBook.add(remotePeer, [protocol]).catch(err => log.error(err));
285
270
  connection.addStream(muxedStream);
271
+ this.components.metrics?.trackProtocolStream(muxedStream, connection);
286
272
  this._onStream({ connection, stream: muxedStream, protocol });
287
273
  })
288
274
  .catch(err => {
@@ -297,16 +283,12 @@ export class DefaultUpgrader extends EventEmitter {
297
283
  connection?.removeStream(muxedStream.id);
298
284
  }
299
285
  });
300
- if (isInitializable(muxer)) {
301
- muxer.init(this.components);
302
- }
303
286
  newStream = async (protocols, options = {}) => {
304
287
  if (muxer == null) {
305
288
  throw errCode(new Error('Stream is not multiplexed'), codes.ERR_MUXER_UNAVAILABLE);
306
289
  }
307
290
  log('%s: starting new stream on %s', direction, protocols);
308
- const muxedStream = muxer.newStream();
309
- const metrics = this.components.getMetrics();
291
+ const muxedStream = await muxer.newStream();
310
292
  let controller;
311
293
  try {
312
294
  if (options.signal == null) {
@@ -320,10 +302,7 @@ export class DefaultUpgrader extends EventEmitter {
320
302
  catch { }
321
303
  }
322
304
  const { stream, protocol } = await mss.select(muxedStream, protocols, options);
323
- if (metrics != null) {
324
- metrics.trackStream({ stream, remotePeer, protocol });
325
- }
326
- const outgoingLimit = findOutgoingStreamLimit(protocol, this.components.getRegistrar());
305
+ const outgoingLimit = findOutgoingStreamLimit(protocol, this.components.registrar);
327
306
  const streamCount = countStreams(protocol, 'outbound', connection);
328
307
  if (streamCount === outgoingLimit) {
329
308
  const err = errCode(new Error(`Too many outbound protocol streams for protocol "${protocol}" - limit ${outgoingLimit}`), codes.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);
@@ -332,12 +311,13 @@ export class DefaultUpgrader extends EventEmitter {
332
311
  }
333
312
  // If a protocol stream has been successfully negotiated and is to be passed to the application,
334
313
  // the peerstore should ensure that the peer is registered with that protocol
335
- this.components.getPeerStore().protoBook.add(remotePeer, [protocol]).catch(err => log.error(err));
314
+ this.components.peerStore.protoBook.add(remotePeer, [protocol]).catch(err => log.error(err));
336
315
  // after the handshake the returned stream can have early data so override
337
316
  // the souce/sink
338
317
  muxedStream.source = stream.source;
339
318
  muxedStream.sink = stream.sink;
340
319
  muxedStream.stat.protocol = protocol;
320
+ this.components.metrics?.trackProtocolStream(muxedStream, connection);
341
321
  return muxedStream;
342
322
  }
343
323
  catch (err) {
@@ -420,7 +400,7 @@ export class DefaultUpgrader extends EventEmitter {
420
400
  */
421
401
  _onStream(opts) {
422
402
  const { connection, stream, protocol } = opts;
423
- const { handler } = this.components.getRegistrar().getHandler(protocol);
403
+ const { handler } = this.components.registrar.getHandler(protocol);
424
404
  handler({ connection, stream });
425
405
  }
426
406
  /**
@@ -439,7 +419,7 @@ export class DefaultUpgrader extends EventEmitter {
439
419
  }
440
420
  log('encrypting inbound connection...');
441
421
  return {
442
- ...await encrypter.secureInbound(this.components.getPeerId(), stream),
422
+ ...await encrypter.secureInbound(this.components.peerId, stream),
443
423
  protocol
444
424
  };
445
425
  }
@@ -464,7 +444,7 @@ export class DefaultUpgrader extends EventEmitter {
464
444
  }
465
445
  log('encrypting outbound connection to %p', remotePeerId);
466
446
  return {
467
- ...await encrypter.secureOutbound(this.components.getPeerId(), stream, remotePeerId),
447
+ ...await encrypter.secureOutbound(this.components.peerId, stream, remotePeerId),
468
448
  protocol
469
449
  };
470
450
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,GAAG,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,uDAAuD;AACvD,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAOlD,OAAO,EAAc,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGhE,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAExC,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAgCrC,SAAS,uBAAuB,CAAE,QAAgB,EAAE,SAAoB;IACtE,IAAI;QACF,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAElD,OAAO,OAAO,CAAC,iBAAiB,CAAA;KACjC;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,2BAA2B,EAAE;YAClD,MAAM,GAAG,CAAA;SACV;KACF;IAED,OAAO,2BAA2B,CAAA;AACpC,CAAC;AAED,SAAS,uBAAuB,CAAE,QAAgB,EAAE,SAAoB;IACtE,IAAI;QACF,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAElD,OAAO,OAAO,CAAC,kBAAkB,CAAA;KAClC;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,2BAA2B,EAAE;YAClD,MAAM,GAAG,CAAA;SACV;KACF;IAED,OAAO,4BAA4B,CAAA;AACrC,CAAC;AAED,SAAS,YAAY,CAAE,QAAgB,EAAE,SAAiC,EAAE,UAAsB;IAChG,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAClC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC5E,WAAW,EAAE,CAAA;SACd;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,YAA4B;IAM/D,YAAa,UAAsB,EAAE,IAAkB;QACrD,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAA;QAErC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;QAEvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAA;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAE,MAA2B;QAC/C,IAAI,aAAa,CAAA;QACjB,IAAI,UAAU,CAAA;QACd,IAAI,YAAgC,CAAA;QACpC,IAAI,YAA4C,CAAA;QAChD,IAAI,cAAc,CAAA;QAClB,IAAI,OAAO,CAAA;QACX,IAAI,SAAS,CAAA;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;QAE5C,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAE3E,IAAI;YACF,uBAAuB;YACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAA;SACtD;QAAC,MAAM,GAAE;QAEV,IAAI;YACF,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAA;YACzE,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAA;YACtC,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAA;YAElC,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;gBAC5E,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+DAA+D,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;aAC5H;YAED,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC,CAAA;gBAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;gBACrE,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACrC,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;aAC/D;YAED,GAAG,CAAC,yCAAyC,CAAC,CAAA;YAE9C,UAAU;YACV,IAAI,aAAa,GAAG,MAAM,CAAA;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAA;YAE1D,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,GAAG,CAAC,mCAAmC,CAAC,CAAA;gBACxC,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;aAChD;YAED,IAAI;gBACF,yBAAyB;gBACzB,CAAC;oBACC,IAAI,EAAE,aAAa;oBACnB,UAAU;oBACV,QAAQ,EAAE,cAAc;iBACzB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAA;gBAE9C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,8BAA8B,CAAC,UAAU,EAAE;oBACxF,GAAG,aAAa;oBAChB,GAAG,aAAa;iBACjB,CAAC,EAAE;oBACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;iBACrI;gBAED,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;oBACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;wBAC/C,GAAG,aAAa;wBAChB,GAAG,aAAa;qBACjB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBACf,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;oBACvC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAA;iBAClC;qBAAM;oBACL,YAAY,GAAG,aAAa,CAAA;iBAC7B;aACF;YAAC,OAAO,GAAQ,EAAE;gBACjB,GAAG,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;gBACtD,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACvB,MAAM,GAAG,CAAA;aACV;YAED,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,6BAA6B,CAAC,UAAU,EAAE;gBACvF,GAAG,aAAa;gBAChB,GAAG,aAAa;aACjB,CAAC,EAAE;gBACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;aACrI;YAED,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;gBAChD,OAAO,CAAC,UAAU,CAAC,CAAA;aACpB;YAED,GAAG,CAAC,0CAA0C,CAAC,CAAA;YAE/C,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,cAAc;gBACd,SAAS,EAAE,SAAS;gBACpB,MAAM;gBACN,YAAY;gBACZ,YAAY;gBACZ,UAAU;aACX,CAAC,CAAA;SACH;gBAAS;YACR,iBAAiB,CAAC,KAAK,EAAE,CAAA;SAC1B;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAE,MAA2B;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,CAAA;QAC3C,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACjG;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAE5C,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;YAC3F,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+EAA+E,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SAC5I;QAED,IAAI,aAAa,CAAA;QACjB,IAAI,UAAU,CAAA;QACd,IAAI,YAAY,CAAA;QAChB,IAAI,cAAc,CAAA;QAClB,IAAI,YAAY,CAAA;QAChB,IAAI,OAAO,CAAA;QACX,IAAI,SAAS,CAAA;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;QAE5C,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YACrE,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YACxC,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;SAC/D;QAED,GAAG,CAAC,0CAA0C,CAAC,CAAA;QAE/C,UAAU;QACV,IAAI,aAAa,GAAG,MAAM,CAAA;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAA;QAE1D,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAChD;QAED,IAAI;YACF,yBAAyB;YACzB,CAAC;gBACC,IAAI,EAAE,aAAa;gBACnB,UAAU;gBACV,QAAQ,EAAE,cAAc;aACzB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAA;YAE7D,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,+BAA+B,CAAC,UAAU,EAAE;gBACzF,GAAG,aAAa;gBAChB,GAAG,aAAa;aACjB,CAAC,EAAE;gBACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;aACrI;YAED,2BAA2B;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;gBACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;oBAChD,GAAG,aAAa;oBAChB,GAAG,aAAa;iBACjB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACf,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;gBACvC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAA;aAClC;iBAAM;gBACL,YAAY,GAAG,aAAa,CAAA;aAC7B;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;YACvD,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,MAAM,GAAG,CAAA;SACV;QAED,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,8BAA8B,CAAC,UAAU,EAAE;YACxF,GAAG,aAAa;YAChB,GAAG,aAAa;SACjB,CAAC,EAAE;YACF,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,wEAAwE,CAAC,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAA;SACrI;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAChD,OAAO,CAAC,UAAU,CAAC,CAAA;SACpB;QAED,GAAG,CAAC,2CAA2C,CAAC,CAAA;QAEhD,OAAO,IAAI,CAAC,iBAAiB,CAAC;YAC5B,cAAc;YACd,SAAS,EAAE,UAAU;YACrB,MAAM;YACN,YAAY;YACZ,YAAY;YACZ,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAE,IAA4B;QAC7C,MAAM,EACJ,cAAc,EACd,SAAS,EACT,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACb,GAAG,IAAI,CAAA;QAER,IAAI,KAA8B,CAAA;QAClC,IAAI,SAA2F,CAAA;QAC/F,IAAI,UAAsB,CAAA,CAAC,mCAAmC;QAE9D,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,mBAAmB;YACnB,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAC;gBACrC,SAAS;gBACT,yCAAyC;gBACzC,gBAAgB,EAAE,WAAW,CAAC,EAAE;oBAC9B,IAAI,UAAU,IAAI,IAAI,EAAE;wBACtB,OAAM;qBACP;oBAED,KAAK,OAAO,CAAC,OAAO,EAAE;yBACnB,IAAI,CAAC,KAAK,IAAI,EAAE;wBACf,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAA;wBAC/D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;wBACrE,GAAG,CAAC,kCAAkC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;wBAE5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;wBAE5C,IAAI,OAAO,IAAI,IAAI,EAAE;4BACnB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;yBACtD;wBAED,IAAI,UAAU,IAAI,IAAI,EAAE;4BACtB,OAAM;yBACP;wBAED,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;wBACvF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;wBAEjE,IAAI,WAAW,KAAK,aAAa,EAAE;4BACjC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,aAAa,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAA;4BAE3K,OAAM;yBACP;wBAED,0EAA0E;wBAC1E,iBAAiB;wBACjB,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;wBAClC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;wBAC9B,WAAW,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;wBAEpC,gGAAgG;wBAChG,6EAA6E;wBAC7E,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;wBAEjG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;wBACjC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA;oBAC/D,CAAC,CAAC;yBACD,KAAK,CAAC,GAAG,CAAC,EAAE;wBACX,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAEd,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;4BAC3C,WAAW,CAAC,KAAK,EAAE,CAAA;yBACpB;oBACH,CAAC,CAAC,CAAA;gBACN,CAAC;gBACD,8BAA8B;gBAC9B,WAAW,EAAE,WAAW,CAAC,EAAE;oBACzB,UAAU,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;gBAC1C,CAAC;aACF,CAAC,CAAA;YAEF,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;gBAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aAC5B;YAED,SAAS,GAAG,KAAK,EAAE,SAAmB,EAAE,UAAwB,EAAE,EAAmB,EAAE;gBACrF,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;iBACnF;gBAED,GAAG,CAAC,+BAA+B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;gBAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;gBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAA;gBAC5C,IAAI,UAAyC,CAAA;gBAE7C,IAAI;oBACF,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;wBAC1B,GAAG,CAAC,mGAAmG,EAAE,SAAS,CAAC,CAAA;wBAEnH,UAAU,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAA;wBACzC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;wBAElC,IAAI;4BACF,uBAAuB;4BACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;yBAC/C;wBAAC,MAAM,GAAE;qBACX;oBAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;oBAE9E,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;qBACtD;oBAED,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;oBACvF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;oBAElE,IAAI,WAAW,KAAK,aAAa,EAAE;wBACjC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,KAAK,CAAC,oDAAoD,QAAQ,aAAa,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAA;wBACtK,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAEtB,MAAM,GAAG,CAAA;qBACV;oBAED,gGAAgG;oBAChG,6EAA6E;oBAC7E,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;oBAEjG,0EAA0E;oBAC1E,iBAAiB;oBACjB,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;oBAClC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;oBAC9B,WAAW,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;oBAEpC,OAAO,WAAW,CAAA;iBACnB;gBAAC,OAAO,GAAQ,EAAE;oBACjB,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;oBAE7C,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE;wBAC3C,WAAW,CAAC,KAAK,EAAE,CAAA;qBACpB;oBAED,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE;wBACpB,MAAM,GAAG,CAAA;qBACV;oBAED,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAA;iBACnD;wBAAS;oBACR,IAAI,UAAU,IAAI,IAAI,EAAE;wBACtB,UAAU,CAAC,KAAK,EAAE,CAAA;qBACnB;iBACF;YACH,CAAC,CAAA;YAED,kCAAkC;YAClC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;SACzD;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAA;QACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE;YACrC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;gBACf,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC3F,2DAA2D;oBAC3D,CAAC,KAAK,IAAI,EAAE;wBACV,IAAI;4BACF,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;gCACrC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;6BACzB;yBACF;wBAAC,OAAO,GAAQ,EAAE;4BACjB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;yBACf;gCAAS;4BACR,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAa,eAAe,EAAE;gCAC9D,MAAM,EAAE,UAAU;6BACnB,CAAC,CAAC,CAAA;yBACJ;oBACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBACf,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAChB,CAAC,CAAC,CAAA;iBACH;gBAED,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;YAC7B,CAAC;SACF,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAErC,MAAM,2BAA2B,GAAG,GAAG,EAAE;YACvC,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjG,CAAC,CAAA;QAED,wBAAwB;QACxB,UAAU,GAAG,gBAAgB,CAAC;YAC5B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM;gBACd,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,KAAK,EAAE,QAAQ;gBAC5B,UAAU,EAAE,cAAc;aAC3B;YACD,SAAS,EAAE,SAAS,IAAI,2BAA2B;YACnD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,EAAE;YAC/E,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;gBACpB,sCAAsC;gBACtC,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,KAAK,CAAC,KAAK,EAAE,CAAA;iBACd;YACH,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAa,YAAY,EAAE;YAC3D,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC,CAAA;QAEH,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,SAAS,CAAE,IAAqB;QAC9B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEvE,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAE,UAA8B;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,GAAG,CAAC,4CAA4C,EAAE,SAAS,CAAC,CAAA;QAE5D,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE;gBACnE,UAAU,EAAE,IAAI;aACjB,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEzD,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAA;aAC1D;YAED,GAAG,CAAC,kCAAkC,CAAC,CAAA;YAEvC,OAAO;gBACL,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC;gBACrE,QAAQ;aACT,CAAA;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAE,UAA+B,EAAE,YAAoB;QAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9D,GAAG,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAA;QAEpD,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE;gBACnE,UAAU,EAAE,IAAI;aACjB,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEzD,IAAI,SAAS,IAAI,IAAI,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAA;aAC1D;YAED,GAAG,CAAC,sCAAsC,EAAE,YAAY,CAAC,CAAA;YAEzD,OAAO;gBACL,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC;gBACpF,QAAQ;aACT,CAAA;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAE,UAA+B,EAAE,MAAuC;QAChG,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3C,GAAG,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAA;QAC7C,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE;gBACnE,UAAU,EAAE,IAAI;aACjB,CAAC,CAAA;YACF,GAAG,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAA;YAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACzC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;SAChC;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAA;YACpD,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAE,UAA+B,EAAE,MAAuC;QAC/F,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3C,GAAG,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAA;QAC5C,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE;gBACnE,UAAU,EAAE,IAAI;aACjB,CAAC,CAAA;YACF,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACzC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;SAChC;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;YACnD,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;SAChD;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libp2p",
3
- "version": "0.39.5",
3
+ "version": "0.40.0-030dbc8",
4
4
  "description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p#readme",
@@ -98,25 +98,24 @@
98
98
  },
99
99
  "dependencies": {
100
100
  "@achingbrain/nat-port-mapper": "^1.0.3",
101
- "@libp2p/components": "^2.1.0",
102
101
  "@libp2p/connection": "^4.0.2",
103
102
  "@libp2p/crypto": "^1.0.4",
104
- "@libp2p/interface-address-manager": "^1.0.3",
103
+ "@libp2p/interface-address-manager": "^2.0.0",
105
104
  "@libp2p/interface-connection": "^3.0.2",
106
- "@libp2p/interface-connection-encrypter": "^2.0.1",
105
+ "@libp2p/interface-connection-encrypter": "^3.0.1",
107
106
  "@libp2p/interface-connection-manager": "^1.1.1",
108
107
  "@libp2p/interface-content-routing": "^1.0.2",
109
108
  "@libp2p/interface-dht": "^1.0.1",
110
- "@libp2p/interface-metrics": "^3.0.0",
109
+ "@libp2p/interface-metrics": "^4.0.0",
111
110
  "@libp2p/interface-peer-discovery": "^1.0.1",
112
111
  "@libp2p/interface-peer-id": "^1.0.4",
113
112
  "@libp2p/interface-peer-info": "^1.0.3",
114
113
  "@libp2p/interface-peer-routing": "^1.0.1",
115
114
  "@libp2p/interface-peer-store": "^1.2.2",
116
- "@libp2p/interface-pubsub": "^2.1.0",
115
+ "@libp2p/interface-pubsub": "^3.0.0",
117
116
  "@libp2p/interface-registrar": "^2.0.3",
118
- "@libp2p/interface-stream-muxer": "^2.0.2",
119
- "@libp2p/interface-transport": "^1.0.4",
117
+ "@libp2p/interface-stream-muxer": "^3.0.0",
118
+ "@libp2p/interface-transport": "^2.0.0",
120
119
  "@libp2p/interfaces": "^3.0.3",
121
120
  "@libp2p/logger": "^2.0.1",
122
121
  "@libp2p/multistream-select": "^3.0.0",
@@ -124,8 +123,8 @@
124
123
  "@libp2p/peer-id": "^1.1.15",
125
124
  "@libp2p/peer-id-factory": "^1.0.18",
126
125
  "@libp2p/peer-record": "^4.0.3",
127
- "@libp2p/peer-store": "^3.1.5",
128
- "@libp2p/tracked-map": "^2.0.1",
126
+ "@libp2p/peer-store": "^5.0.0",
127
+ "@libp2p/tracked-map": "^3.0.0",
129
128
  "@libp2p/utils": "^3.0.2",
130
129
  "@multiformats/mafmt": "^11.0.2",
131
130
  "@multiformats/multiaddr": "^11.0.0",
@@ -136,56 +135,56 @@
136
135
  "events": "^3.3.0",
137
136
  "hashlru": "^2.3.0",
138
137
  "interface-datastore": "^7.0.0",
139
- "it-all": "^1.0.6",
140
- "it-drain": "^1.0.5",
141
- "it-filter": "^1.0.3",
142
- "it-first": "^1.0.6",
143
- "it-foreach": "^0.1.1",
138
+ "it-all": "^2.0.0",
139
+ "it-drain": "^2.0.0",
140
+ "it-filter": "^2.0.0",
141
+ "it-first": "^2.0.0",
142
+ "it-foreach": "^1.0.0",
144
143
  "it-handshake": "^4.1.2",
145
144
  "it-length-prefixed": "^8.0.2",
146
- "it-map": "^1.0.6",
147
- "it-merge": "^1.0.3",
145
+ "it-map": "^2.0.0",
146
+ "it-merge": "^2.0.0",
148
147
  "it-pair": "^2.0.2",
149
148
  "it-pipe": "^2.0.3",
150
- "it-sort": "^1.0.1",
149
+ "it-sort": "^2.0.0",
151
150
  "it-stream-types": "^1.0.4",
152
151
  "merge-options": "^3.0.4",
153
- "multiformats": "^9.6.3",
154
- "mutable-proxy": "^1.0.0",
152
+ "multiformats": "^10.0.0",
155
153
  "node-forge": "^1.3.1",
156
154
  "p-fifo": "^1.0.0",
157
155
  "p-retry": "^5.0.0",
158
156
  "p-settle": "^5.0.0",
159
157
  "private-ip": "^2.3.3",
160
- "protons-runtime": "^3.0.1",
158
+ "protons-runtime": "^4.0.1",
159
+ "rate-limiter-flexible": "^2.3.11",
161
160
  "retimer": "^3.0.0",
162
161
  "sanitize-filename": "^1.6.3",
163
162
  "set-delayed-interval": "^1.0.0",
164
163
  "timeout-abort-controller": "^3.0.0",
165
164
  "uint8arraylist": "^2.3.2",
166
- "uint8arrays": "^3.0.0",
165
+ "uint8arrays": "^4.0.2",
167
166
  "wherearewe": "^2.0.0",
168
167
  "xsalsa20": "^1.1.0"
169
168
  },
170
169
  "devDependencies": {
171
- "@chainsafe/libp2p-noise": "^8.0.2",
172
- "@chainsafe/libp2p-yamux": "^1.0.0",
173
- "@libp2p/bootstrap": "^3.0.0",
174
- "@libp2p/daemon-client": "^3.0.1",
175
- "@libp2p/daemon-server": "^3.0.1",
176
- "@libp2p/floodsub": "^3.0.0",
170
+ "@chainsafe/libp2p-noise": "^10.0.1",
171
+ "@chainsafe/libp2p-yamux": "^3.0.3",
172
+ "@libp2p/bootstrap": "^5.0.0",
173
+ "@libp2p/daemon-client": "^3.0.5",
174
+ "@libp2p/daemon-server": "^3.0.4",
175
+ "@libp2p/floodsub": "^5.0.0",
177
176
  "@libp2p/interface-compliance-tests": "^3.0.2",
178
- "@libp2p/interface-connection-encrypter-compliance-tests": "^2.0.2",
179
- "@libp2p/interface-mocks": "^4.0.3",
177
+ "@libp2p/interface-connection-encrypter-compliance-tests": "^3.0.0",
178
+ "@libp2p/interface-mocks": "^8.0.0",
180
179
  "@libp2p/interop": "^3.0.1",
181
- "@libp2p/kad-dht": "^3.0.5",
182
- "@libp2p/mdns": "^3.0.1",
183
- "@libp2p/mplex": "^5.2.3",
184
- "@libp2p/pubsub": "^3.1.3",
185
- "@libp2p/tcp": "^3.1.1",
180
+ "@libp2p/kad-dht": "^6.0.0",
181
+ "@libp2p/mdns": "^5.0.0",
182
+ "@libp2p/mplex": "^7.0.0",
183
+ "@libp2p/pubsub": "^5.0.0",
184
+ "@libp2p/tcp": "^6.0.0",
186
185
  "@libp2p/topology": "^3.0.1",
187
- "@libp2p/webrtc-star": "^3.0.3",
188
- "@libp2p/websockets": "^3.0.4",
186
+ "@libp2p/webrtc-star": "^5.0.2",
187
+ "@libp2p/websockets": "^5.0.0",
189
188
  "@types/node-forge": "^1.0.0",
190
189
  "@types/p-fifo": "^1.0.0",
191
190
  "@types/varint": "^6.0.0",
@@ -196,16 +195,16 @@
196
195
  "execa": "^6.1.0",
197
196
  "go-libp2p": "^0.0.6",
198
197
  "it-pushable": "^3.0.0",
199
- "it-to-buffer": "^2.0.2",
198
+ "it-to-buffer": "^3.0.0",
200
199
  "npm-run-all": "^4.1.5",
201
200
  "p-defer": "^4.0.0",
202
201
  "p-event": "^5.0.1",
203
202
  "p-times": "^4.0.0",
204
203
  "p-wait-for": "^5.0.0",
205
- "protons": "^5.0.0",
204
+ "protons": "^6.0.0",
206
205
  "rimraf": "^3.0.2",
207
206
  "sinon": "^14.0.0",
208
- "ts-sinon": "^2.0.2"
207
+ "sinon-ts": "^1.0.0"
209
208
  },
210
209
  "browser": {
211
210
  "nat-api": false
@@ -3,7 +3,8 @@ import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events'
3
3
  import type { Multiaddr } from '@multiformats/multiaddr'
4
4
  import { multiaddr } from '@multiformats/multiaddr'
5
5
  import { peerIdFromString } from '@libp2p/peer-id'
6
- import type { Components } from '@libp2p/components'
6
+ import type { PeerId } from '@libp2p/interface-peer-id'
7
+ import type { TransportManager } from '@libp2p/interface-transport'
7
8
 
8
9
  export interface AddressManagerInit {
9
10
  announceFilter?: AddressFilter
@@ -24,6 +25,11 @@ export interface AddressManagerInit {
24
25
  noAnnounce?: string[]
25
26
  }
26
27
 
28
+ export interface DefaultAddressManagerComponents {
29
+ peerId: PeerId
30
+ transportManager: TransportManager
31
+ }
32
+
27
33
  export interface AddressFilter {
28
34
  (addrs: Multiaddr[]): Multiaddr[]
29
35
  }
@@ -31,8 +37,9 @@ export interface AddressFilter {
31
37
  const defaultAddressFilter = (addrs: Multiaddr[]): Multiaddr[] => addrs
32
38
 
33
39
  export class DefaultAddressManager extends EventEmitter<AddressManagerEvents> {
34
- private readonly components: Components
35
- private readonly listen: Set<string>
40
+ private readonly components: DefaultAddressManagerComponents
41
+ // this is an array to allow for duplicates, e.g. multiples of `/ip4/0.0.0.0/tcp/0`
42
+ private readonly listen: string[]
36
43
  private readonly announce: Set<string>
37
44
  private readonly observed: Set<string>
38
45
  private readonly announceFilter: AddressFilter
@@ -43,13 +50,13 @@ export class DefaultAddressManager extends EventEmitter<AddressManagerEvents> {
43
50
  * The listen addresses will be used by the libp2p transports to listen for new connections,
44
51
  * while the announce addresses will be used for the peer addresses' to other peers in the network.
45
52
  */
46
- constructor (components: Components, init: AddressManagerInit) {
53
+ constructor (components: DefaultAddressManagerComponents, init: AddressManagerInit) {
47
54
  super()
48
55
 
49
56
  const { listen = [], announce = [] } = init
50
57
 
51
58
  this.components = components
52
- this.listen = new Set(listen.map(ma => ma.toString()))
59
+ this.listen = listen.map(ma => ma.toString())
53
60
  this.announce = new Set(announce.map(ma => ma.toString()))
54
61
  this.observed = new Set()
55
62
  this.announceFilter = init.announceFilter ?? defaultAddressFilter
@@ -76,6 +83,23 @@ export class DefaultAddressManager extends EventEmitter<AddressManagerEvents> {
76
83
  return Array.from(this.observed).map((a) => multiaddr(a))
77
84
  }
78
85
 
86
+ /**
87
+ * Add peer observed addresses
88
+ * Signal that we have confidence an observed multiaddr is publicly dialable -
89
+ * this will make it appear in the output of getAddresses()
90
+ */
91
+ confirmObservedAddr (addr: Multiaddr): void {
92
+
93
+ }
94
+
95
+ /**
96
+ * Signal that we do not have confidence an observed multiaddr is publicly dialable -
97
+ * this will remove it from the output of getObservedAddrs()
98
+ */
99
+ removeObservedAddr (addr: Multiaddr): void {
100
+
101
+ }
102
+
79
103
  /**
80
104
  * Add peer observed addresses
81
105
  */
@@ -88,8 +112,8 @@ export class DefaultAddressManager extends EventEmitter<AddressManagerEvents> {
88
112
  const remotePeerId = peerIdFromString(remotePeer)
89
113
 
90
114
  // use same encoding for comparison
91
- if (remotePeerId.equals(this.components.getPeerId())) {
92
- ma = ma.decapsulate(multiaddr(`/p2p/${this.components.getPeerId().toString()}`))
115
+ if (remotePeerId.equals(this.components.peerId)) {
116
+ ma = ma.decapsulate(multiaddr(`/p2p/${this.components.peerId.toString()}`))
93
117
  }
94
118
  }
95
119
 
@@ -109,7 +133,7 @@ export class DefaultAddressManager extends EventEmitter<AddressManagerEvents> {
109
133
 
110
134
  if (addrs.length === 0) {
111
135
  // no configured announce addrs, add configured listen addresses
112
- addrs = this.components.getTransportManager().getAddrs().map(ma => ma.toString())
136
+ addrs = this.components.transportManager.getAddrs().map(ma => ma.toString())
113
137
  }
114
138
 
115
139
  addrs = addrs.concat(this.getObservedAddrs().map(ma => ma.toString()))
@@ -121,11 +145,11 @@ export class DefaultAddressManager extends EventEmitter<AddressManagerEvents> {
121
145
  return this.announceFilter(Array.from(addrSet)
122
146
  .map(str => multiaddr(str)))
123
147
  .map(ma => {
124
- if (ma.getPeerId() === this.components.getPeerId().toString()) {
148
+ if (ma.getPeerId() === this.components.peerId.toString()) {
125
149
  return ma
126
150
  }
127
151
 
128
- return ma.encapsulate(`/p2p/${this.components.getPeerId().toString()}`)
152
+ return ma.encapsulate(`/p2p/${this.components.peerId.toString()}`)
129
153
  })
130
154
  }
131
155
  }