thirdweb 5.34.0-nightly-f6ff5a78fc2d65f0f250b154f1405210ca57ce0a-20240708000345 → 5.34.0-nightly-325416ea19905901f30e795cbf93cb8a085be02f-20240708203622

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 (142) hide show
  1. package/dist/cjs/auth/core/verify-jwt.js +1 -1
  2. package/dist/cjs/auth/core/verify-jwt.js.map +1 -1
  3. package/dist/cjs/auth/verify-hash.js +98 -0
  4. package/dist/cjs/auth/verify-hash.js.map +1 -0
  5. package/dist/cjs/auth/verify-signature.js +5 -60
  6. package/dist/cjs/auth/verify-signature.js.map +1 -1
  7. package/dist/cjs/auth/verify-typed-data.js +80 -0
  8. package/dist/cjs/auth/verify-typed-data.js.map +1 -0
  9. package/dist/cjs/chains/chain-definitions/blast.js +17 -0
  10. package/dist/cjs/chains/chain-definitions/blast.js.map +1 -0
  11. package/dist/cjs/exports/chains.js +3 -1
  12. package/dist/cjs/exports/chains.js.map +1 -1
  13. package/dist/cjs/exports/extensions/erc20.js +3 -1
  14. package/dist/cjs/exports/extensions/erc20.js.map +1 -1
  15. package/dist/cjs/exports/utils.js +10 -1
  16. package/dist/cjs/exports/utils.js.map +1 -1
  17. package/dist/cjs/extensions/erc1271/checkContractWalletSignature.js +1 -0
  18. package/dist/cjs/extensions/erc1271/checkContractWalletSignature.js.map +1 -1
  19. package/dist/cjs/extensions/erc1271/checkContractWalletSignedTypedData.js +1 -0
  20. package/dist/cjs/extensions/erc1271/checkContractWalletSignedTypedData.js.map +1 -1
  21. package/dist/cjs/extensions/erc20/write/transferBatch.js +61 -0
  22. package/dist/cjs/extensions/erc20/write/transferBatch.js.map +1 -0
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +21 -12
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +1 -1
  26. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +4 -4
  27. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -1
  28. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +1 -3
  29. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
  30. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +1 -4
  31. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  32. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +4 -4
  34. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +1 -1
  35. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistoryButton.js +1 -1
  36. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/TokenInfoRow.js +1 -1
  37. package/dist/cjs/utils/hashing/hashTypedData.js +122 -0
  38. package/dist/cjs/utils/hashing/hashTypedData.js.map +1 -0
  39. package/dist/cjs/utils/jwt/decode-jwt.js +2 -2
  40. package/dist/cjs/utils/jwt/decode-jwt.js.map +1 -1
  41. package/dist/cjs/utils/jwt/refresh-jwt.js +1 -1
  42. package/dist/cjs/utils/jwt/refresh-jwt.js.map +1 -1
  43. package/dist/cjs/version.js +1 -1
  44. package/dist/esm/auth/core/verify-jwt.js +2 -2
  45. package/dist/esm/auth/core/verify-jwt.js.map +1 -1
  46. package/dist/esm/auth/verify-hash.js +95 -0
  47. package/dist/esm/auth/verify-hash.js.map +1 -0
  48. package/dist/esm/auth/verify-signature.js +6 -61
  49. package/dist/esm/auth/verify-signature.js.map +1 -1
  50. package/dist/esm/auth/verify-typed-data.js +77 -0
  51. package/dist/esm/auth/verify-typed-data.js.map +1 -0
  52. package/dist/esm/chains/chain-definitions/blast.js +14 -0
  53. package/dist/esm/chains/chain-definitions/blast.js.map +1 -0
  54. package/dist/esm/exports/chains.js +1 -0
  55. package/dist/esm/exports/chains.js.map +1 -1
  56. package/dist/esm/exports/extensions/erc20.js +1 -0
  57. package/dist/esm/exports/extensions/erc20.js.map +1 -1
  58. package/dist/esm/exports/utils.js +6 -0
  59. package/dist/esm/exports/utils.js.map +1 -1
  60. package/dist/esm/extensions/erc1271/checkContractWalletSignature.js +1 -0
  61. package/dist/esm/extensions/erc1271/checkContractWalletSignature.js.map +1 -1
  62. package/dist/esm/extensions/erc1271/checkContractWalletSignedTypedData.js +1 -0
  63. package/dist/esm/extensions/erc1271/checkContractWalletSignedTypedData.js.map +1 -1
  64. package/dist/esm/extensions/erc20/write/transferBatch.js +58 -0
  65. package/dist/esm/extensions/erc20/write/transferBatch.js.map +1 -0
  66. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +21 -12
  67. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  68. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.js +1 -1
  69. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js +4 -4
  70. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -1
  71. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +1 -3
  72. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
  73. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +1 -4
  74. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  75. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +1 -1
  76. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +4 -4
  77. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +1 -1
  78. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistoryButton.js +1 -1
  79. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/TokenInfoRow.js +1 -1
  80. package/dist/esm/utils/hashing/hashTypedData.js +118 -0
  81. package/dist/esm/utils/hashing/hashTypedData.js.map +1 -0
  82. package/dist/esm/utils/jwt/decode-jwt.js +1 -1
  83. package/dist/esm/utils/jwt/decode-jwt.js.map +1 -1
  84. package/dist/esm/utils/jwt/refresh-jwt.js +2 -2
  85. package/dist/esm/utils/jwt/refresh-jwt.js.map +1 -1
  86. package/dist/esm/version.js +1 -1
  87. package/dist/types/auth/verify-hash.d.ts +45 -0
  88. package/dist/types/auth/verify-hash.d.ts.map +1 -0
  89. package/dist/types/auth/verify-signature.d.ts.map +1 -1
  90. package/dist/types/auth/verify-typed-data.d.ts +75 -0
  91. package/dist/types/auth/verify-typed-data.d.ts.map +1 -0
  92. package/dist/types/chains/chain-definitions/blast.d.ts +27 -0
  93. package/dist/types/chains/chain-definitions/blast.d.ts.map +1 -0
  94. package/dist/types/exports/chains.d.ts +1 -0
  95. package/dist/types/exports/chains.d.ts.map +1 -1
  96. package/dist/types/exports/extensions/erc20.d.ts +1 -0
  97. package/dist/types/exports/extensions/erc20.d.ts.map +1 -1
  98. package/dist/types/exports/utils.d.ts +4 -0
  99. package/dist/types/exports/utils.d.ts.map +1 -1
  100. package/dist/types/extensions/erc1271/checkContractWalletSignature.d.ts +1 -0
  101. package/dist/types/extensions/erc1271/checkContractWalletSignature.d.ts.map +1 -1
  102. package/dist/types/extensions/erc1271/checkContractWalletSignedTypedData.d.ts +1 -0
  103. package/dist/types/extensions/erc1271/checkContractWalletSignedTypedData.d.ts.map +1 -1
  104. package/dist/types/extensions/erc20/write/transferBatch.d.ts +42 -0
  105. package/dist/types/extensions/erc20/write/transferBatch.d.ts.map +1 -0
  106. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts.map +1 -1
  107. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  108. package/dist/types/utils/hashing/hashTypedData.d.ts +17 -0
  109. package/dist/types/utils/hashing/hashTypedData.d.ts.map +1 -0
  110. package/dist/types/utils/jwt/decode-jwt.d.ts +1 -1
  111. package/dist/types/utils/jwt/decode-jwt.d.ts.map +1 -1
  112. package/dist/types/version.d.ts +1 -1
  113. package/package.json +1 -1
  114. package/src/auth/core/verify-jwt.ts +2 -2
  115. package/src/auth/verify-hash.test.ts +66 -0
  116. package/src/auth/verify-hash.ts +126 -0
  117. package/src/auth/verify-signature.ts +6 -77
  118. package/src/auth/verify-typed-data.test.ts +82 -0
  119. package/src/auth/verify-typed-data.ts +110 -0
  120. package/src/chains/chain-definitions/blast.ts +14 -0
  121. package/src/exports/chains.ts +1 -0
  122. package/src/exports/extensions/erc20.ts +4 -0
  123. package/src/exports/utils.ts +8 -0
  124. package/src/extensions/erc1271/checkContractWalletSignature.ts +1 -0
  125. package/src/extensions/erc1271/checkContractWalletSignedTypedData.ts +1 -0
  126. package/src/extensions/erc20/write/transferBatch.ts +78 -0
  127. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +42 -12
  128. package/src/react/web/ui/ConnectWallet/screens/Buy/PayWIthCreditCard.tsx +1 -1
  129. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx +5 -5
  130. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx +1 -1
  131. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts +1 -5
  132. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +1 -6
  133. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +2 -2
  134. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.tsx +4 -4
  135. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +1 -1
  136. package/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistoryButton.tsx +1 -1
  137. package/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/TokenInfoRow.tsx +1 -1
  138. package/src/utils/hashing/hashTypedData.test.ts +207 -0
  139. package/src/utils/hashing/hashTypedData.ts +210 -0
  140. package/src/utils/jwt/decode-jwt.ts +1 -1
  141. package/src/utils/jwt/refresh-jwt.ts +2 -2
  142. package/src/version.ts +1 -1
