thirdweb 5.74.0 → 5.75.0

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 (553) hide show
  1. package/dist/cjs/adapters/ethers5.js +2 -2
  2. package/dist/cjs/adapters/ethers5.js.map +1 -1
  3. package/dist/cjs/adapters/ethers6.js.map +1 -1
  4. package/dist/cjs/auth/verify-hash.js +2 -1
  5. package/dist/cjs/auth/verify-hash.js.map +1 -1
  6. package/dist/cjs/auth/verify-signature.js.map +1 -1
  7. package/dist/cjs/contract/actions/resolve-abi.js +4 -0
  8. package/dist/cjs/contract/actions/resolve-abi.js.map +1 -1
  9. package/dist/cjs/exports/wallets/smart.js +3 -1
  10. package/dist/cjs/exports/wallets/smart.js.map +1 -1
  11. package/dist/cjs/extensions/erc1271/checkContractWalletSignedTypedData.js +6 -2
  12. package/dist/cjs/extensions/erc1271/checkContractWalletSignedTypedData.js.map +1 -1
  13. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.js +27 -0
  14. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.js.map +1 -0
  15. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.js +27 -0
  16. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.js.map +1 -0
  17. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/accountId.js +71 -0
  18. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/accountId.js.map +1 -0
  19. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.js +132 -0
  20. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.js.map +1 -0
  21. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.js +121 -0
  22. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.js.map +1 -0
  23. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.js +114 -0
  24. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.js.map +1 -0
  25. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.js +114 -0
  26. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.js.map +1 -0
  27. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/execute.js +127 -0
  28. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/execute.js.map +1 -0
  29. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.js +132 -0
  30. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.js.map +1 -0
  31. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/installModule.js +139 -0
  32. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/installModule.js.map +1 -0
  33. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.js +139 -0
  34. package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.js.map +1 -0
  35. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.js +32 -0
  36. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.js.map +1 -0
  37. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.js +31 -0
  38. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.js.map +1 -0
  39. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.js +70 -0
  40. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.js.map +1 -0
  41. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.js +70 -0
  42. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.js.map +1 -0
  43. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.js +122 -0
  44. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.js.map +1 -0
  45. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.js +71 -0
  46. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.js.map +1 -0
  47. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.js +71 -0
  48. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.js.map +1 -0
  49. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.js +117 -0
  50. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.js.map +1 -0
  51. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js +157 -0
  52. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js.map +1 -0
  53. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.js +51 -0
  54. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.js.map +1 -0
  55. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.js +117 -0
  56. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.js.map +1 -0
  57. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.js +51 -0
  58. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.js.map +1 -0
  59. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.js +117 -0
  60. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.js.map +1 -0
  61. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.js +139 -0
  62. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.js.map +1 -0
  63. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.js +117 -0
  64. package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.js.map +1 -0
  65. package/dist/cjs/extensions/marketplace/direct-listings/write/buyFromListing.js +6 -0
  66. package/dist/cjs/extensions/marketplace/direct-listings/write/buyFromListing.js.map +1 -1
  67. package/dist/cjs/extensions/pack/createNewPack.js +1 -0
  68. package/dist/cjs/extensions/pack/createNewPack.js.map +1 -1
  69. package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js +1 -0
  70. package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
  71. package/dist/cjs/react/web/ui/prebuilt/Account/balance.js +1 -0
  72. package/dist/cjs/react/web/ui/prebuilt/Account/balance.js.map +1 -1
  73. package/dist/cjs/react/web/ui/prebuilt/Account/name.js +1 -0
  74. package/dist/cjs/react/web/ui/prebuilt/Account/name.js.map +1 -1
  75. package/dist/cjs/react/web/utils/usePreloadWalletProviders.js +1 -1
  76. package/dist/cjs/react/web/utils/usePreloadWalletProviders.js.map +1 -1
  77. package/dist/cjs/transaction/actions/estimate-gas.js.map +1 -1
  78. package/dist/cjs/transaction/actions/gasless/providers/biconomy.js.map +1 -1
  79. package/dist/cjs/transaction/actions/gasless/providers/engine.js.map +1 -1
  80. package/dist/cjs/transaction/actions/gasless/providers/openzeppelin.js.map +1 -1
  81. package/dist/cjs/transaction/actions/sign-transaction.js +4 -7
  82. package/dist/cjs/transaction/actions/sign-transaction.js.map +1 -1
  83. package/dist/cjs/transaction/actions/to-serializable-transaction.js.map +1 -1
  84. package/dist/cjs/transaction/actions/zksync/getEip721Domain.js.map +1 -1
  85. package/dist/cjs/transaction/serialize-transaction.js +76 -9
  86. package/dist/cjs/transaction/serialize-transaction.js.map +1 -1
  87. package/dist/cjs/utils/any-evm/keyless-transaction.js +25 -4
  88. package/dist/cjs/utils/any-evm/keyless-transaction.js.map +1 -1
  89. package/dist/cjs/utils/hashing/hashMessage.js +2 -2
  90. package/dist/cjs/utils/hashing/hashMessage.js.map +1 -1
  91. package/dist/cjs/utils/hashing/hashTypedData.js +8 -6
  92. package/dist/cjs/utils/hashing/hashTypedData.js.map +1 -1
  93. package/dist/cjs/utils/signatures/helpers/{parseTypedData.js → parse-typed-data.js} +4 -4
  94. package/dist/cjs/utils/signatures/helpers/parse-typed-data.js.map +1 -0
  95. package/dist/cjs/utils/signatures/sign-message.js +12 -6
  96. package/dist/cjs/utils/signatures/sign-message.js.map +1 -1
  97. package/dist/cjs/utils/signatures/sign-typed-data.js +11 -8
  98. package/dist/cjs/utils/signatures/sign-typed-data.js.map +1 -1
  99. package/dist/cjs/utils/signatures/sign.js +4 -4
  100. package/dist/cjs/utils/signatures/sign.js.map +1 -1
  101. package/dist/cjs/utils/signatures/signature-to-hex.js +17 -10
  102. package/dist/cjs/utils/signatures/signature-to-hex.js.map +1 -1
  103. package/dist/cjs/utils/types.js +5 -0
  104. package/dist/cjs/utils/types.js.map +1 -1
  105. package/dist/cjs/version.js +1 -1
  106. package/dist/cjs/wallets/coinbase/{coinbaseMobileSDK.js → coinbase-mobile.js} +1 -1
  107. package/dist/cjs/wallets/coinbase/coinbase-mobile.js.map +1 -0
  108. package/dist/cjs/wallets/coinbase/coinbase-wallet.js +2 -2
  109. package/dist/cjs/wallets/coinbase/coinbase-wallet.js.map +1 -1
  110. package/dist/cjs/wallets/coinbase/{coinbaseWebSDK.js → coinbase-web.js} +11 -11
  111. package/dist/cjs/wallets/coinbase/coinbase-web.js.map +1 -0
  112. package/dist/cjs/wallets/create-wallet.js +2 -2
  113. package/dist/cjs/wallets/create-wallet.js.map +1 -1
  114. package/dist/cjs/wallets/eip5792/get-calls-status.js +3 -3
  115. package/dist/cjs/wallets/eip5792/get-calls-status.js.map +1 -1
  116. package/dist/cjs/wallets/eip5792/get-capabilities.js +3 -3
  117. package/dist/cjs/wallets/eip5792/get-capabilities.js.map +1 -1
  118. package/dist/cjs/wallets/eip5792/send-calls.js +3 -3
  119. package/dist/cjs/wallets/eip5792/send-calls.js.map +1 -1
  120. package/dist/cjs/wallets/eip5792/show-calls-status.js +3 -3
  121. package/dist/cjs/wallets/eip5792/show-calls-status.js.map +1 -1
  122. package/dist/cjs/wallets/in-app/core/actions/sign-typed-data.enclave.js.map +1 -1
  123. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +2 -2
  124. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  125. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +3 -3
  126. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  127. package/dist/cjs/wallets/injected/index.js +2 -2
  128. package/dist/cjs/wallets/injected/index.js.map +1 -1
  129. package/dist/cjs/wallets/native/create-wallet.js +2 -2
  130. package/dist/cjs/wallets/native/create-wallet.js.map +1 -1
  131. package/dist/cjs/wallets/private-key.js +2 -5
  132. package/dist/cjs/wallets/private-key.js.map +1 -1
  133. package/dist/cjs/wallets/smart/index.js +26 -160
  134. package/dist/cjs/wallets/smart/index.js.map +1 -1
  135. package/dist/cjs/wallets/smart/lib/bundler.js +1 -1
  136. package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
  137. package/dist/cjs/wallets/smart/lib/calls.js +2 -2
  138. package/dist/cjs/wallets/smart/lib/calls.js.map +1 -1
  139. package/dist/cjs/wallets/smart/lib/paymaster.js +7 -6
  140. package/dist/cjs/wallets/smart/lib/paymaster.js.map +1 -1
  141. package/dist/cjs/wallets/smart/lib/signing.js +166 -0
  142. package/dist/cjs/wallets/smart/lib/signing.js.map +1 -0
  143. package/dist/cjs/wallets/smart/lib/userop.js +1 -1
  144. package/dist/cjs/wallets/smart/lib/userop.js.map +1 -1
  145. package/dist/cjs/wallets/smart/presets/7579.js +218 -0
  146. package/dist/cjs/wallets/smart/presets/7579.js.map +1 -0
  147. package/dist/cjs/wallets/smart/presets/index.js +6 -0
  148. package/dist/cjs/wallets/smart/presets/index.js.map +1 -0
  149. package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
  150. package/dist/cjs/wallets/smart/types.js.map +1 -1
  151. package/dist/cjs/wallets/wallet-connect/controller.js +2 -2
  152. package/dist/cjs/wallets/wallet-connect/controller.js.map +1 -1
  153. package/dist/esm/adapters/ethers5.js +2 -2
  154. package/dist/esm/adapters/ethers5.js.map +1 -1
  155. package/dist/esm/adapters/ethers6.js.map +1 -1
  156. package/dist/esm/auth/verify-hash.js +2 -1
  157. package/dist/esm/auth/verify-hash.js.map +1 -1
  158. package/dist/esm/auth/verify-signature.js.map +1 -1
  159. package/dist/esm/contract/actions/resolve-abi.js +4 -0
  160. package/dist/esm/contract/actions/resolve-abi.js.map +1 -1
  161. package/dist/esm/exports/wallets/smart.js +2 -0
  162. package/dist/esm/exports/wallets/smart.js.map +1 -1
  163. package/dist/esm/extensions/erc1271/checkContractWalletSignedTypedData.js +6 -2
  164. package/dist/esm/extensions/erc1271/checkContractWalletSignedTypedData.js.map +1 -1
  165. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.js +24 -0
  166. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.js.map +1 -0
  167. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.js +24 -0
  168. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.js.map +1 -0
  169. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/accountId.js +65 -0
  170. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/accountId.js.map +1 -0
  171. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.js +124 -0
  172. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.js.map +1 -0
  173. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.js +113 -0
  174. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.js.map +1 -0
  175. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.js +106 -0
  176. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.js.map +1 -0
  177. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.js +106 -0
  178. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.js.map +1 -0
  179. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/execute.js +120 -0
  180. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/execute.js.map +1 -0
  181. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.js +125 -0
  182. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.js.map +1 -0
  183. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/installModule.js +132 -0
  184. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/installModule.js.map +1 -0
  185. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.js +132 -0
  186. package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.js.map +1 -0
  187. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.js +29 -0
  188. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.js.map +1 -0
  189. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.js +28 -0
  190. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.js.map +1 -0
  191. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.js +64 -0
  192. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.js.map +1 -0
  193. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.js +64 -0
  194. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.js.map +1 -0
  195. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.js +114 -0
  196. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.js.map +1 -0
  197. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.js +65 -0
  198. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.js.map +1 -0
  199. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.js +65 -0
  200. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.js.map +1 -0
  201. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.js +110 -0
  202. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.js.map +1 -0
  203. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js +150 -0
  204. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js.map +1 -0
  205. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.js +46 -0
  206. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.js.map +1 -0
  207. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.js +110 -0
  208. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.js.map +1 -0
  209. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.js +46 -0
  210. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.js.map +1 -0
  211. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.js +110 -0
  212. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.js.map +1 -0
  213. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.js +132 -0
  214. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.js.map +1 -0
  215. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.js +110 -0
  216. package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.js.map +1 -0
  217. package/dist/esm/extensions/marketplace/direct-listings/write/buyFromListing.js +6 -0
  218. package/dist/esm/extensions/marketplace/direct-listings/write/buyFromListing.js.map +1 -1
  219. package/dist/esm/extensions/pack/createNewPack.js +1 -0
  220. package/dist/esm/extensions/pack/createNewPack.js.map +1 -1
  221. package/dist/esm/react/web/ui/prebuilt/Account/avatar.js +1 -0
  222. package/dist/esm/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
  223. package/dist/esm/react/web/ui/prebuilt/Account/balance.js +1 -0
  224. package/dist/esm/react/web/ui/prebuilt/Account/balance.js.map +1 -1
  225. package/dist/esm/react/web/ui/prebuilt/Account/name.js +1 -0
  226. package/dist/esm/react/web/ui/prebuilt/Account/name.js.map +1 -1
  227. package/dist/esm/react/web/utils/usePreloadWalletProviders.js +1 -1
  228. package/dist/esm/react/web/utils/usePreloadWalletProviders.js.map +1 -1
  229. package/dist/esm/transaction/actions/estimate-gas.js +3 -3
  230. package/dist/esm/transaction/actions/estimate-gas.js.map +1 -1
  231. package/dist/esm/transaction/actions/gasless/providers/biconomy.js.map +1 -1
  232. package/dist/esm/transaction/actions/gasless/providers/engine.js.map +1 -1
  233. package/dist/esm/transaction/actions/gasless/providers/openzeppelin.js.map +1 -1
  234. package/dist/esm/transaction/actions/sign-transaction.js +5 -8
  235. package/dist/esm/transaction/actions/sign-transaction.js.map +1 -1
  236. package/dist/esm/transaction/actions/to-serializable-transaction.js.map +1 -1
  237. package/dist/esm/transaction/actions/zksync/getEip721Domain.js.map +1 -1
  238. package/dist/esm/transaction/serialize-transaction.js +76 -9
  239. package/dist/esm/transaction/serialize-transaction.js.map +1 -1
  240. package/dist/esm/utils/any-evm/keyless-transaction.js +26 -5
  241. package/dist/esm/utils/any-evm/keyless-transaction.js.map +1 -1
  242. package/dist/esm/utils/hashing/hashMessage.js +2 -2
  243. package/dist/esm/utils/hashing/hashMessage.js.map +1 -1
  244. package/dist/esm/utils/hashing/hashTypedData.js +8 -6
  245. package/dist/esm/utils/hashing/hashTypedData.js.map +1 -1
  246. package/dist/esm/utils/signatures/helpers/parse-typed-data.js +15 -0
  247. package/dist/esm/utils/signatures/helpers/parse-typed-data.js.map +1 -0
  248. package/dist/esm/utils/signatures/sign-message.js +12 -6
  249. package/dist/esm/utils/signatures/sign-message.js.map +1 -1
  250. package/dist/esm/utils/signatures/sign-typed-data.js +11 -8
  251. package/dist/esm/utils/signatures/sign-typed-data.js.map +1 -1
  252. package/dist/esm/utils/signatures/sign.js +4 -4
  253. package/dist/esm/utils/signatures/sign.js.map +1 -1
  254. package/dist/esm/utils/signatures/signature-to-hex.js +17 -10
  255. package/dist/esm/utils/signatures/signature-to-hex.js.map +1 -1
  256. package/dist/esm/utils/types.js +4 -1
  257. package/dist/esm/utils/types.js.map +1 -1
  258. package/dist/esm/version.js +1 -1
  259. package/dist/esm/wallets/coinbase/{coinbaseMobileSDK.js → coinbase-mobile.js} +1 -1
  260. package/dist/esm/wallets/coinbase/coinbase-mobile.js.map +1 -0
  261. package/dist/esm/wallets/coinbase/coinbase-wallet.js +2 -2
  262. package/dist/esm/wallets/coinbase/coinbase-wallet.js.map +1 -1
  263. package/dist/esm/wallets/coinbase/{coinbaseWebSDK.js → coinbase-web.js} +11 -11
  264. package/dist/esm/wallets/coinbase/coinbase-web.js.map +1 -0
  265. package/dist/esm/wallets/create-wallet.js +1 -1
  266. package/dist/esm/wallets/create-wallet.js.map +1 -1
  267. package/dist/esm/wallets/eip5792/get-calls-status.js +2 -2
  268. package/dist/esm/wallets/eip5792/get-calls-status.js.map +1 -1
  269. package/dist/esm/wallets/eip5792/get-capabilities.js +2 -2
  270. package/dist/esm/wallets/eip5792/get-capabilities.js.map +1 -1
  271. package/dist/esm/wallets/eip5792/send-calls.js +2 -2
  272. package/dist/esm/wallets/eip5792/send-calls.js.map +1 -1
  273. package/dist/esm/wallets/eip5792/show-calls-status.js +2 -2
  274. package/dist/esm/wallets/eip5792/show-calls-status.js.map +1 -1
  275. package/dist/esm/wallets/in-app/core/actions/sign-typed-data.enclave.js.map +1 -1
  276. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +1 -1
  277. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  278. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +2 -2
  279. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  280. package/dist/esm/wallets/injected/index.js +1 -1
  281. package/dist/esm/wallets/injected/index.js.map +1 -1
  282. package/dist/esm/wallets/native/create-wallet.js +1 -1
  283. package/dist/esm/wallets/native/create-wallet.js.map +1 -1
  284. package/dist/esm/wallets/private-key.js +2 -5
  285. package/dist/esm/wallets/private-key.js.map +1 -1
  286. package/dist/esm/wallets/smart/index.js +24 -158
  287. package/dist/esm/wallets/smart/index.js.map +1 -1
  288. package/dist/esm/wallets/smart/lib/bundler.js +1 -1
  289. package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
  290. package/dist/esm/wallets/smart/lib/calls.js +2 -2
  291. package/dist/esm/wallets/smart/lib/calls.js.map +1 -1
  292. package/dist/esm/wallets/smart/lib/paymaster.js +7 -6
  293. package/dist/esm/wallets/smart/lib/paymaster.js.map +1 -1
  294. package/dist/esm/wallets/smart/lib/signing.js +161 -0
  295. package/dist/esm/wallets/smart/lib/signing.js.map +1 -0
  296. package/dist/esm/wallets/smart/lib/userop.js +1 -1
  297. package/dist/esm/wallets/smart/lib/userop.js.map +1 -1
  298. package/dist/esm/wallets/smart/presets/7579.js +215 -0
  299. package/dist/esm/wallets/smart/presets/7579.js.map +1 -0
  300. package/dist/esm/wallets/smart/presets/index.js +2 -0
  301. package/dist/esm/wallets/smart/presets/index.js.map +1 -0
  302. package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
  303. package/dist/esm/wallets/smart/types.js.map +1 -1
  304. package/dist/esm/wallets/wallet-connect/controller.js +1 -1
  305. package/dist/esm/wallets/wallet-connect/controller.js.map +1 -1
  306. package/dist/types/adapters/ethers5.d.ts.map +1 -1
  307. package/dist/types/adapters/ethers6.d.ts.map +1 -1
  308. package/dist/types/auth/verify-hash.d.ts.map +1 -1
  309. package/dist/types/auth/verify-signature.d.ts +2 -2
  310. package/dist/types/auth/verify-signature.d.ts.map +1 -1
  311. package/dist/types/contract/actions/resolve-abi.d.ts.map +1 -1
  312. package/dist/types/exports/wallets/smart.d.ts +1 -0
  313. package/dist/types/exports/wallets/smart.d.ts.map +1 -1
  314. package/dist/types/exports/wallets.d.ts +1 -1
  315. package/dist/types/exports/wallets.d.ts.map +1 -1
  316. package/dist/types/exports/wallets.native.d.ts +1 -1
  317. package/dist/types/exports/wallets.native.d.ts.map +1 -1
  318. package/dist/types/extensions/erc1271/checkContractWalletSignedTypedData.d.ts +4 -4
  319. package/dist/types/extensions/erc1271/checkContractWalletSignedTypedData.d.ts.map +1 -1
  320. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.d.ts +29 -0
  321. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.d.ts.map +1 -0
  322. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.d.ts +29 -0
  323. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.d.ts.map +1 -0
  324. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/accountId.d.ts +44 -0
  325. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/accountId.d.ts.map +1 -0
  326. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.d.ts +97 -0
  327. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.d.ts.map +1 -0
  328. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.d.ts +90 -0
  329. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.d.ts.map +1 -0
  330. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.d.ts +83 -0
  331. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.d.ts.map +1 -0
  332. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.d.ts +83 -0
  333. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.d.ts.map +1 -0
  334. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/execute.d.ts +86 -0
  335. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/execute.d.ts.map +1 -0
  336. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.d.ts +86 -0
  337. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.d.ts.map +1 -0
  338. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/installModule.d.ts +93 -0
  339. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/installModule.d.ts.map +1 -0
  340. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.d.ts +93 -0
  341. package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.d.ts.map +1 -0
  342. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.d.ts +51 -0
  343. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.d.ts.map +1 -0
  344. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.d.ts +41 -0
  345. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.d.ts.map +1 -0
  346. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts +44 -0
  347. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts.map +1 -0
  348. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts +44 -0
  349. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts.map +1 -0
  350. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts +90 -0
  351. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts.map +1 -0
  352. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts +44 -0
  353. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts.map +1 -0
  354. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts +44 -0
  355. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts.map +1 -0
  356. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.d.ts +79 -0
  357. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.d.ts.map +1 -0
  358. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.d.ts +107 -0
  359. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.d.ts.map +1 -0
  360. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.d.ts +33 -0
  361. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.d.ts.map +1 -0
  362. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.d.ts +79 -0
  363. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.d.ts.map +1 -0
  364. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.d.ts +33 -0
  365. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.d.ts.map +1 -0
  366. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.d.ts +79 -0
  367. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.d.ts.map +1 -0
  368. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.d.ts +93 -0
  369. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.d.ts.map +1 -0
  370. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.d.ts +79 -0
  371. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.d.ts.map +1 -0
  372. package/dist/types/extensions/marketplace/direct-listings/write/buyFromListing.d.ts.map +1 -1
  373. package/dist/types/extensions/pack/createNewPack.d.ts.map +1 -1
  374. package/dist/types/react/web/ui/prebuilt/Account/avatar.d.ts.map +1 -1
  375. package/dist/types/react/web/ui/prebuilt/Account/balance.d.ts.map +1 -1
  376. package/dist/types/react/web/ui/prebuilt/Account/name.d.ts.map +1 -1
  377. package/dist/types/transaction/actions/gasless/providers/biconomy.d.ts +2 -2
  378. package/dist/types/transaction/actions/gasless/providers/biconomy.d.ts.map +1 -1
  379. package/dist/types/transaction/actions/gasless/providers/engine.d.ts +2 -2
  380. package/dist/types/transaction/actions/gasless/providers/engine.d.ts.map +1 -1
  381. package/dist/types/transaction/actions/gasless/providers/openzeppelin.d.ts +2 -2
  382. package/dist/types/transaction/actions/gasless/providers/openzeppelin.d.ts.map +1 -1
  383. package/dist/types/transaction/actions/gasless/send-gasless-transaction.d.ts +2 -2
  384. package/dist/types/transaction/actions/gasless/send-gasless-transaction.d.ts.map +1 -1
  385. package/dist/types/transaction/actions/sign-transaction.d.ts +2 -2
  386. package/dist/types/transaction/actions/sign-transaction.d.ts.map +1 -1
  387. package/dist/types/transaction/actions/to-serializable-transaction.d.ts.map +1 -1
  388. package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts +2 -2
  389. package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts.map +1 -1
  390. package/dist/types/transaction/serialize-transaction.d.ts +24 -4
  391. package/dist/types/transaction/serialize-transaction.d.ts.map +1 -1
  392. package/dist/types/utils/any-evm/keyless-transaction.d.ts +6 -4
  393. package/dist/types/utils/any-evm/keyless-transaction.d.ts.map +1 -1
  394. package/dist/types/utils/hashing/hashMessage.d.ts +3 -2
  395. package/dist/types/utils/hashing/hashMessage.d.ts.map +1 -1
  396. package/dist/types/utils/hashing/hashTypedData.d.ts +3 -3
  397. package/dist/types/utils/hashing/hashTypedData.d.ts.map +1 -1
  398. package/dist/types/utils/signatures/helpers/parse-typed-data.d.ts +6 -0
  399. package/dist/types/utils/signatures/helpers/parse-typed-data.d.ts.map +1 -0
  400. package/dist/types/utils/signatures/sign-message.d.ts.map +1 -1
  401. package/dist/types/utils/signatures/sign-typed-data.d.ts +3 -4
  402. package/dist/types/utils/signatures/sign-typed-data.d.ts.map +1 -1
  403. package/dist/types/utils/signatures/sign.d.ts +6 -2
  404. package/dist/types/utils/signatures/sign.d.ts.map +1 -1
  405. package/dist/types/utils/signatures/signature-to-hex.d.ts +7 -3
  406. package/dist/types/utils/signatures/signature-to-hex.d.ts.map +1 -1
  407. package/dist/types/utils/types.d.ts +13 -0
  408. package/dist/types/utils/types.d.ts.map +1 -1
  409. package/dist/types/version.d.ts +1 -1
  410. package/dist/types/wallets/coinbase/{coinbaseMobileSDK.d.ts → coinbase-mobile.d.ts} +2 -2
  411. package/dist/types/wallets/coinbase/coinbase-mobile.d.ts.map +1 -0
  412. package/dist/types/wallets/coinbase/{coinbaseWebSDK.d.ts → coinbase-web.d.ts} +1 -1
  413. package/dist/types/wallets/coinbase/coinbase-web.d.ts.map +1 -0
  414. package/dist/types/wallets/in-app/core/actions/sign-typed-data.enclave.d.ts +3 -4
  415. package/dist/types/wallets/in-app/core/actions/sign-typed-data.enclave.d.ts.map +1 -1
  416. package/dist/types/wallets/interfaces/wallet.d.ts +6 -4
  417. package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
  418. package/dist/types/wallets/private-key.d.ts.map +1 -1
  419. package/dist/types/wallets/smart/index.d.ts +3 -2
  420. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  421. package/dist/types/wallets/smart/lib/bundler.d.ts +3 -3
  422. package/dist/types/wallets/smart/lib/bundler.d.ts.map +1 -1
  423. package/dist/types/wallets/smart/lib/calls.d.ts +2 -2
  424. package/dist/types/wallets/smart/lib/calls.d.ts.map +1 -1
  425. package/dist/types/wallets/smart/lib/paymaster.d.ts.map +1 -1
  426. package/dist/types/wallets/smart/lib/signing.d.ts +20 -0
  427. package/dist/types/wallets/smart/lib/signing.d.ts.map +1 -0
  428. package/dist/types/wallets/smart/lib/userop.d.ts.map +1 -1
  429. package/dist/types/wallets/smart/presets/7579.d.ts +34 -0
  430. package/dist/types/wallets/smart/presets/7579.d.ts.map +1 -0
  431. package/dist/types/wallets/smart/presets/index.d.ts +2 -0
  432. package/dist/types/wallets/smart/presets/index.d.ts.map +1 -0
  433. package/dist/types/wallets/smart/smart-wallet.d.ts +2 -2
  434. package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
  435. package/dist/types/wallets/smart/types.d.ts +23 -9
  436. package/dist/types/wallets/smart/types.d.ts.map +1 -1
  437. package/dist/types/wallets/wallet-types.d.ts +1 -1
  438. package/dist/types/wallets/wallet-types.d.ts.map +1 -1
  439. package/package.json +23 -23
  440. package/src/adapters/ethers5.test.ts +92 -0
  441. package/src/adapters/ethers5.ts +6 -5
  442. package/src/adapters/ethers6.ts +3 -2
  443. package/src/adapters/viem.test.ts +5 -4
  444. package/src/auth/verify-hash.ts +2 -1
  445. package/src/auth/verify-signature.ts +2 -2
  446. package/src/contract/actions/resolve-abi.ts +6 -0
  447. package/src/exports/wallets/smart.ts +3 -0
  448. package/src/exports/wallets.native.ts +1 -1
  449. package/src/exports/wallets.ts +1 -1
  450. package/src/extensions/erc1271/checkContractWalletSignedTypedData.ts +9 -5
  451. package/src/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.ts +24 -0
  452. package/src/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.ts +24 -0
  453. package/src/extensions/erc7579/__generated__/IERC7579Account/read/accountId.ts +71 -0
  454. package/src/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.ts +153 -0
  455. package/src/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.ts +133 -0
  456. package/src/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.ts +132 -0
  457. package/src/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.ts +128 -0
  458. package/src/extensions/erc7579/__generated__/IERC7579Account/write/execute.ts +149 -0
  459. package/src/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.ts +158 -0
  460. package/src/extensions/erc7579/__generated__/IERC7579Account/write/installModule.ts +164 -0
  461. package/src/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.ts +167 -0
  462. package/src/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.ts +49 -0
  463. package/src/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.ts +40 -0
  464. package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.ts +70 -0
  465. package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.ts +70 -0
  466. package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.ts +134 -0
  467. package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.ts +71 -0
  468. package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.ts +71 -0
  469. package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.ts +138 -0
  470. package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.ts +193 -0
  471. package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.ts +50 -0
  472. package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.ts +139 -0
  473. package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.ts +50 -0
  474. package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.ts +140 -0
  475. package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.ts +159 -0
  476. package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.ts +137 -0
  477. package/src/extensions/marketplace/direct-listings/direct-listings.test.ts +74 -14
  478. package/src/extensions/marketplace/direct-listings/write/buyFromListing.ts +6 -0
  479. package/src/extensions/pack/createNewPack.ts +1 -0
  480. package/src/react/web/ui/prebuilt/Account/avatar.tsx +1 -0
  481. package/src/react/web/ui/prebuilt/Account/balance.tsx +1 -0
  482. package/src/react/web/ui/prebuilt/Account/name.tsx +1 -0
  483. package/src/react/web/utils/usePreloadWalletProviders.ts +1 -1
  484. package/src/transaction/actions/estimate-gas.ts +3 -3
  485. package/src/transaction/actions/gasless/providers/biconomy.ts +3 -2
  486. package/src/transaction/actions/gasless/providers/engine.ts +2 -2
  487. package/src/transaction/actions/gasless/providers/openzeppelin.ts +2 -2
  488. package/src/transaction/actions/gasless/send-gasless-transaction.ts +2 -2
  489. package/src/transaction/actions/sign-transaction.test.ts +8 -15
  490. package/src/transaction/actions/sign-transaction.ts +9 -11
  491. package/src/transaction/actions/to-serializable-transaction.ts +2 -2
  492. package/src/transaction/actions/zksync/getEip721Domain.ts +2 -2
  493. package/src/transaction/serialize-transaction.test.ts +135 -229
  494. package/src/transaction/serialize-transaction.ts +131 -22
  495. package/src/utils/any-evm/keyless-transaction.test.ts +91 -0
  496. package/src/utils/any-evm/keyless-transaction.ts +43 -14
  497. package/src/utils/hashing/hashMessage.ts +4 -3
  498. package/src/utils/hashing/hashTypedData.ts +24 -27
  499. package/src/utils/signatures/helpers/parse-typed-data.test.ts +56 -0
  500. package/src/utils/signatures/helpers/parse-typed-data.ts +29 -0
  501. package/src/utils/signatures/sign-message.ts +15 -6
  502. package/src/utils/signatures/sign-typed-data.ts +18 -12
  503. package/src/utils/signatures/sign.ts +5 -6
  504. package/src/utils/signatures/signature-to-hex.ts +29 -13
  505. package/src/utils/types.ts +17 -0
  506. package/src/version.ts +1 -1
  507. package/src/wallets/coinbase/coinbase-mobile.test.ts +69 -0
  508. package/src/wallets/coinbase/{coinbaseMobileSDK.ts → coinbase-mobile.ts} +1 -1
  509. package/src/wallets/coinbase/coinbase-wallet.ts +2 -2
  510. package/src/wallets/coinbase/coinbase-web.test.ts +176 -0
  511. package/src/wallets/coinbase/{coinbaseWebSDK.ts → coinbase-web.ts} +13 -17
  512. package/src/wallets/create-wallet.ts +1 -1
  513. package/src/wallets/eip5792/get-calls-status.ts +2 -2
  514. package/src/wallets/eip5792/get-capabilities.ts +2 -2
  515. package/src/wallets/eip5792/send-calls.ts +2 -2
  516. package/src/wallets/eip5792/show-calls-status.ts +2 -2
  517. package/src/wallets/in-app/core/actions/sign-typed-data.enclave.ts +3 -4
  518. package/src/wallets/in-app/core/wallet/enclave-wallet.ts +1 -1
  519. package/src/wallets/in-app/web/lib/iframe-wallet.ts +2 -2
  520. package/src/wallets/injected/index.ts +1 -1
  521. package/src/wallets/interfaces/wallet.ts +7 -11
  522. package/src/wallets/native/create-wallet.ts +1 -1
  523. package/src/wallets/private-key.ts +16 -14
  524. package/src/wallets/smart/index.ts +31 -218
  525. package/src/wallets/smart/lib/bundler.ts +5 -4
  526. package/src/wallets/smart/lib/calls.ts +4 -2
  527. package/src/wallets/smart/lib/paymaster.ts +8 -6
  528. package/src/wallets/smart/lib/signing.ts +231 -0
  529. package/src/wallets/smart/lib/userop.ts +3 -2
  530. package/src/wallets/smart/presets/7579.ts +269 -0
  531. package/src/wallets/smart/presets/index.ts +1 -0
  532. package/src/wallets/smart/smart-wallet-dev.test.ts +5 -4
  533. package/src/wallets/smart/smart-wallet-integration-v07.test.ts +299 -0
  534. package/src/wallets/smart/smart-wallet-integration.test.ts +399 -0
  535. package/src/wallets/smart/smart-wallet-modular.test.ts +134 -0
  536. package/src/wallets/smart/smart-wallet.ts +3 -5
  537. package/src/wallets/smart/smart.test.ts +87 -0
  538. package/src/wallets/smart/types.ts +31 -8
  539. package/src/wallets/wallet-connect/controller.ts +1 -1
  540. package/src/wallets/wallet-connect/receiver/session-request.test.ts +5 -5
  541. package/src/wallets/wallet-types.ts +1 -1
  542. package/dist/cjs/utils/signatures/helpers/parseTypedData.js.map +0 -1
  543. package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js.map +0 -1
  544. package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js.map +0 -1
  545. package/dist/esm/utils/signatures/helpers/parseTypedData.js +0 -15
  546. package/dist/esm/utils/signatures/helpers/parseTypedData.js.map +0 -1
  547. package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js.map +0 -1
  548. package/dist/esm/wallets/coinbase/coinbaseWebSDK.js.map +0 -1
  549. package/dist/types/utils/signatures/helpers/parseTypedData.d.ts +0 -7
  550. package/dist/types/utils/signatures/helpers/parseTypedData.d.ts.map +0 -1
  551. package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts.map +0 -1
  552. package/dist/types/wallets/coinbase/coinbaseWebSDK.d.ts.map +0 -1
  553. package/src/utils/signatures/helpers/parseTypedData.ts +0 -25
