thirdweb 5.121.1 → 5.121.3

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 (78) hide show
  1. package/dist/cjs/react/core/hooks/x402/useFetchWithPaymentCore.js +1 -0
  2. package/dist/cjs/react/core/hooks/x402/useFetchWithPaymentCore.js.map +1 -1
  3. package/dist/cjs/react/native/hooks/x402/useFetchWithPayment.js +1 -1
  4. package/dist/cjs/react/web/hooks/x402/useFetchWithPayment.js +2 -2
  5. package/dist/cjs/react/web/hooks/x402/useFetchWithPayment.js.map +1 -1
  6. package/dist/cjs/react/web/ui/Bridge/common/token-query.js +4 -1
  7. package/dist/cjs/react/web/ui/Bridge/common/token-query.js.map +1 -1
  8. package/dist/cjs/react/web/ui/x402/PaymentErrorModal.js +4 -4
  9. package/dist/cjs/react/web/ui/x402/PaymentErrorModal.js.map +1 -1
  10. package/dist/cjs/version.js +1 -1
  11. package/dist/cjs/x402/encode.js +41 -2
  12. package/dist/cjs/x402/encode.js.map +1 -1
  13. package/dist/cjs/x402/fetchWithPayment.js +56 -33
  14. package/dist/cjs/x402/fetchWithPayment.js.map +1 -1
  15. package/dist/cjs/x402/schemas.js +134 -2
  16. package/dist/cjs/x402/schemas.js.map +1 -1
  17. package/dist/cjs/x402/sign.js +56 -15
  18. package/dist/cjs/x402/sign.js.map +1 -1
  19. package/dist/esm/react/core/hooks/x402/useFetchWithPaymentCore.js +2 -1
  20. package/dist/esm/react/core/hooks/x402/useFetchWithPaymentCore.js.map +1 -1
  21. package/dist/esm/react/native/hooks/x402/useFetchWithPayment.js +1 -1
  22. package/dist/esm/react/web/hooks/x402/useFetchWithPayment.js +2 -2
  23. package/dist/esm/react/web/hooks/x402/useFetchWithPayment.js.map +1 -1
  24. package/dist/esm/react/web/ui/Bridge/common/token-query.js +4 -1
  25. package/dist/esm/react/web/ui/Bridge/common/token-query.js.map +1 -1
  26. package/dist/esm/react/web/ui/x402/PaymentErrorModal.js +5 -5
  27. package/dist/esm/react/web/ui/x402/PaymentErrorModal.js.map +1 -1
  28. package/dist/esm/version.js +1 -1
  29. package/dist/esm/x402/encode.js +40 -2
  30. package/dist/esm/x402/encode.js.map +1 -1
  31. package/dist/esm/x402/fetchWithPayment.js +57 -35
  32. package/dist/esm/x402/fetchWithPayment.js.map +1 -1
  33. package/dist/esm/x402/schemas.js +129 -1
  34. package/dist/esm/x402/schemas.js.map +1 -1
  35. package/dist/esm/x402/sign.js +57 -16
  36. package/dist/esm/x402/sign.js.map +1 -1
  37. package/dist/scripts/bridge-widget.js +3 -3
  38. package/dist/types/react/core/hooks/x402/useFetchWithPaymentCore.d.ts +1 -0
  39. package/dist/types/react/core/hooks/x402/useFetchWithPaymentCore.d.ts.map +1 -1
  40. package/dist/types/react/native/hooks/x402/useFetchWithPayment.d.ts +1 -1
  41. package/dist/types/react/web/hooks/x402/useFetchWithPayment.d.ts +1 -1
  42. package/dist/types/react/web/hooks/x402/useFetchWithPayment.d.ts.map +1 -1
  43. package/dist/types/react/web/ui/Bridge/common/token-query.d.ts.map +1 -1
  44. package/dist/types/react/web/ui/x402/PaymentErrorModal.d.ts +1 -0
  45. package/dist/types/react/web/ui/x402/PaymentErrorModal.d.ts.map +1 -1
  46. package/dist/types/version.d.ts +1 -1
  47. package/dist/types/x402/encode.d.ts +7 -0
  48. package/dist/types/x402/encode.d.ts.map +1 -1
  49. package/dist/types/x402/fetchWithPayment.d.ts +10 -1
  50. package/dist/types/x402/fetchWithPayment.d.ts.map +1 -1
  51. package/dist/types/x402/schemas.d.ts +60 -2
  52. package/dist/types/x402/schemas.d.ts.map +1 -1
  53. package/dist/types/x402/sign.d.ts +13 -1
  54. package/dist/types/x402/sign.d.ts.map +1 -1
  55. package/package.json +3 -3
  56. package/src/contract/actions/resolve-abi.test.ts +3 -5
  57. package/src/extensions/airdrop/write/airdropERC721WithSignature.test.ts +4 -5
  58. package/src/extensions/erc1155/drop1155.test.ts +1 -1
  59. package/src/extensions/erc1155/write/sigMint1155.test.ts +189 -187
  60. package/src/extensions/erc20/drop20.test.ts +1 -1
  61. package/src/extensions/erc721/write/sigMint721.test.ts +4 -6
  62. package/src/extensions/modules/ClaimableERC1155/claimableERC1155.test.ts +180 -178
  63. package/src/extensions/modules/ClaimableERC20/claimableERC20.test.ts +1 -1
  64. package/src/extensions/modules/ClaimableERC721/claimableERC721.test.ts +1 -1
  65. package/src/extensions/prebuilts/process-ref-deployments.test.ts +1 -1
  66. package/src/react/core/hooks/x402/useFetchWithPaymentCore.ts +6 -1
  67. package/src/react/native/hooks/x402/useFetchWithPayment.ts +1 -1
  68. package/src/react/web/hooks/x402/useFetchWithPayment.tsx +3 -1
  69. package/src/react/web/ui/Bridge/common/token-query.test.tsx +117 -0
  70. package/src/react/web/ui/Bridge/common/token-query.ts +4 -1
  71. package/src/react/web/ui/x402/PaymentErrorModal.tsx +9 -4
  72. package/src/version.ts +1 -1
  73. package/src/x402/encode.ts +46 -2
  74. package/src/x402/fetchWithPayment.test.ts +1173 -104
  75. package/src/x402/fetchWithPayment.ts +72 -54
  76. package/src/x402/schemas.test.ts +123 -0
  77. package/src/x402/schemas.ts +199 -6
  78. package/src/x402/sign.ts +86 -10
