thirdweb 5.105.8-nightly-0ea25bb9ae7b17524b4f883993bba5ebb20ca939-20250707000431 → 5.105.9
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/cjs/bridge/Chains.js +20 -14
- package/dist/cjs/bridge/Chains.js.map +1 -1
- package/dist/cjs/chains/utils.js +8 -34
- package/dist/cjs/chains/utils.js.map +1 -1
- package/dist/cjs/insight/common.js +7 -10
- package/dist/cjs/insight/common.js.map +1 -1
- package/dist/cjs/react/core/hooks/usePaymentMethods.js +82 -53
- package/dist/cjs/react/core/hooks/usePaymentMethods.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/bridge/Chains.js +20 -14
- package/dist/esm/bridge/Chains.js.map +1 -1
- package/dist/esm/chains/utils.js +7 -33
- package/dist/esm/chains/utils.js.map +1 -1
- package/dist/esm/insight/common.js +8 -11
- package/dist/esm/insight/common.js.map +1 -1
- package/dist/esm/react/core/hooks/usePaymentMethods.js +83 -54
- package/dist/esm/react/core/hooks/usePaymentMethods.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/bridge/Chains.d.ts.map +1 -1
- package/dist/types/chains/types.d.ts +0 -7
- package/dist/types/chains/types.d.ts.map +1 -1
- package/dist/types/chains/utils.d.ts +2 -15
- package/dist/types/chains/utils.d.ts.map +1 -1
- package/dist/types/insight/common.d.ts.map +1 -1
- package/dist/types/react/core/hooks/usePaymentMethods.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bridge/Chains.ts +23 -14
- package/src/chains/types.ts +0 -8
- package/src/chains/utils.ts +10 -51
- package/src/insight/common.ts +8 -16
- package/src/react/core/hooks/usePaymentMethods.ts +105 -65
- package/src/version.ts +1 -1
@@ -1,7 +1,7 @@
|
|
1
1
|
import { useQuery } from "@tanstack/react-query";
|
2
|
+
import { chains } from "../../../bridge/Chains.js";
|
2
3
|
import { routes } from "../../../bridge/Routes.js";
|
3
|
-
import { getCachedChain } from "../../../chains/utils.js";
|
4
|
-
import { isInsightEnabled } from "../../../insight/common.js";
|
4
|
+
import { getCachedChain, getInsightEnabledChainIds, } from "../../../chains/utils.js";
|
5
5
|
import { getOwnedTokens } from "../../../insight/get-tokens.js";
|
6
6
|
import { toTokens } from "../../../utils/units.js";
|
7
7
|
import { useActiveWallet } from "./wallets/useActiveWallet.js";
|
@@ -32,33 +32,20 @@ export function usePaymentMethods(options) {
|
|
32
32
|
if (!wallet) {
|
33
33
|
throw new Error("No wallet connected");
|
34
34
|
}
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
const allOriginTokens = includeDestinationToken
|
45
|
-
? [destinationToken, ...allRoutes.map((route) => route.originToken)]
|
46
|
-
: allRoutes.map((route) => route.originToken);
|
47
|
-
// 1. Resolve all unique chains in the supported token map
|
48
|
-
const uniqueChains = Array.from(new Set(allOriginTokens.map((t) => t.chainId)));
|
49
|
-
// 2. Check insight availability once per chain
|
50
|
-
const insightSupport = await Promise.all(uniqueChains.map(async (c) => ({
|
51
|
-
chain: getCachedChain(c),
|
52
|
-
enabled: await isInsightEnabled(getCachedChain(c)),
|
53
|
-
})));
|
54
|
-
const insightEnabledChains = insightSupport.filter((c) => c.enabled);
|
55
|
-
// 3. ERC-20 balances for insight-enabled chains (batched 5 chains / call)
|
56
|
-
let owned = [];
|
35
|
+
// 1. Get all supported chains
|
36
|
+
const [allChains, insightEnabledChainIds] = await Promise.all([
|
37
|
+
chains({ client }),
|
38
|
+
getInsightEnabledChainIds(),
|
39
|
+
]);
|
40
|
+
// 2. Check insight availability for all chains
|
41
|
+
const insightEnabledChains = allChains.filter((c) => insightEnabledChainIds.includes(c.chainId));
|
42
|
+
// 3. Get all owned tokens for insight-enabled chains
|
43
|
+
let allOwnedTokens = [];
|
57
44
|
let page = 0;
|
58
|
-
const limit =
|
45
|
+
const limit = 500;
|
59
46
|
while (true) {
|
60
47
|
const batch = await getOwnedTokens({
|
61
|
-
chains: insightEnabledChains.map((c) => c.
|
48
|
+
chains: insightEnabledChains.map((c) => getCachedChain(c.chainId)),
|
62
49
|
client,
|
63
50
|
ownerAddress: wallet.getAccount()?.address || "",
|
64
51
|
queryOptions: {
|
@@ -70,20 +57,72 @@ export function usePaymentMethods(options) {
|
|
70
57
|
if (batch.length === 0) {
|
71
58
|
break;
|
72
59
|
}
|
73
|
-
//
|
60
|
+
// Convert to our format and filter out zero balances
|
74
61
|
const tokensWithBalance = batch
|
62
|
+
.filter((b) => b.value > 0n)
|
75
63
|
.map((b) => ({
|
76
64
|
balance: b.value,
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
65
|
+
originToken: {
|
66
|
+
address: b.tokenAddress,
|
67
|
+
chainId: b.chainId,
|
68
|
+
decimals: b.decimals,
|
69
|
+
iconUri: "",
|
70
|
+
name: b.name,
|
71
|
+
priceUsd: 0,
|
72
|
+
symbol: b.symbol,
|
73
|
+
},
|
74
|
+
}));
|
75
|
+
allOwnedTokens = [...allOwnedTokens, ...tokensWithBalance];
|
83
76
|
page += 1;
|
84
77
|
}
|
85
|
-
//
|
86
|
-
|
78
|
+
// 4. For each chain where we have owned tokens, fetch possible routes
|
79
|
+
const chainsWithOwnedTokens = Array.from(new Set(allOwnedTokens.map((t) => t.originToken.chainId)));
|
80
|
+
const allValidOriginTokens = new Map();
|
81
|
+
// Add destination token if included
|
82
|
+
if (includeDestinationToken) {
|
83
|
+
const tokenKey = `${destinationToken.chainId}-${destinationToken.address.toLowerCase()}`;
|
84
|
+
allValidOriginTokens.set(tokenKey, destinationToken);
|
85
|
+
}
|
86
|
+
// Fetch routes for each chain with owned tokens
|
87
|
+
await Promise.all(chainsWithOwnedTokens.map(async (chainId) => {
|
88
|
+
try {
|
89
|
+
// TODO (bridge): this is quite inefficient, need to fix the popularity sorting to really capture all users tokens
|
90
|
+
const routesForChain = await routes({
|
91
|
+
client,
|
92
|
+
destinationChainId: destinationToken.chainId,
|
93
|
+
destinationTokenAddress: destinationToken.address,
|
94
|
+
includePrices: true,
|
95
|
+
limit: 100,
|
96
|
+
maxSteps: 3,
|
97
|
+
originChainId: chainId,
|
98
|
+
sortBy: "popularity",
|
99
|
+
});
|
100
|
+
// Add all origin tokens from this chain's routes
|
101
|
+
for (const route of routesForChain) {
|
102
|
+
const tokenKey = `${route.originToken.chainId}-${route.originToken.address.toLowerCase()}`;
|
103
|
+
allValidOriginTokens.set(tokenKey, route.originToken);
|
104
|
+
}
|
105
|
+
}
|
106
|
+
catch (error) {
|
107
|
+
// Log error but don't fail the entire operation
|
108
|
+
console.warn(`Failed to fetch routes for chain ${chainId}:`, error);
|
109
|
+
}
|
110
|
+
}));
|
111
|
+
// 5. Filter owned tokens to only include valid origin tokens
|
112
|
+
const validOwnedTokens = [];
|
113
|
+
for (const ownedToken of allOwnedTokens) {
|
114
|
+
const tokenKey = `${ownedToken.originToken.chainId}-${ownedToken.originToken.address.toLowerCase()}`;
|
115
|
+
const validOriginToken = allValidOriginTokens.get(tokenKey);
|
116
|
+
if (validOriginToken) {
|
117
|
+
validOwnedTokens.push({
|
118
|
+
balance: ownedToken.balance,
|
119
|
+
originAmount: 0n,
|
120
|
+
originToken: validOriginToken, // Use the token with pricing info from routes
|
121
|
+
});
|
122
|
+
}
|
123
|
+
}
|
124
|
+
// Sort by dollar balance descending
|
125
|
+
validOwnedTokens.sort((a, b) => {
|
87
126
|
const aDollarBalance = Number.parseFloat(toTokens(a.balance, a.originToken.decimals)) *
|
88
127
|
a.originToken.priceUsd;
|
89
128
|
const bDollarBalance = Number.parseFloat(toTokens(b.balance, b.originToken.decimals)) *
|
@@ -91,26 +130,16 @@ export function usePaymentMethods(options) {
|
|
91
130
|
return bDollarBalance - aDollarBalance;
|
92
131
|
});
|
93
132
|
const suitableOriginTokens = [];
|
94
|
-
for (const
|
95
|
-
if (
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
balance: b.balance,
|
103
|
-
originAmount: 0n,
|
104
|
-
originToken: b.originToken,
|
105
|
-
});
|
106
|
-
continue;
|
107
|
-
}
|
108
|
-
suitableOriginTokens.push({
|
109
|
-
balance: b.balance,
|
110
|
-
originAmount: 0n,
|
111
|
-
originToken: b.originToken,
|
112
|
-
});
|
133
|
+
for (const token of validOwnedTokens) {
|
134
|
+
if (includeDestinationToken &&
|
135
|
+
token.originToken.address.toLowerCase() ===
|
136
|
+
destinationToken.address.toLowerCase() &&
|
137
|
+
token.originToken.chainId === destinationToken.chainId) {
|
138
|
+
// Add same token to the front of the list
|
139
|
+
suitableOriginTokens.unshift(token);
|
140
|
+
continue;
|
113
141
|
}
|
142
|
+
suitableOriginTokens.push(token);
|
114
143
|
}
|
115
144
|
const transformedRoutes = [
|
116
145
|
...suitableOriginTokens.map((s) => ({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"usePaymentMethods.js","sourceRoot":"","sources":["../../../../../src/react/core/hooks/usePaymentMethods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
1
|
+
{"version":3,"file":"usePaymentMethods.js","sourceRoot":"","sources":["../../../../../src/react/core/hooks/usePaymentMethods.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export const version = "5.105.
|
1
|
+
export const version = "5.105.9";
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/dist/esm/version.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Chains.d.ts","sourceRoot":"","sources":["../../../src/bridge/Chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
1
|
+
{"version":3,"file":"Chains.d.ts","sourceRoot":"","sources":["../../../src/bridge/Chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CA2B5E;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,GAAG;QACb,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC;IAEF,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC;CACvB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chains/types.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chains/types.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { Chain as ViemChain } from "viem";
|
2
2
|
import type { ThirdwebClient } from "../client/client.js";
|
3
|
-
import type { Chain, ChainMetadata, ChainOptions,
|
3
|
+
import type { Chain, ChainMetadata, ChainOptions, LegacyChain } from "./types.js";
|
4
4
|
/**
|
5
5
|
* @internal Exported for tests
|
6
6
|
*/
|
@@ -115,20 +115,7 @@ export declare function getChainNativeCurrencyName(chain: Chain): Promise<string
|
|
115
115
|
* @chain
|
116
116
|
*/
|
117
117
|
export declare function getChainMetadata(chain: Chain): Promise<ChainMetadata>;
|
118
|
-
|
119
|
-
* Retrieves a list of services available on a given chain
|
120
|
-
* @param chain - The chain object containing the chain ID.
|
121
|
-
* @returns A Promise that resolves to chain services.
|
122
|
-
* @throws If there is an error fetching the chain services.
|
123
|
-
* @example
|
124
|
-
* ```ts
|
125
|
-
* const chain = defineChain({ id: 1 });
|
126
|
-
* const chainServices = await getChainServices(chain);
|
127
|
-
* console.log(chainServices);
|
128
|
-
* ```
|
129
|
-
* @chain
|
130
|
-
*/
|
131
|
-
export declare function getChainServices(chain: Chain): Promise<ChainService[]>;
|
118
|
+
export declare function getInsightEnabledChainIds(): Promise<number[]>;
|
132
119
|
/**
|
133
120
|
* Convert `ApiChain` to `Chain` object
|
134
121
|
* @internal
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/chains/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,YAAY,EACZ,
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/chains/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;GAA2B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GACvD,KAAK,CAsBP;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,QAI1C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM;;;;;EAUxC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM;;eAEhD;AAQD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAoBlE;AAQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAuB5D;AAED,KAAK,wBAAwB,GAAG;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAoB3E;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlE;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAWpE;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,MAAM,CAAC,CAWjB;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,CAkCrE;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,KAAK,CAiBrE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/insight/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/insight/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,iBAYzD;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,KAAK,oBAGlD"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"usePaymentMethods.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/hooks/usePaymentMethods.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"usePaymentMethods.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/hooks/usePaymentMethods.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAK5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AASnE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,gBAAgB,EAAE,KAAK,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;;;;;;;EA4LA"}
|
package/dist/types/version.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "5.105.
|
1
|
+
export declare const version = "5.105.9";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC"}
|
package/package.json
CHANGED
@@ -375,7 +375,7 @@
|
|
375
375
|
}
|
376
376
|
},
|
377
377
|
"typings": "./dist/types/exports/thirdweb.d.ts",
|
378
|
-
"version": "5.105.
|
378
|
+
"version": "5.105.9",
|
379
379
|
"scripts": {
|
380
380
|
"bench": "vitest -c ./test/vitest.config.ts bench",
|
381
381
|
"bench:compare": "bun run ./benchmarks/run.ts",
|
package/src/bridge/Chains.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { ThirdwebClient } from "../client/client.js";
|
2
2
|
import { getThirdwebBaseUrl } from "../utils/domains.js";
|
3
3
|
import { getClientFetch } from "../utils/fetch.js";
|
4
|
+
import { withCache } from "../utils/promise/withCache.js";
|
4
5
|
import type { Chain } from "./types/Chain.js";
|
5
6
|
import { ApiError } from "./types/Errors.js";
|
6
7
|
|
@@ -54,22 +55,30 @@ import { ApiError } from "./types/Errors.js";
|
|
54
55
|
export async function chains(options: chains.Options): Promise<chains.Result> {
|
55
56
|
const { client } = options;
|
56
57
|
|
57
|
-
|
58
|
-
|
58
|
+
return withCache(
|
59
|
+
async () => {
|
60
|
+
const clientFetch = getClientFetch(client);
|
61
|
+
const url = new URL(`${getThirdwebBaseUrl("bridge")}/v1/chains`);
|
59
62
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
63
|
+
const response = await clientFetch(url.toString());
|
64
|
+
if (!response.ok) {
|
65
|
+
const errorJson = await response.json();
|
66
|
+
throw new ApiError({
|
67
|
+
code: errorJson.code || "UNKNOWN_ERROR",
|
68
|
+
correlationId: errorJson.correlationId || undefined,
|
69
|
+
message: errorJson.message || response.statusText,
|
70
|
+
statusCode: response.status,
|
71
|
+
});
|
72
|
+
}
|
70
73
|
|
71
|
-
|
72
|
-
|
74
|
+
const { data }: { data: Chain[] } = await response.json();
|
75
|
+
return data;
|
76
|
+
},
|
77
|
+
{
|
78
|
+
cacheKey: "bridge-chains",
|
79
|
+
cacheTime: 1000 * 60 * 60 * 1, // 1 hours
|
80
|
+
},
|
81
|
+
);
|
73
82
|
}
|
74
83
|
|
75
84
|
export declare namespace chains {
|
package/src/chains/types.ts
CHANGED
package/src/chains/utils.ts
CHANGED
@@ -7,7 +7,6 @@ import type {
|
|
7
7
|
Chain,
|
8
8
|
ChainMetadata,
|
9
9
|
ChainOptions,
|
10
|
-
ChainService,
|
11
10
|
LegacyChain,
|
12
11
|
} from "./types.js";
|
13
12
|
|
@@ -323,62 +322,22 @@ export function getChainMetadata(chain: Chain): Promise<ChainMetadata> {
|
|
323
322
|
);
|
324
323
|
}
|
325
324
|
|
326
|
-
|
327
|
-
| {
|
328
|
-
data: {
|
329
|
-
services: ChainService[];
|
330
|
-
};
|
331
|
-
error?: never;
|
332
|
-
}
|
333
|
-
| {
|
334
|
-
data?: never;
|
335
|
-
error: unknown;
|
336
|
-
};
|
337
|
-
|
338
|
-
/**
|
339
|
-
* Retrieves a list of services available on a given chain
|
340
|
-
* @param chain - The chain object containing the chain ID.
|
341
|
-
* @returns A Promise that resolves to chain services.
|
342
|
-
* @throws If there is an error fetching the chain services.
|
343
|
-
* @example
|
344
|
-
* ```ts
|
345
|
-
* const chain = defineChain({ id: 1 });
|
346
|
-
* const chainServices = await getChainServices(chain);
|
347
|
-
* console.log(chainServices);
|
348
|
-
* ```
|
349
|
-
* @chain
|
350
|
-
*/
|
351
|
-
export function getChainServices(chain: Chain): Promise<ChainService[]> {
|
352
|
-
const chainId = chain.id;
|
325
|
+
export async function getInsightEnabledChainIds(): Promise<number[]> {
|
353
326
|
return withCache(
|
354
327
|
async () => {
|
355
|
-
|
356
|
-
|
357
|
-
|
328
|
+
const res = await fetch(
|
329
|
+
`https://api.thirdweb.com/v1/chains/services?service=insight`,
|
330
|
+
);
|
331
|
+
if (!res.ok) {
|
332
|
+
throw new Error(
|
333
|
+
`Failed to fetch services. ${res.status} ${res.statusText}`,
|
358
334
|
);
|
359
|
-
if (!res.ok) {
|
360
|
-
throw new Error(
|
361
|
-
`Failed to fetch services for chainId ${chainId}. ${res.status} ${res.statusText}`,
|
362
|
-
);
|
363
|
-
}
|
364
|
-
|
365
|
-
const response = (await res.json()) as FetchChainServiceResponse;
|
366
|
-
if (response.error) {
|
367
|
-
throw new Error(`Failed to fetch services for chainId ${chainId}`);
|
368
|
-
}
|
369
|
-
if (!response.data) {
|
370
|
-
throw new Error(`Failed to fetch services for chainId ${chainId}`);
|
371
|
-
}
|
372
|
-
|
373
|
-
const services = response.data.services;
|
374
|
-
|
375
|
-
return services;
|
376
|
-
} catch {
|
377
|
-
throw new Error(`Failed to fetch services for chainId ${chainId}`);
|
378
335
|
}
|
336
|
+
const response = (await res.json()) as { data: Record<number, boolean> };
|
337
|
+
return Object.keys(response.data).map((chainId) => Number(chainId));
|
379
338
|
},
|
380
339
|
{
|
381
|
-
cacheKey: `chain
|
340
|
+
cacheKey: `chain:insight-enabled`,
|
382
341
|
cacheTime: 24 * 60 * 60 * 1000, // 1 day
|
383
342
|
},
|
384
343
|
);
|
package/src/insight/common.ts
CHANGED
@@ -1,29 +1,21 @@
|
|
1
1
|
import type { Chain } from "../chains/types.js";
|
2
|
-
import {
|
2
|
+
import { getInsightEnabledChainIds } from "../chains/utils.js";
|
3
3
|
|
4
4
|
export async function assertInsightEnabled(chains: Chain[]) {
|
5
|
-
const
|
6
|
-
|
7
|
-
isInsightEnabled(chain).then((enabled) => ({
|
8
|
-
chain,
|
9
|
-
enabled,
|
10
|
-
})),
|
11
|
-
),
|
12
|
-
);
|
13
|
-
|
14
|
-
const insightEnabled = chainData.every((c) => c.enabled);
|
5
|
+
const chainIds = await getInsightEnabledChainIds();
|
6
|
+
const insightEnabled = chains.every((c) => chainIds.includes(c.id));
|
15
7
|
|
16
8
|
if (!insightEnabled) {
|
17
9
|
throw new Error(
|
18
|
-
`Insight is not available for chains ${
|
19
|
-
.filter((c) => !c.
|
20
|
-
.map((c) => c.
|
10
|
+
`Insight is not available for chains ${chains
|
11
|
+
.filter((c) => !chainIds.includes(c.id))
|
12
|
+
.map((c) => c.id)
|
21
13
|
.join(", ")}`,
|
22
14
|
);
|
23
15
|
}
|
24
16
|
}
|
25
17
|
|
26
18
|
export async function isInsightEnabled(chain: Chain) {
|
27
|
-
const
|
28
|
-
return
|
19
|
+
const chainIds = await getInsightEnabledChainIds();
|
20
|
+
return chainIds.includes(chain.id);
|
29
21
|
}
|