thirdweb 5.107.1-nightly-51177fbe17153b711d80ec87b43aadc8ca12fb9e-20250922000346 → 5.108.0-nightly-a94f22928a662a5aff7a203fc2d383d9fa0907ec-20250923000340

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.
Files changed (81) hide show
  1. package/dist/cjs/exports/x402.js +6 -1
  2. package/dist/cjs/exports/x402.js.map +1 -1
  3. package/dist/cjs/gas/fee-data.js +1 -0
  4. package/dist/cjs/gas/fee-data.js.map +1 -1
  5. package/dist/cjs/react/core/utils/defaultTokens.js +2 -8
  6. package/dist/cjs/react/core/utils/defaultTokens.js.map +1 -1
  7. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js +18 -14
  8. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
  9. package/dist/cjs/react/web/ui/Bridge/BuyWidget.js +15 -6
  10. package/dist/cjs/react/web/ui/Bridge/BuyWidget.js.map +1 -1
  11. package/dist/cjs/version.js +1 -1
  12. package/dist/cjs/x402/encode.js +71 -0
  13. package/dist/cjs/x402/encode.js.map +1 -0
  14. package/dist/cjs/x402/facilitator.js +83 -2
  15. package/dist/cjs/x402/facilitator.js.map +1 -1
  16. package/dist/cjs/x402/fetchWithPayment.js +7 -15
  17. package/dist/cjs/x402/fetchWithPayment.js.map +1 -1
  18. package/dist/cjs/x402/schemas.js +50 -0
  19. package/dist/cjs/x402/schemas.js.map +1 -0
  20. package/dist/cjs/x402/sign.js +148 -0
  21. package/dist/cjs/x402/sign.js.map +1 -0
  22. package/dist/cjs/x402/verify-payment.js +341 -0
  23. package/dist/cjs/x402/verify-payment.js.map +1 -0
  24. package/dist/esm/exports/x402.js +2 -0
  25. package/dist/esm/exports/x402.js.map +1 -1
  26. package/dist/esm/gas/fee-data.js +1 -0
  27. package/dist/esm/gas/fee-data.js.map +1 -1
  28. package/dist/esm/react/core/utils/defaultTokens.js +2 -8
  29. package/dist/esm/react/core/utils/defaultTokens.js.map +1 -1
  30. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +18 -14
  31. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
  32. package/dist/esm/react/web/ui/Bridge/BuyWidget.js +15 -6
  33. package/dist/esm/react/web/ui/Bridge/BuyWidget.js.map +1 -1
  34. package/dist/esm/version.js +1 -1
  35. package/dist/esm/x402/encode.js +66 -0
  36. package/dist/esm/x402/encode.js.map +1 -0
  37. package/dist/esm/x402/facilitator.js +83 -2
  38. package/dist/esm/x402/facilitator.js.map +1 -1
  39. package/dist/esm/x402/fetchWithPayment.js +8 -16
  40. package/dist/esm/x402/fetchWithPayment.js.map +1 -1
  41. package/dist/esm/x402/schemas.js +46 -0
  42. package/dist/esm/x402/schemas.js.map +1 -0
  43. package/dist/esm/x402/sign.js +145 -0
  44. package/dist/esm/x402/sign.js.map +1 -0
  45. package/dist/esm/x402/verify-payment.js +338 -0
  46. package/dist/esm/x402/verify-payment.js.map +1 -0
  47. package/dist/types/exports/x402.d.ts +2 -0
  48. package/dist/types/exports/x402.d.ts.map +1 -1
  49. package/dist/types/gas/fee-data.d.ts.map +1 -1
  50. package/dist/types/react/core/utils/defaultTokens.d.ts +2 -7
  51. package/dist/types/react/core/utils/defaultTokens.d.ts.map +1 -1
  52. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts +4 -3
  53. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +1 -1
  54. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +7 -3
  55. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts.map +1 -1
  56. package/dist/types/version.d.ts +1 -1
  57. package/dist/types/x402/encode.d.ts +23 -0
  58. package/dist/types/x402/encode.d.ts.map +1 -0
  59. package/dist/types/x402/facilitator.d.ts +44 -3
  60. package/dist/types/x402/facilitator.d.ts.map +1 -1
  61. package/dist/types/x402/fetchWithPayment.d.ts +1 -1
  62. package/dist/types/x402/fetchWithPayment.d.ts.map +1 -1
  63. package/dist/types/x402/schemas.d.ts +164 -0
  64. package/dist/types/x402/schemas.d.ts.map +1 -0
  65. package/dist/types/x402/sign.d.ts +12 -0
  66. package/dist/types/x402/sign.d.ts.map +1 -0
  67. package/dist/types/x402/verify-payment.d.ts +158 -0
  68. package/dist/types/x402/verify-payment.d.ts.map +1 -0
  69. package/package.json +3 -3
  70. package/src/exports/x402.ts +6 -0
  71. package/src/gas/fee-data.ts +1 -0
  72. package/src/react/core/utils/defaultTokens.ts +2 -8
  73. package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +42 -31
  74. package/src/react/web/ui/Bridge/BuyWidget.tsx +24 -9
  75. package/src/version.ts +1 -1
  76. package/src/x402/encode.ts +81 -0
  77. package/src/x402/facilitator.ts +114 -6
  78. package/src/x402/fetchWithPayment.ts +13 -27
  79. package/src/x402/schemas.ts +76 -0
  80. package/src/x402/sign.ts +206 -0
  81. package/src/x402/verify-payment.ts +469 -0