@@ -12,21 +12,37 @@ const common_js_1 = require("./common.js");
12
12
  const encode_js_1 = require("./encode.js");
13
13
  const permitSignatureStorage_js_1 = require("./permitSignatureStorage.js");
14
14
  const schemas_js_1 = require("./schemas.js");
15
+ /**
16
+ * Builds the payload fields shared by every payment payload for the given requirements.
17
+ * v2 payloads additionally carry `accepted` and `resource`.
18
+ */
19
+ function paymentPayloadEnvelope(x402Version, paymentRequirements, v2Context) {
20
+ return {
21
+ x402Version,
22
+ scheme: paymentRequirements.scheme,
23
+ network: paymentRequirements.network,
24
+ ...(x402Version === 2 && v2Context
25
+ ? {
26
+ accepted: v2Context.accepted,
27
+ ...(v2Context.resource ? { resource: v2Context.resource } : {}),
28
+ }
29
+ : {}),
30
+ };
31
+ }
15
32
  /**
16
33
  * Prepares an unsigned payment header with the given sender address and payment requirements.
17
34
  *
18
35
  * @param from - The sender's address from which the payment will be made
19
36
  * @param x402Version - The version of the X402 protocol to use
20
37
  * @param paymentRequirements - The payment requirements containing scheme and network information
38
+ * @param v2Context - The x402 v2 fields to include in the payload
21
39
  * @returns An unsigned payment payload containing authorization details
22
40
  */
