@helia/block-brokers 5.0.5-eaa042eb → 5.0.6-d4d97b83
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 +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/trustless-gateway/index.d.ts +20 -1
- package/dist/src/trustless-gateway/index.d.ts.map +1 -1
- package/dist/src/trustless-gateway/index.js.map +1 -1
- package/dist/src/trustless-gateway/utils.d.ts +3 -1
- package/dist/src/trustless-gateway/utils.d.ts.map +1 -1
- package/dist/src/trustless-gateway/utils.js +8 -0
- package/dist/src/trustless-gateway/utils.js.map +1 -1
- package/package.json +5 -5
- package/src/index.ts +2 -1
- package/src/trustless-gateway/index.ts +25 -1
- package/src/trustless-gateway/utils.ts +13 -1
package/dist/src/index.d.ts
CHANGED
|
@@ -49,5 +49,6 @@
|
|
|
49
49
|
export { bitswap } from './bitswap.js';
|
|
50
50
|
export type { BitswapBlockBrokerInit, BitswapBlockBrokerComponents } from './bitswap.js';
|
|
51
51
|
export { trustlessGateway } from './trustless-gateway/index.js';
|
|
52
|
-
export type { TrustlessGatewayBlockBrokerInit, TrustlessGatewayBlockBrokerComponents, TrustlessGatewayGetBlockProgressEvents } from './trustless-gateway/index.js';
|
|
52
|
+
export type { TrustlessGatewayBlockBrokerInit, TrustlessGatewayBlockBrokerComponents, TrustlessGatewayGetBlockProgressEvents, TrustlessGatewayProvider } from './trustless-gateway/index.js';
|
|
53
|
+
export type { BitswapProvider } from '@helia/bitswap';
|
|
53
54
|
//# sourceMappingURL=index.d.ts.map
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,YAAY,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,sCAAsC,EAAE,MAAM,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,YAAY,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,sCAAsC,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAC5L,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { TransformRequestInit } from './trustless-gateway.js';
|
|
2
2
|
import type { Routing, BlockBroker } from '@helia/interface';
|
|
3
3
|
import type { ComponentLogger } from '@libp2p/interface';
|
|
4
|
+
import type { CID } from 'multiformats';
|
|
4
5
|
import type { ProgressEvent } from 'progress-events';
|
|
5
6
|
export declare const DEFAULT_ALLOW_INSECURE = false;
|
|
6
7
|
export declare const DEFAULT_ALLOW_LOCAL = false;
|
|
@@ -10,7 +11,25 @@ export declare const DEFAULT_ALLOW_LOCAL = false;
|
|
|
10
11
|
* @see https://specs.ipfs.tech/bitswap-protocol/#block-sizes
|
|
11
12
|
*/
|
|
12
13
|
export declare const DEFAULT_MAX_SIZE = 2097152;
|
|
13
|
-
export
|
|
14
|
+
export interface TrustlessGatewayProvider {
|
|
15
|
+
/**
|
|
16
|
+
* The type of provider
|
|
17
|
+
*/
|
|
18
|
+
type: 'trustless-gateway';
|
|
19
|
+
/**
|
|
20
|
+
* The CID that the provider can provide the block for
|
|
21
|
+
*/
|
|
22
|
+
cid: CID;
|
|
23
|
+
/**
|
|
24
|
+
* The provider's URL
|
|
25
|
+
*/
|
|
26
|
+
url: string;
|
|
27
|
+
/**
|
|
28
|
+
* Which routing implementation found the provider
|
|
29
|
+
*/
|
|
30
|
+
routing: string;
|
|
31
|
+
}
|
|
32
|
+
export type TrustlessGatewayGetBlockProgressEvents = ProgressEvent<'trustless-gateway:get-block:fetch', URL> | ProgressEvent<'trustless-gateway:found-provider', TrustlessGatewayProvider>;
|
|
14
33
|
export interface TrustlessGatewayBlockBrokerInit {
|
|
15
34
|
/**
|
|
16
35
|
* By default we will only connect to peers with HTTPS addresses, pass true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/trustless-gateway/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,eAAO,MAAM,sBAAsB,QAAQ,CAAA;AAC3C,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AACxC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAY,CAAA;AAEzC,MAAM,MAAM,sCAAsC,GAChD,aAAa,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/trustless-gateway/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,eAAO,MAAM,sBAAsB,QAAQ,CAAA;AAC3C,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AACxC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAY,CAAA;AAEzC,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAA;IAEzB;;OAEG;IACH,GAAG,EAAE,GAAG,CAAA;IAER;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,sCAAsC,GAChD,aAAa,CAAC,mCAAmC,EAAE,GAAG,CAAC,GACvD,aAAa,CAAC,kCAAkC,EAAE,wBAAwB,CAAC,CAAA;AAE7E,MAAM,WAAW,+BAA+B;IAC9C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;CAC5C;AAED,MAAM,WAAW,qCAAqC;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,wBAAgB,gBAAgB,CAAE,IAAI,GAAE,+BAAoC,GAAG,CAAC,UAAU,EAAE,qCAAqC,KAAK,WAAW,CAAC,sCAAsC,CAAC,CAExL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/trustless-gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/trustless-gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAOzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAA;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAA;AACxC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAuDzC,MAAM,UAAU,gBAAgB,CAAE,OAAwC,EAAE;IAC1E,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAC1E,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { TrustlessGateway } from './trustless-gateway.js';
|
|
2
|
+
import type { TrustlessGatewayGetBlockProgressEvents } from './index.ts';
|
|
2
3
|
import type { TransformRequestInit } from './trustless-gateway.js';
|
|
3
4
|
import type { Routing } from '@helia/interface';
|
|
4
5
|
import type { ComponentLogger, Logger, AbortOptions } from '@libp2p/interface';
|
|
5
6
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
6
7
|
import type { CID } from 'multiformats/cid';
|
|
8
|
+
import type { ProgressOptions } from 'progress-events';
|
|
7
9
|
export declare function filterNonHTTPMultiaddrs(multiaddrs: Multiaddr[], allowInsecure: boolean, allowLocal: boolean): Multiaddr[];
|
|
8
|
-
export interface FindHttpGatewayProvidersOptions extends AbortOptions {
|
|
10
|
+
export interface FindHttpGatewayProvidersOptions extends AbortOptions, ProgressOptions<TrustlessGatewayGetBlockProgressEvents> {
|
|
9
11
|
transformRequestInit?: TransformRequestInit;
|
|
10
12
|
}
|
|
11
13
|
export declare function findHttpGatewayProviders(cid: CID, routing: Routing, logger: ComponentLogger, allowInsecure: boolean, allowLocal: boolean, options?: FindHttpGatewayProvidersOptions): AsyncGenerator<TrustlessGateway>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/trustless-gateway/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/trustless-gateway/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,sCAAsC,EAA4B,MAAM,YAAY,CAAA;AAClG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,wBAAgB,uBAAuB,CAAE,UAAU,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,SAAS,EAAE,CAyB1H;AAED,MAAM,WAAW,+BAAgC,SAAQ,YAAY,EAAE,eAAe,CAAC,sCAAsC,CAAC;IAC5H,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;CAC5C;AAED,wBAAwB,wBAAwB,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAE,+BAAoC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CA0BnO;AAED,UAAU,sBAAsB;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqDnI"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getNetConfig, isPrivate } from '@libp2p/utils';
|
|
2
2
|
import { DNS, HTTP, HTTPS } from '@multiformats/multiaddr-matcher';
|
|
3
3
|
import { multiaddrToUri } from '@multiformats/multiaddr-to-uri';
|
|
4
|
+
import { CustomProgressEvent } from 'progress-events';
|
|
4
5
|
import { Uint8ArrayList } from 'uint8arraylist';
|
|
5
6
|
import { TrustlessGateway } from './trustless-gateway.js';
|
|
6
7
|
export function filterNonHTTPMultiaddrs(multiaddrs, allowInsecure, allowLocal) {
|
|
@@ -36,6 +37,13 @@ export async function* findHttpGatewayProviders(cid, routing, logger, allowInsec
|
|
|
36
37
|
// /ip4/x.x.x.x/tcp/31337/https
|
|
37
38
|
// etc
|
|
38
39
|
const uri = multiaddrToUri(httpAddresses[0]);
|
|
40
|
+
const prov = {
|
|
41
|
+
type: 'trustless-gateway',
|
|
42
|
+
cid,
|
|
43
|
+
url: uri.toString(),
|
|
44
|
+
routing: provider.routing
|
|
45
|
+
};
|
|
46
|
+
options?.onProgress?.(new CustomProgressEvent('trustless-gateway:found-provider', prov));
|
|
39
47
|
yield new TrustlessGateway(uri, { logger, transformRequestInit: options.transformRequestInit });
|
|
40
48
|
}
|
|
41
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/trustless-gateway/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/trustless-gateway/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/block-brokers",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.6-d4d97b83",
|
|
4
4
|
"description": "Block brokers for Helia",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia/tree/main/packages/block-brokers#readme",
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
"test:electron-main": "aegir test -t electron-main"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@helia/bitswap": "3.0.
|
|
51
|
-
"@helia/interface": "6.0.
|
|
52
|
-
"@helia/utils": "2.2.
|
|
53
|
-
"@libp2p/interface": "^3.0
|
|
50
|
+
"@helia/bitswap": "3.0.6-d4d97b83",
|
|
51
|
+
"@helia/interface": "6.0.1-d4d97b83",
|
|
52
|
+
"@helia/utils": "2.2.2-d4d97b83",
|
|
53
|
+
"@libp2p/interface": "^3.1.0",
|
|
54
54
|
"@libp2p/utils": "^7.0.5",
|
|
55
55
|
"@multiformats/multiaddr": "^13.0.1",
|
|
56
56
|
"@multiformats/multiaddr-matcher": "^3.0.1",
|
package/src/index.ts
CHANGED
|
@@ -50,4 +50,5 @@
|
|
|
50
50
|
export { bitswap } from './bitswap.js'
|
|
51
51
|
export type { BitswapBlockBrokerInit, BitswapBlockBrokerComponents } from './bitswap.js'
|
|
52
52
|
export { trustlessGateway } from './trustless-gateway/index.js'
|
|
53
|
-
export type { TrustlessGatewayBlockBrokerInit, TrustlessGatewayBlockBrokerComponents, TrustlessGatewayGetBlockProgressEvents } from './trustless-gateway/index.js'
|
|
53
|
+
export type { TrustlessGatewayBlockBrokerInit, TrustlessGatewayBlockBrokerComponents, TrustlessGatewayGetBlockProgressEvents, TrustlessGatewayProvider } from './trustless-gateway/index.js'
|
|
54
|
+
export type { BitswapProvider } from '@helia/bitswap'
|
|
@@ -2,6 +2,7 @@ import { TrustlessGatewayBlockBroker } from './broker.js'
|
|
|
2
2
|
import type { TransformRequestInit } from './trustless-gateway.js'
|
|
3
3
|
import type { Routing, BlockBroker } from '@helia/interface'
|
|
4
4
|
import type { ComponentLogger } from '@libp2p/interface'
|
|
5
|
+
import type { CID } from 'multiformats'
|
|
5
6
|
import type { ProgressEvent } from 'progress-events'
|
|
6
7
|
|
|
7
8
|
export const DEFAULT_ALLOW_INSECURE = false
|
|
@@ -13,8 +14,31 @@ export const DEFAULT_ALLOW_LOCAL = false
|
|
|
13
14
|
*/
|
|
14
15
|
export const DEFAULT_MAX_SIZE = 2_097_152
|
|
15
16
|
|
|
17
|
+
export interface TrustlessGatewayProvider {
|
|
18
|
+
/**
|
|
19
|
+
* The type of provider
|
|
20
|
+
*/
|
|
21
|
+
type: 'trustless-gateway'
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The CID that the provider can provide the block for
|
|
25
|
+
*/
|
|
26
|
+
cid: CID
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The provider's URL
|
|
30
|
+
*/
|
|
31
|
+
url: string
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Which routing implementation found the provider
|
|
35
|
+
*/
|
|
36
|
+
routing: string
|
|
37
|
+
}
|
|
38
|
+
|
|
16
39
|
export type TrustlessGatewayGetBlockProgressEvents =
|
|
17
|
-
ProgressEvent<'trustless-gateway:get-block:fetch', URL>
|
|
40
|
+
ProgressEvent<'trustless-gateway:get-block:fetch', URL> |
|
|
41
|
+
ProgressEvent<'trustless-gateway:found-provider', TrustlessGatewayProvider>
|
|
18
42
|
|
|
19
43
|
export interface TrustlessGatewayBlockBrokerInit {
|
|
20
44
|
/**
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { getNetConfig, isPrivate } from '@libp2p/utils'
|
|
2
2
|
import { DNS, HTTP, HTTPS } from '@multiformats/multiaddr-matcher'
|
|
3
3
|
import { multiaddrToUri } from '@multiformats/multiaddr-to-uri'
|
|
4
|
+
import { CustomProgressEvent } from 'progress-events'
|
|
4
5
|
import { Uint8ArrayList } from 'uint8arraylist'
|
|
5
6
|
import { TrustlessGateway } from './trustless-gateway.js'
|
|
7
|
+
import type { TrustlessGatewayGetBlockProgressEvents, TrustlessGatewayProvider } from './index.ts'
|
|
6
8
|
import type { TransformRequestInit } from './trustless-gateway.js'
|
|
7
9
|
import type { Routing } from '@helia/interface'
|
|
8
10
|
import type { ComponentLogger, Logger, AbortOptions } from '@libp2p/interface'
|
|
9
11
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
10
12
|
import type { CID } from 'multiformats/cid'
|
|
13
|
+
import type { ProgressOptions } from 'progress-events'
|
|
11
14
|
|
|
12
15
|
export function filterNonHTTPMultiaddrs (multiaddrs: Multiaddr[], allowInsecure: boolean, allowLocal: boolean): Multiaddr[] {
|
|
13
16
|
return multiaddrs.filter(ma => {
|
|
@@ -36,7 +39,7 @@ export function filterNonHTTPMultiaddrs (multiaddrs: Multiaddr[], allowInsecure:
|
|
|
36
39
|
})
|
|
37
40
|
}
|
|
38
41
|
|
|
39
|
-
export interface FindHttpGatewayProvidersOptions extends AbortOptions {
|
|
42
|
+
export interface FindHttpGatewayProvidersOptions extends AbortOptions, ProgressOptions<TrustlessGatewayGetBlockProgressEvents> {
|
|
40
43
|
transformRequestInit?: TransformRequestInit
|
|
41
44
|
}
|
|
42
45
|
|
|
@@ -55,6 +58,15 @@ export async function * findHttpGatewayProviders (cid: CID, routing: Routing, lo
|
|
|
55
58
|
// etc
|
|
56
59
|
const uri = multiaddrToUri(httpAddresses[0])
|
|
57
60
|
|
|
61
|
+
const prov: TrustlessGatewayProvider = {
|
|
62
|
+
type: 'trustless-gateway',
|
|
63
|
+
cid,
|
|
64
|
+
url: uri.toString(),
|
|
65
|
+
routing: provider.routing
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
options?.onProgress?.(new CustomProgressEvent('trustless-gateway:found-provider', prov))
|
|
69
|
+
|
|
58
70
|
yield new TrustlessGateway(uri, { logger, transformRequestInit: options.transformRequestInit })
|
|
59
71
|
}
|
|
60
72
|
}
|