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
@@ -0,0 +1,231 @@
1
+ import type * as ox__TypedData from "ox/TypedData";
2
+ import { serializeErc6492Signature } from "../../../auth/serialize-erc6492-signature.js";
3
+ import { verifyHash } from "../../../auth/verify-hash.js";
4
+ import {
5
+ type ThirdwebContract,
6
+ getContract,
7
+ } from "../../../contract/contract.js";
8
+ import { encode } from "../../../transaction/actions/encode.js";
9
+ import { readContract } from "../../../transaction/read-contract.js";
10
+ import { encodeAbiParameters } from "../../../utils/abi/encodeAbiParameters.js";
11
+ import type { Hex } from "../../../utils/encoding/hex.js";
12
+ import { hashMessage } from "../../../utils/hashing/hashMessage.js";
13
+ import { hashTypedData } from "../../../utils/hashing/hashTypedData.js";
14
+ import type { SignableMessage } from "../../../utils/types.js";
15
+ import type { SmartAccountOptions } from "../types.js";
16
+ import { prepareCreateAccount } from "./calls.js";
17
+
18
+ export async function deployAndSignMessage({
19
+ accountContract,
20
+ factoryContract,
21
+ options,
22
+ message,
23
+ }: {
24
+ accountContract: ThirdwebContract;
25
+ factoryContract: ThirdwebContract;
26
+ options: SmartAccountOptions;
27
+ message: SignableMessage;
28
+ }) {
29
+ const originalMsgHash = hashMessage(message);
30
+ const is712Factory = await checkFor712Factory({
31
+ factoryContract,
32
+ accountContract,
33
+ originalMsgHash,
34
+ });
35
+
36
+ let sig: `0x${string}`;
37
+ if (is712Factory) {
38
+ const wrappedMessageHash = encodeAbiParameters(
39
+ [{ type: "bytes32" }],
40
+ [originalMsgHash],
41
+ );
42
+
43
+ sig = await options.personalAccount.signTypedData({
44
+ domain: {
45
+ name: "Account",
46
+ version: "1",
47
+ chainId: options.chain.id,
48
+ verifyingContract: accountContract.address,
49
+ },
50
+ primaryType: "AccountMessage",
51
+ types: { AccountMessage: [{ name: "message", type: "bytes" }] },
52
+ message: { message: wrappedMessageHash },
53
+ });
54
+ } else {
55
+ sig = await options.personalAccount.signMessage({ message });
56
+ }
57
+
58
+ const deployTx = prepareCreateAccount({
59
+ factoryContract,
60
+ adminAddress: options.personalAccount.address,
61
+ accountSalt: options.overrides?.accountSalt,
62
+ createAccountOverride: options.overrides?.createAccount,
63
+ });
64
+ if (!deployTx) {
65
+ throw new Error("Create account override not provided");
66
+ }
67
+ const initCode = await encode(deployTx);
68
+ const erc6492Sig = serializeErc6492Signature({
69
+ address: factoryContract.address,
70
+ data: initCode,
71
+ signature: sig,
72
+ });
73
+
74
+ // check if the signature is valid
75
+ const isValid = await verifyHash({
76
+ hash: originalMsgHash,
77
+ signature: erc6492Sig,
78
+ address: accountContract.address,
79
+ chain: accountContract.chain,
80
+ client: accountContract.client,
81
+ });
82
+
83
+ if (isValid) {
84
+ return erc6492Sig;
85
+ }
86
+ throw new Error(
87
+ "Unable to verify signature on smart account, please make sure the admin wallet has permissions and the signature is valid.",
88
+ );
89
+ }
90
+
91
+ export async function deployAndSignTypedData<
92
+ const typedData extends ox__TypedData.TypedData | Record<string, unknown>,
93
+ primaryType extends keyof typedData | "EIP712Domain" = keyof typedData,
94
+ >({
95
+ accountContract,
96
+ factoryContract,
97
+ options,
98
+ typedData,
99
+ }: {
100
+ accountContract: ThirdwebContract;
101
+ factoryContract: ThirdwebContract;
102
+ options: SmartAccountOptions;
103
+ typedData: ox__TypedData.Definition<typedData, primaryType>;
104
+ }) {
105
+ const isSelfVerifyingContract =
106
+ (
107
+ typedData.domain as ox__TypedData.Domain
108
+ )?.verifyingContract?.toLowerCase() ===
109
+ accountContract.address?.toLowerCase();
110
+
111
+ if (isSelfVerifyingContract) {
112
+ // if the contract is self-verifying, we can just sign the message with the EOA (ie. adding a session key)
113
+ return options.personalAccount.signTypedData(typedData);
114
+ }
115
+
116
+ const originalMsgHash = hashTypedData(typedData);
117
+ // check if the account contract supports EIP721 domain separator based signing
118
+ const is712Factory = await checkFor712Factory({
119
+ factoryContract,
120
+ accountContract,
121
+ originalMsgHash,
122
+ });
123
+
124
+ let sig: `0x${string}`;
125
+ if (is712Factory) {
126
+ const wrappedMessageHash = encodeAbiParameters(
127
+ [{ type: "bytes32" }],
128
+ [originalMsgHash],
129
+ );
130
+ sig = await options.personalAccount.signTypedData({
131
+ domain: {
132
+ name: "Account",
133
+ version: "1",
134
+ chainId: options.chain.id,
135
+ verifyingContract: accountContract.address,
136
+ },
137
+ primaryType: "AccountMessage",
138
+ types: { AccountMessage: [{ name: "message", type: "bytes" }] },
139
+ message: { message: wrappedMessageHash },
140
+ });
141
+ } else {
142
+ sig = await options.personalAccount.signTypedData(typedData);
143
+ }
144
+
145
+ const deployTx = prepareCreateAccount({
146
+ factoryContract,
147
+ adminAddress: options.personalAccount.address,
148
+ accountSalt: options.overrides?.accountSalt,
149
+ createAccountOverride: options.overrides?.createAccount,
150
+ });
151
+ if (!deployTx) {
152
+ throw new Error("Create account override not provided");
153
+ }
154
+ const initCode = await encode(deployTx);
155
+ const erc6492Sig = serializeErc6492Signature({
156
+ address: factoryContract.address,
157
+ data: initCode,
158
+ signature: sig,
159
+ });
160
+
161
+ // check if the signature is valid
162
+ const isValid = await verifyHash({
163
+ hash: originalMsgHash,
164
+ signature: erc6492Sig,
165
+ address: accountContract.address,
166
+ chain: accountContract.chain,
167
+ client: accountContract.client,
168
+ });
169
+
170
+ if (isValid) {
171
+ return erc6492Sig;
172
+ }
173
+ throw new Error(
174
+ "Unable to verify signature on smart account, please make sure the admin wallet has permissions and the signature is valid.",
175
+ );
176
+ }
177
+
178
+ export async function confirmContractDeployment(args: {
179
+ accountContract: ThirdwebContract;
180
+ }) {
181
+ const { accountContract } = args;
182
+ const startTime = Date.now();
183
+ const timeout = 60000; // wait 1 minute max
184
+ const { isContractDeployed } = await import(
185
+ "../../../utils/bytecode/is-contract-deployed.js"
186
+ );
187
+ let isDeployed = await isContractDeployed(accountContract);
188
+ while (!isDeployed) {
189
+ if (Date.now() - startTime > timeout) {
190
+ throw new Error(
191
+ "Timeout: Smart account deployment not confirmed after 1 minute",
192
+ );
193
+ }
194
+ await new Promise((resolve) => setTimeout(resolve, 500));
195
+ isDeployed = await isContractDeployed(accountContract);
196
+ }
197
+ }
198
+
199
+ async function checkFor712Factory({
200
+ factoryContract,
201
+ accountContract,
202
+ originalMsgHash,
203
+ }: {
204
+ factoryContract: ThirdwebContract;
205
+ accountContract: ThirdwebContract;
206
+ originalMsgHash: Hex;
207
+ }) {
208
+ try {
209
+ const implementationAccount = await readContract({
210
+ contract: factoryContract,
211
+ method: "function accountImplementation() public view returns (address)",
212
+ });
213
+ // check if the account contract supports EIP721 domain separator or modular based signing
214
+ const is712Factory = await readContract({
215
+ contract: getContract({
216
+ address: implementationAccount,
217
+ chain: accountContract.chain,
218
+ client: accountContract.client,
219
+ }),
220
+ method:
221
+ "function getMessageHash(bytes32 _hash) public view returns (bytes32)",
222
+ params: [originalMsgHash],
223
+ })
224
+ .then((res) => res !== "0x")
225
+ .catch(() => false);
226
+
227
+ return is712Factory;
228
+ } catch {
229
+ return false;
230
+ }
231
+ }
@@ -632,6 +632,7 @@ async function getAccountInitCode(options: {
632
632
  accountSalt?: string;
633
633
  createAccountOverride?: (
634
634
  factoryContract: ThirdwebContract,
635
+ adminAddress: string,
635
636
  ) => PreparedTransaction;
636
637
  }): Promise<Hex> {
637
638
  const { factoryContract, adminAddress, accountSalt, createAccountOverride } =
@@ -651,7 +652,7 @@ async function getAccountNonce(options: {
651
652
  client: ThirdwebClient;
652
653
  entrypointAddress?: string;
653
654
  getNonceOverride?: (accountContract: ThirdwebContract) => Promise<bigint>;
654
- }) {
655
+ }): Promise<bigint> {
655
656
  const {
656
657
  accountContract,
657
658
  chain,
@@ -662,7 +663,7 @@ async function getAccountNonce(options: {
662
663
  if (getNonceOverride) {
663
664
  return getNonceOverride(accountContract);
664
665
  }
665
- return getNonce({
666
+ return await getNonce({
666
667
  contract: getContract({
667
668
  address: entrypointAddress || ENTRYPOINT_ADDRESS_v0_6,
668
669
  chain,
@@ -0,0 +1,269 @@
1
+ import { AbiParameters, Hex } from "ox";
2
+ import { serializeErc6492Signature } from "../../../auth/serialize-erc6492-signature.js";
3
+ import { verifyHash } from "../../../auth/verify-hash.js";
4
+ import { ZERO_ADDRESS } from "../../../constants/addresses.js";
5
+ import {
6
+ type ThirdwebContract,
7
+ getContract,
8
+ } from "../../../contract/contract.js";
9
+ import { getNonce } from "../../../extensions/erc4337/__generated__/IEntryPoint/read/getNonce.js";
10
+ import { execute } from "../../../extensions/erc7579/__generated__/IERC7579Account/write/execute.js";
11
+ import { createAccountWithModules } from "../../../extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js";
12
+ import { encode } from "../../../transaction/actions/encode.js";
13
+ import type { PreparedTransaction } from "../../../transaction/prepare-transaction.js";
14
+ import { readContract } from "../../../transaction/read-contract.js";
15
+ import { encodeAbiParameters } from "../../../utils/abi/encodeAbiParameters.js";
16
+ import { getAddress } from "../../../utils/address.js";
17
+ import { hashMessage } from "../../../utils/hashing/hashMessage.js";
18
+ import { hashTypedData } from "../../../utils/hashing/hashTypedData.js";
19
+ import type { Account } from "../../interfaces/wallet.js";
20
+ import { ENTRYPOINT_ADDRESS_v0_7 } from "../lib/constants.js";
21
+ import { generateRandomUint192 } from "../lib/utils.js";
22
+ import type { SmartWalletOptions } from "../types.js";
23
+
24
+ export type ERC7579Config = SmartWalletOptions & {
25
+ validatorAddress: string;
26
+ factoryAddress: string;
27
+ };
28
+
29
+ /**
30
+ * Config for a ERC7579 modular smart wallet.
31
+ *
32
+ * This configuration is in BETA, expect breaking changes.
33
+ *
34
+ * @param options - Optional overrides for the smart wallet.
35
+ * @returns The smart wallet options.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * import { sepolia } from "thirdweb/chains";
40
+ * import { smartWallet, Config } from "thirdweb/wallets/smart";
41
+ *
42
+ * const modularSmartWallet = smartWallet(
43
+ * Config.erc7579({
44
+ * chain: sepolia,
45
+ * sponsorGas: true,
46
+ * factoryAddress: "0x...", // the 7579 factory address
47
+ * validatorAddress: "0x...", // the default validator module address
48
+ * }),
49
+ * });
50
+ * ```
51
+ *
52
+ * @wallet
53
+ * @extension ERC7579
54
+ * @beta
55
+ */
56
+ export function erc7579(options: ERC7579Config): SmartWalletOptions {
57
+ const saltHex =
58
+ options.overrides?.accountSalt &&
59
+ Hex.validate(options.overrides.accountSalt)
60
+ ? options.overrides.accountSalt
61
+ : Hex.fromString(options.overrides?.accountSalt ?? "");
62
+ const defaultValidator = getAddress(options.validatorAddress);
63
+ const modularAccountOptions: SmartWalletOptions = {
64
+ ...options,
65
+ factoryAddress: options.factoryAddress,
66
+ overrides: {
67
+ entrypointAddress: ENTRYPOINT_ADDRESS_v0_7,
68
+ createAccount(factoryContract, admin) {
69
+ // TODO (msa) - let ppl pass whatever modules they want here
70
+ return createAccountWithModules({
71
+ contract: factoryContract,
72
+ asyncParams: async () => {
73
+ // default validator
74
+ const modules = [
75
+ {
76
+ moduleTypeId: 1n, // validator type id
77
+ module: defaultValidator,
78
+ initData: Hex.fromString(""),
79
+ },
80
+ ];
81
+ return {
82
+ owner: admin,
83
+ salt: saltHex,
84
+ modules,
85
+ };
86
+ },
87
+ });
88
+ },
89
+ async predictAddress(factoryContract, admin) {
90
+ return readContract({
91
+ contract: factoryContract,
92
+ method:
93
+ "function getAddress(address owner, bytes salt) returns (address)",
94
+ params: [admin, saltHex],
95
+ });
96
+ },
97
+ execute(accountContract, transaction) {
98
+ return execute({
99
+ contract: accountContract,
100
+ async asyncParams() {
101
+ return {
102
+ mode: Hex.padRight("0x00", 32), // single execution
103
+ executionCalldata: AbiParameters.encodePacked(
104
+ ["address", "uint256", "bytes"],
105
+ [
106
+ transaction.to || ZERO_ADDRESS,
107
+ transaction.value || 0n,
108
+ transaction.data || "0x",
109
+ ],
110
+ ),
111
+ };
112
+ },
113
+ });
114
+ },
115
+ executeBatch(accountContract, transactions) {
116
+ return execute({
117
+ contract: accountContract,
118
+ async asyncParams() {
119
+ return {
120
+ mode: Hex.padRight("0x01", 32), // batch execution
121
+ executionCalldata: AbiParameters.encode(
122
+ [
123
+ {
124
+ type: "tuple[]",
125
+ components: [
126
+ { type: "address", name: "to" },
127
+ { type: "uint256", name: "value" },
128
+ { type: "bytes", name: "data" },
129
+ ],
130
+ },
131
+ ],
132
+ [
133
+ transactions.map((t) => ({
134
+ to: t.to || ZERO_ADDRESS,
135
+ value: t.value || 0n,
136
+ data: t.data || "0x",
137
+ })),
138
+ ],
139
+ ),
140
+ };
141
+ },
142
+ });
143
+ },
144
+ async getAccountNonce(accountContract) {
145
+ const entryPointNonce = await getNonce({
146
+ contract: getContract({
147
+ address: ENTRYPOINT_ADDRESS_v0_7,
148
+ chain: accountContract.chain,
149
+ client: accountContract.client,
150
+ }),
151
+ key: generateRandomUint192(),
152
+ sender: accountContract.address,
153
+ });
154
+ // TODO (msa) - could be different if validator for the deployed account is different
155
+ const withValidator = Hex.from(
156
+ `${defaultValidator}${Hex.fromNumber(entryPointNonce).slice(42)}`,
157
+ );
158
+ return Hex.toBigInt(withValidator);
159
+ },
160
+ async signMessage(options) {
161
+ const { accountContract, factoryContract, adminAccount, message } =
162
+ options;
163
+ const originalMsgHash = hashMessage(message);
164
+ const createAccount = modularAccountOptions.overrides?.createAccount;
165
+ if (!createAccount) {
166
+ throw new Error("Create account override not provided");
167
+ }
168
+ return generateSignature({
169
+ accountContract,
170
+ factoryContract,
171
+ adminAccount,
172
+ originalMsgHash,
173
+ defaultValidator,
174
+ createAccount,
175
+ });
176
+ },
177
+ async signTypedData(options) {
178
+ const { accountContract, factoryContract, adminAccount, typedData } =
179
+ options;
180
+ const originalMsgHash = hashTypedData(typedData);
181
+ const createAccount = modularAccountOptions.overrides?.createAccount;
182
+ if (!createAccount) {
183
+ throw new Error("Create account override not provided");
184
+ }
185
+ return generateSignature({
186
+ accountContract,
187
+ factoryContract,
188
+ adminAccount,
189
+ originalMsgHash,
190
+ defaultValidator,
191
+ createAccount,
192
+ });
193
+ },
194
+ ...options.overrides,
195
+ },
196
+ };
197
+ return modularAccountOptions;
198
+ }
199
+
200
+ async function generateSignature(options: {
201
+ accountContract: ThirdwebContract;
202
+ factoryContract: ThirdwebContract;
203
+ adminAccount: Account;
204
+ originalMsgHash: Hex.Hex;
205
+ defaultValidator: string;
206
+ createAccount: (
207
+ factoryContract: ThirdwebContract,
208
+ admin: string,
209
+ ) => PreparedTransaction;
210
+ }) {
211
+ const {
212
+ accountContract,
213
+ factoryContract,
214
+ adminAccount,
215
+ originalMsgHash,
216
+ defaultValidator,
217
+ createAccount,
218
+ } = options;
219
+ const wrappedMessageHash = encodeAbiParameters(
220
+ [{ type: "bytes32" }],
221
+ [originalMsgHash],
222
+ );
223
+
224
+ const rawSig = await adminAccount.signTypedData({
225
+ domain: {
226
+ // TODO (msa) - assumes our default validator here
227
+ name: "DefaultValidator",
228
+ version: "1",
229
+ chainId: accountContract.chain.id,
230
+ verifyingContract: defaultValidator,
231
+ },
232
+ primaryType: "AccountMessage",
233
+ types: { AccountMessage: [{ name: "message", type: "bytes" }] },
234
+ message: { message: wrappedMessageHash },
235
+ });
236
+
237
+ // add the validator address to the signature
238
+ const sig = encodeAbiParameters(
239
+ [{ type: "address" }, { type: "bytes" }],
240
+ [defaultValidator, rawSig],
241
+ );
242
+
243
+ const deployTx = createAccount(factoryContract, adminAccount.address);
244
+ if (!deployTx) {
245
+ throw new Error("Create account override not provided");
246
+ }
247
+ const initCode = await encode(deployTx);
248
+ const erc6492Sig = serializeErc6492Signature({
249
+ address: factoryContract.address,
250
+ data: initCode,
251
+ signature: sig,
252
+ });
253
+
254
+ // check if the signature is valid
255
+ const isValid = await verifyHash({
256
+ hash: originalMsgHash,
257
+ signature: erc6492Sig,
258
+ address: accountContract.address,
259
+ chain: accountContract.chain,
260
+ client: accountContract.client,
261
+ });
262
+
263
+ if (!isValid) {
264
+ throw new Error(
265
+ `Something went wrong generating the signature for modular smart account: ${accountContract.address} on chain ${accountContract.chain.id}`,
266
+ );
267
+ }
268
+ return erc6492Sig;
269
+ }
@@ -0,0 +1 @@
1
+ export { erc7579, type ERC7579Config } from "./7579.js";
@@ -1,5 +1,6 @@
1
1
  import { beforeAll, describe, expect, it } from "vitest";
2
2
  import { TEST_CLIENT } from "../../../test/src/test-clients.js";
3
+ import { TEST_ACCOUNT_A } from "../../../test/src/test-wallets.js";
3
4
  import { defineChain } from "../../chains/utils.js";
4
5
  import { type ThirdwebContract, getContract } from "../../contract/contract.js";
5
6
  import { balanceOf } from "../../extensions/erc1155/__generated__/IERC1155/read/balanceOf.js";
@@ -12,7 +13,6 @@ import type { Address } from "../../utils/address.js";
12
13
  import { isContractDeployed } from "../../utils/bytecode/is-contract-deployed.js";
13
14
  import { setThirdwebDomains } from "../../utils/domains.js";
14
15
  import type { Account, Wallet } from "../interfaces/wallet.js";
15
- import { generateAccount } from "../utils/generateAccount.js";
16
16
  import { smartWallet } from "./smart-wallet.js";
17
17
 
18
18
  let wallet: Wallet;
@@ -41,9 +41,10 @@ describe.runIf(process.env.TW_SECRET_KEY).skip.sequential(
41
41
  storage: "storage.thirdweb-dev.com",
42
42
  bundler: "bundler.thirdweb-dev.com",
43
43
  });
44
- personalAccount = await generateAccount({
45
- client,
46
- });
44
+ personalAccount = TEST_ACCOUNT_A;
45
+ // personalAccount = await generateAccount({
46
+ // client,
47
+ // });
47
48
  wallet = smartWallet({
48
49
  chain,
49
50
  gasless: true,