23
- function preparePaymentHeader(from, x402Version, paymentRequirements, nonce) {
41
+ function preparePaymentHeader(from, x402Version, paymentRequirements, nonce, v2Context) {
24
42
  const validAfter = BigInt(Math.floor(Date.now() / 1000) - 86400).toString();
25
43
  const validBefore = BigInt(Math.floor(Date.now() / 1000 + paymentRequirements.maxTimeoutSeconds)).toString();
26
44
  return {
27
- x402Version,
28
- scheme: paymentRequirements.scheme,
29
- network: paymentRequirements.network,
45
+ ...paymentPayloadEnvelope(x402Version, paymentRequirements, v2Context),
30
46
  payload: {
31
47
  signature: undefined,
32
48
  authorization: {
@@ -47,9 +63,10 @@ function preparePaymentHeader(from, x402Version, paymentRequirements, nonce) {
47
63
  * @param paymentRequirements - The payment requirements containing scheme and network information
48
64
  * @param unsignedPaymentHeader - The unsigned payment payload to be signed
49
65
  * @param storage - Optional storage for caching permit signatures (for "upto" scheme)
66
+ * @param v2Context - The x402 v2 fields to include in the payload
50
67
  * @returns A promise that resolves to the signed payment payload
51
68
  */
52
- async function signPaymentHeader(client, account, paymentRequirements, x402Version, storage) {
69
+ async function signPaymentHeader(client, account, paymentRequirements, x402Version, storage, v2Context, maxValue) {
53
70
  const from = (0, address_js_1.getAddress)(account.address);
54
71
  const caip2ChainId = (0, schemas_js_1.networkToCaip2ChainId)(paymentRequirements.network);
55
72
  const chainId = (0, schemas_js_1.extractEvmChainId)(caip2ChainId);
@@ -76,7 +93,18 @@ async function signPaymentHeader(client, account, paymentRequirements, x402Versi
76
93
  // Try to reuse cached signature for "upto" scheme
77
94
  if (shouldCache && storage) {
78
95
  const cached = await (0, permitSignatureStorage_js_1.getPermitSignatureFromCache)(storage, cacheParams);
79
- if (cached) {
96
+ const cachedPayload = cached?.payload?.payload;
97
+ const cachedAuthorization = cachedPayload?.authorization;
98
+ const cachedValue = cachedAuthorization?.value;
99
+ const amount = BigInt(paymentRequirements.maxAmountRequired);
100
+ if (cached &&
101
+ cachedPayload &&
102
+ isSameAddress(cachedAuthorization?.from, from) &&
103
+ isSameAddress(cachedAuthorization?.to, spender) &&
104
+ (0, schemas_js_1.isAtomicAmount)(cached.deadline) &&
105
+ (0, schemas_js_1.isAtomicAmount)(cachedValue) &&
106
+ BigInt(cachedValue) >= amount &&
107
+ (maxValue === undefined || BigInt(cachedValue) <= maxValue)) {
80
108
  // Validate deadline hasn't passed
81
109
  const now = BigInt(Math.floor(Date.now() / 1000));
82
110
  if (BigInt(cached.deadline) > now) {
@@ -90,14 +118,20 @@ async function signPaymentHeader(client, account, paymentRequirements, x402Versi
90
118
  owner: from,
91
119
  spender,
92
120
  });
93
- // Determine threshold - use minAmountRequired if present, else maxAmountRequired
121
+ // Determine threshold - use minAmountRequired if it is within (0, amount], else the amount
94
122
  const extra = paymentRequirements.extra;
95
- const threshold = extra?.minAmountRequired
123
+ const minAmount = (0, schemas_js_1.isAtomicAmount)(extra?.minAmountRequired)
96
124
  ? BigInt(extra.minAmountRequired)
97
- : BigInt(paymentRequirements.maxAmountRequired);
98
- // If allowance >= threshold, reuse signature
125
+ : undefined;
126
+ const threshold = minAmount !== undefined && minAmount > 0n && minAmount <= amount
127
+ ? minAmount
128
+ : amount;
129
+ // If allowance >= threshold, reuse the signature in the current envelope
99
130
  if (currentAllowance >= threshold) {
100
- return cached.payload;
131
+ return {
132
+ ...paymentPayloadEnvelope(x402Version, paymentRequirements, v2Context),
133
+ payload: cachedPayload,
134
+ };
101
135
  }
102
136
  }
103
137
  }
@@ -111,7 +145,8 @@ async function signPaymentHeader(client, account, paymentRequirements, x402Versi
111
145
  }),
112
146
  owner: from,
113
147
  });
114
- const unsignedPaymentHeader = preparePaymentHeader(from, x402Version, paymentRequirements, (0, hex_js_1.toHex)(nonce, { size: 32 }));
148
+ const unsignedPaymentHeader = preparePaymentHeader(from, x402Version, paymentRequirements, (0, hex_js_1.toHex)(nonce, { size: 32 }), // permit nonce
149
+ v2Context);
115
150
  const { signature } = await signERC2612Permit(account, unsignedPaymentHeader.payload.authorization, paymentRequirements);
116
151
  const signedPayload = {
117
152
  ...unsignedPaymentHeader,
@@ -129,7 +164,8 @@ async function signPaymentHeader(client, account, paymentRequirements, x402Versi
129
164
  case "TransferWithAuthorization": {
130
165
  // default to transfer with authorization
131
166
  const nonce = await createNonce();
132
- const unsignedPaymentHeader = preparePaymentHeader(from, x402Version, paymentRequirements, nonce);
167
+ const unsignedPaymentHeader = preparePaymentHeader(from, x402Version, paymentRequirements, nonce, // random nonce
168
+ v2Context);
133
169
  const { signature } = await signERC3009Authorization(account, unsignedPaymentHeader.payload.authorization, paymentRequirements);
134
170
  return {
135
171
  ...unsignedPaymentHeader,
@@ -150,12 +186,17 @@ async function signPaymentHeader(client, account, paymentRequirements, x402Versi
150
186
  * @param x402Version - The version of the X402 protocol to use
151
187
  * @param paymentRequirements - The payment requirements containing scheme and network information
152
188
  * @param storage - Optional storage for caching permit signatures (for "upto" scheme)
189
+ * @param v2Context - The x402 v2 fields to include in the payload
190
+ * @param maxValue - The maximum allowed payment amount
153
191
  * @returns A promise that resolves to the encoded payment header string
154
192
  */
155
- async function createPaymentHeader(client, account, paymentRequirements, x402Version, storage) {
156
- const payment = await signPaymentHeader(client, account, paymentRequirements, x402Version, storage);
193
+ async function createPaymentHeader(client, account, paymentRequirements, x402Version, storage, v2Context, maxValue) {
194
+ const payment = await signPaymentHeader(client, account, paymentRequirements, x402Version, storage, v2Context, maxValue);
157
195
  return (0, encode_js_1.encodePayment)(payment);
158
196
  }
197
+ function isSameAddress(value, address) {
198
+ return (typeof value === "string" && value.toLowerCase() === address.toLowerCase());
199
+ }
159
200
  /**
160
201
  * Signs an EIP-3009 authorization for USDC transfer
161
202
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/x402/sign.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/x402/sign.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { useMutation } from "@tanstack/react-query";
3
- import { wrapFetchWithPayment } from "../../../../x402/fetchWithPayment.js";
3
+ import { getRequestUrl, wrapFetchWithPayment, } from "../../../../x402/fetchWithPayment.js";
4
4
  import { useActiveWallet } from "../wallets/useActiveWallet.js";
5
5
  /**
6
6
  * Core hook for fetch with payment functionality.
@@ -52,6 +52,7 @@ export function useFetchWithPaymentCore(client, options, showErrorModal, showCon
52
52
  return new Promise((resolve, reject) => {
53
53
  showErrorModal({
54
54
  errorData: errorBody,
55
+ requestUrl: getRequestUrl(input),
55
56
  onRetry: async () => {
56
57
  // Retry the entire fetch+error handling logic recursively
57
58
  // Pass currentWallet to avoid re-showing connect modal with stale wallet state
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchWithPaymentCore.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/x402/useFetchWithPaymentCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFetchWithPaymentCore.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/x402/useFetchWithPaymentCore.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ import { useFetchWithPaymentCore, } from "../../../core/hooks/x402/useFetchWithP
19
19
  *
20
20
  * @param client - The thirdweb client used to access RPC infrastructure
21
21
  * @param options - Optional configuration for payment handling
22
- * @param options.maxValue - The maximum allowed payment amount in base units
22
+ * @param options.maxValue - The maximum allowed payment amount in base units. `0n` only allows zero-amount payments
23
23
  * @param options.paymentRequirementsSelector - Custom function to select payment requirements from available options
24
24
  * @param options.parseAs - How to parse the response: "json" (default), "text", or "raw"
25
25
  * @param options.storage - Storage for caching permit signatures (for "upto" scheme). Provide your own AsyncStorage implementation for React Native.
@@ -25,7 +25,7 @@ import { SignInRequiredModal } from "../../ui/x402/SignInRequiredModal.js";
25
25
  *
26
26
  * @param client - The thirdweb client used to access RPC infrastructure
27
27
  * @param options - Optional configuration for payment handling
28
- * @param options.maxValue - The maximum allowed payment amount in base units
28
+ * @param options.maxValue - The maximum allowed payment amount in base units. `0n` only allows zero-amount payments
29
29
  * @param options.paymentRequirementsSelector - Custom function to select payment requirements from available options
30
30
  * @param options.parseAs - How to parse the response: "json" (default), "text", or "raw"
31
31
  * @param options.uiEnabled - Whether to show the UI for connection, funding or payment retries (defaults to true). Set to false to handle errors yourself
@@ -138,7 +138,7 @@ export function useFetchWithPayment(client, options) {
138
138
  const showModal = options?.uiEnabled !== false; // Default to true
139
139
  const showErrorModal = showModal
140
140
  ? (data) => {
141
- setRootEl(_jsx(PaymentErrorModal, { client: client, errorData: data.errorData, onCancel: () => {
141
+ setRootEl(_jsx(PaymentErrorModal, { client: client, errorData: data.errorData, requestUrl: data.requestUrl, onCancel: () => {
142
142
  setRootEl(null);
143
143
  data.onCancel();
144
144
  }, onRetry: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchWithPayment.js","sourceRoot":"","sources":["../../../../../../src/react/web/hooks/x402/useFetchWithPayment.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFetchWithPayment.js","sourceRoot":"","sources":["../../../../../../src/react/web/hooks/x402/useFetchWithPayment.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAG1E,OAAO,EAEL,uBAAuB,GACxB,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAEtF,OAAO,EAEL,eAAe,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AA4C3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2HG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAsB,EACtB,OAAmC;IAEnC,MAAM,SAAS,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,kBAAkB;IAElE,MAAM,cAAc,GAAG,SAAS;QAC9B,CAAC,CAAC,CAAC,IAKA,EAAE,EAAE;YACH,SAAS,CACP,KAAC,iBAAiB,IAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,QAAQ,EAAE,GAAG,EAAE;oBACb,SAAS,CAAC,IAAI,CAAC,CAAC;oBAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;oBACZ,SAAS,CAAC,IAAI,CAAC,CAAC;oBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC,EACD,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,EAC7C,2BAA2B,EAAE,OAAO,EAAE,2BAA2B,GACjE,CACH,CAAC;QACJ,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,gBAAgB,GAAG,SAAS;QAChC,CAAC,CAAC,CAAC,IAAmE,EAAE,EAAE;YACtE,sCAAsC;YACtC,SAAS,CACP,KAAC,mBAAmB,IAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAC1C,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EACtD,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EACtD,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACnB,gCAAgC;oBAChC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAEhB,wBAAwB;oBACxB,IAAI,CAAC;wBACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;4BACpC,MAAM;4BACN,KAAK;4BACL,GAAG,OAAO,EAAE,cAAc;yBAC3B,CAAC,CAAC;wBAEH,uEAAuE;wBACvE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;oBAClC,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBAChB,gCAAgC;wBAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;oBACb,SAAS,CAAC,IAAI,CAAC,CAAC;oBAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,GACD,CACH,CAAC;QACJ,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,0DAA0D;IAC1D,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,eAAe;KAC7C,CAAC,EACF,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,uBAAuB,CAC5B,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,CACjB,CAAC;AACJ,CAAC"}
@@ -10,7 +10,10 @@ export function useTokenQuery(params) {
10
10
  }
11
11
  const tokenAddress = params.tokenAddress || NATIVE_TOKEN_ADDRESS;
12
12
  const token = await getToken(params.client, tokenAddress, params.chainId).catch((err) => {
13
- err.message.includes("not supported") ? undefined : Promise.reject(err);
13
+ if (err instanceof Error && err.message.includes("not supported")) {
14
+ return undefined;
15
+ }
16
+ throw err;
14
17
  });
15
18
  if (!token) {
16
19
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"token-query.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/common/token-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAQnE,MAAM,UAAU,aAAa,CAAC,MAI7B;IACC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;QACzB,OAAO,EAAE,KAAK,IAA+B,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAC1B,MAAM,CAAC,MAAM,EACb,YAAY,EACZ,MAAM,CAAC,OAAO,CACf,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,IAAI,EAAE,mBAAmB;iBAC1B,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACrC,oBAAoB,EAAE,KAAK;QAC3B,cAAc,EAAE,KAAK;QACrB,kBAAkB,EAAE,KAAK;KAC1B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"token-query.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/common/token-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAQnE,MAAM,UAAU,aAAa,CAAC,MAI7B;IACC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;QACzB,OAAO,EAAE,KAAK,IAA+B,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAC1B,MAAM,CAAC,MAAM,EACb,YAAY,EACZ,MAAM,CAAC,OAAO,CACf,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBAClE,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,IAAI,EAAE,mBAAmB;iBAC1B,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACrC,oBAAoB,EAAE,KAAK;QAC3B,cAAc,EAAE,KAAK;QACrB,kBAAkB,EAAE,KAAK;KAC1B,CAAC,CAAC;AACL,CAAC"}
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
4
  import { getCachedChain } from "../../../../chains/utils.js";
5
- import { extractEvmChainId, networkToCaip2ChainId, } from "../../../../x402/schemas.js";
5
+ import { extractEvmChainId, networkToCaip2ChainId, parsePaymentRequirementsForDisplay, } from "../../../../x402/schemas.js";
6
6
  import { CustomThemeProvider } from "../../../core/design-system/CustomThemeProvider.js";
7
7
  import { spacing } from "../../../core/design-system/index.js";
8
8
  import { useActiveWallet } from "../../../core/hooks/wallets/useActiveWallet.js";
@@ -15,17 +15,17 @@ import { Text } from "../components/text.js";
15
15
  * @internal
16
16
  */
17
17
  export function PaymentErrorModal(props) {
18
- const { client, errorData, onRetry, onCancel, theme, fundWalletOptions, paymentRequirementsSelector, } = props;
18
+ const { client, errorData, requestUrl, onRetry, onCancel, theme, fundWalletOptions, paymentRequirementsSelector, } = props;
19
19
  const [screen, setScreen] = useState("error");
20
20
  const isInsufficientFunds = errorData.error === "insufficient_funds";
21
21
  const wallet = useActiveWallet();
22
22
  // Extract chain and token info from errorData for BuyWidget
23
23
  const getBuyWidgetConfig = () => {
24
- if (!errorData.accepts || errorData.accepts.length === 0) {
24
+ // Get payment requirements from errorData
25
+ const parsedPaymentRequirements = parsePaymentRequirementsForDisplay(errorData, requestUrl);
26
+ if (parsedPaymentRequirements.length === 0) {
25
27
  return null;
26
28
  }
27
- // Get payment requirements from errorData
28
- const parsedPaymentRequirements = errorData.accepts;
29
29
  // Get the current chain from wallet
30
30
  const currentChain = wallet?.getChain();
31
31
  const currentChainId = currentChain?.id;
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentErrorModal.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/x402/PaymentErrorModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PaymentErrorModal.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/x402/PaymentErrorModal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kCAAkC,GAEnC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AAEzF,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,SAAS,EAAuB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,SAAS,EACT,WAAW,EACX,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AA4B7C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,EACJ,MAAM,EACN,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,OAAO,CAAC,CAAC;IACtD,MAAM,mBAAmB,GAAG,SAAS,CAAC,KAAK,KAAK,oBAAoB,CAAC;IACrE,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,0CAA0C;QAC1C,MAAM,yBAAyB,GAAG,kCAAkC,CAClE,SAAS,EACT,UAAU,CACX,CAAC;QACF,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,oCAAoC;QACpC,MAAM,YAAY,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,YAAY,EAAE,EAAE,CAAC;QAExC,0EAA0E;QAC1E,MAAM,mBAAmB,GAAG,2BAA2B;YACrD,CAAC,CAAC,2BAA2B,CAAC,yBAAyB,CAAC;YACxD,CAAC,CAAC,kCAAkC,CAChC,yBAAyB,EACzB,cAAc,EACd,OAAO,EACP,SAAS,CAAC,KAAK,CAChB,CAAC;QAEN,IAAI,CAAC,mBAAmB;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,YAAY,GAAG,qBAAqB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAsB,CAAC;QAEhE,OAAO;YACL,KAAK;YACL,YAAY;YACZ,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE1E,IAAI,MAAM,KAAK,YAAY,IAAI,eAAe,EAAE,CAAC;QAC/C,OAAO,CACL,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,YAC/B,KAAC,KAAK,IACJ,SAAS,EAAC,wBAAwB,EAClC,aAAa,EAAE,KAAK,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChB,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,QAAQ,EAAE,CAAC;oBACb,CAAC;gBACH,CAAC,EACD,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,oBAAoB,EAC1B,oBAAoB,EAAE;oBACpB,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,OAAO,CAAC,EAAE;oBACjB,GAAG,EAAE,OAAO,CAAC,EAAE;oBACf,MAAM,EAAE,CAAC;iBACV,YAGD,KAAC,SAAS,IACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,eAAe,CAAC,KAAK,EAC5B,YAAY,EAAE,eAAe,CAAC,YAAY,EAC1C,MAAM,EAAE,eAAe,CAAC,MAAM,EAC9B,KAAK,EAAE;wBACL,MAAM,EAAE,MAAM;wBACd,KAAK,EAAE,MAAM;qBACd,EACD,WAAW,EAAC,UAAU,EACtB,KAAK,EAAC,WAAW,EACjB,WAAW,EAAC,8CAA8C,KACtD,iBAAiB,EACrB,SAAS,EAAE,GAAG,EAAE;wBACd,oCAAoC;wBACpC,OAAO,EAAE,CAAC;oBACZ,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;wBACb,0BAA0B;wBAC1B,SAAS,CAAC,OAAO,CAAC,CAAC;oBACrB,CAAC,GACD,GACI,GACY,CACvB,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,OAAO,CACL,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,YAC/B,MAAC,KAAK,IACJ,SAAS,EAAC,wBAAwB,EAClC,aAAa,EAAE,IAAI,EACnB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,QAAQ,EAAE,CAAC;gBACb,CAAC;YACH,CAAC,EACD,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,gBAAgB,aAEtB,MAAC,SAAS,IAAC,CAAC,EAAC,IAAI,aACf,KAAC,WAAW,IAAC,KAAK,EAAC,gBAAgB,GAAG,EAEtC,KAAC,SAAS,IACR,IAAI,EAAC,QAAQ,EACb,GAAG,EAAC,IAAI,EACR,KAAK,EAAE;gCACL,UAAU,EAAE,OAAO,CAAC,EAAE;6BACvB,YAGD,KAAC,IAAI,IACH,IAAI,EAAC,IAAI,EACT,KAAK,EAAE;oCACL,KAAK,EAAE,SAAS;oCAChB,UAAU,EAAE,GAAG;iCAChB,YAEA,mBAAmB;oCAClB,CAAC,CAAC,0GAA0G;oCAC5G,CAAC,CAAC,SAAS,CAAC,YAAY;wCACtB,kDAAkD,GACjD,GACG,IACF,EAGZ,KAAC,qBAAqB,cACnB,mBAAmB,IAAI,eAAe,CAAC,CAAC,CAAC,CACxC,8BACE,KAAC,MAAM,IACL,SAAS,QACT,GAAG,EAAC,IAAI,EACR,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,EACtC,OAAO,EAAC,QAAQ,mCAGT,EACT,KAAC,MAAM,IAAC,SAAS,QAAC,GAAG,EAAC,IAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAC,WAAW,uBAExD,IACR,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,MAAM,IAAC,SAAS,QAAC,GAAG,EAAC,IAAI,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAC,QAAQ,0BAEpD,EACT,KAAC,MAAM,IAAC,SAAS,QAAC,GAAG,EAAC,IAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAC,WAAW,uBAExD,IACR,CACJ,GACqB,IAClB,GACY,CACvB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,SAAS,kCAAkC,CACzC,mBAAmD,EACnD,OAA2B,EAC3B,MAAe,EACf,MAAe;IAEf,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,2DAA2D;IAC3D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,2BAA2B,GAAG,mBAAmB,CAAC,IAAI,CAC1D,CAAC,CAAC,EAAE,EAAE,CACJ,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,OAAO;YAC/D,CAAC,CAAC,MAAM,KAAK,MAAM,CACtB,CAAC;QAEF,IAAI,2BAA2B,EAAE,CAAC;YAChC,OAAO,2BAA2B,CAAC;QACrC,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,IAAI,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAC3B,CAAC;IACF,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
@@ -1,2 +1,2 @@
1
- export const version = "5.121.1";
1
+ export const version = "5.121.3";
2
2
  //# sourceMappingURL=version.js.map
@@ -1,3 +1,5 @@
1
+ import { cachedTextDecoder } from "../utils/text-decoder.js";
2
+ import { cachedTextEncoder } from "../utils/text-encoder.js";
1
3
  /**
2
4
  * Encodes a payment payload into a base64 string, ensuring bigint values are properly stringified
3
5
  *
@@ -18,7 +20,7 @@ export function encodePayment(payment) {
18
20
  ])),
19
21
  },
20
22
  };
21
- return safeBase64Encode(JSON.stringify(safe));
23
+ return base64EncodeUtf8(JSON.stringify(safe));
22
24
  }
23
25
  /**
24
26
  * Decodes a base64 encoded payment string back into a PaymentPayload object
@@ -27,7 +29,7 @@ export function encodePayment(payment) {
27
29
  * @returns The decoded and validated PaymentPayload object
28
30
  */
29
31
  export function decodePayment(payment) {
30
- const decoded = safeBase64Decode(payment);
32
+ const decoded = base64DecodeUtf8(payment);
31
33
  const parsed = JSON.parse(decoded);
32
34
  const obj = {
33
35
  ...parsed,
@@ -70,4 +72,40 @@ export function safeBase64Decode(data) {
70
72
  }
71
73
  return Buffer.from(data, "base64").toString("utf-8");
72
74
  }
75
+ /**
76
+ * Encodes a string as UTF-8 and then to base64
77
+ *
78
+ * @param data - The string to encode
79
+ * @returns The base64 encoded UTF-8 bytes
80
+ */
81
+ function base64EncodeUtf8(data) {
82
+ if (typeof globalThis !== "undefined" &&
83
+ typeof globalThis.btoa === "function") {
84
+ const bytes = cachedTextEncoder().encode(data);
85
+ let binary = "";
86
+ for (const byte of bytes) {
87
+ binary += String.fromCharCode(byte);
88
+ }
89
+ return globalThis.btoa(binary);
90
+ }
91
+ return Buffer.from(data, "utf-8").toString("base64");
92
+ }
93
+ /**
94
+ * Decodes a base64 string and interprets the bytes as UTF-8
95
+ *
96
+ * @param data - The base64 encoded string
97
+ * @returns The decoded string
98
+ */
99
+ export function base64DecodeUtf8(data) {
100
+ if (typeof globalThis !== "undefined" &&
101
+ typeof globalThis.atob === "function") {
102
+ const binary = globalThis.atob(data);
103
+ const bytes = new Uint8Array(binary.length);
104
+ for (let i = 0; i < binary.length; i++) {
105
+ bytes[i] = binary.charCodeAt(i);
106
+ }
107
+ return cachedTextDecoder().decode(bytes);
108
+ }
109
+ return Buffer.from(data, "base64").toString("utf-8");
110
+ }
73
111
  //# sourceMappingURL=encode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/x402/encode.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgC;IAC5D,IAAI,IAA6B,CAAC;IAElC,MAAM;IACN,MAAM,UAAU,GAAG,OAAO,CAAC,OAA0B,CAAC;IACtD,IAAI,GAAG;QACL,GAAG,OAAO;QACV,OAAO,EAAE;YACP,GAAG,UAAU;YACb,aAAa,EAAE,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC7D,GAAG;gBACH,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK;aACjE,CAAC,CACiC;SACtC;KACF,CAAC;IACF,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,GAAG,GAA4B;QACnC,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,CAAC,OAA0B;KAC3C,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAKrC;IACC,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IACE,OAAO,UAAU,KAAK,WAAW;QACjC,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EACrC,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IACE,OAAO,UAAU,KAAK,WAAW;QACjC,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EACrC,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/x402/encode.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { getCachedChain } from "../chains/utils.js";
2
2
  import { getAddress } from "../utils/address.js";
3
3
  import { webLocalStorage } from "../utils/storage/webStorage.js";
4
- import { safeBase64Decode } from "./encode.js";
4
+ import { base64DecodeUtf8 } from "./encode.js";
5
5
  import { getPaymentRequestHeader, getPaymentResponseHeader, } from "./headers.js";
6
6
  import { clearPermitSignatureFromCache } from "./permitSignatureStorage.js";
7
- import { extractEvmChainId, networkToCaip2ChainId, RequestedPaymentRequirementsSchema, } from "./schemas.js";
7
+ import { extractEvmChainId, networkToCaip2ChainId, normalizePaymentRequirements, parsePaymentRequired, } from "./schemas.js";
8
8
  import { createPaymentHeader } from "./sign.js";
9
9
  import { x402Version as defaultX402Version } from "./types.js";
10
10
  /**
@@ -21,7 +21,7 @@ import { x402Version as defaultX402Version } from "./types.js";
21
21
  * @param fetch - The fetch function to wrap (typically globalThis.fetch)
22
22
  * @param client - The thirdweb client used to access RPC infrastructure
23
23
  * @param wallet - The wallet used to sign payment messages
24
- * @param maxValue - The maximum allowed payment amount in base units
24
+ * @param maxValue - The maximum allowed payment amount in base units. `0n` only allows zero-amount payments
25
25
  * @returns A wrapped fetch function that handles 402 responses automatically
26
26
  *
27
27
  * @example
@@ -52,42 +52,37 @@ export function wrapFetchWithPayment(fetch, client, wallet, options) {
52
52
  if (response.status !== 402) {
53
53
  return response;
54
54
  }
55
- let x402Version;
56
- let parsedPaymentRequirements;
57
- let error;
55
+ const initParams = init || {};
56
+ if (initParams.__is402Retry) {
57
+ throw new Error("Payment already attempted");
58
+ }
58
59
  // Check payment-required header first before falling back to JSON body
59
60
  const paymentRequiredHeader = response.headers.get("payment-required");
60
- if (paymentRequiredHeader) {
61
- const decoded = safeBase64Decode(paymentRequiredHeader);
62
- const parsed = JSON.parse(decoded);
63
- if (!Array.isArray(parsed.accepts)) {
64
- throw new Error(`402 response has no usable x402 payment requirements. ${parsed.error ?? ""}`);
65
- }
66
- x402Version = parsed.x402Version ?? defaultX402Version;
67
- parsedPaymentRequirements = parsed.accepts.map((x) => RequestedPaymentRequirementsSchema.parse(x));
68
- error = parsed.error;
69
- }
70
- else {
71
- const body = (await response.json());
72
- if (!Array.isArray(body.accepts)) {
73
- throw new Error(`402 response has no usable x402 payment requirements. ${body.error ?? ""}`);
74
- }
75
- x402Version = body.x402Version ?? defaultX402Version;
76
- parsedPaymentRequirements = body.accepts.map((x) => RequestedPaymentRequirementsSchema.parse(x));
77
- error = body.error;
78
- }
61
+ const paymentRequired = paymentRequiredHeader
62
+ ? JSON.parse(base64DecodeUtf8(paymentRequiredHeader))
63
+ : await response.json();
64
+ const parsed = parsePaymentRequired(paymentRequired, getRequestUrl(input));
65
+ const x402Version = parsed.x402Version ?? defaultX402Version;
66
+ const error = parsed.error;
67
+ const normalizedPaymentRequirements = parsed.accepts;
68
+ const parsedPaymentRequirements = normalizedPaymentRequirements.map((x) => x.requirements);
79
69
  const account = wallet.getAccount();
80
70
  let chain = wallet.getChain();
81
71
  if (!account || !chain) {
82
72
  throw new Error("Wallet not connected. Please connect your wallet to continue.");
83
73
  }
84
- const selectedPaymentRequirements = options?.paymentRequirementsSelector
74
+ const selected = options?.paymentRequirementsSelector
85
75
  ? options.paymentRequirementsSelector(parsedPaymentRequirements)
86
76
  : defaultPaymentRequirementsSelector(parsedPaymentRequirements, chain.id, error);
87
- if (!selectedPaymentRequirements) {
77
+ if (!selected) {
88
78
  throw new Error(`No suitable payment requirements found for chain ${chain.id}. ${error}`);
89
79
  }
90
- if (options?.maxValue &&
80
+ const { requirements: selectedPaymentRequirements } = normalizePaymentRequirements(selected, {
81
+ resourceUrl: parsed.resourceUrl,
82
+ });
83
+ const acceptedRequirement = normalizedPaymentRequirements.find((x) => x.requirements === selected)
84
+ ?.raw ?? selected;
85
+ if (options?.maxValue !== undefined &&
91
86
  BigInt(selectedPaymentRequirements.maxAmountRequired) > options.maxValue) {
92
87
  throw new Error(`Payment amount exceeds maximum allowed (currently set to ${options.maxValue} in base units)`);
93
88
  }
@@ -105,13 +100,17 @@ export function wrapFetchWithPayment(fetch, client, wallet, options) {
105
100
  throw new Error(`Failed to switch chain (${paymentChainId})`);
106
101
  }
107
102
  }
108
- const paymentHeader = await createPaymentHeader(client, account, selectedPaymentRequirements, x402Version, options?.storage ?? webLocalStorage);
103
+ const storage = options?.storage ?? webLocalStorage;
104
+ const paymentHeader = await createPaymentHeader(client, account, selectedPaymentRequirements, x402Version, storage, {
105
+ accepted: acceptedRequirement,
106
+ resource: parsed.resource ?? {
107
+ url: selectedPaymentRequirements.resource,
108
+ description: selectedPaymentRequirements.description,
109
+ mimeType: selectedPaymentRequirements.mimeType,
110
+ },
111
+ }, options?.maxValue);
109
112
  const paymentRequestHeaderName = getPaymentRequestHeader(x402Version);
110
113
  const paymentResponseHeaderName = getPaymentResponseHeader(x402Version);
111
- const initParams = init || {};
112
- if (initParams.__is402Retry) {
113
- throw new Error("Payment already attempted");
114
- }
115
114
  const newInit = {
116
115
  ...initParams,
117
116
  headers: {
@@ -123,8 +122,8 @@ export function wrapFetchWithPayment(fetch, client, wallet, options) {
123
122
  };
124
123
  const secondResponse = await fetch(input, newInit);
125
124
  // If payment was rejected (still 402), clear cached signature
126
- if (secondResponse.status === 402 && options?.storage) {
127
- await clearPermitSignatureFromCache(options.storage, {
125
+ if (secondResponse.status === 402) {
126
+ await clearPermitSignatureFromCache(storage, {
128
127
  chainId: paymentChainId,
129
128
  asset: selectedPaymentRequirements.asset,
130
129
  owner: getAddress(account.address),
@@ -134,6 +133,29 @@ export function wrapFetchWithPayment(fetch, client, wallet, options) {
134
133
  return secondResponse;
135
134
  };
136
135
  }
136
+ /**
137
+ * Resolves the absolute URL of a fetch input, if it can be determined.
138
+ * @internal
139
+ */
140
+ export function getRequestUrl(input) {
141
+ const url = typeof input === "string"
142
+ ? input
143
+ : input instanceof URL
144
+ ? input.href
145
+ : input?.url;
146
+ if (typeof url !== "string") {
147
+ return undefined;
148
+ }
149
+ try {
150
+ const base = typeof globalThis.location !== "undefined"
151
+ ? globalThis.location.href
152
+ : undefined;
153
+ return new URL(url, base).toString();
154
+ }
155
+ catch {
156
+ return undefined;
157
+ }
158
+ }
137
159
  function defaultPaymentRequirementsSelector(paymentRequirements, chainId, error) {
138
160
  if (!paymentRequirements.length) {
139
161
  throw new Error(`No valid payment requirements found in server 402 response. ${error}`);
@@ -1 +1 @@
1
- {"version":3,"file":"fetchWithPayment.js","sourceRoot":"","sources":["../../../src/x402/fetchWithPayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EAErB,kCAAkC,GACnC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAA8B,EAC9B,MAAsB,EACtB,MAAc,EACd,OAUC;IAED,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,IAAI,WAAmB,CAAC;QACxB,IAAI,yBAAyD,CAAC;QAC9D,IAAI,KAAyB,CAAC;QAE9B,uEAAuE;QACvE,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACvE,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAIhC,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CACb,yDAAyD,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAC9E,CAAC;YACJ,CAAC;YAED,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,kBAAkB,CAAC;YACvD,yBAAyB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACnD,kCAAkC,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5C,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,yDAAyD,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAC5E,CAAC;YACJ,CAAC;YAED,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,kBAAkB,CAAC;YACrD,yBAAyB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjD,kCAAkC,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5C,CAAC;YACF,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;QACJ,CAAC;QACD,MAAM,2BAA2B,GAAG,OAAO,EAAE,2BAA2B;YACtE,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,yBAAyB,CAAC;YAChE,CAAC,CAAC,kCAAkC,CAChC,yBAAyB,EACzB,KAAK,CAAC,EAAE,EACR,KAAK,CACN,CAAC;QAEN,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,oDAAoD,KAAK,CAAC,EAAE,KAAK,KAAK,EAAE,CACzE,CAAC;QACJ,CAAC;QAED,IACE,OAAO,EAAE,QAAQ;YACjB,MAAM,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,QAAQ,EACxE,CAAC;YACD,MAAM,IAAI,KAAK,CACb,4DAA4D,OAAO,CAAC,QAAQ,iBAAiB,CAC9F,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,qBAAqB,CACxC,2BAA2B,CAAC,OAAO,CACpC,CAAC;QACF,MAAM,cAAc,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACvD,6BAA6B;QAC7B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,yBAAyB,2BAA2B,CAAC,OAAO,EAAE,CAC/D,CAAC;QACJ,CAAC;QAED,4DAA4D;QAC5D,IAAI,cAAc,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;YACzD,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,GAAG,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC7C,MAAM,EACN,OAAO,EACP,2BAA2B,EAC3B,WAAW,EACX,OAAO,EAAE,OAAO,IAAI,eAAe,CACpC,CAAC;QAEF,MAAM,wBAAwB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,yBAAyB,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAExE,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAE9B,IAAK,UAAyC,CAAC,YAAY,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG;YACd,GAAG,UAAU;YACb,OAAO,EAAE;gBACP,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC7B,CAAC,wBAAwB,CAAC,EAAE,aAAa;gBACzC,+BAA+B,EAAE,yBAAyB;aAC3D;YACD,YAAY,EAAE,IAAI;SACnB,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEnD,8DAA8D;QAC9D,IAAI,cAAc,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACtD,MAAM,6BAA6B,CAAC,OAAO,CAAC,OAAO,EAAE;gBACnD,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,2BAA2B,CAAC,KAAK;gBACxC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;gBAClC,OAAO,EAAE,UAAU,CAAC,2BAA2B,CAAC,KAAK,CAAC;aACvD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CACzC,mBAAmD,EACnD,OAAe,EACf,KAAc;IAEd,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,+DAA+D,KAAK,EAAE,CACvE,CAAC;IACJ,CAAC;IACD,oEAAoE;IACpE,MAAM,2BAA2B,GAAG,mBAAmB,CAAC,IAAI,CAC1D,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,OAAO,CACvE,CAAC;IAEF,IAAI,2BAA2B,EAAE,CAAC;QAChC,OAAO,2BAA2B,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,sCAAsC;QACtC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,uBAAuB,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetchWithPayment.js","sourceRoot":"","sources":["../../../src/x402/fetchWithPayment.ts"],"names":[],"mappings":"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"}