libp2p 0.42.2 → 0.43.0
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.
- package/README.md +4 -4
- package/dist/index.min.js +29 -29
- package/dist/src/address-manager/index.d.ts +1 -10
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/address-manager/index.js +46 -29
- package/dist/src/address-manager/index.js.map +1 -1
- package/dist/src/autonat/constants.d.ts +4 -0
- package/dist/src/autonat/constants.d.ts.map +1 -0
- package/dist/src/autonat/constants.js +4 -0
- package/dist/src/autonat/constants.js.map +1 -0
- package/dist/src/autonat/index.d.ts +64 -0
- package/dist/src/autonat/index.d.ts.map +1 -0
- package/dist/src/autonat/index.js +417 -0
- package/dist/src/autonat/index.js.map +1 -0
- package/dist/src/autonat/pb/index.d.ts +57 -0
- package/dist/src/autonat/pb/index.d.ts.map +1 -0
- package/dist/src/autonat/pb/index.js +250 -0
- package/dist/src/autonat/pb/index.js.map +1 -0
- package/dist/src/circuit/constants.d.ts +31 -6
- package/dist/src/circuit/constants.d.ts.map +1 -1
- package/dist/src/circuit/constants.js +37 -7
- package/dist/src/circuit/constants.js.map +1 -1
- package/dist/src/circuit/index.d.ts +16 -61
- package/dist/src/circuit/index.d.ts.map +1 -1
- package/dist/src/circuit/index.js +2 -68
- package/dist/src/circuit/index.js.map +1 -1
- package/dist/src/circuit/pb/index.d.ts +83 -43
- package/dist/src/circuit/pb/index.d.ts.map +1 -1
- package/dist/src/circuit/pb/index.js +363 -127
- package/dist/src/circuit/pb/index.js.map +1 -1
- package/dist/src/circuit/server/advert-service.d.ts +43 -0
- package/dist/src/circuit/server/advert-service.d.ts.map +1 -0
- package/dist/src/circuit/server/advert-service.js +69 -0
- package/dist/src/circuit/server/advert-service.js.map +1 -0
- package/dist/src/circuit/server/index.d.ts +60 -0
- package/dist/src/circuit/server/index.d.ts.map +1 -0
- package/dist/src/circuit/server/index.js +287 -0
- package/dist/src/circuit/server/index.js.map +1 -0
- package/dist/src/circuit/server/reservation-store.d.ts +49 -0
- package/dist/src/circuit/server/reservation-store.d.ts.map +1 -0
- package/dist/src/circuit/server/reservation-store.js +57 -0
- package/dist/src/circuit/server/reservation-store.js.map +1 -0
- package/dist/src/circuit/server/reservation-voucher.d.ts +18 -0
- package/dist/src/circuit/server/reservation-voucher.d.ts.map +1 -0
- package/dist/src/circuit/server/reservation-voucher.js +33 -0
- package/dist/src/circuit/server/reservation-voucher.js.map +1 -0
- package/dist/src/circuit/transport/discovery.d.ts +45 -0
- package/dist/src/circuit/transport/discovery.d.ts.map +1 -0
- package/dist/src/circuit/transport/discovery.js +82 -0
- package/dist/src/circuit/transport/discovery.js.map +1 -0
- package/dist/src/circuit/transport/index.d.ts +33 -0
- package/dist/src/circuit/transport/index.d.ts.map +1 -0
- package/dist/src/circuit/transport/index.js +225 -0
- package/dist/src/circuit/transport/index.js.map +1 -0
- package/dist/src/circuit/transport/listener.d.ts +9 -0
- package/dist/src/circuit/transport/listener.d.ts.map +1 -0
- package/dist/src/circuit/transport/listener.js +76 -0
- package/dist/src/circuit/transport/listener.js.map +1 -0
- package/dist/src/circuit/transport/reservation-store.d.ts +60 -0
- package/dist/src/circuit/transport/reservation-store.d.ts.map +1 -0
- package/dist/src/circuit/transport/reservation-store.js +165 -0
- package/dist/src/circuit/transport/reservation-store.js.map +1 -0
- package/dist/src/circuit/utils.d.ts +7 -0
- package/dist/src/circuit/utils.d.ts.map +1 -1
- package/dist/src/circuit/utils.js +87 -0
- package/dist/src/circuit/utils.js.map +1 -1
- package/dist/src/components.d.ts +2 -1
- package/dist/src/components.d.ts.map +1 -1
- package/dist/src/components.js +13 -13
- package/dist/src/components.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +21 -25
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection/index.d.ts +2 -2
- package/dist/src/connection/index.d.ts.map +1 -1
- package/dist/src/connection/index.js +4 -4
- package/dist/src/connection/index.js.map +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts +0 -4
- package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
- package/dist/src/connection-manager/auto-dialler.js +18 -18
- package/dist/src/connection-manager/auto-dialler.js.map +1 -1
- package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/dial-request.js +13 -6
- package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
- package/dist/src/connection-manager/dialer/index.d.ts +10 -1
- package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
- package/dist/src/connection-manager/dialer/index.js +24 -9
- package/dist/src/connection-manager/dialer/index.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +1 -4
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +8 -5
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
- package/dist/src/connection-manager/latency-monitor.js +1 -1
- package/dist/src/connection-manager/latency-monitor.js.map +1 -1
- package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
- package/dist/src/content-routing/index.d.ts +6 -4
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +9 -9
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/content-routing/utils.d.ts +3 -3
- package/dist/src/content-routing/utils.d.ts.map +1 -1
- package/dist/src/content-routing/utils.js +2 -2
- package/dist/src/content-routing/utils.js.map +1 -1
- package/dist/src/dht/dht-content-routing.d.ts +2 -1
- package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
- package/dist/src/dht/dht-content-routing.js +2 -2
- package/dist/src/dht/dht-content-routing.js.map +1 -1
- package/dist/src/dht/dht-peer-routing.d.ts +3 -2
- package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
- package/dist/src/dht/dht-peer-routing.js +2 -2
- package/dist/src/dht/dht-peer-routing.js.map +1 -1
- package/dist/src/dht/dummy-dht.d.ts +1 -1
- package/dist/src/dht/dummy-dht.d.ts.map +1 -1
- package/dist/src/dht/dummy-dht.js +12 -12
- package/dist/src/dht/dummy-dht.js.map +1 -1
- package/dist/src/errors.d.ts +2 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/fetch/index.d.ts.map +1 -1
- package/dist/src/fetch/index.js +6 -6
- package/dist/src/fetch/index.js.map +1 -1
- package/dist/src/fetch/pb/proto.d.ts +3 -3
- package/dist/src/fetch/pb/proto.d.ts.map +1 -1
- package/dist/src/fetch/pb/proto.js +4 -3
- package/dist/src/fetch/pb/proto.js.map +1 -1
- package/dist/src/get-peer.js +2 -2
- package/dist/src/get-peer.js.map +1 -1
- package/dist/src/identify/index.d.ts +3 -1
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +19 -14
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/identify/pb/message.d.ts +2 -2
- package/dist/src/identify/pb/message.d.ts.map +1 -1
- package/dist/src/identify/pb/message.js +1 -0
- package/dist/src/identify/pb/message.js.map +1 -1
- package/dist/src/index.d.ts +14 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/insecure/index.d.ts.map +1 -1
- package/dist/src/insecure/index.js.map +1 -1
- package/dist/src/insecure/pb/proto.d.ts +3 -3
- package/dist/src/insecure/pb/proto.d.ts.map +1 -1
- package/dist/src/insecure/pb/proto.js +4 -5
- package/dist/src/insecure/pb/proto.js.map +1 -1
- package/dist/src/libp2p.d.ts +7 -3
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +35 -35
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/nat-manager.d.ts.map +1 -1
- package/dist/src/nat-manager.js +5 -3
- package/dist/src/nat-manager.js.map +1 -1
- package/dist/src/peer-record-updater.d.ts.map +1 -1
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/peer-routing.js +5 -5
- package/dist/src/peer-routing.js.map +1 -1
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/ping/index.js +2 -2
- package/dist/src/ping/index.js.map +1 -1
- package/dist/src/pnet/crypto.d.ts +1 -1
- package/dist/src/pnet/crypto.d.ts.map +1 -1
- package/dist/src/pnet/crypto.js +1 -1
- package/dist/src/pnet/crypto.js.map +1 -1
- package/dist/src/pnet/index.js +3 -3
- package/dist/src/pnet/index.js.map +1 -1
- package/dist/src/pnet/key-generator.d.ts.map +1 -1
- package/dist/src/pubsub/dummy-pubsub.js +9 -9
- package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +4 -4
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +8 -9
- package/dist/src/transport-manager.js.map +1 -1
- package/dist/src/upgrader.d.ts +2 -1
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +38 -33
- package/dist/src/upgrader.js.map +1 -1
- package/dist/typedoc-urls.json +19 -6
- package/package.json +36 -33
- package/src/address-manager/index.ts +62 -35
- package/src/autonat/constants.ts +4 -0
- package/src/autonat/index.ts +567 -0
- package/src/autonat/pb/index.proto +35 -0
- package/src/autonat/pb/index.ts +320 -0
- package/src/circuit/constants.ts +48 -7
- package/src/circuit/index.ts +17 -129
- package/src/circuit/pb/index.proto +57 -32
- package/src/circuit/pb/index.ts +448 -138
- package/src/circuit/server/advert-service.ts +108 -0
- package/src/circuit/server/index.ts +421 -0
- package/src/circuit/server/reservation-store.ts +111 -0
- package/src/circuit/server/reservation-voucher.ts +51 -0
- package/src/circuit/transport/discovery.ts +127 -0
- package/src/circuit/transport/index.ts +325 -0
- package/src/circuit/transport/listener.ts +99 -0
- package/src/circuit/transport/reservation-store.ts +249 -0
- package/src/circuit/utils.ts +108 -0
- package/src/components.ts +22 -21
- package/src/config.ts +21 -25
- package/src/connection/index.ts +10 -10
- package/src/connection-manager/auto-dialler.ts +36 -40
- package/src/connection-manager/dialer/dial-request.ts +13 -6
- package/src/connection-manager/dialer/index.ts +34 -15
- package/src/connection-manager/index.ts +22 -23
- package/src/connection-manager/latency-monitor.ts +9 -9
- package/src/connection-manager/visibility-change-emitter.ts +4 -4
- package/src/content-routing/index.ts +18 -16
- package/src/content-routing/utils.ts +5 -5
- package/src/dht/dht-content-routing.ts +5 -4
- package/src/dht/dht-peer-routing.ts +5 -4
- package/src/dht/dummy-dht.ts +13 -13
- package/src/errors.ts +2 -1
- package/src/fetch/index.ts +13 -13
- package/src/fetch/pb/proto.ts +8 -7
- package/src/get-peer.ts +3 -3
- package/src/identify/index.ts +29 -24
- package/src/identify/pb/message.ts +3 -2
- package/src/index.ts +15 -8
- package/src/insecure/index.ts +2 -1
- package/src/insecure/pb/proto.ts +8 -9
- package/src/libp2p.ts +52 -46
- package/src/nat-manager.ts +11 -9
- package/src/peer-record-updater.ts +4 -4
- package/src/peer-routing.ts +9 -9
- package/src/ping/index.ts +6 -6
- package/src/pnet/crypto.ts +3 -3
- package/src/pnet/index.ts +3 -3
- package/src/pnet/key-generator.ts +1 -1
- package/src/pubsub/dummy-pubsub.ts +9 -9
- package/src/registrar.ts +12 -12
- package/src/transport-manager.ts +17 -18
- package/src/upgrader.ts +43 -42
- package/src/version.ts +1 -1
- package/dist/src/circuit/auto-relay.d.ts +0 -46
- package/dist/src/circuit/auto-relay.d.ts.map +0 -1
- package/dist/src/circuit/auto-relay.js +0 -220
- package/dist/src/circuit/auto-relay.js.map +0 -1
- package/dist/src/circuit/circuit/hop.d.ts +0 -42
- package/dist/src/circuit/circuit/hop.d.ts.map +0 -1
- package/dist/src/circuit/circuit/hop.js +0 -142
- package/dist/src/circuit/circuit/hop.js.map +0 -1
- package/dist/src/circuit/circuit/stop.d.ts +0 -24
- package/dist/src/circuit/circuit/stop.d.ts.map +0 -1
- package/dist/src/circuit/circuit/stop.js +0 -51
- package/dist/src/circuit/circuit/stop.js.map +0 -1
- package/dist/src/circuit/circuit/stream-handler.d.ts +0 -40
- package/dist/src/circuit/circuit/stream-handler.d.ts.map +0 -1
- package/dist/src/circuit/circuit/stream-handler.js +0 -59
- package/dist/src/circuit/circuit/stream-handler.js.map +0 -1
- package/dist/src/circuit/circuit/utils.d.ts +0 -7
- package/dist/src/circuit/circuit/utils.d.ts.map +0 -1
- package/dist/src/circuit/circuit/utils.js +0 -43
- package/dist/src/circuit/circuit/utils.js.map +0 -1
- package/dist/src/circuit/listener.d.ts +0 -9
- package/dist/src/circuit/listener.d.ts.map +0 -1
- package/dist/src/circuit/listener.js +0 -62
- package/dist/src/circuit/listener.js.map +0 -1
- package/dist/src/circuit/multicodec.d.ts +0 -2
- package/dist/src/circuit/multicodec.d.ts.map +0 -1
- package/dist/src/circuit/multicodec.js +0 -2
- package/dist/src/circuit/multicodec.js.map +0 -1
- package/dist/src/circuit/transport.d.ts +0 -51
- package/dist/src/circuit/transport.d.ts.map +0 -1
- package/dist/src/circuit/transport.js +0 -223
- package/dist/src/circuit/transport.js.map +0 -1
- package/dist/src/keychain/cms.d.ts +0 -33
- package/dist/src/keychain/cms.d.ts.map +0 -1
- package/dist/src/keychain/cms.js +0 -129
- package/dist/src/keychain/cms.js.map +0 -1
- package/dist/src/keychain/index.d.ts +0 -151
- package/dist/src/keychain/index.d.ts.map +0 -1
- package/dist/src/keychain/index.js +0 -519
- package/dist/src/keychain/index.js.map +0 -1
- package/dist/src/keychain/util.d.ts +0 -21
- package/dist/src/keychain/util.d.ts.map +0 -1
- package/dist/src/keychain/util.js +0 -79
- package/dist/src/keychain/util.js.map +0 -1
- package/src/circuit/IMPLEMENTATION_NOTES.md +0 -128
- package/src/circuit/README.md +0 -111
- package/src/circuit/auto-relay.ts +0 -292
- package/src/circuit/circuit/hop.ts +0 -220
- package/src/circuit/circuit/stop.ts +0 -83
- package/src/circuit/circuit/stream-handler.ts +0 -87
- package/src/circuit/circuit/utils.ts +0 -44
- package/src/circuit/listener.ts +0 -83
- package/src/circuit/multicodec.ts +0 -2
- package/src/circuit/transport.ts +0 -278
- package/src/keychain/README.md +0 -55
- package/src/keychain/cms.ts +0 -150
- package/src/keychain/doc/private-key.png +0 -0
- package/src/keychain/doc/private-key.xml +0 -1
- package/src/keychain/index.ts +0 -629
- package/src/keychain/util.ts +0 -82
package/src/nat-manager.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { fromNodeAddress } from '@multiformats/multiaddr'
|
|
|
4
4
|
import { isBrowser } from 'wherearewe'
|
|
5
5
|
import isPrivateIp from 'private-ip'
|
|
6
6
|
import * as pkg from './version.js'
|
|
7
|
-
import
|
|
7
|
+
import { CodeError } from '@libp2p/interfaces/errors'
|
|
8
8
|
import { codes } from './errors.js'
|
|
9
9
|
import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback'
|
|
10
10
|
import type { Startable } from '@libp2p/interfaces/startable'
|
|
@@ -15,7 +15,7 @@ import type { AddressManager } from '@libp2p/interface-address-manager'
|
|
|
15
15
|
const log = logger('libp2p:nat')
|
|
16
16
|
const DEFAULT_TTL = 7200
|
|
17
17
|
|
|
18
|
-
function highPort (min = 1024, max = 65535) {
|
|
18
|
+
function highPort (min = 1024, max = 65535): number {
|
|
19
19
|
return Math.floor(Math.random() * (max - min + 1) + min)
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -94,22 +94,24 @@ export class NatManager implements Startable {
|
|
|
94
94
|
this.gateway = init.gateway
|
|
95
95
|
|
|
96
96
|
if (this.ttl < DEFAULT_TTL) {
|
|
97
|
-
throw
|
|
97
|
+
throw new CodeError(`NatManager ttl should be at least ${DEFAULT_TTL} seconds`, codes.ERR_INVALID_PARAMETERS)
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
isStarted () {
|
|
101
|
+
isStarted (): boolean {
|
|
102
102
|
return this.started
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
start () {
|
|
105
|
+
start (): void {
|
|
106
|
+
// #TODO: is there a way to remove this? Seems like a hack
|
|
107
|
+
}
|
|
106
108
|
|
|
107
109
|
/**
|
|
108
110
|
* Attempt to use uPnP to configure port mapping using the current gateway.
|
|
109
111
|
*
|
|
110
112
|
* Run after start to ensure the transport manager has all addresses configured.
|
|
111
113
|
*/
|
|
112
|
-
afterStart () {
|
|
114
|
+
afterStart (): void {
|
|
113
115
|
if (isBrowser || !this.enabled || this.started) {
|
|
114
116
|
return
|
|
115
117
|
}
|
|
@@ -123,7 +125,7 @@ export class NatManager implements Startable {
|
|
|
123
125
|
})
|
|
124
126
|
}
|
|
125
127
|
|
|
126
|
-
async _start () {
|
|
128
|
+
async _start (): Promise<void> {
|
|
127
129
|
const addrs = this.components.transportManager.getAddrs()
|
|
128
130
|
|
|
129
131
|
for (const addr of addrs) {
|
|
@@ -178,7 +180,7 @@ export class NatManager implements Startable {
|
|
|
178
180
|
}
|
|
179
181
|
}
|
|
180
182
|
|
|
181
|
-
async _getClient () {
|
|
183
|
+
async _getClient (): Promise<NatAPI> {
|
|
182
184
|
if (this.client != null) {
|
|
183
185
|
return this.client
|
|
184
186
|
}
|
|
@@ -196,7 +198,7 @@ export class NatManager implements Startable {
|
|
|
196
198
|
/**
|
|
197
199
|
* Stops the NAT manager
|
|
198
200
|
*/
|
|
199
|
-
async stop () {
|
|
201
|
+
async stop (): Promise<void> {
|
|
200
202
|
if (isBrowser || this.client == null) {
|
|
201
203
|
return
|
|
202
204
|
}
|
|
@@ -26,18 +26,18 @@ export class PeerRecordUpdater implements Startable {
|
|
|
26
26
|
this.update = this.update.bind(this)
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
isStarted () {
|
|
29
|
+
isStarted (): boolean {
|
|
30
30
|
return this.started
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
async start () {
|
|
33
|
+
async start (): Promise<void> {
|
|
34
34
|
this.started = true
|
|
35
35
|
this.components.transportManager.addEventListener('listener:listening', this.update)
|
|
36
36
|
this.components.transportManager.addEventListener('listener:close', this.update)
|
|
37
37
|
this.components.addressManager.addEventListener('change:addresses', this.update)
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
async stop () {
|
|
40
|
+
async stop (): Promise<void> {
|
|
41
41
|
this.started = false
|
|
42
42
|
this.components.transportManager.removeEventListener('listener:listening', this.update)
|
|
43
43
|
this.components.transportManager.removeEventListener('listener:close', this.update)
|
|
@@ -47,7 +47,7 @@ export class PeerRecordUpdater implements Startable {
|
|
|
47
47
|
/**
|
|
48
48
|
* Create (or update if existing) self peer record and store it in the AddressBook.
|
|
49
49
|
*/
|
|
50
|
-
update () {
|
|
50
|
+
update (): void {
|
|
51
51
|
Promise.resolve()
|
|
52
52
|
.then(async () => {
|
|
53
53
|
const peerRecord = new PeerRecord({
|
package/src/peer-routing.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
|
2
|
-
import
|
|
2
|
+
import { CodeError } from '@libp2p/interfaces/errors'
|
|
3
3
|
import { codes, messages } from './errors.js'
|
|
4
4
|
import {
|
|
5
5
|
storeAddresses,
|
|
@@ -76,14 +76,14 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
|
|
|
76
76
|
this._findClosestPeersTask = this._findClosestPeersTask.bind(this)
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
isStarted () {
|
|
79
|
+
isStarted (): boolean {
|
|
80
80
|
return this.started
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
/**
|
|
84
84
|
* Start peer routing service.
|
|
85
85
|
*/
|
|
86
|
-
async start () {
|
|
86
|
+
async start (): Promise<void> {
|
|
87
87
|
if (this.started || this.routers.length === 0 || this.timeoutId != null || this.refreshManagerInit.enabled === false) {
|
|
88
88
|
return
|
|
89
89
|
}
|
|
@@ -98,7 +98,7 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
|
|
|
98
98
|
/**
|
|
99
99
|
* Recurrent task to find closest peers and add their addresses to the Address Book.
|
|
100
100
|
*/
|
|
101
|
-
async _findClosestPeersTask () {
|
|
101
|
+
async _findClosestPeersTask (): Promise<void> {
|
|
102
102
|
if (this.abortController != null) {
|
|
103
103
|
// we are already running the query
|
|
104
104
|
return
|
|
@@ -127,7 +127,7 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
|
|
|
127
127
|
/**
|
|
128
128
|
* Stop peer routing service.
|
|
129
129
|
*/
|
|
130
|
-
async stop () {
|
|
130
|
+
async stop (): Promise<void> {
|
|
131
131
|
clearDelayedInterval(this.timeoutId)
|
|
132
132
|
|
|
133
133
|
// abort query if it is in-flight
|
|
@@ -141,11 +141,11 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
|
|
|
141
141
|
*/
|
|
142
142
|
async findPeer (id: PeerId, options?: AbortOptions): Promise<PeerInfo> {
|
|
143
143
|
if (this.routers.length === 0) {
|
|
144
|
-
throw
|
|
144
|
+
throw new CodeError('No peer routers available', codes.ERR_NO_ROUTERS_AVAILABLE)
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
if (id.toString() === this.components.peerId.toString()) {
|
|
148
|
-
throw
|
|
148
|
+
throw new CodeError('Should not try to find self', codes.ERR_FIND_SELF)
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
const output = await pipe(
|
|
@@ -167,7 +167,7 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
|
|
|
167
167
|
return output
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
throw
|
|
170
|
+
throw new CodeError(messages.NOT_FOUND, codes.ERR_NOT_FOUND)
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
/**
|
|
@@ -175,7 +175,7 @@ export class DefaultPeerRouting implements PeerRouting, Startable {
|
|
|
175
175
|
*/
|
|
176
176
|
async * getClosestPeers (key: Uint8Array, options?: AbortOptions): AsyncIterable<PeerInfo> {
|
|
177
177
|
if (this.routers.length === 0) {
|
|
178
|
-
throw
|
|
178
|
+
throw new CodeError('No peer routers available', codes.ERR_NO_ROUTERS_AVAILABLE)
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
yield * pipe(
|
package/src/ping/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
|
2
|
-
import
|
|
2
|
+
import { CodeError } from '@libp2p/interfaces/errors'
|
|
3
3
|
import { codes } from '../errors.js'
|
|
4
4
|
import { randomBytes } from '@libp2p/crypto'
|
|
5
5
|
import { pipe } from 'it-pipe'
|
|
@@ -47,7 +47,7 @@ export class PingService implements Startable {
|
|
|
47
47
|
this.init = init
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
async start () {
|
|
50
|
+
async start (): Promise<void> {
|
|
51
51
|
await this.components.registrar.handle(this.protocol, this.handleMessage, {
|
|
52
52
|
maxInboundStreams: this.init.maxInboundStreams,
|
|
53
53
|
maxOutboundStreams: this.init.maxOutboundStreams
|
|
@@ -55,19 +55,19 @@ export class PingService implements Startable {
|
|
|
55
55
|
this.started = true
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
async stop () {
|
|
58
|
+
async stop (): Promise<void> {
|
|
59
59
|
await this.components.registrar.unhandle(this.protocol)
|
|
60
60
|
this.started = false
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
isStarted () {
|
|
63
|
+
isStarted (): boolean {
|
|
64
64
|
return this.started
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
68
|
* A handler to register with Libp2p to process ping messages
|
|
69
69
|
*/
|
|
70
|
-
handleMessage (data: IncomingStreamData) {
|
|
70
|
+
handleMessage (data: IncomingStreamData): void {
|
|
71
71
|
const { stream } = data
|
|
72
72
|
|
|
73
73
|
void pipe(stream, stream)
|
|
@@ -119,7 +119,7 @@ export class PingService implements Startable {
|
|
|
119
119
|
const end = Date.now()
|
|
120
120
|
|
|
121
121
|
if (result == null || !uint8ArrayEquals(data, result.subarray())) {
|
|
122
|
-
throw
|
|
122
|
+
throw new CodeError('Received wrong ping ack', codes.ERR_WRONG_PING_ACK)
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
return end - start
|
package/src/pnet/crypto.ts
CHANGED
|
@@ -11,7 +11,7 @@ const log = logger('libp2p:pnet')
|
|
|
11
11
|
/**
|
|
12
12
|
* Creates a stream iterable to encrypt messages in a private network
|
|
13
13
|
*/
|
|
14
|
-
export function createBoxStream (nonce: Uint8Array, psk: Uint8Array) {
|
|
14
|
+
export function createBoxStream (nonce: Uint8Array, psk: Uint8Array): (source: Source<Uint8Array>) => AsyncIterable<Uint8Array> {
|
|
15
15
|
const xor = xsalsa20(nonce, psk)
|
|
16
16
|
|
|
17
17
|
return (source: Source<Uint8Array>) => (async function * () {
|
|
@@ -38,7 +38,7 @@ export function createUnboxStream (nonce: Uint8Array, psk: Uint8Array) {
|
|
|
38
38
|
/**
|
|
39
39
|
* Decode the version 1 psk from the given Uint8Array
|
|
40
40
|
*/
|
|
41
|
-
export function decodeV1PSK (pskBuffer: Uint8Array) {
|
|
41
|
+
export function decodeV1PSK (pskBuffer: Uint8Array): { tag: string | undefined, codecName: string | undefined, psk: Uint8Array } {
|
|
42
42
|
try {
|
|
43
43
|
// This should pull from multibase/multicodec to allow for
|
|
44
44
|
// more encoding flexibility. Ideally we'd consume the codecs
|
|
@@ -58,7 +58,7 @@ export function decodeV1PSK (pskBuffer: Uint8Array) {
|
|
|
58
58
|
return {
|
|
59
59
|
tag: pskTag,
|
|
60
60
|
codecName: codec,
|
|
61
|
-
psk
|
|
61
|
+
psk
|
|
62
62
|
}
|
|
63
63
|
} catch (err: any) {
|
|
64
64
|
log.error(err)
|
package/src/pnet/index.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
import { logger } from '@libp2p/logger'
|
|
26
26
|
import { pipe } from 'it-pipe'
|
|
27
|
-
import
|
|
27
|
+
import { CodeError } from '@libp2p/interfaces/errors'
|
|
28
28
|
import { duplexPair } from 'it-pair/duplex'
|
|
29
29
|
import { randomBytes } from '@libp2p/crypto'
|
|
30
30
|
import * as Errors from './errors.js'
|
|
@@ -81,7 +81,7 @@ class PreSharedKeyConnectionProtector implements ConnectionProtector {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
if (connection == null) {
|
|
84
|
-
throw
|
|
84
|
+
throw new CodeError(Errors.NO_HANDSHAKE_CONNECTION, codes.ERR_INVALID_PARAMETERS)
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
// Exchange nonces
|
|
@@ -94,7 +94,7 @@ class PreSharedKeyConnectionProtector implements ConnectionProtector {
|
|
|
94
94
|
const result = await shake.reader.next(NONCE_LENGTH)
|
|
95
95
|
|
|
96
96
|
if (result.value == null) {
|
|
97
|
-
throw
|
|
97
|
+
throw new CodeError(Errors.STREAM_ENDED, codes.ERR_INVALID_PARAMETERS)
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
const remoteNonce = result.value.slice()
|
|
@@ -8,7 +8,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
|
8
8
|
* @param {Uint8Array | NodeJS.WriteStream} bytes - An object to write the psk into
|
|
9
9
|
* @returns {void}
|
|
10
10
|
*/
|
|
11
|
-
export function generateKey (bytes: Uint8Array | NodeJS.WriteStream) {
|
|
11
|
+
export function generateKey (bytes: Uint8Array | NodeJS.WriteStream): void {
|
|
12
12
|
const psk = uint8ArrayToString(randomBytes(KEY_LENGTH), 'base16')
|
|
13
13
|
const key = uint8ArrayFromString('/key/swarm/psk/1.0.0/\n/base16/\n' + psk)
|
|
14
14
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from '@libp2p/interfaces/events'
|
|
2
2
|
import type { PeerId } from '@libp2p/interface-peer-id'
|
|
3
3
|
import type { PublishResult, PubSub, PubSubEvents, StrictNoSign, StrictSign, TopicValidatorFn } from '@libp2p/interface-pubsub'
|
|
4
|
-
import
|
|
4
|
+
import { CodeError } from '@libp2p/interfaces/errors'
|
|
5
5
|
import { messages, codes } from '../errors.js'
|
|
6
6
|
|
|
7
7
|
export class DummyPubSub extends EventEmitter<PubSubEvents> implements PubSub {
|
|
@@ -20,34 +20,34 @@ export class DummyPubSub extends EventEmitter<PubSubEvents> implements PubSub {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
get globalSignaturePolicy (): typeof StrictSign | typeof StrictNoSign {
|
|
23
|
-
throw
|
|
23
|
+
throw new CodeError(messages.PUBSUB_DISABLED, codes.ERR_PUBSUB_DISABLED)
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
get multicodecs (): string[] {
|
|
27
|
-
throw
|
|
27
|
+
throw new CodeError(messages.PUBSUB_DISABLED, codes.ERR_PUBSUB_DISABLED)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
getPeers (): PeerId[] {
|
|
31
|
-
throw
|
|
31
|
+
throw new CodeError(messages.PUBSUB_DISABLED, codes.ERR_PUBSUB_DISABLED)
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
getTopics (): string[] {
|
|
35
|
-
throw
|
|
35
|
+
throw new CodeError(messages.PUBSUB_DISABLED, codes.ERR_PUBSUB_DISABLED)
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
subscribe (): void {
|
|
39
|
-
throw
|
|
39
|
+
throw new CodeError(messages.PUBSUB_DISABLED, codes.ERR_PUBSUB_DISABLED)
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
unsubscribe (): void {
|
|
43
|
-
throw
|
|
43
|
+
throw new CodeError(messages.PUBSUB_DISABLED, codes.ERR_PUBSUB_DISABLED)
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
getSubscribers (): PeerId[] {
|
|
47
|
-
throw
|
|
47
|
+
throw new CodeError(messages.PUBSUB_DISABLED, codes.ERR_PUBSUB_DISABLED)
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
async publish (): Promise<PublishResult> {
|
|
51
|
-
throw
|
|
51
|
+
throw new CodeError(messages.PUBSUB_DISABLED, codes.ERR_PUBSUB_DISABLED)
|
|
52
52
|
}
|
|
53
53
|
}
|
package/src/registrar.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
|
2
|
-
import
|
|
2
|
+
import { CodeError } from '@libp2p/interfaces/errors'
|
|
3
3
|
import { codes } from './errors.js'
|
|
4
4
|
import { isTopology, StreamHandlerOptions, StreamHandlerRecord } from '@libp2p/interface-registrar'
|
|
5
5
|
import merge from 'merge-options'
|
|
@@ -44,24 +44,24 @@ export class DefaultRegistrar implements Registrar {
|
|
|
44
44
|
this.components.peerStore.addEventListener('change:protocols', this._onProtocolChange)
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
getProtocols () {
|
|
47
|
+
getProtocols (): string[] {
|
|
48
48
|
return Array.from(new Set<string>([
|
|
49
49
|
...this.topologies.keys(),
|
|
50
50
|
...this.handlers.keys()
|
|
51
51
|
])).sort()
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
getHandler (protocol: string) {
|
|
54
|
+
getHandler (protocol: string): StreamHandlerRecord {
|
|
55
55
|
const handler = this.handlers.get(protocol)
|
|
56
56
|
|
|
57
57
|
if (handler == null) {
|
|
58
|
-
throw
|
|
58
|
+
throw new CodeError(`No handler registered for protocol ${protocol}`, codes.ERR_NO_HANDLER_FOR_PROTOCOL)
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
return handler
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
getTopologies (protocol: string) {
|
|
64
|
+
getTopologies (protocol: string): Topology[] {
|
|
65
65
|
const topologies = this.topologies.get(protocol)
|
|
66
66
|
|
|
67
67
|
if (topologies == null) {
|
|
@@ -78,7 +78,7 @@ export class DefaultRegistrar implements Registrar {
|
|
|
78
78
|
*/
|
|
79
79
|
async handle (protocol: string, handler: StreamHandler, opts?: StreamHandlerOptions): Promise<void> {
|
|
80
80
|
if (this.handlers.has(protocol)) {
|
|
81
|
-
throw
|
|
81
|
+
throw new CodeError(`Handler already registered for protocol ${protocol}`, codes.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED)
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
const options = merge.bind({ ignoreUndefined: true })({
|
|
@@ -99,7 +99,7 @@ export class DefaultRegistrar implements Registrar {
|
|
|
99
99
|
* Removes the handler for each protocol. The protocol
|
|
100
100
|
* will no longer be supported on streams.
|
|
101
101
|
*/
|
|
102
|
-
async unhandle (protocols: string | string[]) {
|
|
102
|
+
async unhandle (protocols: string | string[]): Promise<void> {
|
|
103
103
|
const protocolList = Array.isArray(protocols) ? protocols : [protocols]
|
|
104
104
|
|
|
105
105
|
protocolList.forEach(protocol => {
|
|
@@ -116,7 +116,7 @@ export class DefaultRegistrar implements Registrar {
|
|
|
116
116
|
async register (protocol: string, topology: Topology): Promise<string> {
|
|
117
117
|
if (!isTopology(topology)) {
|
|
118
118
|
log.error('topology must be an instance of interfaces/topology')
|
|
119
|
-
throw
|
|
119
|
+
throw new CodeError('topology must be an instance of interfaces/topology', codes.ERR_INVALID_PARAMETERS)
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
// Create topology
|
|
@@ -140,7 +140,7 @@ export class DefaultRegistrar implements Registrar {
|
|
|
140
140
|
/**
|
|
141
141
|
* Unregister topology
|
|
142
142
|
*/
|
|
143
|
-
unregister (id: string) {
|
|
143
|
+
unregister (id: string): void {
|
|
144
144
|
for (const [protocol, topologies] of this.topologies.entries()) {
|
|
145
145
|
if (topologies.has(id)) {
|
|
146
146
|
topologies.delete(id)
|
|
@@ -155,7 +155,7 @@ export class DefaultRegistrar implements Registrar {
|
|
|
155
155
|
/**
|
|
156
156
|
* Remove a disconnected peer from the record
|
|
157
157
|
*/
|
|
158
|
-
_onDisconnect (evt: CustomEvent<Connection>) {
|
|
158
|
+
_onDisconnect (evt: CustomEvent<Connection>): void {
|
|
159
159
|
const connection = evt.detail
|
|
160
160
|
|
|
161
161
|
void this.components.peerStore.protoBook.get(connection.remotePeer)
|
|
@@ -182,7 +182,7 @@ export class DefaultRegistrar implements Registrar {
|
|
|
182
182
|
* On peer connected if we already have their protocols. Usually used for reconnects
|
|
183
183
|
* as change:protocols event won't be emitted due to identical protocols.
|
|
184
184
|
*/
|
|
185
|
-
_onConnect (evt: CustomEvent<Connection>) {
|
|
185
|
+
_onConnect (evt: CustomEvent<Connection>): void {
|
|
186
186
|
const connection = evt.detail
|
|
187
187
|
|
|
188
188
|
void this.components.peerStore.protoBook.get(connection.remotePeer)
|
|
@@ -208,7 +208,7 @@ export class DefaultRegistrar implements Registrar {
|
|
|
208
208
|
/**
|
|
209
209
|
* Check if a new peer support the multicodecs for this topology
|
|
210
210
|
*/
|
|
211
|
-
_onProtocolChange (evt: CustomEvent<PeerProtocolsChangeData>) {
|
|
211
|
+
_onProtocolChange (evt: CustomEvent<PeerProtocolsChangeData>): void {
|
|
212
212
|
const { peerId, protocols, oldProtocols } = evt.detail
|
|
213
213
|
const removed = oldProtocols.filter(protocol => !protocols.includes(protocol))
|
|
214
214
|
const added = protocols.filter(protocol => !oldProtocols.includes(protocol))
|
package/src/transport-manager.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
|
2
|
-
import pSettle from 'p-settle'
|
|
3
2
|
import { codes } from './errors.js'
|
|
4
|
-
import
|
|
3
|
+
import { CodeError } from '@libp2p/interfaces/errors'
|
|
5
4
|
import { FaultTolerance } from '@libp2p/interface-transport'
|
|
6
5
|
import type { Listener, Transport, TransportManager, TransportManagerEvents, Upgrader } from '@libp2p/interface-transport'
|
|
7
6
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
@@ -48,15 +47,15 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
48
47
|
/**
|
|
49
48
|
* Adds a `Transport` to the manager
|
|
50
49
|
*/
|
|
51
|
-
add (transport: Transport) {
|
|
50
|
+
add (transport: Transport): void {
|
|
52
51
|
const tag = transport[Symbol.toStringTag]
|
|
53
52
|
|
|
54
53
|
if (tag == null) {
|
|
55
|
-
throw
|
|
54
|
+
throw new CodeError('Transport must have a valid tag', codes.ERR_INVALID_KEY)
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
if (this.transports.has(tag)) {
|
|
59
|
-
throw
|
|
58
|
+
throw new CodeError(`There is already a transport with the tag ${tag}`, codes.ERR_DUPLICATE_TRANSPORT)
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
log('adding transport %s', tag)
|
|
@@ -68,11 +67,11 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
68
67
|
}
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
isStarted () {
|
|
70
|
+
isStarted (): boolean {
|
|
72
71
|
return this.started
|
|
73
72
|
}
|
|
74
73
|
|
|
75
|
-
async start () {
|
|
74
|
+
async start (): Promise<void> {
|
|
76
75
|
// Listen on the provided transports for the provided addresses
|
|
77
76
|
const addrs = this.components.addressManager.getListenAddrs()
|
|
78
77
|
|
|
@@ -84,7 +83,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
84
83
|
/**
|
|
85
84
|
* Stops all listeners
|
|
86
85
|
*/
|
|
87
|
-
async stop () {
|
|
86
|
+
async stop (): Promise<void> {
|
|
88
87
|
const tasks = []
|
|
89
88
|
for (const [key, listeners] of this.listeners) {
|
|
90
89
|
log('closing listeners for %s', key)
|
|
@@ -115,7 +114,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
115
114
|
const transport = this.transportForMultiaddr(ma)
|
|
116
115
|
|
|
117
116
|
if (transport == null) {
|
|
118
|
-
throw
|
|
117
|
+
throw new CodeError(`No transport available for address ${String(ma)}`, codes.ERR_TRANSPORT_UNAVAILABLE)
|
|
119
118
|
}
|
|
120
119
|
|
|
121
120
|
try {
|
|
@@ -148,14 +147,14 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
148
147
|
/**
|
|
149
148
|
* Returns all the transports instances
|
|
150
149
|
*/
|
|
151
|
-
getTransports () {
|
|
150
|
+
getTransports (): Transport[] {
|
|
152
151
|
return Array.of(...this.transports.values())
|
|
153
152
|
}
|
|
154
153
|
|
|
155
154
|
/**
|
|
156
155
|
* Finds a transport that matches the given Multiaddr
|
|
157
156
|
*/
|
|
158
|
-
transportForMultiaddr (ma: Multiaddr) {
|
|
157
|
+
transportForMultiaddr (ma: Multiaddr): Transport | undefined {
|
|
159
158
|
for (const transport of this.transports.values()) {
|
|
160
159
|
const addrs = transport.filter([ma])
|
|
161
160
|
|
|
@@ -168,7 +167,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
168
167
|
/**
|
|
169
168
|
* Starts listeners for each listen Multiaddr
|
|
170
169
|
*/
|
|
171
|
-
async listen (addrs: Multiaddr[]) {
|
|
170
|
+
async listen (addrs: Multiaddr[]): Promise<void> {
|
|
172
171
|
if (addrs == null || addrs.length === 0) {
|
|
173
172
|
log('no addresses were provided for listening, this node is dial only')
|
|
174
173
|
return
|
|
@@ -218,14 +217,14 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
218
217
|
continue
|
|
219
218
|
}
|
|
220
219
|
|
|
221
|
-
const results = await
|
|
220
|
+
const results = await Promise.allSettled(tasks)
|
|
222
221
|
// If we are listening on at least 1 address, succeed.
|
|
223
222
|
// TODO: we should look at adding a retry (`p-retry`) here to better support
|
|
224
223
|
// listening on remote addresses as they may be offline. We could then potentially
|
|
225
224
|
// just wait for any (`p-any`) listener to succeed on each transport before returning
|
|
226
|
-
const isListening = results.find(r => r.
|
|
225
|
+
const isListening = results.find(r => r.status === 'fulfilled')
|
|
227
226
|
if ((isListening == null) && this.faultTolerance !== FaultTolerance.NO_FATAL) {
|
|
228
|
-
throw
|
|
227
|
+
throw new CodeError(`Transport (${key}) could not listen on any available address`, codes.ERR_NO_VALID_ADDRESSES)
|
|
229
228
|
}
|
|
230
229
|
}
|
|
231
230
|
|
|
@@ -234,7 +233,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
234
233
|
if (couldNotListen.length === this.transports.size) {
|
|
235
234
|
const message = `no valid addresses were provided for transports [${couldNotListen.join(', ')}]`
|
|
236
235
|
if (this.faultTolerance === FaultTolerance.FATAL_ALL) {
|
|
237
|
-
throw
|
|
236
|
+
throw new CodeError(message, codes.ERR_NO_VALID_ADDRESSES)
|
|
238
237
|
}
|
|
239
238
|
log(`libp2p in dial mode only: ${message}`)
|
|
240
239
|
}
|
|
@@ -244,7 +243,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
244
243
|
* Removes the given transport from the manager.
|
|
245
244
|
* If a transport has any running listeners, they will be closed.
|
|
246
245
|
*/
|
|
247
|
-
async remove (key: string) {
|
|
246
|
+
async remove (key: string): Promise<void> {
|
|
248
247
|
log('removing %s', key)
|
|
249
248
|
|
|
250
249
|
// Close any running listeners
|
|
@@ -262,7 +261,7 @@ export class DefaultTransportManager extends EventEmitter<TransportManagerEvents
|
|
|
262
261
|
*
|
|
263
262
|
* @async
|
|
264
263
|
*/
|
|
265
|
-
async removeAll () {
|
|
264
|
+
async removeAll (): Promise<void> {
|
|
266
265
|
const tasks = []
|
|
267
266
|
for (const key of this.transports.keys()) {
|
|
268
267
|
tasks.push(this.remove(key))
|