@@ -12,7 +12,7 @@ const verify_signature_js_1 = require("../verify-signature.js");
12
12
  */
13
13
  function verifyJWT(options) {
14
14
  return async (params) => {
15
- const { payload, signature } = (0, decode_jwt_js_1.deccodeJWT)(params.jwt);
15
+ const { payload, signature } = (0, decode_jwt_js_1.decodeJWT)(params.jwt);
16
16
  if (!options.adminAccount) {
17
17
  throw new Error("No admin account provided. Cannot verify JWT.");
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verify-jwt.js","sourceRoot":"","sources":["../../../../src/auth/core/verify-jwt.ts"],"names":[],"mappings":";;AA0BA,8BAqEC;AA/FD,iEAA2D;AAE3D,gEAA4D;AAiB5D;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,OAAoB;IAC5C,OAAO,KAAK,EAAE,MAAuB,EAA4B,EAAE;QACjE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,0BAAU,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,gBAAgB;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,wCAAwC,OAAO,CAAC,MAAM,mCAAmC,OAAO,CAAC,GAAG,GAAG;aAC/G,CAAC;QACJ,CAAC;QAED,uDAAuD;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,4CAA4C,OAAO,CAAC,GAAG,6BAA6B,WAAW,GAAG;aAC1G,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,qCAAqC,OAAO,CAAC,GAAG,6BAA6B,WAAW,GAAG;aACnG,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QACnD,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gCAAgC,aAAa,6CAA6C,OAAO,CAAC,GAAG,GAAG;aAChH,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAkB,EAAC;YACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAChC,SAAS;YACT,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gCAAgC,aAAa,4BAA4B;aACjF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,OAAO;SACnB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"verify-jwt.js","sourceRoot":"","sources":["../../../../src/auth/core/verify-jwt.ts"],"names":[],"mappings":";;AA0BA,8BAqEC;AA/FD,iEAA0D;AAE1D,gEAA4D;AAiB5D;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,OAAoB;IAC5C,OAAO,KAAK,EAAE,MAAuB,EAA4B,EAAE;QACjE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,yBAAS,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,gBAAgB;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,wCAAwC,OAAO,CAAC,MAAM,mCAAmC,OAAO,CAAC,GAAG,GAAG;aAC/G,CAAC;QACJ,CAAC;QAED,uDAAuD;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,4CAA4C,OAAO,CAAC,GAAG,6BAA6B,WAAW,GAAG;aAC1G,CAAC;QACJ,CAAC;QAED,sCAAsC;QACtC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,qCAAqC,OAAO,CAAC,GAAG,6BAA6B,WAAW,GAAG;aACnG,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QACnD,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9D,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gCAAgC,aAAa,6CAA6C,OAAO,CAAC,GAAG,GAAG;aAChH,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAkB,EAAC;YACxC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAChC,SAAS;YACT,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gCAAgC,aAAa,4BAA4B;aACjF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,OAAO;SACnB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyHash = verifyHash;
4
+ const utils_1 = require("@noble/curves/abstract/utils");
5
+ const viem_1 = require("viem");
6
+ const contract_js_1 = require("../contract/contract.js");
7
+ const eth_call_js_1 = require("../rpc/actions/eth_call.js");
8
+ const rpc_js_1 = require("../rpc/rpc.js");
9
+ const from_bytes_js_1 = require("../utils/encoding/from-bytes.js");
10
+ const hex_js_1 = require("../utils/encoding/hex.js");
11
+ const to_bytes_js_1 = require("../utils/encoding/to-bytes.js");
12
+ const constants_js_1 = require("../wallets/smart/lib/constants.js");
13
+ const constants_js_2 = require("./constants.js");
14
+ const is_erc6492_signature_js_1 = require("./is-erc6492-signature.js");
15
+ const serialize_erc6492_signature_js_1 = require("./serialize-erc6492-signature.js");
16
+ /**
17
+ * @description Verify that an address created the provided signature for a given hash using [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492). This function is interoperable with all wallet types, including EOAs.
18
+ * This function should rarely be used directly, instead use @see {import("./verify-signature.js")} and @see {import("./verify-typed-data.js")}}
19
+ *
20
+ * @param {Hex} options.hash The hash that was signed
21
+ * @param {string | Uint8Array | Signature} options.signature The signature that was signed
22
+ * @param {string} options.address The address that signed the hash
23
+ * @param {ThirdwebClient} options.client The Thirdweb client
24
+ * @param {Chain} options.chain The chain that the address is on. For an EOA, this can be any chain.
25
+ * @param {string} [options.accountFactory.address] The address of the account factory that created the account if using a smart account with a custom account factory
26
+ * @param {Hex} [options.accountFactory.verificationCalldata] The calldata that was used to create the account if using a smart account with a custom account factory
27
+ *
28
+ * @returns {Promise<boolean>} A promise that resolves to `true` if the signature is valid, or `false` otherwise.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * import { verifyHash } from "thirdweb/utils";
33
+ * const isValid = await verifyHash({
34
+ * hash: "0x1234",
35
+ * signature: "0x1234",
36
+ * address: "0x1234",
37
+ * client,
38
+ * chain,
39
+ * });
40
+ * ```
41
+ *
42
+ * @auth
43
+ */
44
+ async function verifyHash({ hash, signature, address, client, chain, accountFactory, }) {
45
+ const signatureHex = (() => {
46
+ if ((0, hex_js_1.isHex)(signature))
47
+ return signature;
48
+ if (typeof signature === "object" && "r" in signature && "s" in signature)
49
+ return (0, viem_1.serializeSignature)(signature);
50
+ if (signature instanceof Uint8Array)
51
+ return (0, from_bytes_js_1.fromBytes)(signature, "hex");
52
+ // We should never hit this but TS doesn't know that
53
+ throw new Error(`Invalid signature type for signature ${signature}: ${typeof signature}`);
54
+ })();
55
+ const accountContract = (0, contract_js_1.getContract)({
56
+ address,
57
+ chain,
58
+ client,
59
+ });
60
+ const wrappedSignature = await (async () => {
61
+ // If this sigature was already wrapped for ERC-6492, carry on
62
+ if ((0, is_erc6492_signature_js_1.isErc6492Signature)(signatureHex))
63
+ return signatureHex;
64
+ // If the contract is already deployed, return the original signature
65
+ const { isContractDeployed } = await Promise.resolve().then(() => require("../utils/bytecode/is-contract-deployed.js"));
66
+ const isDeployed = await isContractDeployed(accountContract);
67
+ if (!isDeployed)
68
+ return signatureHex;
69
+ // Otherwise, serialize the signature for ERC-6492 validation
70
+ return (0, serialize_erc6492_signature_js_1.serializeErc6492Signature)({
71
+ address: accountFactory?.address ?? constants_js_1.DEFAULT_ACCOUNT_FACTORY,
72
+ data: accountFactory?.verificationCalldata ?? "0x",
73
+ signature: signatureHex,
74
+ });
75
+ })();
76
+ const verificationData = (0, viem_1.encodeDeployData)({
77
+ abi: constants_js_2.universalSignatureValidatorAbi,
78
+ args: [address, hash, wrappedSignature],
79
+ bytecode: constants_js_2.universalSignatureValidatorByteCode,
80
+ });
81
+ const rpcRequest = (0, rpc_js_1.getRpcClient)({
82
+ chain,
83
+ client,
84
+ });
85
+ try {
86
+ const result = await (0, eth_call_js_1.eth_call)(rpcRequest, {
87
+ data: verificationData,
88
+ });
89
+ const hexResult = (0, hex_js_1.isHex)(result) ? (0, to_bytes_js_1.toBytes)(result) : result;
90
+ return (0, utils_1.equalBytes)(hexResult, (0, to_bytes_js_1.toBytes)("0x1"));
91
+ }
92
+ catch (error) {
93
+ // TODO: Improve overall RPC error handling so we can tell if this was an actual verification failure or some other error
94
+ // Verification failed somehow
95
+ return false;
96
+ }
97
+ }
98
+ //# sourceMappingURL=verify-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-hash.js","sourceRoot":"","sources":["../../../src/auth/verify-hash.ts"],"names":[],"mappings":";;AA0DA,gCAmEC;AA7HD,wDAA0D;AAC1D,+BAA4E;AAG5E,yDAAsD;AACtD,4DAAsD;AACtD,0CAA6C;AAC7C,mEAA4D;AAC5D,qDAA2D;AAC3D,+DAAwD;AACxD,oEAA4E;AAC5E,iDAGwB;AACxB,uEAA+D;AAC/D,qFAA6E;AAc7E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,UAAU,CAAC,EAC/B,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,KAAK,EACL,cAAc,GACG;IACjB,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS;YACvE,OAAO,IAAA,yBAAkB,EAAC,SAAS,CAAC,CAAC;QACvC,IAAI,SAAS,YAAY,UAAU;YAAE,OAAO,IAAA,yBAAS,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxE,oDAAoD;QACpD,MAAM,IAAI,KAAK,CACb,wCAAwC,SAAS,KAAK,OAAO,SAAS,EAAE,CACzE,CAAC;IACJ,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,eAAe,GAAG,IAAA,yBAAW,EAAC;QAClC,OAAO;QACP,KAAK;QACL,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QACzC,8DAA8D;QAC9D,IAAI,IAAA,4CAAkB,EAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;QAE1D,qEAAqE;QACrE,MAAM,EAAE,kBAAkB,EAAE,GAAG,2CAC7B,2CAA2C,EAC5C,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU;YAAE,OAAO,YAAY,CAAC;QAErC,6DAA6D;QAC7D,OAAO,IAAA,0DAAyB,EAAC;YAC/B,OAAO,EAAE,cAAc,EAAE,OAAO,IAAI,sCAAuB;YAC3D,IAAI,EAAE,cAAc,EAAE,oBAAoB,IAAI,IAAI;YAClD,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,gBAAgB,GAAG,IAAA,uBAAgB,EAAC;QACxC,GAAG,EAAE,6CAA8B;QACnC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC;QACvC,QAAQ,EAAE,kDAAmC;KAC9C,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC;QAC9B,KAAK;QACL,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAQ,EAAC,UAAU,EAAE;YACxC,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAA,cAAK,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAO,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,OAAO,IAAA,kBAAU,EAAC,SAAS,EAAE,IAAA,qBAAO,EAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yHAAyH;QACzH,8BAA8B;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -3,19 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.verifyEOASignature = verifyEOASignature;
4
4
  exports.verifyContractWalletSignature = verifyContractWalletSignature;
5
5
  exports.verifySignature = verifySignature;
6
- const utils_1 = require("@noble/curves/abstract/utils");
7
6
  const viem_1 = require("viem");
8
- const contract_js_1 = require("../contract/contract.js");
9
- const eth_call_js_1 = require("../rpc/actions/eth_call.js");
10
- const rpc_js_1 = require("../rpc/rpc.js");
11
- const from_bytes_js_1 = require("../utils/encoding/from-bytes.js");
12
7
  const hex_js_1 = require("../utils/encoding/hex.js");
13
- const to_bytes_js_1 = require("../utils/encoding/to-bytes.js");
14
8
  const hashMessage_js_1 = require("../utils/hashing/hashMessage.js");
15
- const constants_js_1 = require("../wallets/smart/lib/constants.js");
16
- const constants_js_2 = require("./constants.js");
17
- const is_erc6492_signature_js_1 = require("./is-erc6492-signature.js");
18
- const serialize_erc6492_signature_js_1 = require("./serialize-erc6492-signature.js");
9
+ const verify_hash_js_1 = require("./verify-hash.js");
19
10
  /**
20
11
  * Verifies the signature of a message using an Ethereum account's EOA (Externally Owned Account).
21
12
  * @param options - The options for verifying the signature.
@@ -78,61 +69,15 @@ async function verifyEOASignature(options) {
78
69
  * @auth
79
70
  */
80
71
  async function verifyContractWalletSignature({ signature, message, address, chain, client, accountFactory, }) {
81
- console.log("verifyContractWalletSignature");
82
72
  const messageHash = (0, hashMessage_js_1.hashMessage)(message);
83
- const signatureHex = (() => {
84
- if ((0, hex_js_1.isHex)(signature))
85
- return signature;
86
- if (typeof signature === "object" && "r" in signature && "s" in signature)
87
- return (0, viem_1.serializeSignature)(signature);
88
- if (signature instanceof Uint8Array)
89
- return (0, from_bytes_js_1.fromBytes)(signature, "hex");
90
- // We should never hit this but TS doesn't know that
91
- throw new Error(`Invalid signature type for signature ${signature}: ${typeof signature}`);
92
- })();
93
- const accountContract = (0, contract_js_1.getContract)({
73
+ return (0, verify_hash_js_1.verifyHash)({
74
+ hash: messageHash,
75
+ signature,
94
76
  address,
95
- chain,
96
77
  client,
97
- });
98
- const wrappedSignature = await (async () => {
99
- // If this sigature was already wrapped for ERC-6492, carry on
100
- if ((0, is_erc6492_signature_js_1.isErc6492Signature)(signatureHex))
101
- return signatureHex;
102
- // If the contract is already deployed, return the original signature
103
- const { isContractDeployed } = await Promise.resolve().then(() => require("../utils/bytecode/is-contract-deployed.js"));
104
- const isDeployed = await isContractDeployed(accountContract);
105
- if (!isDeployed)
106
- return signatureHex;
107
- // Otherwise, serialize the signature for ERC-6492 validation
108
- return (0, serialize_erc6492_signature_js_1.serializeErc6492Signature)({
109
- address: accountFactory?.address ?? constants_js_1.DEFAULT_ACCOUNT_FACTORY,
110
- data: accountFactory?.verificationCalldata ?? "0x",
111
- signature: signatureHex,
112
- });
113
- })();
114
- const verificationData = (0, viem_1.encodeDeployData)({
115
- abi: constants_js_2.universalSignatureValidatorAbi,
116
- args: [address, messageHash, wrappedSignature],
117
- bytecode: constants_js_2.universalSignatureValidatorByteCode,
118
- });
119
- const rpcRequest = (0, rpc_js_1.getRpcClient)({
120
78
  chain,
121
- client,
79
+ accountFactory,
122
80
  });
123
- try {
124
- const result = await (0, eth_call_js_1.eth_call)(rpcRequest, {
125
- data: verificationData,
126
- });
127
- const hexResult = (0, hex_js_1.isHex)(result) ? (0, to_bytes_js_1.toBytes)(result) : result;
128
- return (0, utils_1.equalBytes)(hexResult, (0, to_bytes_js_1.toBytes)("0x1"));
129
- }
130
- catch (error) {
131
- console.log("error", error);
132
- // TODO: Improve overall RPC error handling so we can tell if this was an actual verification failure or some other error
133
- // Verification failed somehow
134
- return false;
135
- }
136
81
  }
137
82
  /**
138
83
  * Verifies the signature based on the provided options.
@@ -1 +1 @@
1
- {"version":3,"file":"verify-signature.js","sourceRoot":"","sources":["../../../src/auth/verify-signature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify-signature.js","sourceRoot":"","sources":["../../../src/auth/verify-signature.ts"],"names":[],"mappings":";;AA+BA,gDAgBC;AA2CD,sEAiBC;AA4BD,0CA2BC;AAlKD,+BAAsD;AAGtD,qDAA2D;AAC3D,oEAA8D;AAE9D,qDAA8C;AAQ9C;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAAiC;IACxE,MAAM,WAAW,GAAG,IAAA,4BAAW,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,IAAA,qBAAc,EAAC;QAC5C,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IAEH,IAAI,gBAAgB,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACI,KAAK,UAAU,6BAA6B,CAAC,EAClD,SAAS,EACT,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,cAAc,GACsB;IACpC,MAAM,WAAW,GAAG,IAAA,4BAAW,EAAC,OAAO,CAAC,CAAC;IACzC,OAAO,IAAA,2BAAU,EAAC;QAChB,IAAI,EAAE,WAAW;QACjB,SAAS;QACT,OAAO;QACP,MAAM;QACN,KAAK;QACL,cAAc;KACf,CAAC,CAAC;AACL,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,IAAI,gBAAgB,GAAG,KAAK,CAAC;AACtB,KAAK,UAAU,eAAe,CAAC,OAA8B;IAClE,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;IACD,IAAI,qCAAqC,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,OAAO,MAAM,6BAA6B,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7B,oCAAoC;QACpC,gBAAgB,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC;;;;;KAKb,CAAC,CAAC;IACL,CAAC;IACD,2DAA2D;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qCAAqC,CAC5C,OAA8B;IAE9B,OAAO,CACL,OAAO,IAAI,OAAO;QAClB,OAAO,CAAC,KAAK,KAAK,SAAS;QAC3B,QAAQ,IAAI,OAAO;QACnB,OAAO,CAAC,MAAM,KAAK,SAAS,CAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyTypedData = verifyTypedData;
4
+ const viem_1 = require("viem");
5
+ const verify_hash_js_1 = require("./verify-hash.js");
6
+ /**
7
+ * @description Verify am [EIP-712](https://eips.ethereum.org/EIPS/eip-712) typed data signature. This function is interoperable with all wallet types (smart accounts or EOAs).
8
+ *
9
+ * @param {string} options.address The address that signed the typed data
10
+ * @param {string | Uint8Array | Signature} options.signature The signature that was signed
11
+ * @param {ThirdwebClient} options.client The Thirdweb client
12
+ * @param {Chain} options.chain The chain that the address is on. For an EOA, this can be any chain.
13
+ * @param {string} [options.accountFactory.address] The address of the account factory that created the account if using a smart account with a custom account factory
14
+ * @param {Hex} [options.accountFactory.verificationCalldata] The calldata that was used to create the account if using a smart account with a custom account factory
15
+ * @param {typeof VerifyTypedDataParams.message} options.message The EIP-712 message that was signed.
16
+ * @param {typeof VerifyTypedDataParams.domain} options.domain The EIP-712 domain that was signed.
17
+ * @param {typeof VerifyTypedDataParams.primaryType} options.primaryType The EIP-712 primary type that was signed.
18
+ * @param {typeof VerifyTypedDataParams.types} options.types The EIP-712 types that were signed.
19
+ *
20
+ * @returns {Promise<boolean>} A promise that resolves to `true` if the signature is valid, or `false` otherwise.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { verifyTypedData } from "thirdweb/utils";
25
+ * const isValid = await verifyTypedData({
26
+ * address: "0x...",
27
+ * signature: "0x...",
28
+ * client,
29
+ * chain,
30
+ * domain: {
31
+ name: "Ether Mail",
32
+ version: "1",
33
+ chainId: 1,
34
+ verifyingContract: "0x0000000000000000000000000000000000000000",
35
+ },
36
+ * primaryType: "Mail",
37
+ * types: {
38
+ Person: [
39
+ { name: "name", type: "string" },
40
+ { name: "wallet", type: "address" },
41
+ ],
42
+ Mail: [
43
+ { name: "from", type: "Person" },
44
+ { name: "to", type: "Person" },
45
+ { name: "contents", type: "string" },
46
+ ],
47
+ },
48
+ message: {
49
+ from: {
50
+ name: "Cow",
51
+ wallet: "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
52
+ },
53
+ to: {
54
+ name: "Bob",
55
+ wallet: "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
56
+ },
57
+ contents: "Hello, Bob!",
58
+ },
59
+ * });
60
+ * ```
61
+ *
62
+ * @auth
63
+ */
64
+ async function verifyTypedData({ address, signature, client, chain, accountFactory, message, domain, primaryType, types, }) {
65
+ const messageHash = (0, viem_1.hashTypedData)({
66
+ message,
67
+ domain,
68
+ primaryType,
69
+ types,
70
+ });
71
+ return (0, verify_hash_js_1.verifyHash)({
72
+ hash: messageHash,
73
+ signature,
74
+ address,
75
+ chain,
76
+ client,
77
+ accountFactory,
78
+ });
79
+ }
80
+ //# sourceMappingURL=verify-typed-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-typed-data.js","sourceRoot":"","sources":["../../../src/auth/verify-typed-data.ts"],"names":[],"mappings":";;AAiFA,0CA4BC;AA5GD,+BAAqC;AAKrC,qDAAqE;AAiBrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACI,KAAK,UAAU,eAAe,CAGnC,EACA,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,cAAc,EACd,OAAO,EACP,MAAM,EACN,WAAW,EACX,KAAK,GACyC;IAC9C,MAAM,WAAW,GAAG,IAAA,oBAAa,EAAC;QAChC,OAAO;QACP,MAAM;QACN,WAAW;QACX,KAAK;KACiB,CAAC,CAAC;IAC1B,OAAO,IAAA,2BAAU,EAAC;QAChB,IAAI,EAAE,WAAW;QACjB,SAAS;QACT,OAAO;QACP,KAAK;QACL,MAAM;QACN,cAAc;KACf,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.blast = void 0;
4
+ const utils_js_1 = require("../utils.js");
5
+ exports.blast = (0, utils_js_1.defineChain)({
6
+ id: 81457,
7
+ name: "Blast",
8
+ nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
9
+ blockExplorers: [
10
+ {
11
+ name: "Blastscan",
12
+ url: "https://blastscan.io",
13
+ apiUrl: "https://api.blastscan.io/api",
14
+ },
15
+ ],
16
+ });
17
+ //# sourceMappingURL=blast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blast.js","sourceRoot":"","sources":["../../../../src/chains/chain-definitions/blast.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAE7B,QAAA,KAAK,GAAmB,IAAA,sBAAW,EAAC;IAC/C,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,OAAO;IACb,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9D,cAAc,EAAE;QACd;YACE,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,sBAAsB;YAC3B,MAAM,EAAE,8BAA8B;SACvC;KACF;CACF,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zkSyncSepolia = exports.zkSync = exports.bscTestnet = exports.bsc = exports.zora = exports.zoraSepolia = exports.sepolia = exports.polygon = exports.polygonAmoy = exports.mumbai = exports.polygonMumbai = exports.linea = exports.lineaSepolia = exports.optimism = exports.optimismSepolia = exports.mainnet = exports.ethereum = exports.base = exports.baseSepolia = exports.avalanche = exports.avalancheFuji = exports.arbitrum = exports.arbitrumSepolia = exports.arbitrumNova = exports.hardhat = exports.anvil = exports.getRpcUrlForChain = exports.getChainMetadata = exports.defineChain = void 0;
3
+ exports.zkSyncSepolia = exports.zkSync = exports.bscTestnet = exports.bsc = exports.zora = exports.zoraSepolia = exports.sepolia = exports.polygon = exports.polygonAmoy = exports.mumbai = exports.polygonMumbai = exports.linea = exports.lineaSepolia = exports.optimism = exports.optimismSepolia = exports.blast = exports.mainnet = exports.ethereum = exports.base = exports.baseSepolia = exports.avalanche = exports.avalancheFuji = exports.arbitrum = exports.arbitrumSepolia = exports.arbitrumNova = exports.hardhat = exports.anvil = exports.getRpcUrlForChain = exports.getChainMetadata = exports.defineChain = void 0;
4
4
  // define chain, chainMetadata
5
5
  var utils_js_1 = require("../chains/utils.js");
6
6
  Object.defineProperty(exports, "defineChain", { enumerable: true, get: function () { return utils_js_1.defineChain; } });
@@ -31,6 +31,8 @@ Object.defineProperty(exports, "base", { enumerable: true, get: function () { re
31
31
  var ethereum_js_1 = require("../chains/chain-definitions/ethereum.js");
32
32
  Object.defineProperty(exports, "ethereum", { enumerable: true, get: function () { return ethereum_js_1.ethereum; } });
33
33
  Object.defineProperty(exports, "mainnet", { enumerable: true, get: function () { return ethereum_js_1.mainnet; } });
34
+ var blast_js_1 = require("../chains/chain-definitions/blast.js");
35
+ Object.defineProperty(exports, "blast", { enumerable: true, get: function () { return blast_js_1.blast; } });
34
36
  var optimism_sepolia_js_1 = require("../chains/chain-definitions/optimism-sepolia.js");
35
37
  Object.defineProperty(exports, "optimismSepolia", { enumerable: true, get: function () { return optimism_sepolia_js_1.optimismSepolia; } });
36
38
  var optimism_js_1 = require("../chains/chain-definitions/optimism.js");
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/exports/chains.ts"],"names":[],"mappings":";;;AAEA,8BAA8B;AAC9B,+CAI4B;AAH1B,uGAAA,WAAW,OAAA;AACX,4GAAA,gBAAgB,OAAA;AAChB,6GAAA,iBAAiB,OAAA;AAGnB;;GAEG;AACH,iEAA6D;AAApD,iGAAA,KAAK,OAAA;AACd,qEAAiE;AAAxD,qGAAA,OAAO,OAAA;AAChB,iFAA4E;AAAnE,gHAAA,YAAY,OAAA;AACrB,uFAAkF;AAAzE,sHAAA,eAAe,OAAA;AACxB,uEAAmE;AAA1D,uGAAA,QAAQ,OAAA;AACjB,mFAA8E;AAArE,kHAAA,aAAa,OAAA;AACtB,yEAAqE;AAA5D,yGAAA,SAAS,OAAA;AAClB,+EAA0E;AAAjE,8GAAA,WAAW,OAAA;AACpB,+DAA2D;AAAlD,+FAAA,IAAI,OAAA;AACb,+BAA+B;AAC/B,uEAA4E;AAAnE,uGAAA,QAAQ,OAAA;AAAE,sGAAA,OAAO,OAAA;AAC1B,uFAAkF;AAAzE,sHAAA,eAAe,OAAA;AACxB,uEAAmE;AAA1D,uGAAA,QAAQ,OAAA;AACjB,iFAA4E;AAAnE,gHAAA,YAAY,OAAA;AACrB,iEAA6D;AAApD,iGAAA,KAAK,OAAA;AACd,mCAAmC;AACnC,mFAGuD;AAFrD,kHAAA,aAAa,OAAA;AACb,2GAAA,MAAM,OAAA;AAER,+EAA0E;AAAjE,8GAAA,WAAW,OAAA;AACpB,qEAAiE;AAAxD,qGAAA,OAAO,OAAA;AAChB,qEAAiE;AAAxD,qGAAA,OAAO,OAAA;AAChB,+EAA0E;AAAjE,8GAAA,WAAW,OAAA;AACpB,+DAA2D;AAAlD,+FAAA,IAAI,OAAA;AACb,6DAAyD;AAAhD,6FAAA,GAAG,OAAA;AACZ,6EAAwE;AAA/D,4GAAA,UAAU,OAAA;AACnB,mEAA+D;AAAtD,mGAAA,MAAM,OAAA;AACf,mFAA8E;AAArE,kHAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/exports/chains.ts"],"names":[],"mappings":";;;AAEA,8BAA8B;AAC9B,+CAI4B;AAH1B,uGAAA,WAAW,OAAA;AACX,4GAAA,gBAAgB,OAAA;AAChB,6GAAA,iBAAiB,OAAA;AAGnB;;GAEG;AACH,iEAA6D;AAApD,iGAAA,KAAK,OAAA;AACd,qEAAiE;AAAxD,qGAAA,OAAO,OAAA;AAChB,iFAA4E;AAAnE,gHAAA,YAAY,OAAA;AACrB,uFAAkF;AAAzE,sHAAA,eAAe,OAAA;AACxB,uEAAmE;AAA1D,uGAAA,QAAQ,OAAA;AACjB,mFAA8E;AAArE,kHAAA,aAAa,OAAA;AACtB,yEAAqE;AAA5D,yGAAA,SAAS,OAAA;AAClB,+EAA0E;AAAjE,8GAAA,WAAW,OAAA;AACpB,+DAA2D;AAAlD,+FAAA,IAAI,OAAA;AACb,+BAA+B;AAC/B,uEAA4E;AAAnE,uGAAA,QAAQ,OAAA;AAAE,sGAAA,OAAO,OAAA;AAC1B,iEAA6D;AAApD,iGAAA,KAAK,OAAA;AACd,uFAAkF;AAAzE,sHAAA,eAAe,OAAA;AACxB,uEAAmE;AAA1D,uGAAA,QAAQ,OAAA;AACjB,iFAA4E;AAAnE,gHAAA,YAAY,OAAA;AACrB,iEAA6D;AAApD,iGAAA,KAAK,OAAA;AACd,mCAAmC;AACnC,mFAGuD;AAFrD,kHAAA,aAAa,OAAA;AACb,2GAAA,MAAM,OAAA;AAER,+EAA0E;AAAjE,8GAAA,WAAW,OAAA;AACpB,qEAAiE;AAAxD,qGAAA,OAAO,OAAA;AAChB,qEAAiE;AAAxD,qGAAA,OAAO,OAAA;AAChB,+EAA0E;AAAjE,8GAAA,WAAW,OAAA;AACpB,+DAA2D;AAAlD,+FAAA,IAAI,OAAA;AACb,6DAAyD;AAAhD,6FAAA,GAAG,OAAA;AACZ,6EAAwE;AAA/D,4GAAA,UAAU,OAAA;AACnB,mEAA+D;AAAtD,mGAAA,MAAM,OAAA;AACf,mFAA8E;AAArE,kHAAA,aAAa,OAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tokensMintedWithSignatureEvent = exports.claimConditionsUpdatedEvent = exports.tokensClaimedEvent = exports.tokensMintedEvent = exports.approvalEvent = exports.transferEvent = exports.withdraw = exports.deposit = exports.generateMintSignature = exports.mintWithSignature = exports.setClaimConditions = exports.claimTo = exports.getActiveClaimCondition = exports.claimCondition = exports.getClaimConditionById = exports.burnFrom = exports.burn = exports.approve = exports.transferFrom = exports.transfer = exports.mintTo = exports.getCurrencyMetadata = exports.allowance = exports.totalSupply = exports.decimals = exports.balanceOf = exports.getBalance = exports.isERC20 = void 0;
3
+ exports.tokensMintedWithSignatureEvent = exports.claimConditionsUpdatedEvent = exports.tokensClaimedEvent = exports.tokensMintedEvent = exports.approvalEvent = exports.transferEvent = exports.withdraw = exports.deposit = exports.generateMintSignature = exports.mintWithSignature = exports.setClaimConditions = exports.claimTo = exports.getActiveClaimCondition = exports.claimCondition = exports.getClaimConditionById = exports.burnFrom = exports.burn = exports.approve = exports.transferBatch = exports.transferFrom = exports.transfer = exports.mintTo = exports.getCurrencyMetadata = exports.allowance = exports.totalSupply = exports.decimals = exports.balanceOf = exports.getBalance = exports.isERC20 = void 0;
4
4
  // read
5
5
  var isERC20_js_1 = require("../../extensions/erc20/read/isERC20.js");
6
6
  Object.defineProperty(exports, "isERC20", { enumerable: true, get: function () { return isERC20_js_1.isERC20; } });
@@ -23,6 +23,8 @@ var transfer_js_1 = require("../../extensions/erc20/write/transfer.js");
23
23
  Object.defineProperty(exports, "transfer", { enumerable: true, get: function () { return transfer_js_1.transfer; } });
24
24
  var transferFrom_js_1 = require("../../extensions/erc20/write/transferFrom.js");
25
25
  Object.defineProperty(exports, "transferFrom", { enumerable: true, get: function () { return transferFrom_js_1.transferFrom; } });
26
+ var transferBatch_js_1 = require("../../extensions/erc20/write/transferBatch.js");
27
+ Object.defineProperty(exports, "transferBatch", { enumerable: true, get: function () { return transferBatch_js_1.transferBatch; } });
26
28
  var approve_js_1 = require("../../extensions/erc20/write/approve.js");
27
29
  Object.defineProperty(exports, "approve", { enumerable: true, get: function () { return approve_js_1.approve; } });
28
30
  var burn_js_1 = require("../../extensions/erc20/__generated__/IBurnableERC20/write/burn.js");
@@ -1 +1 @@
1
- {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../../../src/exports/extensions/erc20.ts"],"names":[],"mappings":";;;AAAA,OAAO;AACP,qEAAiE;AAAxD,qGAAA,OAAO,OAAA;AAChB,2EAImD;AAHjD,2GAAA,UAAU,OAAA;AAIZ,8FAGuE;AAFrE,yGAAA,SAAS,OAAA;AAGX,uEAAmE;AAA1D,uGAAA,QAAQ,OAAA;AACjB,kGAA8F;AAArF,6GAAA,WAAW,OAAA;AACpB,8FAGuE;AAFrE,yGAAA,SAAS,OAAA;AAGX,6FAG4D;AAF1D,6HAAA,mBAAmB,OAAA;AAIrB,QAAQ;AACR,oEAGgD;AAF9C,mGAAA,MAAM,OAAA;AAGR,wEAGkD;AAFhD,uGAAA,QAAQ,OAAA;AAGV,gFAGsD;AAFpD,+GAAA,YAAY,OAAA;AAGd,sEAGiD;AAF/C,qGAAA,OAAO,OAAA;AAGT,6FAG2E;AAFzE,+FAAA,IAAI,OAAA;AAGN,qGAG+E;AAF7E,uGAAA,QAAQ,OAAA;AAIV;;GAEG;AACH,0HAAsH;AAA7G,iIAAA,qBAAqB,OAAA;AAC9B,iHAA6G;AAApG,mHAAA,cAAc,OAAA;AACvB,2GAAuG;AAA9F,qIAAA,uBAAuB,OAAA;AAChC,4EAGuD;AAFrD,qGAAA,OAAO,OAAA;AAGT,kGAGkE;AAFhE,2HAAA,kBAAkB,OAAA;AAIpB;;GAEG;AACH,sEAIiD;AAH/C,+GAAA,iBAAiB,OAAA;AAEjB,mHAAA,qBAAqB,OAAA;AAGvB,+BAA+B;AAC/B,OAAO;AACP,+BAA+B;AAC/B,sEAGiD;AAF/C,qGAAA,OAAO,OAAA;AAGT,4FAGsE;AAFpE,uGAAA,QAAQ,OAAA;AAIV,SAAS;AACT,8FAGwE;AAFtE,4GAAA,aAAa,OAAA;AAGf,8FAGwE;AAFtE,4GAAA,aAAa,OAAA;AAGf,8GAGoF;AAFlF,oHAAA,iBAAiB,OAAA;AAGnB,4GAGiF;AAF/E,sHAAA,kBAAkB,OAAA;AAGpB,8HAA+H;AAAtH,wIAAA,2BAA2B,OAAA;AACpC,6IAGsG;AAFpG,8IAAA,8BAA8B,OAAA"}
1
+ {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../../../src/exports/extensions/erc20.ts"],"names":[],"mappings":";;;AAAA,OAAO;AACP,qEAAiE;AAAxD,qGAAA,OAAO,OAAA;AAChB,2EAImD;AAHjD,2GAAA,UAAU,OAAA;AAIZ,8FAGuE;AAFrE,yGAAA,SAAS,OAAA;AAGX,uEAAmE;AAA1D,uGAAA,QAAQ,OAAA;AACjB,kGAA8F;AAArF,6GAAA,WAAW,OAAA;AACpB,8FAGuE;AAFrE,yGAAA,SAAS,OAAA;AAGX,6FAG4D;AAF1D,6HAAA,mBAAmB,OAAA;AAIrB,QAAQ;AACR,oEAGgD;AAF9C,mGAAA,MAAM,OAAA;AAGR,wEAGkD;AAFhD,uGAAA,QAAQ,OAAA;AAGV,gFAGsD;AAFpD,+GAAA,YAAY,OAAA;AAGd,kFAGuD;AAFrD,iHAAA,aAAa,OAAA;AAGf,sEAGiD;AAF/C,qGAAA,OAAO,OAAA;AAGT,6FAG2E;AAFzE,+FAAA,IAAI,OAAA;AAGN,qGAG+E;AAF7E,uGAAA,QAAQ,OAAA;AAIV;;GAEG;AACH,0HAAsH;AAA7G,iIAAA,qBAAqB,OAAA;AAC9B,iHAA6G;AAApG,mHAAA,cAAc,OAAA;AACvB,2GAAuG;AAA9F,qIAAA,uBAAuB,OAAA;AAChC,4EAGuD;AAFrD,qGAAA,OAAO,OAAA;AAGT,kGAGkE;AAFhE,2HAAA,kBAAkB,OAAA;AAIpB;;GAEG;AACH,sEAIiD;AAH/C,+GAAA,iBAAiB,OAAA;AAEjB,mHAAA,qBAAqB,OAAA;AAGvB,+BAA+B;AAC/B,OAAO;AACP,+BAA+B;AAC/B,sEAGiD;AAF/C,qGAAA,OAAO,OAAA;AAGT,4FAGsE;AAFpE,uGAAA,QAAQ,OAAA;AAIV,SAAS;AACT,8FAGwE;AAFtE,4GAAA,aAAa,OAAA;AAGf,8FAGwE;AAFtE,4GAAA,aAAa,OAAA;AAGf,8GAGoF;AAFlF,oHAAA,iBAAiB,OAAA;AAGnB,4GAGiF;AAF/E,sHAAA,kBAAkB,OAAA;AAGpB,8HAA+H;AAAtH,wIAAA,2BAA2B,OAAA;AACpC,6IAGsG;AAFpG,8IAAA,8BAA8B,OAAA"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fromBytes = exports.bytesToString = exports.bytesToNumber = exports.bytesToBool = exports.bytesToBigInt = exports.toBytes = exports.stringToBytes = exports.numberToBytes = exports.hexToBytes = exports.boolToBytes = exports.concatHex = exports.uint8ArrayToHex = exports.toHex = exports.stringToHex = exports.padHex = exports.numberToHex = exports.isHex = exports.hexToUint8Array = exports.hexToString = exports.hexToNumber = exports.hexToBool = exports.hexToBigInt = exports.fromHex = exports.boolToHex = exports.signTypedData = exports.signMessage = exports.signatureToHex = exports.sign = exports.resolveSignatures = exports.resolveSignature = exports.getKeylessTransaction = exports.keccakId = exports.isEIP155Enforced = exports.getSaltHash = exports.getInitBytecodeWithSalt = exports.computeDeploymentAddress = exports.computeCreate2FactoryAddress = exports.getDeployedCreate2Factory = exports.deployCreate2Factory = exports.fromGwei = exports.toWei = exports.toUnits = exports.toTokens = exports.toEther = exports.resolveImplementation = exports.ensureBytecodePrefix = exports.isContractDeployed = exports.extractMinimalProxyImplementationAddress = exports.extractIPFSUri = exports.detectMethod = void 0;
4
- exports.maxUint256 = exports.stringify = exports.resolvePromisedValue = exports.setThirdwebDomains = exports.encodePacked = exports.encodeAbiParameters = exports.shortenHex = exports.shortenAddress = exports.isAddress = exports.getAddress = exports.checksumAddress = exports.hashMessage = exports.sha256 = exports.keccak256 = void 0;
4
+ exports.refreshJWT = exports.encodeJWT = exports.decodeJWT = exports.maxUint256 = exports.stringify = exports.resolvePromisedValue = exports.setThirdwebDomains = exports.encodePacked = exports.encodeAbiParameters = exports.shortenHex = exports.shortenAddress = exports.isAddress = exports.getAddress = exports.checksumAddress = exports.hashMessage = exports.sha256 = exports.keccak256 = void 0;
5
5
  // bytecode
6
6
  var detectExtension_js_1 = require("../utils/bytecode/detectExtension.js");
7
7
  Object.defineProperty(exports, "detectMethod", { enumerable: true, get: function () { return detectExtension_js_1.detectMethod; } });
@@ -132,4 +132,13 @@ Object.defineProperty(exports, "stringify", { enumerable: true, get: function ()
132
132
  // ------------------------------------------------
133
133
  var viem_2 = require("viem");
134
134
  Object.defineProperty(exports, "maxUint256", { enumerable: true, get: function () { return viem_2.maxUint256; } });
135
+ // ------------------------------------------------
136
+ // jwt
137
+ // ------------------------------------------------
138
+ var decode_jwt_js_1 = require("../utils/jwt/decode-jwt.js");
139
+ Object.defineProperty(exports, "decodeJWT", { enumerable: true, get: function () { return decode_jwt_js_1.decodeJWT; } });
140
+ var encode_jwt_js_1 = require("../utils/jwt/encode-jwt.js");
141
+ Object.defineProperty(exports, "encodeJWT", { enumerable: true, get: function () { return encode_jwt_js_1.encodeJWT; } });
142
+ var refresh_jwt_js_1 = require("../utils/jwt/refresh-jwt.js");
143
+ Object.defineProperty(exports, "refreshJWT", { enumerable: true, get: function () { return refresh_jwt_js_1.refreshJWT; } });
135
144
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/exports/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/exports/utils.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ const isValidSignature_js_1 = require("./__generated__/isValidSignature/read/isV
7
7
  const MAGIC_VALUE = "0x1626ba7e";
8
8
  /**
9
9
  * Checks if a contract wallet signature is valid.
10
+ * @deprecated Use `verifySignature` instead
10
11
  * @param options - The options for the checkContractWalletSignature function.
11
12
  * @param options.contract - The contract to check the signature against.
12
13
  * @param options.message - The message to check the signature against.
@@ -1 +1 @@
1
- {"version":3,"file":"checkContractWalletSignature.js","sourceRoot":"","sources":["../../../../src/extensions/erc1271/checkContractWalletSignature.ts"],"names":[],"mappings":";;AA8BA,oEAYC;AA1CD,+BAAyD;AAEzD,wDAAoD;AACpD,mGAA6F;AAO7F,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,4BAA4B,CAChD,OAA4C;IAE5C,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAgB,EAAC;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,IAAA,kBAAW,EAAC,OAAO,CAAC,OAAO,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IACH,OAAO,MAAM,KAAK,WAAW,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"checkContractWalletSignature.js","sourceRoot":"","sources":["../../../../src/extensions/erc1271/checkContractWalletSignature.ts"],"names":[],"mappings":";;AA+BA,oEAYC;AA3CD,+BAAyD;AAEzD,wDAAoD;AACpD,mGAA6F;AAO7F,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC;;;;;;;;;;;;;;;;;;GAkBG;AACI,KAAK,UAAU,4BAA4B,CAChD,OAA4C;IAE5C,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAgB,EAAC;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,IAAA,kBAAW,EAAC,OAAO,CAAC,OAAO,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IACH,OAAO,MAAM,KAAK,WAAW,CAAC;AAChC,CAAC"}
@@ -7,6 +7,7 @@ const isValidSignature_js_1 = require("./__generated__/isValidSignature/read/isV
7
7
  const MAGIC_VALUE = "0x1626ba7e";
8
8
  /**
9
9
  * Checks if a contract wallet signature is valid.
10
+ * @deprecated Use `verifyTypedData` instead
10
11
  * @param options - The options for the checkContractWalletSignature function.
11
12
  * @param options.contract - The contract to check the signature against.
12
13
  * @param options.message - The message to check the signature against.
@@ -1 +1 @@
1
- {"version":3,"file":"checkContractWalletSignedTypedData.js","sourceRoot":"","sources":["../../../../src/extensions/erc1271/checkContractWalletSignedTypedData.ts"],"names":[],"mappings":";;AAuCA,gFAaC;AApDD,+BAA+E;AAE/E,wDAAoD;AACpD,mGAA6F;AAU7F,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,kCAAkC,CAGtD,OAAwE;IACxE,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAgB,EAAC;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IACH,OAAO,MAAM,KAAK,WAAW,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"checkContractWalletSignedTypedData.js","sourceRoot":"","sources":["../../../../src/extensions/erc1271/checkContractWalletSignedTypedData.ts"],"names":[],"mappings":";;AAwCA,gFAaC;AArDD,+BAA+E;AAE/E,wDAAoD;AACpD,mGAA6F;AAU7F,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACI,KAAK,UAAU,kCAAkC,CAGtD,OAAwE;IACxE,IAAI,CAAC,IAAA,cAAK,EAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAgB,EAAC;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,IAAA,oBAAa,EAAC,OAAO,CAAC,IAAI,CAAC;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IACH,OAAO,MAAM,KAAK,WAAW,CAAC;AAChC,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transferBatch = transferBatch;
4
+ const units_js_1 = require("../../../utils/units.js");
5
+ const multicall_js_1 = require("../../common/__generated__/IMulticall/write/multicall.js");
6
+ const transfer_js_1 = require("../__generated__/IERC20/write/transfer.js");
7
+ /**
8
+ * Transfers a batch of ERC20 tokens from the sender's address to the specified recipient address.
9
+ * @param options - The options for the batch transfer transaction.
10
+ * @returns A promise that resolves to the prepared transaction.
11
+ * @extension ERC20
12
+ * @example
13
+ * ```ts
14
+ * import { transferBatch } from "thirdweb/extensions/erc20";
15
+ * import { sendTransaction } from "thirdweb";
16
+ *
17
+ * const transaction = transferBatch({
18
+ * contract,
19
+ * batch: [
20
+ * {
21
+ * to: "0x...",
22
+ * amount: 100,
23
+ * },
24
+ * {
25
+ * to: "0x...",
26
+ * amount: "0.1",
27
+ * },
28
+ * ]);
29
+ *
30
+ * await sendTransaction({ transaction, account });
31
+ * ```
32
+ */
33
+ function transferBatch(options) {
34
+ return (0, multicall_js_1.multicall)({
35
+ contract: options.contract,
36
+ asyncParams: async () => {
37
+ return {
38
+ data: await Promise.all(options.batch.map(async (transfer) => {
39
+ let amount;
40
+ if ("amount" in transfer) {
41
+ // if we need to parse the amount from ether to gwei then we pull in the decimals extension
42
+ const { decimals } = await Promise.resolve().then(() => require("../read/decimals.js"));
43
+ // it's OK to call this multiple times because the call is cached
44
+ // if this fails we fall back to `18` decimals
45
+ const d = await decimals(options).catch(() => 18);
46
+ // turn ether into gwei
47
+ amount = (0, units_js_1.toUnits)(transfer.amount.toString(), d);
48
+ }
49
+ else {
50
+ amount = transfer.amountWei;
51
+ }
52
+ return (0, transfer_js_1.encodeTransfer)({
53
+ to: transfer.to,
54
+ value: amount,
55
+ });
56
+ })),
57
+ };
58
+ },
59
+ });
60
+ }
61
+ //# sourceMappingURL=transferBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBatch.js","sourceRoot":"","sources":["../../../../../src/extensions/erc20/write/transferBatch.ts"],"names":[],"mappings":";;AA+CA,sCA8BC;AA3ED,sDAAkD;AAClD,2FAAqF;AACrF,2EAA2E;AAiB3E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,aAAa,CAC3B,OAAoD;IAEpD,OAAO,IAAA,wBAAS,EAAC;QACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,KAAK,IAAI,EAAE;YACtB,OAAO;gBACL,IAAI,EAAE,MAAM,OAAO,CAAC,GAAG,CACrB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;oBACnC,IAAI,MAAc,CAAC;oBACnB,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;wBACzB,2FAA2F;wBAC3F,MAAM,EAAE,QAAQ,EAAE,GAAG,2CAAa,qBAAqB,EAAC,CAAC;wBACzD,iEAAiE;wBACjE,8CAA8C;wBAC9C,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;wBAClD,uBAAuB;wBACvB,MAAM,GAAG,IAAA,kBAAO,EAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;oBAC9B,CAAC;oBACD,OAAO,IAAA,4BAAc,EAAC;wBACpB,EAAE,EAAE,QAAQ,CAAC,EAAE;wBACf,KAAK,EAAE,MAAM;qBACd,CAAC,CAAC;gBACL,CAAC,CAAC,CACH;aACF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}