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
@@ -55,6 +55,7 @@ function useFetchWithPaymentCore(client, options, showErrorModal, showConnectMod
55
55
  return new Promise((resolve, reject) => {
56
56
  showErrorModal({
57
57
  errorData: errorBody,
58
+ requestUrl: (0, fetchWithPayment_js_1.getRequestUrl)(input),
58
59
  onRetry: async () => {
59
60
  // Retry the entire fetch+error handling logic recursively
60
61
  // 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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"}
@@ -22,7 +22,7 @@ const useFetchWithPaymentCore_js_1 = require("../../../core/hooks/x402/useFetchW
22
22
  *
23
23
  * @param client - The thirdweb client used to access RPC infrastructure
24
24
  * @param options - Optional configuration for payment handling
25
- * @param options.maxValue - The maximum allowed payment amount in base units
25
+ * @param options.maxValue - The maximum allowed payment amount in base units. `0n` only allows zero-amount payments
26
26
  * @param options.paymentRequirementsSelector - Custom function to select payment requirements from available options
27
27
  * @param options.parseAs - How to parse the response: "json" (default), "text", or "raw"
28
28
  * @param options.storage - Storage for caching permit signatures (for "upto" scheme). Provide your own AsyncStorage implementation for React Native.
@@ -28,7 +28,7 @@ const SignInRequiredModal_js_1 = require("../../ui/x402/SignInRequiredModal.js")
28
28
  *
29
29
  * @param client - The thirdweb client used to access RPC infrastructure
30
30
  * @param options - Optional configuration for payment handling
31
- * @param options.maxValue - The maximum allowed payment amount in base units
31
+ * @param options.maxValue - The maximum allowed payment amount in base units. `0n` only allows zero-amount payments
32
32
  * @param options.paymentRequirementsSelector - Custom function to select payment requirements from available options
33
33
  * @param options.parseAs - How to parse the response: "json" (default), "text", or "raw"
34
34
  * @param options.uiEnabled - Whether to show the UI for connection, funding or payment retries (defaults to true). Set to false to handle errors yourself
@@ -141,7 +141,7 @@ function useFetchWithPayment(client, options) {
141
141
  const showModal = options?.uiEnabled !== false; // Default to true
142
142
  const showErrorModal = showModal
143
143
  ? (data) => {
144
- setRootEl((0, jsx_runtime_1.jsx)(PaymentErrorModal_js_1.PaymentErrorModal, { client: client, errorData: data.errorData, onCancel: () => {
144
+ setRootEl((0, jsx_runtime_1.jsx)(PaymentErrorModal_js_1.PaymentErrorModal, { client: client, errorData: data.errorData, requestUrl: data.requestUrl, onCancel: () => {
145
145
  setRootEl(null);
146
146
  data.onCancel();
147
147
  }, 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":"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"}
@@ -13,7 +13,10 @@ function useTokenQuery(params) {
13
13
  }
14
14
  const tokenAddress = params.tokenAddress || addresses_js_1.NATIVE_TOKEN_ADDRESS;
15
15
  const token = await (0, get_token_js_1.getToken)(params.client, tokenAddress, params.chainId).catch((err) => {
16
- err.message.includes("not supported") ? undefined : Promise.reject(err);
16
+ if (err instanceof Error && err.message.includes("not supported")) {
17
+ return undefined;
18
+ }
19
+ throw err;
17
20
  });
18
21
  if (!token) {
19
22
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"token-query.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/Bridge/common/token-query.ts"],"names":[],"mappings":";;AAYA,sCAoCC;AAhDD,uDAAiD;AAGjD,wEAA6E;AAC7E,0EAAmE;AAQnE,SAAgB,aAAa,CAAC,MAI7B;IACC,OAAO,IAAA,sBAAQ,EAAC;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,mCAAoB,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAQ,EAC1B,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":";;AAYA,sCAuCC;AAnDD,uDAAiD;AAGjD,wEAA6E;AAC7E,0EAAmE;AAQnE,SAAgB,aAAa,CAAC,MAI7B;IACC,OAAO,IAAA,sBAAQ,EAAC;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,mCAAoB,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAQ,EAC1B,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"}
@@ -18,17 +18,17 @@ const text_js_1 = require("../components/text.js");
18
18
  * @internal
19
19
  */
20
20
  function PaymentErrorModal(props) {
21
- const { client, errorData, onRetry, onCancel, theme, fundWalletOptions, paymentRequirementsSelector, } = props;
21
+ const { client, errorData, requestUrl, onRetry, onCancel, theme, fundWalletOptions, paymentRequirementsSelector, } = props;
22
22
  const [screen, setScreen] = (0, react_1.useState)("error");
23
23
  const isInsufficientFunds = errorData.error === "insufficient_funds";
24
24
  const wallet = (0, useActiveWallet_js_1.useActiveWallet)();
25
25
  // Extract chain and token info from errorData for BuyWidget
26
26
  const getBuyWidgetConfig = () => {
27
- if (!errorData.accepts || errorData.accepts.length === 0) {
27
+ // Get payment requirements from errorData
28
+ const parsedPaymentRequirements = (0, schemas_js_1.parsePaymentRequirementsForDisplay)(errorData, requestUrl);
29
+ if (parsedPaymentRequirements.length === 0) {
28
30
  return null;
29
31
  }
30
- // Get payment requirements from errorData
31
- const parsedPaymentRequirements = errorData.accepts;
32
32
  // Get the current chain from wallet
33
33
  const currentChain = wallet?.getChain();
34
34
  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":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = "5.121.1";
4
+ exports.version = "5.121.3";
5
5
  //# sourceMappingURL=version.js.map
@@ -5,6 +5,9 @@ exports.decodePayment = decodePayment;
5
5
  exports.encodePaymentRequired = encodePaymentRequired;
6
6
  exports.safeBase64Encode = safeBase64Encode;
7
7
  exports.safeBase64Decode = safeBase64Decode;
8
+ exports.base64DecodeUtf8 = base64DecodeUtf8;
9
+ const text_decoder_js_1 = require("../utils/text-decoder.js");
10
+ const text_encoder_js_1 = require("../utils/text-encoder.js");
8
11
  /**
9
12
  * Encodes a payment payload into a base64 string, ensuring bigint values are properly stringified
10
13
  *
@@ -25,7 +28,7 @@ function encodePayment(payment) {
25
28
  ])),
26
29
  },
27
30
  };
28
- return safeBase64Encode(JSON.stringify(safe));
31
+ return base64EncodeUtf8(JSON.stringify(safe));
29
32
  }
30
33
  /**
31
34
  * Decodes a base64 encoded payment string back into a PaymentPayload object
@@ -34,7 +37,7 @@ function encodePayment(payment) {
34
37
  * @returns The decoded and validated PaymentPayload object
35
38
  */
36
39
  function decodePayment(payment) {
37
- const decoded = safeBase64Decode(payment);
40
+ const decoded = base64DecodeUtf8(payment);
38
41
  const parsed = JSON.parse(decoded);
39
42
  const obj = {
40
43
  ...parsed,
@@ -77,4 +80,40 @@ function safeBase64Decode(data) {
77
80
  }
78
81
  return Buffer.from(data, "base64").toString("utf-8");
79
82
  }
83
+ /**
84
+ * Encodes a string as UTF-8 and then to base64
85
+ *
86
+ * @param data - The string to encode
87
+ * @returns The base64 encoded UTF-8 bytes
88
+ */
89
+ function base64EncodeUtf8(data) {
90
+ if (typeof globalThis !== "undefined" &&
91
+ typeof globalThis.btoa === "function") {
92
+ const bytes = (0, text_encoder_js_1.cachedTextEncoder)().encode(data);
93
+ let binary = "";
94
+ for (const byte of bytes) {
95
+ binary += String.fromCharCode(byte);
96
+ }
97
+ return globalThis.btoa(binary);
98
+ }
99
+ return Buffer.from(data, "utf-8").toString("base64");
100
+ }
101
+ /**
102
+ * Decodes a base64 string and interprets the bytes as UTF-8
103
+ *
104
+ * @param data - The base64 encoded string
105
+ * @returns The decoded string
106
+ */
107
+ function base64DecodeUtf8(data) {
108
+ if (typeof globalThis !== "undefined" &&
109
+ typeof globalThis.atob === "function") {
110
+ const binary = globalThis.atob(data);
111
+ const bytes = new Uint8Array(binary.length);
112
+ for (let i = 0; i < binary.length; i++) {
113
+ bytes[i] = binary.charCodeAt(i);
114
+ }
115
+ return (0, text_decoder_js_1.cachedTextDecoder)().decode(bytes);
116
+ }
117
+ return Buffer.from(data, "base64").toString("utf-8");
118
+ }
80
119
  //# sourceMappingURL=encode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/x402/encode.ts"],"names":[],"mappings":";;AAYA,sCAkBC;AAQD,sCASC;AAQD,sDAOC;AAQD,4CAQC;AAQD,4CAQC;AAxFD;;;;;GAKG;AACH,SAAgB,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,SAAgB,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,SAAgB,qBAAqB,CAAC,eAKrC;IACC,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,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,SAAgB,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":";;AAcA,sCAkBC;AAQD,sCASC;AAQD,sDAOC;AAQD,4CAQC;AAQD,4CAQC;AA6BD,4CAaC;AAzID,8DAA6D;AAC7D,8DAA6D;AAM7D;;;;;GAKG;AACH,SAAgB,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,SAAgB,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,SAAgB,qBAAqB,CAAC,eAKrC;IACC,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,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,SAAgB,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;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,IACE,OAAO,UAAU,KAAK,WAAW;QACjC,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EACrC,CAAC;QACD,MAAM,KAAK,GAAG,IAAA,mCAAiB,GAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IACE,OAAO,UAAU,KAAK,WAAW;QACjC,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EACrC,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,IAAA,mCAAiB,GAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.wrapFetchWithPayment = wrapFetchWithPayment;
4
+ exports.getRequestUrl = getRequestUrl;
4
5
  const utils_js_1 = require("../chains/utils.js");
5
6
  const address_js_1 = require("../utils/address.js");
6
7
  const webStorage_js_1 = require("../utils/storage/webStorage.js");
@@ -24,7 +25,7 @@ const types_js_1 = require("./types.js");
24
25
  * @param fetch - The fetch function to wrap (typically globalThis.fetch)
25
26
  * @param client - The thirdweb client used to access RPC infrastructure
26
27
  * @param wallet - The wallet used to sign payment messages
27
- * @param maxValue - The maximum allowed payment amount in base units
28
+ * @param maxValue - The maximum allowed payment amount in base units. `0n` only allows zero-amount payments
28
29
  * @returns A wrapped fetch function that handles 402 responses automatically
29
30
  *
30
31
  * @example
@@ -55,42 +56,37 @@ function wrapFetchWithPayment(fetch, client, wallet, options) {
55
56
  if (response.status !== 402) {
56
57
  return response;
57
58
  }
58
- let x402Version;
59
- let parsedPaymentRequirements;
60
- let error;
59
+ const initParams = init || {};
60
+ if (initParams.__is402Retry) {
61
+ throw new Error("Payment already attempted");
62
+ }
61
63
  // Check payment-required header first before falling back to JSON body
62
64
  const paymentRequiredHeader = response.headers.get("payment-required");
63
- if (paymentRequiredHeader) {
64
- const decoded = (0, encode_js_1.safeBase64Decode)(paymentRequiredHeader);
65
- const parsed = JSON.parse(decoded);
66
- if (!Array.isArray(parsed.accepts)) {
67
- throw new Error(`402 response has no usable x402 payment requirements. ${parsed.error ?? ""}`);
68
- }
69
- x402Version = parsed.x402Version ?? types_js_1.x402Version;
70
- parsedPaymentRequirements = parsed.accepts.map((x) => schemas_js_1.RequestedPaymentRequirementsSchema.parse(x));
71
- error = parsed.error;
72
- }
73
- else {
74
- const body = (await response.json());
75
- if (!Array.isArray(body.accepts)) {
76
- throw new Error(`402 response has no usable x402 payment requirements. ${body.error ?? ""}`);
77
- }
78
- x402Version = body.x402Version ?? types_js_1.x402Version;
79
- parsedPaymentRequirements = body.accepts.map((x) => schemas_js_1.RequestedPaymentRequirementsSchema.parse(x));
80
- error = body.error;
81
- }
65
+ const paymentRequired = paymentRequiredHeader
66
+ ? JSON.parse((0, encode_js_1.base64DecodeUtf8)(paymentRequiredHeader))
67
+ : await response.json();
68
+ const parsed = (0, schemas_js_1.parsePaymentRequired)(paymentRequired, getRequestUrl(input));
69
+ const x402Version = parsed.x402Version ?? types_js_1.x402Version;
70
+ const error = parsed.error;
71
+ const normalizedPaymentRequirements = parsed.accepts;
72
+ const parsedPaymentRequirements = normalizedPaymentRequirements.map((x) => x.requirements);
82
73
  const account = wallet.getAccount();
83
74
  let chain = wallet.getChain();
84
75
  if (!account || !chain) {
85
76
  throw new Error("Wallet not connected. Please connect your wallet to continue.");
86
77
  }
87
- const selectedPaymentRequirements = options?.paymentRequirementsSelector
78
+ const selected = options?.paymentRequirementsSelector
88
79
  ? options.paymentRequirementsSelector(parsedPaymentRequirements)
89
80
  : defaultPaymentRequirementsSelector(parsedPaymentRequirements, chain.id, error);
90
- if (!selectedPaymentRequirements) {
81
+ if (!selected) {
91
82
  throw new Error(`No suitable payment requirements found for chain ${chain.id}. ${error}`);
92
83
  }
93
- if (options?.maxValue &&
84
+ const { requirements: selectedPaymentRequirements } = (0, schemas_js_1.normalizePaymentRequirements)(selected, {
85
+ resourceUrl: parsed.resourceUrl,
86
+ });
87
+ const acceptedRequirement = normalizedPaymentRequirements.find((x) => x.requirements === selected)
88
+ ?.raw ?? selected;
89
+ if (options?.maxValue !== undefined &&
94
90
  BigInt(selectedPaymentRequirements.maxAmountRequired) > options.maxValue) {
95
91
  throw new Error(`Payment amount exceeds maximum allowed (currently set to ${options.maxValue} in base units)`);
96
92
  }
@@ -108,13 +104,17 @@ function wrapFetchWithPayment(fetch, client, wallet, options) {
108
104
  throw new Error(`Failed to switch chain (${paymentChainId})`);
109
105
  }
110
106
  }
111
- const paymentHeader = await (0, sign_js_1.createPaymentHeader)(client, account, selectedPaymentRequirements, x402Version, options?.storage ?? webStorage_js_1.webLocalStorage);
107
+ const storage = options?.storage ?? webStorage_js_1.webLocalStorage;
108
+ const paymentHeader = await (0, sign_js_1.createPaymentHeader)(client, account, selectedPaymentRequirements, x402Version, storage, {
109
+ accepted: acceptedRequirement,
110
+ resource: parsed.resource ?? {
111
+ url: selectedPaymentRequirements.resource,
112
+ description: selectedPaymentRequirements.description,
113
+ mimeType: selectedPaymentRequirements.mimeType,
114
+ },
115
+ }, options?.maxValue);
112
116
  const paymentRequestHeaderName = (0, headers_js_1.getPaymentRequestHeader)(x402Version);
113
117
  const paymentResponseHeaderName = (0, headers_js_1.getPaymentResponseHeader)(x402Version);
114
- const initParams = init || {};
115
- if (initParams.__is402Retry) {
116
- throw new Error("Payment already attempted");
117
- }
118
118
  const newInit = {
119
119
  ...initParams,
120
120
  headers: {
@@ -126,8 +126,8 @@ function wrapFetchWithPayment(fetch, client, wallet, options) {
126
126
  };
127
127
  const secondResponse = await fetch(input, newInit);
128
128
  // If payment was rejected (still 402), clear cached signature
129
- if (secondResponse.status === 402 && options?.storage) {
130
- await (0, permitSignatureStorage_js_1.clearPermitSignatureFromCache)(options.storage, {
129
+ if (secondResponse.status === 402) {
130
+ await (0, permitSignatureStorage_js_1.clearPermitSignatureFromCache)(storage, {
131
131
  chainId: paymentChainId,
132
132
  asset: selectedPaymentRequirements.asset,
133
133
  owner: (0, address_js_1.getAddress)(account.address),
@@ -137,6 +137,29 @@ function wrapFetchWithPayment(fetch, client, wallet, options) {
137
137
  return secondResponse;
138
138
  };
139
139
  }
140
+ /**
141
+ * Resolves the absolute URL of a fetch input, if it can be determined.
142
+ * @internal
143
+ */
144
+ function getRequestUrl(input) {
145
+ const url = typeof input === "string"
146
+ ? input
147
+ : input instanceof URL
148
+ ? input.href
149
+ : input?.url;
150
+ if (typeof url !== "string") {
151
+ return undefined;
152
+ }
153
+ try {
154
+ const base = typeof globalThis.location !== "undefined"
155
+ ? globalThis.location.href
156
+ : undefined;
157
+ return new URL(url, base).toString();
158
+ }
159
+ catch {
160
+ return undefined;
161
+ }
162
+ }
140
163
  function defaultPaymentRequirementsSelector(paymentRequirements, chainId, error) {
141
164
  if (!paymentRequirements.length) {
142
165
  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":"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"}
1
+ {"version":3,"file":"fetchWithPayment.js","sourceRoot":"","sources":["../../../src/x402/fetchWithPayment.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SupportedSignatureTypeSchema = exports.RequestedPaymentRequirementsSchema = void 0;
3
+ exports.SupportedSignatureTypeSchema = void 0;
4
+ exports.isAtomicAmount = isAtomicAmount;
5
+ exports.normalizePaymentRequirements = normalizePaymentRequirements;
6
+ exports.parsePaymentRequired = parsePaymentRequired;
7
+ exports.parsePaymentRequirementsForDisplay = parsePaymentRequirementsForDisplay;
4
8
  exports.extractEvmChainId = extractEvmChainId;
5
9
  exports.networkToCaip2ChainId = networkToCaip2ChainId;
6
10
  const types_1 = require("x402/types");
@@ -11,10 +15,138 @@ const RequestedPaymentPayloadSchema = types_1.PaymentPayloadSchema.extend({
11
15
  network: FacilitatorNetworkSchema,
12
16
  scheme: types_js_1.PaymentSchemeSchema,
13
17
  });
14
- exports.RequestedPaymentRequirementsSchema = types_1.PaymentRequirementsSchema.extend({
18
+ const RequestedPaymentRequirementsSchema = types_1.PaymentRequirementsSchema.extend({
15
19
  network: FacilitatorNetworkSchema,
16
20
  scheme: types_js_1.PaymentSchemeSchema,
17
21
  });
22
+ const MAX_UINT256 = 2n ** 256n - 1n;
23
+ const ATOMIC_AMOUNT_REGEX = /^\d{1,78}$/;
24
+ /**
25
+ * Returns true if the value is a base-10 integer string that fits in a uint256.
26
+ * @internal
27
+ */
28
+ function isAtomicAmount(value) {
29
+ return (typeof value === "string" &&
30
+ ATOMIC_AMOUNT_REGEX.test(value) &&
31
+ BigInt(value) <= MAX_UINT256);
32
+ }
33
+ /**
34
+ * Reads an amount field and returns it in canonical form (no leading zeros).
35
+ */
36
+ function readAtomicAmount(requirement, field) {
37
+ const value = requirement[field];
38
+ if (value === undefined) {
39
+ return undefined;
40
+ }
41
+ if (!isAtomicAmount(value)) {
42
+ throw new Error(`Invalid payment requirements: ${field} must be an integer string in base units`);
43
+ }
44
+ return BigInt(value).toString();
45
+ }
46
+ /**
47
+ * Extracts the top-level resource object of a 402 payment required response, if any.
48
+ */
49
+ function getPaymentRequiredResource(paymentRequired) {
50
+ if (!isRecord(paymentRequired)) {
51
+ return undefined;
52
+ }
53
+ const resource = paymentRequired.resource;
54
+ if (isRecord(resource) && typeof resource.url === "string") {
55
+ return resource;
56
+ }
57
+ return undefined;
58
+ }
59
+ /**
60
+ * Normalises a payment requirement from a 402 response (x402 v1, v2, or v2 envelopes with v1 requirements).
61
+ *
62
+ * @param requirement - The raw payment requirement
63
+ * @param context - Fallback values for fields that v2 moves out of the requirement
64
+ * @returns The normalised requirement and the raw requirement
65
+ * @throws If the amount is missing, malformed, or ambiguous, or the requirement is otherwise invalid
66
+ * @internal
67
+ */
68
+ function normalizePaymentRequirements(requirement, context = {}) {
69
+ if (!isRecord(requirement)) {
70
+ throw new Error("Invalid payment requirements: expected an object");
71
+ }
72
+ const amount = readAtomicAmount(requirement, "amount");
73
+ const maxAmountRequired = readAtomicAmount(requirement, "maxAmountRequired");
74
+ if (amount !== undefined &&
75
+ maxAmountRequired !== undefined &&
76
+ amount !== maxAmountRequired) {
77
+ throw new Error(`Invalid payment requirements: amount (${amount}) and maxAmountRequired (${maxAmountRequired}) do not match`);
78
+ }
79
+ const normalizedAmount = amount ?? maxAmountRequired;
80
+ if (normalizedAmount === undefined) {
81
+ throw new Error("Invalid payment requirements: missing amount or maxAmountRequired");
82
+ }
83
+ const requirements = RequestedPaymentRequirementsSchema.parse({
84
+ ...requirement,
85
+ maxAmountRequired: normalizedAmount,
86
+ resource: typeof requirement.resource === "string"
87
+ ? requirement.resource
88
+ : context.resourceUrl,
89
+ description: typeof requirement.description === "string"
90
+ ? requirement.description
91
+ : "",
92
+ mimeType: typeof requirement.mimeType === "string" ? requirement.mimeType : "",
93
+ });
94
+ return { requirements, raw: requirement };
95
+ }
96
+ /**
97
+ * Parses a decoded 402 payment required object (PAYMENT-REQUIRED header or JSON body).
98
+ * Every entry of `accepts` is normalised with {@link normalizePaymentRequirements}.
99
+ *
100
+ * @param paymentRequired - The decoded payment required object
101
+ * @param requestUrl - The URL of the request, used when the response carries no resource URL
102
+ * @returns The x402 version, error, top-level resource, resolved resource URL and normalised requirements
103
+ * @throws If the object has no accepts array or any requirement is invalid
104
+ * @internal
105
+ */
106
+ function parsePaymentRequired(paymentRequired, requestUrl) {
107
+ const data = isRecord(paymentRequired) ? paymentRequired : {};
108
+ const error = typeof data.error === "string" ? data.error : undefined;
109
+ if (!Array.isArray(data.accepts)) {
110
+ throw new Error(`402 response has no usable x402 payment requirements. ${error ?? ""}`);
111
+ }
112
+ const resource = getPaymentRequiredResource(data);
113
+ const resourceUrl = typeof resource?.url === "string" ? resource.url : requestUrl;
114
+ return {
115
+ x402Version: typeof data.x402Version === "number" ? data.x402Version : undefined,
116
+ error,
117
+ resource,
118
+ resourceUrl,
119
+ accepts: data.accepts.map((requirement) => normalizePaymentRequirements(requirement, { resourceUrl })),
120
+ };
121
+ }
122
+ /**
123
+ * Parses the payment requirements of a 402 response for display only, skipping invalid entries.
124
+ *
125
+ * @param paymentRequired - The decoded payment required object
126
+ * @param requestUrl - The URL of the request, used when the response carries no resource URL
127
+ * @returns The normalised requirements that passed validation
128
+ * @internal
129
+ */
130
+ function parsePaymentRequirementsForDisplay(paymentRequired, requestUrl) {
131
+ if (!isRecord(paymentRequired) || !Array.isArray(paymentRequired.accepts)) {
132
+ return [];
133
+ }
134
+ const resource = getPaymentRequiredResource(paymentRequired);
135
+ const resourceUrl = typeof resource?.url === "string" ? resource.url : requestUrl;
136
+ return paymentRequired.accepts.flatMap((requirement) => {
137
+ try {
138
+ return [
139
+ normalizePaymentRequirements(requirement, { resourceUrl }).requirements,
140
+ ];
141
+ }
142
+ catch {
143
+ return [];
144
+ }
145
+ });
146
+ }
147
+ function isRecord(value) {
148
+ return typeof value === "object" && value !== null && !Array.isArray(value);
149
+ }
18
150
  const FacilitatorSettleResponseSchema = types_1.SettleResponseSchema.extend({
19
151
  network: FacilitatorNetworkSchema,
20
152
  errorMessage: zod_1.z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/x402/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/x402/schemas.ts"],"names":[],"mappings":"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"}