thirdweb 5.108.4 → 5.108.5-nightly-ce9220ea00e5a58bf3f6997733b4b69df981cba8-20250930000345
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/react/web/ui/Bridge/swap-widget/select-token-ui.js +9 -5
- package/dist/cjs/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/swap-widget/use-tokens.js +4 -2
- package/dist/cjs/react/web/ui/Bridge/swap-widget/use-tokens.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/x402/common.js +60 -4
- package/dist/cjs/x402/common.js.map +1 -1
- package/dist/cjs/x402/facilitator.js +12 -4
- package/dist/cjs/x402/facilitator.js.map +1 -1
- package/dist/cjs/x402/fetchWithPayment.js +4 -4
- package/dist/cjs/x402/fetchWithPayment.js.map +1 -1
- package/dist/cjs/x402/schemas.js +29 -1
- package/dist/cjs/x402/schemas.js.map +1 -1
- package/dist/cjs/x402/types.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js +9 -5
- package/dist/esm/react/web/ui/Bridge/swap-widget/select-token-ui.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/swap-widget/use-tokens.js +4 -2
- package/dist/esm/react/web/ui/Bridge/swap-widget/use-tokens.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/x402/common.js +60 -4
- package/dist/esm/x402/common.js.map +1 -1
- package/dist/esm/x402/facilitator.js +12 -4
- package/dist/esm/x402/facilitator.js.map +1 -1
- package/dist/esm/x402/fetchWithPayment.js +4 -4
- package/dist/esm/x402/fetchWithPayment.js.map +1 -1
- package/dist/esm/x402/schemas.js +29 -1
- package/dist/esm/x402/schemas.js.map +1 -1
- package/dist/esm/x402/types.js.map +1 -1
- package/dist/scripts/bridge-widget.js +84 -84
- package/dist/types/react/web/ui/Bridge/swap-widget/select-token-ui.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/swap-widget/use-tokens.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/x402/common.d.ts.map +1 -1
- package/dist/types/x402/facilitator.d.ts +7 -3
- package/dist/types/x402/facilitator.d.ts.map +1 -1
- package/dist/types/x402/fetchWithPayment.d.ts.map +1 -1
- package/dist/types/x402/schemas.d.ts +248 -0
- package/dist/types/x402/schemas.d.ts.map +1 -1
- package/dist/types/x402/types.d.ts +6 -4
- package/dist/types/x402/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/react/web/ui/Bridge/swap-widget/select-token-ui.tsx +9 -5
- package/src/react/web/ui/Bridge/swap-widget/use-tokens.ts +5 -2
- package/src/version.ts +1 -1
- package/src/x402/common.ts +87 -8
- package/src/x402/facilitator.ts +26 -7
- package/src/x402/fetchWithPayment.ts +8 -4
- package/src/x402/schemas.ts +39 -0
- package/src/x402/types.ts +10 -3
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,yEAAyE,CAAC"}
|
package/dist/esm/x402/common.js
CHANGED
|
@@ -6,6 +6,7 @@ import { getContract } from "../contract/contract.js";
|
|
|
6
6
|
import { isPermitSupported } from "../extensions/erc20/__generated__/IERC20Permit/write/permit.js";
|
|
7
7
|
import { isTransferWithAuthorizationSupported } from "../extensions/erc20/__generated__/USDC/write/transferWithAuthorization.js";
|
|
8
8
|
import { getAddress } from "../utils/address.js";
|
|
9
|
+
import { toUnits } from "../utils/units.js";
|
|
9
10
|
import { decodePayment } from "./encode.js";
|
|
10
11
|
import { networkToChainId, } from "./schemas.js";
|
|
11
12
|
import { x402Version, } from "./types.js";
|
|
@@ -157,12 +158,30 @@ async function processPriceToAtomicAmount(price, chainId, facilitator) {
|
|
|
157
158
|
};
|
|
158
159
|
}
|
|
159
160
|
asset = defaultAsset;
|
|
160
|
-
maxAmountRequired = (parsedUsdAmount
|
|
161
|
+
maxAmountRequired = toUnits(parsedUsdAmount.toString(), defaultAsset.decimals).toString();
|
|
161
162
|
}
|
|
162
163
|
else {
|
|
163
164
|
// Token amount in atomic units
|
|
164
165
|
maxAmountRequired = price.amount;
|
|
165
|
-
|
|
166
|
+
const tokenExtras = await getOrDetectTokenExtras({
|
|
167
|
+
facilitator,
|
|
168
|
+
partialAsset: price.asset,
|
|
169
|
+
chainId,
|
|
170
|
+
});
|
|
171
|
+
if (!tokenExtras) {
|
|
172
|
+
return {
|
|
173
|
+
error: `Unable to find token information for ${price.asset.address} on chain ${chainId}. Please specify the asset decimals and eip712 information in the asset options.`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
asset = {
|
|
177
|
+
address: price.asset.address,
|
|
178
|
+
decimals: tokenExtras.decimals,
|
|
179
|
+
eip712: {
|
|
180
|
+
name: tokenExtras.name,
|
|
181
|
+
version: tokenExtras.version,
|
|
182
|
+
primaryType: tokenExtras.primaryType,
|
|
183
|
+
},
|
|
184
|
+
};
|
|
166
185
|
}
|
|
167
186
|
return {
|
|
168
187
|
maxAmountRequired,
|
|
@@ -172,8 +191,7 @@ async function processPriceToAtomicAmount(price, chainId, facilitator) {
|
|
|
172
191
|
async function getDefaultAsset(chainId, facilitator) {
|
|
173
192
|
const supportedAssets = await facilitator.supported();
|
|
174
193
|
const matchingAsset = supportedAssets.kinds.find((supported) => supported.network === `eip155:${chainId}`);
|
|
175
|
-
const assetConfig = matchingAsset?.extra
|
|
176
|
-
?.defaultAsset;
|
|
194
|
+
const assetConfig = matchingAsset?.extra?.defaultAsset;
|
|
177
195
|
return assetConfig;
|
|
178
196
|
}
|
|
179
197
|
export async function getSupportedSignatureType(args) {
|
|
@@ -204,4 +222,42 @@ export async function getSupportedSignatureType(args) {
|
|
|
204
222
|
}
|
|
205
223
|
return undefined;
|
|
206
224
|
}
|
|
225
|
+
async function getOrDetectTokenExtras(args) {
|
|
226
|
+
const { facilitator, partialAsset, chainId } = args;
|
|
227
|
+
if (partialAsset.eip712?.name &&
|
|
228
|
+
partialAsset.eip712?.version &&
|
|
229
|
+
partialAsset.decimals !== undefined) {
|
|
230
|
+
return {
|
|
231
|
+
name: partialAsset.eip712.name,
|
|
232
|
+
version: partialAsset.eip712.version,
|
|
233
|
+
decimals: partialAsset.decimals,
|
|
234
|
+
primaryType: partialAsset.eip712.primaryType,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
// read from facilitator
|
|
238
|
+
const response = await facilitator
|
|
239
|
+
.supported({
|
|
240
|
+
chainId,
|
|
241
|
+
tokenAddress: partialAsset.address,
|
|
242
|
+
})
|
|
243
|
+
.catch(() => {
|
|
244
|
+
return {
|
|
245
|
+
kinds: [],
|
|
246
|
+
};
|
|
247
|
+
});
|
|
248
|
+
const exactScheme = response.kinds?.find((kind) => kind.scheme === "exact");
|
|
249
|
+
if (!exactScheme) {
|
|
250
|
+
return undefined;
|
|
251
|
+
}
|
|
252
|
+
const supportedAsset = exactScheme.extra?.supportedAssets?.find((asset) => asset.address.toLowerCase() === partialAsset.address.toLowerCase());
|
|
253
|
+
if (!supportedAsset) {
|
|
254
|
+
return undefined;
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
name: supportedAsset.eip712.name,
|
|
258
|
+
version: supportedAsset.eip712.version,
|
|
259
|
+
decimals: supportedAsset.decimals,
|
|
260
|
+
primaryType: supportedAsset.eip712.primaryType,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
207
263
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/x402/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAc,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gEAAgE,CAAC;AACnG,OAAO,EAAE,oCAAoC,EAAE,MAAM,2EAA2E,CAAC;AACjI,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAC;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/x402/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,6 +119,7 @@ export function facilitator(config) {
|
|
|
119
119
|
x402Version: payload.x402Version,
|
|
120
120
|
paymentPayload: payload,
|
|
121
121
|
paymentRequirements: paymentRequirements,
|
|
122
|
+
...(config.waitUtil ? { waitUtil: config.waitUtil } : {}),
|
|
122
123
|
}),
|
|
123
124
|
});
|
|
124
125
|
if (res.status !== 200) {
|
|
@@ -133,21 +134,28 @@ export function facilitator(config) {
|
|
|
133
134
|
*
|
|
134
135
|
* @returns A promise that resolves to the supported payment kinds
|
|
135
136
|
*/
|
|
136
|
-
async supported() {
|
|
137
|
+
async supported(filters) {
|
|
137
138
|
const url = config.baseUrl ?? DEFAULT_BASE_URL;
|
|
138
139
|
return withCache(async () => {
|
|
139
140
|
let headers = { "Content-Type": "application/json" };
|
|
140
141
|
const authHeaders = await facilitator.createAuthHeaders();
|
|
141
142
|
headers = { ...headers, ...authHeaders.supported };
|
|
142
|
-
const
|
|
143
|
+
const supportedUrl = new URL(`${url}/supported`);
|
|
144
|
+
if (filters?.chainId) {
|
|
145
|
+
supportedUrl.searchParams.set("chainId", filters.chainId.toString());
|
|
146
|
+
}
|
|
147
|
+
if (filters?.tokenAddress) {
|
|
148
|
+
supportedUrl.searchParams.set("tokenAddress", filters.tokenAddress);
|
|
149
|
+
}
|
|
150
|
+
const res = await fetch(supportedUrl.toString(), { headers });
|
|
143
151
|
if (res.status !== 200) {
|
|
144
152
|
throw new Error(`Failed to get supported payment kinds: ${res.statusText}`);
|
|
145
153
|
}
|
|
146
154
|
const data = await res.json();
|
|
147
155
|
return data;
|
|
148
156
|
}, {
|
|
149
|
-
cacheKey: `supported-payment-kinds-${url}`,
|
|
150
|
-
cacheTime: 1000 * 60 * 60 *
|
|
157
|
+
cacheKey: `supported-payment-kinds-${url}-${filters?.chainId}-${filters?.tokenAddress}2`,
|
|
158
|
+
cacheTime: 1000 * 60 * 60 * 1, // 1 hour
|
|
151
159
|
});
|
|
152
160
|
},
|
|
153
161
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../../src/x402/facilitator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../../src/x402/facilitator.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ export function wrapFetchWithPayment(fetch, client, wallet, maxValue = BigInt(1
|
|
|
47
47
|
if (response.status !== 402) {
|
|
48
48
|
return response;
|
|
49
49
|
}
|
|
50
|
-
const { x402Version, accepts } = (await response.json());
|
|
50
|
+
const { x402Version, accepts, error } = (await response.json());
|
|
51
51
|
const parsedPaymentRequirements = accepts
|
|
52
52
|
.map((x) => RequestedPaymentRequirementsSchema.parse(x))
|
|
53
53
|
.filter((x) => x.scheme === "exact"); // TODO (402): accept other schemes
|
|
@@ -57,6 +57,9 @@ export function wrapFetchWithPayment(fetch, client, wallet, maxValue = BigInt(1
|
|
|
57
57
|
throw new Error("Wallet not connected. Please connect your wallet to continue.");
|
|
58
58
|
}
|
|
59
59
|
const selectedPaymentRequirements = defaultPaymentRequirementsSelector(parsedPaymentRequirements, chain.id, "exact");
|
|
60
|
+
if (!selectedPaymentRequirements) {
|
|
61
|
+
throw new Error(`No suitable payment requirements found for chain ${chain.id}. ${error}`);
|
|
62
|
+
}
|
|
60
63
|
if (BigInt(selectedPaymentRequirements.maxAmountRequired) > maxValue) {
|
|
61
64
|
throw new Error(`Payment amount exceeds maximum allowed (currently set to ${maxValue} in base units)`);
|
|
62
65
|
}
|
|
@@ -101,9 +104,6 @@ function defaultPaymentRequirementsSelector(paymentRequirements, chainId, scheme
|
|
|
101
104
|
// if no matching payment requirements, use the first payment requirement
|
|
102
105
|
// and switch the wallet to that chain
|
|
103
106
|
const firstPaymentRequirement = paymentRequirements.find((x) => x.scheme === scheme);
|
|
104
|
-
if (!firstPaymentRequirement) {
|
|
105
|
-
throw new Error("No suitable payment requirements found");
|
|
106
|
-
}
|
|
107
107
|
return firstPaymentRequirement;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchWithPayment.js","sourceRoot":"","sources":["../../../src/x402/fetchWithPayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EACL,gBAAgB,EAEhB,kCAAkC,GACnC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAA8B,EAC9B,MAAsB,EACtB,MAAc,EACd,WAAmB,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEtC,OAAO,KAAK,EAAE,KAAkB,EAAE,IAAkB,EAAE,EAAE;QACtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"fetchWithPayment.js","sourceRoot":"","sources":["../../../src/x402/fetchWithPayment.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/x402/schemas.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EvmNetworkToChainId, PaymentPayloadSchema, PaymentRequirementsSchema, SettleResponseSchema, } from "x402/types";
|
|
1
|
+
import { EvmNetworkToChainId, PaymentPayloadSchema, PaymentRequirementsSchema, SettleResponseSchema, SupportedPaymentKindsResponseSchema, } from "x402/types";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
const FacilitatorNetworkSchema = z.union([
|
|
4
4
|
z.literal("base-sepolia"),
|
|
@@ -23,6 +23,34 @@ export const RequestedPaymentRequirementsSchema = PaymentRequirementsSchema.exte
|
|
|
23
23
|
const FacilitatorSettleResponseSchema = SettleResponseSchema.extend({
|
|
24
24
|
network: FacilitatorNetworkSchema,
|
|
25
25
|
});
|
|
26
|
+
export const SupportedSignatureTypeSchema = z.enum([
|
|
27
|
+
"TransferWithAuthorization",
|
|
28
|
+
"Permit",
|
|
29
|
+
]);
|
|
30
|
+
export const FacilitatorSupportedAssetSchema = z.object({
|
|
31
|
+
address: z.string(),
|
|
32
|
+
decimals: z.number(),
|
|
33
|
+
eip712: z.object({
|
|
34
|
+
name: z.string(),
|
|
35
|
+
version: z.string(),
|
|
36
|
+
primaryType: SupportedSignatureTypeSchema,
|
|
37
|
+
}),
|
|
38
|
+
});
|
|
39
|
+
const FacilitatorSupportedResponseSchema = SupportedPaymentKindsResponseSchema.extend({
|
|
40
|
+
kinds: z.array(z.object({
|
|
41
|
+
x402Version: z.literal(1),
|
|
42
|
+
scheme: z.literal("exact"),
|
|
43
|
+
network: FacilitatorNetworkSchema,
|
|
44
|
+
extra: z
|
|
45
|
+
.object({
|
|
46
|
+
defaultAsset: FacilitatorSupportedAssetSchema.optional(),
|
|
47
|
+
supportedAssets: z
|
|
48
|
+
.array(FacilitatorSupportedAssetSchema)
|
|
49
|
+
.optional(),
|
|
50
|
+
})
|
|
51
|
+
.optional(),
|
|
52
|
+
})),
|
|
53
|
+
}).describe("Supported payment kinds for this facilitator");
|
|
26
54
|
export function networkToChainId(network) {
|
|
27
55
|
if (typeof network === "object") {
|
|
28
56
|
return network.id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/x402/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAGnB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/x402/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/x402/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/x402/types.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC"}
|