@libp2p/webtransport 6.0.27-29797a5bb → 6.0.27-b7c6dc0f2
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/dist/index.min.js +1 -1
- package/dist/index.min.js.map +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/parse-multiaddr.d.ts +1 -1
- package/dist/src/utils/parse-multiaddr.d.ts.map +1 -1
- package/dist/src/utils/parse-multiaddr.js +0 -3
- package/dist/src/utils/parse-multiaddr.js.map +1 -1
- package/package.json +9 -9
- package/src/index.ts +11 -5
- package/src/utils/parse-multiaddr.ts +1 -5
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAcH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAyD,eAAe,EAA2C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,+BAA+B,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEzP,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf;AAMD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,uBAAuB,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,MAAM,sBAAsB,GAChC,+BAA+B,GAC/B,aAAa,CAAC,+BAA+B,CAAC,GAC9C,aAAa,CAAC,yCAAyC,CAAC,GACxD,aAAa,CAAC,yCAAyC,CAAC,GACxD,aAAa,CAAC,0CAA0C,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAcH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAyD,eAAe,EAA2C,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,+BAA+B,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEzP,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;CACf;AAMD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,uBAAuB,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,MAAM,sBAAsB,GAChC,+BAA+B,GAC/B,aAAa,CAAC,+BAA+B,CAAC,GAC9C,aAAa,CAAC,yCAAyC,CAAC,GACxD,aAAa,CAAC,yCAAyC,CAAC,GACxD,aAAa,CAAC,0CAA0C,CAAC,CAAA;AAiP3D,wBAAgB,YAAY,CAAE,IAAI,GAAE,gBAAqB,GAAG,CAAC,UAAU,EAAE,sBAAsB,KAAK,SAAS,CAE5G"}
|
package/dist/src/index.js
CHANGED
|
@@ -138,20 +138,24 @@ class WebTransportTransport {
|
|
|
138
138
|
direction: 'outbound',
|
|
139
139
|
log: this.components.logger.forComponent('libp2p:webtransport:connection')
|
|
140
140
|
});
|
|
141
|
-
|
|
141
|
+
const securePeer = await this.authenticateWebTransport({
|
|
142
142
|
wt,
|
|
143
143
|
maConn,
|
|
144
144
|
remotePeer,
|
|
145
145
|
certhashes,
|
|
146
146
|
...options
|
|
147
147
|
});
|
|
148
|
+
authenticated = true;
|
|
149
|
+
if (remotePeer != null) {
|
|
150
|
+
authenticated = remotePeer.equals(securePeer);
|
|
151
|
+
}
|
|
148
152
|
if (!authenticated) {
|
|
149
153
|
throw new InvalidCryptoExchangeError('Failed to authenticate webtransport');
|
|
150
154
|
}
|
|
151
155
|
return await options.upgrader.upgradeOutbound(maConn, {
|
|
152
156
|
...options,
|
|
153
157
|
skipEncryption: true,
|
|
154
|
-
remotePeer,
|
|
158
|
+
remotePeer: securePeer,
|
|
155
159
|
muxerFactory: webtransportMuxer(wt),
|
|
156
160
|
skipProtection: true
|
|
157
161
|
});
|
|
@@ -185,7 +189,7 @@ class WebTransportTransport {
|
|
|
185
189
|
});
|
|
186
190
|
const n = noise()(this.components);
|
|
187
191
|
onProgress?.(new CustomProgressEvent('webtransport:secure-outbound-connection'));
|
|
188
|
-
const { remoteExtensions } = await n.secureOutbound(messages, {
|
|
192
|
+
const { remoteExtensions, remotePeer: securePeer } = await n.secureOutbound(messages, {
|
|
189
193
|
signal,
|
|
190
194
|
remotePeer,
|
|
191
195
|
skipStreamMuxerNegotiation: true
|
|
@@ -200,7 +204,7 @@ class WebTransportTransport {
|
|
|
200
204
|
if (!isSubset(remoteExtensions?.webtransportCerthashes ?? [], certhashes.map(ch => ch.bytes))) {
|
|
201
205
|
throw new InvalidParametersError("Our certhashes are not a subset of the remote's reported certhashes");
|
|
202
206
|
}
|
|
203
|
-
return
|
|
207
|
+
return securePeer;
|
|
204
208
|
}
|
|
205
209
|
createListener(options) {
|
|
206
210
|
return createListener(this.components, {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { MultihashDigest } from 'multiformats/hashes/interface';
|
|
|
4
4
|
export interface ParsedMultiaddr {
|
|
5
5
|
url: string;
|
|
6
6
|
certhashes: MultihashDigest[];
|
|
7
|
-
remotePeer
|
|
7
|
+
remotePeer?: PeerId;
|
|
8
8
|
}
|
|
9
9
|
export declare function parseMultiaddr(ma: Multiaddr): ParsedMultiaddr;
|
|
10
10
|
//# sourceMappingURL=parse-multiaddr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-multiaddr.d.ts","sourceRoot":"","sources":["../../../src/utils/parse-multiaddr.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AASpE,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"parse-multiaddr.d.ts","sourceRoot":"","sources":["../../../src/utils/parse-multiaddr.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AASpE,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,cAAc,CAAE,EAAE,EAAE,SAAS,GAAG,eAAe,CAwC9D"}
|
|
@@ -23,9 +23,6 @@ export function parseMultiaddr(ma) {
|
|
|
23
23
|
remotePeer = peerIdFromString(components.value ?? '');
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
if (remotePeer == null) {
|
|
27
|
-
throw new InvalidMultiaddrError('Remote peer must be present in multiaddr');
|
|
28
|
-
}
|
|
29
26
|
const opts = getNetConfig(ma);
|
|
30
27
|
let host = opts.host;
|
|
31
28
|
if (opts.type === 'ip6' && host.includes(':')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-multiaddr.js","sourceRoot":"","sources":["../../../src/utils/parse-multiaddr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAKnD,sDAAsD;AACtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3F,SAAS,iBAAiB,CAAE,CAAS;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC;AAQD,MAAM,UAAU,cAAc,CAAE,EAAa;IAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAA;IACtF,CAAC;IAED,MAAM,UAAU,GAAsB,EAAE,CAAA;IACxC,IAAI,UAA8B,CAAA;IAElC,KAAK,MAAM,UAAU,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,oEAAoE;QACpE,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACpD,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"parse-multiaddr.js","sourceRoot":"","sources":["../../../src/utils/parse-multiaddr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAKnD,sDAAsD;AACtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3F,SAAS,iBAAiB,CAAE,CAAS;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC;AAQD,MAAM,UAAU,cAAc,CAAE,EAAa;IAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,qBAAqB,CAAC,mDAAmD,CAAC,CAAA;IACtF,CAAC;IAED,MAAM,UAAU,GAAsB,EAAE,CAAA;IACxC,IAAI,UAA8B,CAAA;IAElC,KAAK,MAAM,UAAU,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,oEAAoE;QACpE,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACpD,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAEpB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C;;;;;;;WAOG;QACH,IAAI,GAAG,IAAI,IAAI,GAAG,CAAA;IACpB,CAAC;IAED,OAAO;QACL,kCAAkC;QAClC,GAAG,EAAE,WAAW,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;QACnC,UAAU;QACV,UAAU;KACX,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/webtransport",
|
|
3
|
-
"version": "6.0.27-
|
|
3
|
+
"version": "6.0.27-b7c6dc0f2",
|
|
4
4
|
"description": "JavaScript implementation of the WebTransport module that libp2p uses and that implements the interface-transport spec",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webtransport#readme",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@chainsafe/libp2p-noise": "^17.0.0",
|
|
49
|
-
"@libp2p/interface": "3.2.2-
|
|
50
|
-
"@libp2p/peer-id": "6.0.9-
|
|
51
|
-
"@libp2p/utils": "7.2.1-
|
|
49
|
+
"@libp2p/interface": "3.2.2-b7c6dc0f2",
|
|
50
|
+
"@libp2p/peer-id": "6.0.9-b7c6dc0f2",
|
|
51
|
+
"@libp2p/utils": "7.2.1-b7c6dc0f2",
|
|
52
52
|
"@multiformats/multiaddr": "^13.0.1",
|
|
53
53
|
"@multiformats/multiaddr-matcher": "^3.0.1",
|
|
54
54
|
"multiformats": "^13.3.6",
|
|
@@ -58,16 +58,16 @@
|
|
|
58
58
|
"uint8arrays": "^6.1.1"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@libp2p/crypto": "5.1.18-
|
|
62
|
-
"@libp2p/daemon-client": "10.0.27-
|
|
63
|
-
"@libp2p/logger": "6.2.7-
|
|
64
|
-
"@libp2p/ping": "3.1.5-
|
|
61
|
+
"@libp2p/crypto": "5.1.18-b7c6dc0f2",
|
|
62
|
+
"@libp2p/daemon-client": "10.0.27-b7c6dc0f2",
|
|
63
|
+
"@libp2p/logger": "6.2.7-b7c6dc0f2",
|
|
64
|
+
"@libp2p/ping": "3.1.5-b7c6dc0f2",
|
|
65
65
|
"@noble/hashes": "^2.0.1",
|
|
66
66
|
"aegir": "^48.0.11",
|
|
67
67
|
"execa": "^9.6.0",
|
|
68
68
|
"go-libp2p": "^1.6.0",
|
|
69
69
|
"it-all": "^3.0.9",
|
|
70
|
-
"libp2p": "3.3.2-
|
|
70
|
+
"libp2p": "3.3.2-b7c6dc0f2",
|
|
71
71
|
"p-defer": "^4.0.1",
|
|
72
72
|
"p-event": "^7.0.0",
|
|
73
73
|
"sinon-ts": "^2.0.0"
|
package/src/index.ts
CHANGED
|
@@ -206,7 +206,7 @@ class WebTransportTransport implements Transport<WebTransportDialEvents> {
|
|
|
206
206
|
log: this.components.logger.forComponent('libp2p:webtransport:connection')
|
|
207
207
|
})
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
const securePeer = await this.authenticateWebTransport({
|
|
210
210
|
wt,
|
|
211
211
|
maConn,
|
|
212
212
|
remotePeer,
|
|
@@ -214,6 +214,12 @@ class WebTransportTransport implements Transport<WebTransportDialEvents> {
|
|
|
214
214
|
...options
|
|
215
215
|
})
|
|
216
216
|
|
|
217
|
+
authenticated = true
|
|
218
|
+
|
|
219
|
+
if (remotePeer != null) {
|
|
220
|
+
authenticated = remotePeer.equals(securePeer)
|
|
221
|
+
}
|
|
222
|
+
|
|
217
223
|
if (!authenticated) {
|
|
218
224
|
throw new InvalidCryptoExchangeError('Failed to authenticate webtransport')
|
|
219
225
|
}
|
|
@@ -221,7 +227,7 @@ class WebTransportTransport implements Transport<WebTransportDialEvents> {
|
|
|
221
227
|
return await options.upgrader.upgradeOutbound(maConn, {
|
|
222
228
|
...options,
|
|
223
229
|
skipEncryption: true,
|
|
224
|
-
remotePeer,
|
|
230
|
+
remotePeer: securePeer,
|
|
225
231
|
muxerFactory: webtransportMuxer(wt),
|
|
226
232
|
skipProtection: true
|
|
227
233
|
})
|
|
@@ -244,7 +250,7 @@ class WebTransportTransport implements Transport<WebTransportDialEvents> {
|
|
|
244
250
|
}
|
|
245
251
|
}
|
|
246
252
|
|
|
247
|
-
async authenticateWebTransport ({ wt, maConn, remotePeer, certhashes, onProgress, signal }: AuthenticateWebTransportOptions): Promise<
|
|
253
|
+
async authenticateWebTransport ({ wt, maConn, remotePeer, certhashes, onProgress, signal }: AuthenticateWebTransportOptions): Promise<PeerId> {
|
|
248
254
|
onProgress?.(new CustomProgressEvent('webtransport:open-authentication-stream'))
|
|
249
255
|
const stream = await wt.createBidirectionalStream()
|
|
250
256
|
signal?.throwIfAborted()
|
|
@@ -257,7 +263,7 @@ class WebTransportTransport implements Transport<WebTransportDialEvents> {
|
|
|
257
263
|
const n = noise()(this.components)
|
|
258
264
|
|
|
259
265
|
onProgress?.(new CustomProgressEvent('webtransport:secure-outbound-connection'))
|
|
260
|
-
const { remoteExtensions } = await n.secureOutbound(messages, {
|
|
266
|
+
const { remoteExtensions, remotePeer: securePeer } = await n.secureOutbound(messages, {
|
|
261
267
|
signal,
|
|
262
268
|
remotePeer,
|
|
263
269
|
skipStreamMuxerNegotiation: true
|
|
@@ -276,7 +282,7 @@ class WebTransportTransport implements Transport<WebTransportDialEvents> {
|
|
|
276
282
|
throw new InvalidParametersError("Our certhashes are not a subset of the remote's reported certhashes")
|
|
277
283
|
}
|
|
278
284
|
|
|
279
|
-
return
|
|
285
|
+
return securePeer
|
|
280
286
|
}
|
|
281
287
|
|
|
282
288
|
createListener (options: CreateListenerOptions): Listener {
|
|
@@ -17,7 +17,7 @@ function decodeCerthashStr (s: string): MultihashDigest {
|
|
|
17
17
|
export interface ParsedMultiaddr {
|
|
18
18
|
url: string
|
|
19
19
|
certhashes: MultihashDigest[]
|
|
20
|
-
remotePeer
|
|
20
|
+
remotePeer?: PeerId
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export function parseMultiaddr (ma: Multiaddr): ParsedMultiaddr {
|
|
@@ -39,10 +39,6 @@ export function parseMultiaddr (ma: Multiaddr): ParsedMultiaddr {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
if (remotePeer == null) {
|
|
43
|
-
throw new InvalidMultiaddrError('Remote peer must be present in multiaddr')
|
|
44
|
-
}
|
|
45
|
-
|
|
46
42
|
const opts = getNetConfig(ma)
|
|
47
43
|
let host = opts.host
|
|
48
44
|
|