@@ -1,18 +1,10 @@
1
- import { assertType, describe, expect, test } from "vitest";
2
-
3
- import {
4
- type TransactionSerializable,
5
- type TransactionSerializableBase,
6
- type TransactionSerializableEIP1559,
7
- type TransactionSerializableEIP2930,
8
- type TransactionSerializableLegacy,
9
- type TransactionSerializedEIP1559,
10
- type TransactionSerializedEIP2930,
11
- type TransactionSerializedLegacy,
12
- parseTransaction,
13
- } from "viem";
14
-
15
- import { checksumAddress } from "../utils/address.js";
1
+ import * as ox__Hex from "ox/Hex";
2
+ import * as ox__TransactionEnvelopeEip1559 from "ox/TransactionEnvelopeEip1559";
3
+ import * as ox__TransactionEnvelopeEip2930 from "ox/TransactionEnvelopeEip2930";
4
+ import * as ox__TransactionEnvelopeLegacy from "ox/TransactionEnvelopeLegacy";
5
+ import { describe, expect, test } from "vitest";
6
+
7
+ import { type Address, checksumAddress } from "../utils/address.js";
16
8
  import { fromGwei, toWei } from "../utils/units.js";
17
9
  import { serializeTransaction } from "./serialize-transaction.js";
18
10
 