@@ -0,0 +1,145 @@
1
+ import { getAddress } from "../utils/address.js";
2
+ import { toHex } from "../utils/encoding/hex.js";
3
+ import { encodePayment } from "./encode.js";
4
+ import { networkToChainId, } from "./schemas.js";
5
+ /**
6
+ * Prepares an unsigned payment header with the given sender address and payment requirements.
7
+ *
8
+ * @param from - The sender's address from which the payment will be made
9
+ * @param x402Version - The version of the X402 protocol to use
10
+ * @param paymentRequirements - The payment requirements containing scheme and network information
11
+ * @returns An unsigned payment payload containing authorization details
12
+ */
13
+ function preparePaymentHeader(from, x402Version, paymentRequirements) {
14
+ const nonce = createNonce();
15
+ const validAfter = BigInt(Math.floor(Date.now() / 1000) - 600).toString();
16
+ const validBefore = BigInt(Math.floor(Date.now() / 1000 + paymentRequirements.maxTimeoutSeconds)).toString();
17
+ return {
18
+ x402Version,
19
+ scheme: paymentRequirements.scheme,
20
+ network: paymentRequirements.network,
21
+ payload: {
22
+ signature: undefined,
23
+ authorization: {
24
+ from,
25
+ to: paymentRequirements.payTo,
26
+ value: paymentRequirements.maxAmountRequired,
27
+ validAfter: validAfter.toString(),
28
+ validBefore: validBefore.toString(),
29
+ nonce,
30
+ },
31
+ },
32
+ };
33
+ }
34
+ /**
35
+ * Signs a payment header using the provided client and payment requirements.
36
+ *
37
+ * @param client - The signer wallet instance used to sign the payment header
38
+ * @param paymentRequirements - The payment requirements containing scheme and network information
39
+ * @param unsignedPaymentHeader - The unsigned payment payload to be signed
40
+ * @returns A promise that resolves to the signed payment payload
41
+ */
42
+ async function signPaymentHeader(account, paymentRequirements, unsignedPaymentHeader) {
43
+ const { signature } = await signAuthorization(account, unsignedPaymentHeader.payload.authorization, paymentRequirements);
44
+ return {
45
+ ...unsignedPaymentHeader,
46
+ payload: {
47
+ ...unsignedPaymentHeader.payload,
48
+ signature,
49
+ },
50
+ };
51
+ }
52
+ /**
53
+ * Creates a complete payment payload by preparing and signing a payment header.
54
+ *
55
+ * @param client - The signer wallet instance used to create and sign the payment
56
+ * @param x402Version - The version of the X402 protocol to use
57
+ * @param paymentRequirements - The payment requirements containing scheme and network information
58
+ * @returns A promise that resolves to the complete signed payment payload
59
+ */
60
+ async function createPayment(account, x402Version, paymentRequirements) {
61
+ const from = getAddress(account.address);
62
+ const unsignedPaymentHeader = preparePaymentHeader(from, x402Version, paymentRequirements);
63
+ return signPaymentHeader(account, paymentRequirements, unsignedPaymentHeader);
64
+ }
65
+ /**
66
+ * Creates and encodes a payment header for the given client and payment requirements.
67
+ *
68
+ * @param client - The signer wallet instance used to create the payment header
69
+ * @param x402Version - The version of the X402 protocol to use
70
+ * @param paymentRequirements - The payment requirements containing scheme and network information
71
+ * @returns A promise that resolves to the encoded payment header string
72
+ */
73
+ export async function createPaymentHeader(account, x402Version, paymentRequirements) {
74
+ const payment = await createPayment(account, x402Version, paymentRequirements);
75
+ return encodePayment(payment);
76
+ }
77
+ /**
78
+ * Signs an EIP-3009 authorization for USDC transfer
79
+ *
80
+ * @param walletClient - The wallet client that will sign the authorization
81
+ * @param params - The authorization parameters containing transfer details
82
+ * @param params.from - The address tokens will be transferred from
83
+ * @param params.to - The address tokens will be transferred to
84
+ * @param params.value - The amount of USDC tokens to transfer (in base units)
85
+ * @param params.validAfter - Unix timestamp after which the authorization becomes valid
86
+ * @param params.validBefore - Unix timestamp before which the authorization is valid
87
+ * @param params.nonce - Random 32-byte nonce to prevent replay attacks
88
+ * @param paymentRequirements - The payment requirements containing asset and network information
89
+ * @param paymentRequirements.asset - The address of the USDC contract
90
+ * @param paymentRequirements.network - The network where the USDC contract exists
91
+ * @param paymentRequirements.extra - The extra information containing the name and version of the ERC20 contract
92
+ * @returns The signature for the authorization
93
+ */
94
+ async function signAuthorization(account, { from, to, value, validAfter, validBefore, nonce, }, { asset, network, extra }) {
95
+ const chainId = networkToChainId(network);
96
+ const name = extra?.name;
97
+ const version = extra?.version;
98
+ // TODO (402): detect permit vs transfer on asset contract
99
+ const data = {
100
+ types: {
101
+ TransferWithAuthorization: [
102
+ { name: "from", type: "address" },
103
+ { name: "to", type: "address" },
104
+ { name: "value", type: "uint256" },
105
+ { name: "validAfter", type: "uint256" },
106
+ { name: "validBefore", type: "uint256" },
107
+ { name: "nonce", type: "bytes32" },
108
+ ],
109
+ },
110
+ domain: {
111
+ name,
112
+ version,
113
+ chainId,
114
+ verifyingContract: getAddress(asset),
115
+ },
116
+ primaryType: "TransferWithAuthorization",
117
+ message: {
118
+ from: getAddress(from),
119
+ to: getAddress(to),
120
+ value,
121
+ validAfter,
122
+ validBefore,
123
+ nonce: nonce,
124
+ },
125
+ };
126
+ const signature = await account.signTypedData(data);
127
+ return {
128
+ signature,
129
+ };
130
+ }
131
+ /**
132
+ * Generates a random 32-byte nonce for use in authorization signatures
133
+ *
134
+ * @returns A random 32-byte nonce as a hex string
135
+ */
136
+ function createNonce() {
137
+ const cryptoObj = typeof globalThis.crypto !== "undefined" &&
138
+ typeof globalThis.crypto.getRandomValues === "function"
139
+ ? globalThis.crypto
140
+ : // Dynamic require is needed to support node.js
141
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
142
+ require("crypto").webcrypto;
143
+ return toHex(cryptoObj.getRandomValues(new Uint8Array(32)));
144
+ }
145
+ //# sourceMappingURL=sign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/x402/sign.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,338 @@
1
+ import { moneySchema, SupportedEVMNetworks, } from "x402/types";
2
+ import { getAddress } from "../utils/address.js";
3
+ import { stringify } from "../utils/json.js";
4
+ import { decodePayment, safeBase64Encode } from "./encode.js";
5
+ import { networkToChainId, } from "./schemas.js";
6
+ const x402Version = 1;
7
+ /**
8
+ * Verifies and processes X402 payments for protected resources.
9
+ *
10
+ * This function implements the X402 payment protocol, verifying payment proofs
11
+ * and settling payments through a facilitator service. It handles the complete
12
+ * payment flow from validation to settlement.
13
+ *
14
+ * @param args - Configuration object containing payment verification parameters
15
+ * @returns A promise that resolves to either a successful payment result (200) or payment required error (402)
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * // Usage in a Next.js API route
20
+ * import { verifyPayment, facilitator } from "thirdweb/x402";
21
+ * import { createThirdwebClient } from "thirdweb";
22
+ *
23
+ * const client = createThirdwebClient({
24
+ * secretKey: process.env.THIRDWEB_SECRET_KEY,
25
+ * });
26
+ *
27
+ * const thirdwebFacilitator = facilitator({
28
+ * client,
29
+ * serverWalletAddress: "0x1234567890123456789012345678901234567890",
30
+ * });
31
+ *
32
+ * export async function GET(request: Request) {
33
+ * const paymentData = request.headers.get("x-payment");
34
+ *
35
+ * const result = await verifyPayment({
36
+ * resourceUrl: "https://api.example.com/premium-content",
37
+ * method: "GET",
38
+ * paymentData,
39
+ * payTo: "0x1234567890123456789012345678901234567890",
40
+ * network: "eip155:84532", // CAIP2 format: "eip155:<chain_id>"
41
+ * price: "$0.10", // or { amount: "100000", asset: { address: "0x...", decimals: 6 } }
42
+ * facilitator: thirdwebFacilitator,
43
+ * routeConfig: {
44
+ * description: "Access to premium API content",
45
+ * mimeType: "application/json",
46
+ * maxTimeoutSeconds: 300,
47
+ * },
48
+ * });
49
+ *
50
+ * if (result.status === 200) {
51
+ * // Payment verified and settled successfully
52
+ * return Response.json({ data: "premium content" }, {
53
+ * headers: result.responseHeaders,
54
+ * });
55
+ * } else {
56
+ * // Payment required
57
+ * return Response.json(result.responseBody, {
58
+ * status: result.status,
59
+ * headers: result.responseHeaders,
60
+ * });
61
+ * }
62
+ * }
63
+ * ```
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * // Usage in Express middleware
68
+ * import express from "express";
69
+ * import { verifyPayment, facilitator } from "thirdweb/x402";
70
+ *
71
+ * const app = express();
72
+ *
73
+ * async function paymentMiddleware(req, res, next) {
74
+ * const result = await verifyPayment({
75
+ * resourceUrl: `${req.protocol}://${req.get('host')}${req.originalUrl}`,
76
+ * method: req.method,
77
+ * paymentData: req.headers["x-payment"],
78
+ * payTo: "0x1234567890123456789012345678901234567890",
79
+ * network: "eip155:8453", // CAIP2 format: "eip155:<chain_id>"
80
+ * price: "$0.05",
81
+ * facilitator: thirdwebFacilitator,
82
+ * });
83
+ *
84
+ * if (result.status === 200) {
85
+ * // Set payment receipt headers and continue
86
+ * Object.entries(result.responseHeaders).forEach(([key, value]) => {
87
+ * res.setHeader(key, value);
88
+ * });
89
+ * next();
90
+ * } else {
91
+ * // Return payment required response
92
+ * res.status(result.status)
93
+ * .set(result.responseHeaders)
94
+ * .json(result.responseBody);
95
+ * }
96
+ * }
97
+ *
98
+ * app.get("/api/premium", paymentMiddleware, (req, res) => {
99
+ * res.json({ message: "This is premium content!" });
100
+ * });
101
+ * ```
102
+ *
103
+ * @public
104
+ * @beta
105
+ * @bridge x402
106
+ */
107
+ export async function verifyPayment(args) {
108
+ const { price, network, routeConfig = {}, resourceUrl, method, payTo, paymentData: paymentProof, facilitator, } = args;
109
+ const { description, mimeType, maxTimeoutSeconds, inputSchema, outputSchema, errorMessages, discoverable, } = routeConfig;
110
+ const atomicAmountForAsset = await processPriceToAtomicAmount(price, network, facilitator);
111
+ if ("error" in atomicAmountForAsset) {
112
+ return {
113
+ status: 402,
114
+ responseHeaders: { "Content-Type": "application/json" },
115
+ responseBody: {
116
+ x402Version,
117
+ error: atomicAmountForAsset.error,
118
+ accepts: [],
119
+ },
120
+ };
121
+ }
122
+ const { maxAmountRequired, asset } = atomicAmountForAsset;
123
+ const paymentRequirements = [];
124
+ if (SupportedEVMNetworks.includes(network) ||
125
+ network.startsWith("eip155:")) {
126
+ paymentRequirements.push({
127
+ scheme: "exact",
128
+ network,
129
+ maxAmountRequired,
130
+ resource: resourceUrl,
131
+ description: description ?? "",
132
+ mimeType: mimeType ?? "application/json",
133
+ payTo: getAddress(payTo),
134
+ maxTimeoutSeconds: maxTimeoutSeconds ?? 300,
135
+ asset: getAddress(asset.address),
136
+ // TODO: Rename outputSchema to requestStructure
137
+ outputSchema: {
138
+ input: {
139
+ type: "http",
140
+ method,
141
+ discoverable: discoverable ?? true,
142
+ ...inputSchema,
143
+ },
144
+ output: outputSchema,
145
+ },
146
+ extra: asset.eip712,
147
+ });
148
+ }
149
+ else {
150
+ return {
151
+ status: 402,
152
+ responseHeaders: {
153
+ "Content-Type": "application/json",
154
+ },
155
+ responseBody: {
156
+ x402Version,
157
+ error: `Unsupported network: ${network}`,
158
+ accepts: paymentRequirements,
159
+ },
160
+ };
161
+ }
162
+ // Check for payment header
163
+ if (!paymentProof) {
164
+ return {
165
+ status: 402,
166
+ responseHeaders: {
167
+ "Content-Type": "application/json",
168
+ },
169
+ responseBody: {
170
+ x402Version,
171
+ error: errorMessages?.paymentRequired || "X-PAYMENT header is required",
172
+ accepts: paymentRequirements,
173
+ },
174
+ };
175
+ }
176
+ // Verify payment
177
+ let decodedPayment;
178
+ try {
179
+ decodedPayment = decodePayment(paymentProof);
180
+ decodedPayment.x402Version = x402Version;
181
+ }
182
+ catch (error) {
183
+ return {
184
+ status: 402,
185
+ responseHeaders: {
186
+ "Content-Type": "application/json",
187
+ },
188
+ responseBody: {
189
+ x402Version,
190
+ error: errorMessages?.invalidPayment ||
191
+ (error instanceof Error ? error.message : "Invalid payment"),
192
+ accepts: paymentRequirements,
193
+ },
194
+ };
195
+ }
196
+ const selectedPaymentRequirements = paymentRequirements.find((value) => value.scheme === decodedPayment.scheme &&
197
+ value.network === decodedPayment.network);
198
+ if (!selectedPaymentRequirements) {
199
+ return {
200
+ status: 402,
201
+ responseHeaders: {
202
+ "Content-Type": "application/json",
203
+ },
204
+ responseBody: {
205
+ x402Version,
206
+ error: errorMessages?.noMatchingRequirements ||
207
+ "Unable to find matching payment requirements",
208
+ accepts: paymentRequirements,
209
+ },
210
+ };
211
+ }
212
+ try {
213
+ const verification = await facilitator.verify(decodedPayment, selectedPaymentRequirements);
214
+ if (!verification.isValid) {
215
+ return {
216
+ status: 402,
217
+ responseHeaders: {
218
+ "Content-Type": "application/json",
219
+ },
220
+ responseBody: {
221
+ x402Version,
222
+ error: errorMessages?.verificationFailed ||
223
+ verification.invalidReason ||
224
+ "Payment verification failed",
225
+ accepts: paymentRequirements,
226
+ payer: verification.payer,
227
+ },
228
+ };
229
+ }
230
+ }
231
+ catch (error) {
232
+ return {
233
+ status: 402,
234
+ responseHeaders: {
235
+ "Content-Type": "application/json",
236
+ },
237
+ responseBody: {
238
+ x402Version,
239
+ error: errorMessages?.verificationFailed ||
240
+ (error instanceof Error
241
+ ? error.message
242
+ : "Payment Verification error"),
243
+ accepts: paymentRequirements,
244
+ },
245
+ };
246
+ }
247
+ // Settle payment
248
+ try {
249
+ const settlement = await facilitator.settle(decodedPayment, selectedPaymentRequirements);
250
+ if (settlement.success) {
251
+ return {
252
+ status: 200,
253
+ paymentReceipt: settlement,
254
+ responseHeaders: {
255
+ "Access-Control-Expose-Headers": "X-PAYMENT-RESPONSE",
256
+ "X-PAYMENT-RESPONSE": safeBase64Encode(stringify(settlement)),
257
+ },
258
+ };
259
+ }
260
+ else {
261
+ return {
262
+ status: 402,
263
+ responseHeaders: {
264
+ "Content-Type": "application/json",
265
+ },
266
+ responseBody: {
267
+ x402Version,
268
+ error: errorMessages?.settlementFailed ||
269
+ settlement.errorReason ||
270
+ "Settlement failed",
271
+ accepts: paymentRequirements,
272
+ },
273
+ };
274
+ }
275
+ }
276
+ catch (error) {
277
+ return {
278
+ status: 402,
279
+ responseHeaders: {
280
+ "Content-Type": "application/json",
281
+ },
282
+ responseBody: {
283
+ x402Version,
284
+ error: errorMessages?.settlementFailed ||
285
+ (error instanceof Error ? error.message : "Settlement error"),
286
+ accepts: paymentRequirements,
287
+ },
288
+ };
289
+ }
290
+ }
291
+ /**
292
+ * Parses the amount from the given price
293
+ *
294
+ * @param price - The price to parse
295
+ * @param network - The network to get the default asset for
296
+ * @returns The parsed amount or an error message
297
+ */
298
+ async function processPriceToAtomicAmount(price, network, facilitator) {
299
+ // Handle USDC amount (string) or token amount (ERC20TokenAmount)
300
+ let maxAmountRequired;
301
+ let asset;
302
+ if (typeof price === "string" || typeof price === "number") {
303
+ // USDC amount in dollars
304
+ const parsedAmount = moneySchema.safeParse(price);
305
+ if (!parsedAmount.success) {
306
+ return {
307
+ error: `Invalid price (price: ${price}). Must be in the form "$3.10", 0.10, "0.001", ${parsedAmount.error}`,
308
+ };
309
+ }
310
+ const parsedUsdAmount = parsedAmount.data;
311
+ const defaultAsset = await getDefaultAsset(network, facilitator);
312
+ if (!defaultAsset) {
313
+ return {
314
+ error: `Unable to get default asset on ${network}. Please specify an asset in the payment requirements.`,
315
+ };
316
+ }
317
+ asset = defaultAsset;
318
+ maxAmountRequired = (parsedUsdAmount * 10 ** asset.decimals).toString();
319
+ }
320
+ else {
321
+ // Token amount in atomic units
322
+ maxAmountRequired = price.amount;
323
+ asset = price.asset;
324
+ }
325
+ return {
326
+ maxAmountRequired,
327
+ asset,
328
+ };
329
+ }
330
+ async function getDefaultAsset(network, facilitator) {
331
+ const supportedAssets = await facilitator.supported();
332
+ const chainId = networkToChainId(network);
333
+ const matchingAsset = supportedAssets.kinds.find((supported) => supported.network === `eip155:${chainId}`);
334
+ const assetConfig = matchingAsset?.extra
335
+ ?.defaultAsset;
336
+ return assetConfig;
337
+ }
338
+ //# sourceMappingURL=verify-payment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-payment.js","sourceRoot":"","sources":["../../../src/x402/verify-payment.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export { decodePayment, encodePayment } from "../x402/encode.js";
1
2
  export { facilitator, type ThirdwebX402FacilitatorConfig, } from "../x402/facilitator.js";