@@ -24,7 +16,7 @@ const BASE_TRANSACTION = {
24
16
  to: checksumAddress(TEST_ACCOUNT_B.address),
25
17
  nonce: 785,
26
18
  value: toWei("1"),
27
- } as const satisfies TransactionSerializableBase;
19
+ } as const;
28
20
 
29
21
  describe.runIf(process.env.TW_SECRET_KEY)("eip1559", () => {
30
22
  const baseEip1559 = {
@@ -32,21 +24,23 @@ describe.runIf(process.env.TW_SECRET_KEY)("eip1559", () => {
32
24
  chainId: 1,
33
25
  maxFeePerGas: fromGwei("2"),
34
26
  maxPriorityFeePerGas: fromGwei("2"),
35
- } as const satisfies TransactionSerializableEIP1559;
27
+ } as const;
36
28
 
37
29
  test("default", () => {
38
- const serialized = serializeTransaction<TransactionSerializableEIP1559>({
30
+ const serialized = serializeTransaction({
39
31
  transaction: baseEip1559,
40
32
  });
41
- assertType<TransactionSerializedEIP1559>(serialized);
42
33
  expect(serialized).toEqual(
43
34
  "0x02ef0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0",
44
35
  );
45
36
 
46
- const tx = parseTransaction(serialized);
37
+ const tx = ox__TransactionEnvelopeEip1559.deserialize(
38
+ serialized as ox__TransactionEnvelopeEip1559.Serialized,
39
+ );
47
40
  // The parsed transaction to address is not guaranteed to be checksummed, but our input address is
48
41
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
49
42
  ...baseEip1559,
43
+ nonce: BigInt(baseEip1559.nonce),
50
44
  type: "eip1559",
51
45
  });
52
46
  });
@@ -58,18 +52,22 @@ describe.runIf(process.env.TW_SECRET_KEY)("eip1559", () => {
58
52
  } as const;
59
53
  const serialized = serializeTransaction({ transaction: args });
60
54
  expect(serialized).toEqual("0x02c90180808080808080c0");
61
- expect(parseTransaction(serialized)).toEqual(args);
55
+
56
+ const tx = ox__TransactionEnvelopeEip1559.deserialize(
57
+ serialized as ox__TransactionEnvelopeEip1559.Serialized,
58
+ );
59
+ expect(tx).toEqual(args);
62
60
  });
63
61
 
64
62
  test("default (all zeros)", () => {
65
63
  const baseEip1559Zero = {
66
- to: TEST_ACCOUNT_B.address,
64
+ to: TEST_ACCOUNT_B.address as Address,
67
65
  nonce: 0,
68
66
  chainId: 1,
69
67
  maxFeePerGas: 0n,
70
68
  maxPriorityFeePerGas: 0n,
71
69
  value: 0n,
72
- } satisfies TransactionSerializableEIP1559;
70
+ };
73
71
 
74
72
  const serialized = serializeTransaction({
75
73
  transaction: baseEip1559Zero,
@@ -78,7 +76,9 @@ describe.runIf(process.env.TW_SECRET_KEY)("eip1559", () => {
78
76
  expect(serialized).toEqual(
79
77
  "0x02dd01808080809470997970c51812dc3a010c7d01b50e0d17dc79c88080c0",
80
78
  );
81
- const tx = parseTransaction(serialized);
79
+ const tx = ox__TransactionEnvelopeEip1559.deserialize(
80
+ serialized as ox__TransactionEnvelopeEip1559.Serialized,
81
+ );
82
82
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
83
83
  chainId: 1,
84
84
  to: TEST_ACCOUNT_B.address,
@@ -95,7 +95,14 @@ describe.runIf(process.env.TW_SECRET_KEY)("eip1559", () => {
95
95
  transaction: args,
96
96
  });
97
97
  expect(serialized).toEqual("0x02c90180800180808080c0");
98
- expect(parseTransaction(serialized)).toEqual({ ...args, type: "eip1559" });
98
+ expect(
99
+ ox__TransactionEnvelopeEip1559.deserialize(
100
+ serialized as ox__TransactionEnvelopeEip1559.Serialized,
101
+ ),
102
+ ).toEqual({
103
+ ...args,
104
+ type: "eip1559",
105
+ });
99
106
  });
100
107
 
101
108
  test("args: gas", () => {
@@ -109,7 +116,11 @@ describe.runIf(process.env.TW_SECRET_KEY)("eip1559", () => {
109
116
  expect(serialized).toEqual(
110
117
  "0x02f101820311847735940084773594008252099470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0",
111
118
  );
112
- expect(parseTransaction(serialized).gas).toEqual(args.gas);
119
+ expect(
120
+ ox__TransactionEnvelopeEip1559.deserialize(
121
+ serialized as ox__TransactionEnvelopeEip1559.Serialized,
122
+ ).gas,
123
+ ).toEqual(args.gas);
113
124
  });
114
125
 
115
126
  test("args: accessList", () => {
@@ -121,31 +132,39 @@ describe.runIf(process.env.TW_SECRET_KEY)("eip1559", () => {
121
132
  storageKeys: [
122
133
  "0x0000000000000000000000000000000000000000000000000000000000000001",
123
134
  "0x60fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe",
124
- ],
135
+ ] as const,
125
136
  },
126
137
  ],
127
- } satisfies TransactionSerializableEIP1559;
128
- const serialized = serializeTransaction<TransactionSerializableEIP1559>({
138
+ };
139
+ const serialized = serializeTransaction({
129
140
  transaction: args,
130
141
  });
131
142
  expect(serialized).toEqual(
132
143
  "0x02f88b0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080f85bf859940000000000000000000000000000000000000000f842a00000000000000000000000000000000000000000000000000000000000000001a060fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe",
133
144
  );
134
- expect(parseTransaction(serialized).accessList).toEqual(args.accessList);
145
+ expect(
146
+ ox__TransactionEnvelopeEip1559.deserialize(
147
+ serialized as ox__TransactionEnvelopeEip1559.Serialized,
148
+ ).accessList,
149
+ ).toEqual(args.accessList);
135
150
  });
136
151
 
137
152
  test("args: data", () => {
138
153
  const args = {
139
154
  ...baseEip1559,
140
155
  data: "0x1234",
141
- } satisfies TransactionSerializableEIP1559;
156
+ } as const;
142
157
  const serialized = serializeTransaction({
143
158
  transaction: args,
144
159
  });
145
160
  expect(serialized).toEqual(
146
161
  "0x02f10182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a7640000821234c0",
147
162
  );
148
- expect(parseTransaction(serialized).data).toEqual(args.data);
163
+ expect(
164
+ ox__TransactionEnvelopeEip1559.deserialize(
165
+ serialized as ox__TransactionEnvelopeEip1559.Serialized,
166
+ ).data,
167
+ ).toEqual(args.data);
149
168
  });
150
169
 
151
170
  test("signed", async () => {
@@ -162,7 +181,11 @@ describe.runIf(process.env.TW_SECRET_KEY)("eip1559", () => {
162
181
  expect(serialized).toEqual(
163
182
  "0x02f8720182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c001a0ce18214ff9d06ecaacb61811f9d6dc2be922e8cebddeaf6df0b30d5c498f6d33a05f0487c6dbbf2139f7c705d8054dbb16ecac8ae6256ce2c4c6f2e7ef35b3a496",
164
183
  );
165
- expect(parseTransaction(serialized).yParity).toEqual(1);
184
+ expect(
185
+ ox__TransactionEnvelopeEip1559.deserialize(
186
+ serialized as ox__TransactionEnvelopeEip1559.Serialized,
187
+ ).yParity,
188
+ ).toEqual(1);
166
189
  });
167
190
 
168
191
  test("signature", () => {
@@ -270,19 +293,21 @@ describe("eip2930", () => {
270
293
  },
271
294
  ],
272
295
  gasPrice: fromGwei("2"),
273
- } as const satisfies TransactionSerializableEIP2930;
296
+ } as const;
274
297
 
275
298
  test("default", () => {
276
- const serialized = serializeTransaction<TransactionSerializableEIP2930>({
299
+ const serialized = serializeTransaction({
277
300
  transaction: BASE_EIP2930_TRANSACTION,
278
301
  });
279
- assertType<TransactionSerializedEIP2930>(serialized);
280
302
  expect(serialized).toEqual(
281
303
  "0x01f863018203118477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080f838f7941234512345123451234512345123451234512345e1a060fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe",
282
304
  );
283
- const tx = parseTransaction(serialized);
305
+ const tx = ox__TransactionEnvelopeEip2930.deserialize(
306
+ serialized as ox__TransactionEnvelopeEip2930.Serialized,
307
+ );
284
308
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
285
309
  ...BASE_EIP2930_TRANSACTION,
310
+ nonce: BigInt(BASE_EIP2930_TRANSACTION.nonce),
286
311
  type: "eip2930",
287
312
  });
288
313
  });
@@ -295,7 +320,7 @@ describe("eip2930", () => {
295
320
  value: 0n,
296
321
  gasPrice: 0n,
297
322
  accessList: [],
298
- } satisfies TransactionSerializableEIP2930;
323
+ };
299
324
 
300
325
  const serialized = serializeTransaction({
301
326
  transaction: baseEip2930Zero,
@@ -305,7 +330,9 @@ describe("eip2930", () => {
305
330
  "0x01dc018080809470997970c51812dc3a010c7d01b50e0d17dc79c88080c0",
306
331
  );
307
332
 
308
- const tx = parseTransaction(serialized);
333
+ const tx = ox__TransactionEnvelopeEip2930.deserialize(
334
+ serialized as ox__TransactionEnvelopeEip2930.Serialized,
335
+ );
309
336
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
310
337
  chainId: 1,
311
338
  to: checksumAddress(TEST_ACCOUNT_B.address),
@@ -325,26 +352,34 @@ describe("eip2930", () => {
325
352
  },
326
353
  ],
327
354
  gasPrice: fromGwei("2"),
328
- } satisfies TransactionSerializableEIP2930;
329
- const serialized = serializeTransaction<TransactionSerializableEIP2930>({
355
+ } as const;
356
+ const serialized = serializeTransaction({
330
357
  transaction: args,
331
358
  });
332
359
  expect(serialized).toEqual(
333
360
  "0x01f8450180847735940080808080f838f7940000000000000000000000000000000000000000e1a00000000000000000000000000000000000000000000000000000000000000001",
334
361
  );
335
- expect(parseTransaction(serialized).accessList).toEqual(args.accessList);
362
+ expect(
363
+ ox__TransactionEnvelopeEip2930.deserialize(
364
+ serialized as ox__TransactionEnvelopeEip2930.Serialized,
365
+ ).accessList,
366
+ ).toEqual(args.accessList);
336
367
  });
337
368
 
338
369
  test("minimal (w/ type)", () => {
339
370
  const args = {
340
371
  chainId: 1,
341
372
  type: "eip2930",
342
- } satisfies TransactionSerializableEIP2930;
373
+ };
343
374
  const serialized = serializeTransaction({
344
375
  transaction: args,
345
376
  });
346
377
  expect(serialized).toEqual("0x01c801808080808080c0");
347
- expect(parseTransaction(serialized).type).toEqual("eip2930");
378
+ expect(
379
+ ox__TransactionEnvelopeEip2930.deserialize(
380
+ serialized as ox__TransactionEnvelopeEip2930.Serialized,
381
+ ).type,
382
+ ).toEqual("eip2930");
348
383
  });
349
384
 
350
385
  test("args: gas", () => {
@@ -356,19 +391,27 @@ describe("eip2930", () => {
356
391
  expect(serialized).toEqual(
357
392
  "0x01f8650182031184773594008252099470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080f838f7941234512345123451234512345123451234512345e1a060fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe",
358
393
  );
359
- expect(parseTransaction(serialized).gas).toEqual(args.gas);
394
+ expect(
395
+ ox__TransactionEnvelopeEip2930.deserialize(
396
+ serialized as ox__TransactionEnvelopeEip2930.Serialized,
397
+ ).gas,
398
+ ).toEqual(args.gas);
360
399
  });
361
400
 
362
401
  test("args: data", () => {
363
402
  const args = {
364
403
  ...BASE_EIP2930_TRANSACTION,
365
404
  data: "0x1234",
366
- } satisfies TransactionSerializableEIP2930;
405
+ } as const;
367
406
  const serialized = serializeTransaction({ transaction: args });
368
407
  expect(serialized).toEqual(
369
408
  "0x01f865018203118477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a7640000821234f838f7941234512345123451234512345123451234512345e1a060fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe",
370
409
  );
371
- expect(parseTransaction(serialized).data).toEqual(args.data);
410
+ expect(
411
+ ox__TransactionEnvelopeEip2930.deserialize(
412
+ serialized as ox__TransactionEnvelopeEip2930.Serialized,
413
+ ).data,
414
+ ).toEqual(args.data);
372
415
  });
373
416
 
374
417
  test("signed", async () => {
@@ -384,10 +427,14 @@ describe("eip2930", () => {
384
427
  expect(serialized).toEqual(
385
428
  "0x01f8a6018203118477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080f838f7941234512345123451234512345123451234512345e1a060fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe01a0dc7b3483c0b183823f07d77247c60678d861080acdc4fb8b9fd131770b475c40a040f16567391132746735aff4d5a3fa5ae42ff3d5d538e341870e0259dc40741a",
386
429
  );
387
- const tx = parseTransaction(serialized);
430
+ const tx = ox__TransactionEnvelopeEip2930.deserialize(
431
+ serialized as ox__TransactionEnvelopeEip2930.Serialized,
432
+ );
388
433
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
389
434
  ...BASE_EIP2930_TRANSACTION,
390
- ...signature,
435
+ nonce: BigInt(BASE_EIP2930_TRANSACTION.nonce),
436
+ r: ox__Hex.toBigInt(signature.r),
437
+ s: ox__Hex.toBigInt(signature.s),
391
438
  type: "eip2930",
392
439
  yParity: 1,
393
440
  });
@@ -490,16 +537,19 @@ describe("legacy", () => {
490
537
  };
491
538
 
492
539
  test("default", () => {
493
- const serialized = serializeTransaction<TransactionSerializableLegacy>({
540
+ const serialized = serializeTransaction({
494
541
  transaction: BASE_LEGACY_TRANSACTION,
495
542
  });
496
- assertType<TransactionSerializedLegacy>(serialized);
543
+
497
544
  expect(serialized).toEqual(
498
545
  "0xe88203118477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080",
499
546
  );
500
- const tx = parseTransaction(serialized);
547
+ const tx = ox__TransactionEnvelopeLegacy.deserialize(
548
+ serialized as ox__TransactionEnvelopeLegacy.Serialized,
549
+ );
501
550
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
502
551
  ...BASE_LEGACY_TRANSACTION,
552
+ nonce: BigInt(BASE_LEGACY_TRANSACTION.nonce),
503
553
  type: "legacy",
504
554
  });
505
555
  });
@@ -510,7 +560,7 @@ describe("legacy", () => {
510
560
  nonce: 0,
511
561
  value: 0n,
512
562
  gasPrice: 0n,
513
- } satisfies TransactionSerializableLegacy;
563
+ };
514
564
 
515
565
  const serialized = serializeTransaction({
516
566
  transaction: baseLegacyZero,
@@ -520,7 +570,9 @@ describe("legacy", () => {
520
570
  "0xda8080809470997970c51812dc3a010c7d01b50e0d17dc79c88080",
521
571
  );
522
572
 
523
- const tx = parseTransaction(serialized);
573
+ const tx = ox__TransactionEnvelopeLegacy.deserialize(
574
+ serialized as ox__TransactionEnvelopeLegacy.Serialized,
575
+ );
524
576
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
525
577
  to: checksumAddress(TEST_ACCOUNT_B.address),
526
578
  type: "legacy",
@@ -530,23 +582,27 @@ describe("legacy", () => {
530
582
  test("minimal (w/ gasPrice)", () => {
531
583
  const args = {
532
584
  gasPrice: fromGwei("2"),
533
- } satisfies TransactionSerializableLegacy;
585
+ };
534
586
  const serialized = serializeTransaction({
535
587
  transaction: args,
536
588
  });
537
589
  expect(serialized).toEqual("0xca80847735940080808080");
538
- expect(parseTransaction(serialized).gasPrice).toEqual(args.gasPrice);
590
+ expect(
591
+ ox__TransactionEnvelopeLegacy.deserialize(serialized).gasPrice,
592
+ ).toEqual(args.gasPrice);
539
593
  });
540
594
 
541
595
  test("minimal (w/ type)", () => {
542
596
  const args = {
543
597
  type: "legacy",
544
- } satisfies TransactionSerializableLegacy;
598
+ };
545
599
  const serialized = serializeTransaction({
546
600
  transaction: args,
547
601
  });
548
602
  expect(serialized).toEqual("0xc6808080808080");
549
- expect(parseTransaction(serialized).type).toEqual(args.type);
603
+ expect(ox__TransactionEnvelopeLegacy.deserialize(serialized).type).toEqual(
604
+ args.type,
605
+ );
550
606
  });
551
607
 
552
608
  test("args: gas", () => {
@@ -560,33 +616,39 @@ describe("legacy", () => {
560
616
  expect(serialized).toEqual(
561
617
  "0xea82031184773594008252099470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080",
562
618
  );
563
- expect(parseTransaction(serialized).gas).toEqual(args.gas);
619
+ expect(ox__TransactionEnvelopeLegacy.deserialize(serialized).gas).toEqual(
620
+ args.gas,
621
+ );
564
622
  });
565
623
 
566
624
  test("args: data", () => {
567
625
  const args = {
568
626
  ...BASE_LEGACY_TRANSACTION,
569
627
  data: "0x1234",
570
- } satisfies TransactionSerializableLegacy;
628
+ } as const;
571
629
  const serialized = serializeTransaction({
572
630
  transaction: args,
573
631
  });
574
632
  expect(serialized).toEqual(
575
633
  "0xea8203118477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a7640000821234",
576
634
  );
577
- expect(parseTransaction(serialized).data).toEqual(args.data);
635
+ expect(ox__TransactionEnvelopeLegacy.deserialize(serialized).data).toEqual(
636
+ args.data,
637
+ );
578
638
  });
579
639
 
580
640
  test("args: chainId", () => {
581
641
  const args = {
582
642
  ...BASE_LEGACY_TRANSACTION,
583
643
  chainId: 69,
584
- } satisfies TransactionSerializableLegacy;
644
+ } as const;
585
645
  const serialized = serializeTransaction({ transaction: args });
586
646
  expect(serialized).toEqual(
587
647
  "0xeb8203118477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080458080",
588
648
  );
589
- expect(parseTransaction(serialized).chainId).toEqual(args.chainId);
649
+ expect(
650
+ ox__TransactionEnvelopeLegacy.deserialize(serialized).chainId,
651
+ ).toEqual(args.chainId);
590
652
  });
591
653
 
592
654
  test("signed", async () => {
@@ -602,10 +664,13 @@ describe("legacy", () => {
602
664
  expect(serialized).toEqual(
603
665
  "0xf86b8203118477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a7640000801ca06cb0e8d21e5baf998fb9a05f47acd83692dc148f90b81b332a152f020da0ae98a0344e49bacb1ef7af7c2ffed9e88d3f0ae0aa4945c9da0a660a03717dd5621f98",
604
666
  );
605
- const tx = parseTransaction(serialized);
667
+ const tx = ox__TransactionEnvelopeLegacy.deserialize(serialized);
606
668
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
607
669
  ...BASE_LEGACY_TRANSACTION,
608
- ...signature,
670
+ nonce: BigInt(BASE_LEGACY_TRANSACTION.nonce),
671
+ r: ox__Hex.toBigInt(signature.r),
672
+ s: ox__Hex.toBigInt(signature.s),
673
+ v: 28,
609
674
  yParity: 1,
610
675
  type: "legacy",
611
676
  });
@@ -653,13 +718,15 @@ describe("legacy", () => {
653
718
  expect(serialized).toEqual(
654
719
  "0xf86c8203118477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a76400008081ada02f43314322cf4c5dd645b028aa0b0dadff0fb73c41a6f0620ff1dfb11601ac30a066f37a65e139fa4b6df33a42ab5ccaeaa7a109382e7430caefd1deee63962626",
655
720
  );
656
- const tx = parseTransaction(serialized);
721
+ const tx = ox__TransactionEnvelopeLegacy.deserialize(serialized);
657
722
  expect({ ...tx, to: tx.to ? checksumAddress(tx.to) : undefined }).toEqual({
658
723
  ...args,
659
- ...signature,
724
+ nonce: BigInt(args.nonce),
725
+ r: ox__Hex.toBigInt(signature.r),
726
+ s: ox__Hex.toBigInt(signature.s),
660
727
  yParity: 0,
661
728
  type: "legacy",
662
- v: 173n,
729
+ v: 173,
663
730
  });
664
731
  });
665
732
 
@@ -686,164 +753,3 @@ test("cannot infer type from transaction object", () => {
686
753
  }),
687
754
  ).toThrow();
688
755
  });
689
-
690
- describe("miscellaneous", () => {
691
- test("https://github.com/wevm/viem/issues/1433", () => {
692
- expect(
693
- serializeTransaction({
694
- transaction: {
695
- blockHash: null,
696
- blockNumber: null,
697
- from: "0xc702b9950e44f7d321fa16ee88bf8e1a561249ba",
698
- gas: 51627n,
699
- gasPrice: 3000000000n,
700
- hash: "0x3eaa88a766e82cbe53c95218ab4c3cf316325802b5f75d086b5121007b918e92",
701
- input:
702
- "0xa9059cbb00000000000000000000000082fc882199816bcec06baf848eaec51c2f96c85b000000000000000000000000000000000000000000000000eccae3078bacd15d",
703
- nonce: 117,
704
- to: "0x55d398326f99059ff775485246999027b3197955",
705
- transactionIndex: null,
706
- value: 0n,
707
- type: "legacy",
708
- v: 84475n,
709
- r: "0x73b39769ff4a36515c8fca546550a3fdafebbf37fa9e22be2d92b44653ade7bf",
710
- s: "0x354c756a1aa3346e9b3ea5423ac99acfc005e9cce2cd698e14d792f43fa15a23",
711
- chainId: undefined,
712
- typeHex: "0x0",
713
- } as TransactionSerializable,
714
- }),
715
- ).toMatchInlineSnapshot(
716
- '"0xf8667584b2d05e0082c9ab9455d398326f99059ff775485246999027b31979558080830149fba073b39769ff4a36515c8fca546550a3fdafebbf37fa9e22be2d92b44653ade7bfa0354c756a1aa3346e9b3ea5423ac99acfc005e9cce2cd698e14d792f43fa15a23"',
717
- );
718
-
719
- expect(
720
- serializeTransaction({
721
- transaction: {
722
- blockHash: null,
723
- blockNumber: null,
724
- from: "0xc702b9950e44f7d321fa16ee88bf8e1a561249ba",
725
- gas: 51627n,
726
- gasPrice: 3000000000n,
727
- hash: "0x3eaa88a766e82cbe53c95218ab4c3cf316325802b5f75d086b5121007b918e92",
728
- input:
729
- "0xa9059cbb00000000000000000000000082fc882199816bcec06baf848eaec51c2f96c85b000000000000000000000000000000000000000000000000eccae3078bacd15d",
730
- nonce: 117,
731
- to: "0x55d398326f99059ff775485246999027b3197955",
732
- transactionIndex: null,
733
- value: 0n,
734
- type: "legacy",
735
- v: 84476n,
736
- r: "0x73b39769ff4a36515c8fca546550a3fdafebbf37fa9e22be2d92b44653ade7bf",
737
- s: "0x354c756a1aa3346e9b3ea5423ac99acfc005e9cce2cd698e14d792f43fa15a23",
738
- chainId: undefined,
739
- typeHex: "0x0",
740
- } as TransactionSerializable,
741
- }),
742
- ).toMatchInlineSnapshot(
743
- '"0xf8667584b2d05e0082c9ab9455d398326f99059ff775485246999027b31979558080830149fca073b39769ff4a36515c8fca546550a3fdafebbf37fa9e22be2d92b44653ade7bfa0354c756a1aa3346e9b3ea5423ac99acfc005e9cce2cd698e14d792f43fa15a23"',
744
- );
745
-
746
- expect(
747
- serializeTransaction({
748
- transaction: {
749
- blockHash: null,
750
- blockNumber: null,
751
- from: "0xc702b9950e44f7d321fa16ee88bf8e1a561249ba",
752
- gas: 51627n,
753
- gasPrice: 3000000000n,
754
- hash: "0x3eaa88a766e82cbe53c95218ab4c3cf316325802b5f75d086b5121007b918e92",
755
- input:
756
- "0xa9059cbb00000000000000000000000082fc882199816bcec06baf848eaec51c2f96c85b000000000000000000000000000000000000000000000000eccae3078bacd15d",
757
- nonce: 117,
758
- to: "0x55d398326f99059ff775485246999027b3197955",
759
- transactionIndex: null,
760
- value: 0n,
761
- type: "legacy",
762
- v: 35n,
763
- r: "0x73b39769ff4a36515c8fca546550a3fdafebbf37fa9e22be2d92b44653ade7bf",
764
- s: "0x354c756a1aa3346e9b3ea5423ac99acfc005e9cce2cd698e14d792f43fa15a23",
765
- chainId: undefined,
766
- typeHex: "0x0",
767
- } as TransactionSerializable,
768
- }),
769
- ).toMatchInlineSnapshot(
770
- '"0xf8637584b2d05e0082c9ab9455d398326f99059ff775485246999027b319795580801ba073b39769ff4a36515c8fca546550a3fdafebbf37fa9e22be2d92b44653ade7bfa0354c756a1aa3346e9b3ea5423ac99acfc005e9cce2cd698e14d792f43fa15a23"',
771
- );
772
-
773
- expect(
774
- serializeTransaction({
775
- transaction: {
776
- blockHash: null,
777
- blockNumber: null,
778
- from: "0xc702b9950e44f7d321fa16ee88bf8e1a561249ba",
779
- gas: 51627n,
780
- gasPrice: 3000000000n,
781
- hash: "0x3eaa88a766e82cbe53c95218ab4c3cf316325802b5f75d086b5121007b918e92",
782
- input:
783
- "0xa9059cbb00000000000000000000000082fc882199816bcec06baf848eaec51c2f96c85b000000000000000000000000000000000000000000000000eccae3078bacd15d",
784
- nonce: 117,
785
- to: "0x55d398326f99059ff775485246999027b3197955",
786
- transactionIndex: null,
787
- value: 0n,
788
- type: "legacy",
789
- v: 36n,
790
- r: "0x73b39769ff4a36515c8fca546550a3fdafebbf37fa9e22be2d92b44653ade7bf",
791
- s: "0x354c756a1aa3346e9b3ea5423ac99acfc005e9cce2cd698e14d792f43fa15a23",
792
- chainId: undefined,
793
- typeHex: "0x0",
794
- } as TransactionSerializable,
795
- }),
796
- ).toMatchInlineSnapshot(
797
- '"0xf8637584b2d05e0082c9ab9455d398326f99059ff775485246999027b319795580801ca073b39769ff4a36515c8fca546550a3fdafebbf37fa9e22be2d92b44653ade7bfa0354c756a1aa3346e9b3ea5423ac99acfc005e9cce2cd698e14d792f43fa15a23"',
798
- );
799
- });
800
-
801
- test("https://github.com/wevm/viem/issues/1849", async () => {
802
- const tx = {
803
- blockHash:
804
- "0xbfafd5da42c7e715149a1fbcc20c40bcf5f62e013f60af9cdf07c27142b6a0ff",
805
- blockNumber: 19295009n,
806
- gas: 421374n,
807
- gasPrice: 20701311233n,
808
- input:
809
- "0x3a2b7b980000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000726000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000065d96f1b00000000000000000000000000000000000000000000000000000000000000030b010c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000c23190af48df1c00000000000000000000000000000000000000000000000000000000000001000000000000000000000000002648f5592c09a260c601acde44e7f8f2944944fb0000000000000000000000000000000000000000000000000f43fc2c04ee000000000000000000000000000000000000000000000000000000c23190af48df1c00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bbe33f57f41a20b2f00dec91dcc1169597f36221f002710c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000023a03a3f85888a471f4effcafa03431511e388560000000000000000000000000000000000000000000000000000000000000000",
810
- nonce: 38,
811
- to: "0x2648f5592c09a260c601acde44e7f8f2944944fb",
812
- transactionIndex: 74,
813
- value: 57108134443873424n,
814
- type: "legacy",
815
- chainId: 1,
816
- v: 38n,
817
- r: "0x5abc283bf902f90884f800b2f810febd5e90f8d5077d89e150631bbcc547b7d1",
818
- s: "0x5acc7718573bcd268256c996f2ae1bdd2bd97019992f44d5806b1cc843cde2e7",
819
- typeHex: "0x0",
820
- } as const;
821
-
822
- const serialized = serializeTransaction({
823
- transaction: { ...tx, data: tx.input },
824
- });
825
-
826
- expect(keccak256(serialized)).toEqual(
827
- "0x6ed21df69b02678dfb290ef2a43d490303562eb387f70795766b37bfa9d09bd2",
828
- );
829
- });
830
-
831
- test("Successfully handles hex as bigint", () => {
832
- const transaction = {
833
- to: "0x0000000000000000000000000000000000000000",
834
- chainId: 31337,
835
- data: "0x",
836
- gas: 21001n,
837
- nonce: 0,
838
- accessList: undefined,
839
- value: "0x0",
840
- maxFeePerGas: 3100000000n,
841
- maxPriorityFeePerGas: 1100000000n,
842
- } as unknown as TransactionSerializable;
843
-
844
- const signed = serializeTransaction({ transaction });
845
- expect(signed).toMatchInlineSnapshot(
846
- `"0x02ec827a6980844190ab0084b8c63f008252099400000000000000000000000000000000000000008330783080c0"`,
847
- );
848
- });
849
- });