2
3
  export { wrapFetchWithPayment } from "../x402/fetchWithPayment.js";
4
+ export { type VerifyPaymentArgs, type VerifyPaymentResult, verifyPayment, } from "../x402/verify-payment.js";
3
5
  //# sourceMappingURL=x402.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../../src/exports/x402.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../../src/exports/x402.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,WAAW,EACX,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,aAAa,GACd,MAAM,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fee-data.d.ts","sourceRoot":"","sources":["../../../src/gas/fee-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAWjF,KAAK,aAAa,GACd;IACE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,oBAAoB,CAAC,EAAE,KAAK,CAAC;CAC9B,CAAC;AAyBN;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,aAAa,CAAC,CAuDxB;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO;;;;;;;;GAwBlB"}
1
+ {"version":3,"file":"fee-data.d.ts","sourceRoot":"","sources":["../../../src/gas/fee-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAWjF,KAAK,aAAa,GACd;IACE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,oBAAoB,CAAC,EAAE,KAAK,CAAC;CAC9B,CAAC;AA0BN;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,aAAa,CAAC,CAuDxB;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO;;;;;;;;GAwBlB"}
@@ -208,13 +208,8 @@ declare const DEFAULT_TOKENS: {
208
208
  readonly name: "USD Coin";
209
209
  readonly symbol: "USDC";
210
210
  }];
211
- readonly "421613": readonly [{
212
- readonly address: "0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3";
213
- readonly icon: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAwIiBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNiIgZmlsbD0iIzYyN0VFQSIvPjxnIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZmlsbC1vcGFjaXR5PSIuNjAyIiBkPSJNMTYuNDk4IDR2OC44N2w3LjQ5NyAzLjM1eiIvPjxwYXRoIGQ9Ik0xNi40OTggNEw5IDE2LjIybDcuNDk4LTMuMzV6Ii8+PHBhdGggZmlsbC1vcGFjaXR5PSIuNjAyIiBkPSJNMTYuNDk4IDIxLjk2OHY2LjAyN0wyNCAxNy42MTZ6Ii8+PHBhdGggZD0iTTE2LjQ5OCAyNy45OTV2LTYuMDI4TDkgMTcuNjE2eiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjIiIGQ9Ik0xNi40OTggMjAuNTczbDcuNDk3LTQuMzUzLTcuNDk3LTMuMzQ4eiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjYwMiIgZD0iTTkgMTYuMjJsNy40OTggNC4zNTN2LTcuNzAxeiIvPjwvZz48L2c+PC9zdmc+";
214
- readonly name: "Wrapped Ether";
215
- readonly symbol: "WETH";
216
- }, {
217
- readonly address: "0xfd064A18f3BF249cf1f87FC203E90D8f650f2d63";
211
+ readonly "421614": readonly [{
212
+ readonly address: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d";
218
213
  readonly icon: "data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9Ijg2OTc3Njg0LTEyZGItNDg1MC04ZjMwLTIzM2E3YzI2N2QxMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjAwMCAyMDAwIj4KICA8cGF0aCBkPSJNMTAwMCAyMDAwYzU1NC4xNyAwIDEwMDAtNDQ1LjgzIDEwMDAtMTAwMFMxNTU0LjE3IDAgMTAwMCAwIDAgNDQ1LjgzIDAgMTAwMHM0NDUuODMgMTAwMCAxMDAwIDEwMDB6IiBmaWxsPSIjMjc3NWNhIi8+CiAgPHBhdGggZD0iTTEyNzUgMTE1OC4zM2MwLTE0NS44My04Ny41LTE5NS44My0yNjIuNS0yMTYuNjYtMTI1LTE2LjY3LTE1MC01MC0xNTAtMTA4LjM0czQxLjY3LTk1LjgzIDEyNS05NS44M2M3NSAwIDExNi42NyAyNSAxMzcuNSA4Ny41IDQuMTcgMTIuNSAxNi42NyAyMC44MyAyOS4xNyAyMC44M2g2Ni42NmMxNi42NyAwIDI5LjE3LTEyLjUgMjkuMTctMjkuMTZ2LTQuMTdjLTE2LjY3LTkxLjY3LTkxLjY3LTE2Mi41LTE4Ny41LTE3MC44M3YtMTAwYzAtMTYuNjctMTIuNS0yOS4xNy0zMy4zMy0zMy4zNGgtNjIuNWMtMTYuNjcgMC0yOS4xNyAxMi41LTMzLjM0IDMzLjM0djk1LjgzYy0xMjUgMTYuNjctMjA0LjE2IDEwMC0yMDQuMTYgMjA0LjE3IDAgMTM3LjUgODMuMzMgMTkxLjY2IDI1OC4zMyAyMTIuNSAxMTYuNjcgMjAuODMgMTU0LjE3IDQ1LjgzIDE1NC4xNyAxMTIuNXMtNTguMzQgMTEyLjUtMTM3LjUgMTEyLjVjLTEwOC4zNCAwLTE0NS44NC00NS44NC0xNTguMzQtMTA4LjM0LTQuMTYtMTYuNjYtMTYuNjYtMjUtMjkuMTYtMjVoLTcwLjg0Yy0xNi42NiAwLTI5LjE2IDEyLjUtMjkuMTYgMjkuMTd2NC4xN2MxNi42NiAxMDQuMTYgODMuMzMgMTc5LjE2IDIyMC44MyAyMDB2MTAwYzAgMTYuNjYgMTIuNSAyOS4xNiAzMy4zMyAzMy4zM2g2Mi41YzE2LjY3IDAgMjkuMTctMTIuNSAzMy4zNC0zMy4zM3YtMTAwYzEyNS0yMC44NCAyMDguMzMtMTA4LjM0IDIwOC4zMy0yMjAuODR6IiBmaWxsPSIjZmZmIi8+CiAgPHBhdGggZD0iTTc4Ny41IDE1OTUuODNjLTMyNS0xMTYuNjYtNDkxLjY3LTQ3OS4xNi0zNzAuODMtODAwIDYyLjUtMTc1IDIwMC0zMDguMzMgMzcwLjgzLTM3MC44MyAxNi42Ny04LjMzIDI1LTIwLjgzIDI1LTQxLjY3VjMyNWMwLTE2LjY3LTguMzMtMjkuMTctMjUtMzMuMzMtNC4xNyAwLTEyLjUgMC0xNi42NyA0LjE2LTM5NS44MyAxMjUtNjEyLjUgNTQ1Ljg0LTQ4Ny41IDk0MS42NyA3NSAyMzMuMzMgMjU0LjE3IDQxMi41IDQ4Ny41IDQ4Ny41IDE2LjY3IDguMzMgMzMuMzQgMCAzNy41LTE2LjY3IDQuMTctNC4xNiA0LjE3LTguMzMgNC4xNy0xNi42NnYtNTguMzRjMC0xMi41LTEyLjUtMjkuMTYtMjUtMzcuNXpNMTIyOS4xNyAyOTUuODNjLTE2LjY3LTguMzMtMzMuMzQgMC0zNy41IDE2LjY3LTQuMTcgNC4xNy00LjE3IDguMzMtNC4xNyAxNi42N3Y1OC4zM2MwIDE2LjY3IDEyLjUgMzMuMzMgMjUgNDEuNjcgMzI1IDExNi42NiA0OTEuNjcgNDc5LjE2IDM3MC44MyA4MDAtNjIuNSAxNzUtMjAwIDMwOC4zMy0zNzAuODMgMzcwLjgzLTE2LjY3IDguMzMtMjUgMjAuODMtMjUgNDEuNjdWMTcwMGMwIDE2LjY3IDguMzMgMjkuMTcgMjUgMzMuMzMgNC4xNyAwIDEyLjUgMCAxNi42Ny00LjE2IDM5NS44My0xMjUgNjEyLjUtNTQ1Ljg0IDQ4Ny41LTk0MS42Ny03NS0yMzcuNS0yNTguMzQtNDE2LjY3LTQ4Ny41LTQ5MS42N3oiIGZpbGw9IiNmZmYiLz4KPC9zdmc+Cg==";
219
214
  readonly name: "USD Coin";
220
215
  readonly symbol: "USDC";
@@ -1 +1 @@
1
- {"version":3,"file":"defaultTokens.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/utils/defaultTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA0BF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAGtD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmRV,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa,EAAgC,eAAe,CAAC;AAE1E,KAAK,eAAe,GAClB,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEzE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,yBAGpE"}
1
+ {"version":3,"file":"defaultTokens.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/utils/defaultTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA0BF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAGtD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6QV,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa,EAAgC,eAAe,CAAC;AAE1E,KAAK,eAAe,GAClB,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEzE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,yBAGpE"}
@@ -5,6 +5,7 @@ import type { PurchaseData } from "../../../../pay/types.js";
5
5
  import type { PreparedTransaction } from "../../../../transaction/prepare-transaction.js";
6
6
  import type { Address } from "../../../../utils/address.js";
7
7
  import type { Prettify } from "../../../../utils/type-utils.js";
8
+ import type { BridgePrepareResult } from "../../../core/hooks/useBridgePrepare.js";
8
9
  import type { SupportedTokens } from "../../../core/utils/defaultTokens.js";
9
10
  import type { ConnectLocale } from "../ConnectWallet/locale/types.js";
10
11
  import type { PayEmbedConnectOptions } from "../PayEmbed.js";
@@ -49,15 +50,15 @@ export interface BridgeOrchestratorProps {
49
50
  /**
50
51
  * Called when the flow is completed successfully
51
52
  */
52
- onComplete: () => void;
53
+ onComplete: (quote: BridgePrepareResult) => void;
53
54
  /**
54
55
  * Called when the flow encounters an error
55
56
  */
56
- onError: (error: Error) => void;
57
+ onError: (error: Error, quote: BridgePrepareResult | undefined) => void;
57
58
  /**
58
59
  * Called when the user cancels the flow
59
60
  */
60
- onCancel: () => void;
61
+ onCancel: (quote: BridgePrepareResult | undefined) => void;
61
62
  /**
62
63
  * Connect options for wallet connection
63
64
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeOrchestrator.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/BridgeOrchestrator.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BridgeOrchestrator.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/BridgeOrchestrator.tsx"],"names":[],"mappings":"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"}
@@ -10,8 +10,12 @@ import type { WalletId } from "../../../../wallets/wallet-types.js";
10
10
  import type { Theme } from "../../../core/design-system/index.js";
11
11
  import type { SiweAuthOptions } from "../../../core/hooks/auth/useSiweAuth.js";
12
12
  import type { ConnectButton_connectModalOptions } from "../../../core/hooks/connection/ConnectButtonProps.js";
13
+ import type { BridgePrepareResult } from "../../../core/hooks/useBridgePrepare.js";
13
14
  import type { SupportedTokens } from "../../../core/utils/defaultTokens.js";
14
15
  import type { LocaleId } from "../types.js";
16
+ type BuyOrOnrampPrepareResult = Extract<BridgePrepareResult, {
17
+ type: "buy" | "onramp";
18
+ }>;
15
19
  export type BuyWidgetProps = {
16
20
  /**
17
21
  * Customize the supported tokens that users can pay with.
@@ -120,15 +124,15 @@ export type BuyWidgetProps = {
120
124
  /**
121
125
  * Callback triggered when the purchase is successful.
122
126
  */
123
- onSuccess?: () => void;
127
+ onSuccess?: (quote: BuyOrOnrampPrepareResult) => void;
124
128
  /**
125
129
  * Callback triggered when the purchase encounters an error.
126
130
  */
127
- onError?: (error: Error) => void;
131
+ onError?: (error: Error, quote: BuyOrOnrampPrepareResult | undefined) => void;
128
132
  /**
129
133
  * Callback triggered when the user cancels the purchase.
130
134
  */
131
- onCancel?: () => void;
135
+ onCancel?: (quote: BuyOrOnrampPrepareResult | undefined) => void;
132
136
  /**
133
137
  * @hidden
134
138
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BuyWidget.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/BuyWidget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BuyWidget.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/BuyWidget.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "5.107.1-nightly-51177fbe17153b711d80ec87b43aadc8ca12fb9e-20250922000346";
1
+ export declare const version = "5.108.0-nightly-a94f22928a662a5aff7a203fc2d383d9fa0907ec-20250923000340";
2
2
  //# sourceMappingURL=version.d.ts.map