permissionless 0.1.48 → 0.1.49

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 (711) hide show
  1. package/_cjs/accounts/biconomy/abi/BiconomySmartAccountAbi.js +102 -0
  2. package/_cjs/accounts/biconomy/abi/BiconomySmartAccountAbi.js.map +1 -0
  3. package/_cjs/accounts/biconomy/privateKeyToBiconomySmartAccount.js +14 -0
  4. package/_cjs/accounts/biconomy/privateKeyToBiconomySmartAccount.js.map +1 -0
  5. package/_cjs/accounts/biconomy/signerToBiconomySmartAccount.js +233 -0
  6. package/_cjs/accounts/biconomy/signerToBiconomySmartAccount.js.map +1 -0
  7. package/_cjs/accounts/index.js +30 -0
  8. package/_cjs/accounts/index.js.map +1 -0
  9. package/_cjs/accounts/kernel/abi/KernelAccountAbi.js +84 -0
  10. package/_cjs/accounts/kernel/abi/KernelAccountAbi.js.map +1 -0
  11. package/_cjs/accounts/kernel/abi/KernelV3AccountAbi.js +110 -0
  12. package/_cjs/accounts/kernel/abi/KernelV3AccountAbi.js.map +1 -0
  13. package/_cjs/accounts/kernel/abi/KernelV3MetaFactoryAbi.js +21 -0
  14. package/_cjs/accounts/kernel/abi/KernelV3MetaFactoryAbi.js.map +1 -0
  15. package/_cjs/accounts/kernel/constants.js +27 -0
  16. package/_cjs/accounts/kernel/constants.js.map +1 -0
  17. package/_cjs/accounts/kernel/signerToEcdsaKernelSmartAccount.js +332 -0
  18. package/_cjs/accounts/kernel/signerToEcdsaKernelSmartAccount.js.map +1 -0
  19. package/_cjs/accounts/kernel/utils/encodeCallData.js +90 -0
  20. package/_cjs/accounts/kernel/utils/encodeCallData.js.map +1 -0
  21. package/_cjs/accounts/kernel/utils/getExecMode.js +15 -0
  22. package/_cjs/accounts/kernel/utils/getExecMode.js.map +1 -0
  23. package/_cjs/accounts/kernel/utils/getNonceKey.js +25 -0
  24. package/_cjs/accounts/kernel/utils/getNonceKey.js.map +1 -0
  25. package/_cjs/accounts/kernel/utils/isKernelV2.js +9 -0
  26. package/_cjs/accounts/kernel/utils/isKernelV2.js.map +1 -0
  27. package/_cjs/accounts/kernel/utils/signMessage.js +29 -0
  28. package/_cjs/accounts/kernel/utils/signMessage.js.map +1 -0
  29. package/_cjs/accounts/kernel/utils/signTypedData.js +41 -0
  30. package/_cjs/accounts/kernel/utils/signTypedData.js.map +1 -0
  31. package/_cjs/accounts/kernel/utils/wrapMessageHash.js +20 -0
  32. package/_cjs/accounts/kernel/utils/wrapMessageHash.js.map +1 -0
  33. package/_cjs/accounts/light/privateKeyToLightSmartAccount.js +14 -0
  34. package/_cjs/accounts/light/privateKeyToLightSmartAccount.js.map +1 -0
  35. package/_cjs/accounts/light/signerToLightSmartAccount.js +256 -0
  36. package/_cjs/accounts/light/signerToLightSmartAccount.js.map +1 -0
  37. package/_cjs/accounts/safe/privateKeyToSafeSmartAccount.js +14 -0
  38. package/_cjs/accounts/safe/privateKeyToSafeSmartAccount.js.map +1 -0
  39. package/_cjs/accounts/safe/signerToSafeSmartAccount.js +1012 -0
  40. package/_cjs/accounts/safe/signerToSafeSmartAccount.js.map +1 -0
  41. package/_cjs/accounts/simple/privateKeyToSimpleSmartAccount.js +14 -0
  42. package/_cjs/accounts/simple/privateKeyToSimpleSmartAccount.js.map +1 -0
  43. package/_cjs/accounts/simple/signerToSimpleSmartAccount.js +259 -0
  44. package/_cjs/accounts/simple/signerToSimpleSmartAccount.js.map +1 -0
  45. package/_cjs/accounts/toSmartAccount.js +84 -0
  46. package/_cjs/accounts/toSmartAccount.js.map +1 -0
  47. package/_cjs/accounts/trust/privateKeyToTrustSmartAccount.js +14 -0
  48. package/_cjs/accounts/trust/privateKeyToTrustSmartAccount.js.map +1 -0
  49. package/_cjs/accounts/trust/signerToTrustSmartAccount.js +134 -0
  50. package/_cjs/accounts/trust/signerToTrustSmartAccount.js.map +1 -0
  51. package/_cjs/accounts/trust/utils/encodeCallData.js +74 -0
  52. package/_cjs/accounts/trust/utils/encodeCallData.js.map +1 -0
  53. package/_cjs/accounts/trust/utils/getAccountAddress.js +19 -0
  54. package/_cjs/accounts/trust/utils/getAccountAddress.js.map +1 -0
  55. package/_cjs/accounts/trust/utils/getDummySignature.js +8 -0
  56. package/_cjs/accounts/trust/utils/getDummySignature.js.map +1 -0
  57. package/_cjs/accounts/trust/utils/getFactoryData.js +43 -0
  58. package/_cjs/accounts/trust/utils/getFactoryData.js.map +1 -0
  59. package/_cjs/accounts/trust/utils/signMessage.js +9 -0
  60. package/_cjs/accounts/trust/utils/signMessage.js.map +1 -0
  61. package/_cjs/accounts/trust/utils/signTransaction.js +9 -0
  62. package/_cjs/accounts/trust/utils/signTransaction.js.map +1 -0
  63. package/_cjs/accounts/trust/utils/signUserOperation.js +19 -0
  64. package/_cjs/accounts/trust/utils/signUserOperation.js.map +1 -0
  65. package/_cjs/accounts/types.js +23 -0
  66. package/_cjs/accounts/types.js.map +1 -0
  67. package/_cjs/actions/bundler/chainId.js +11 -0
  68. package/_cjs/actions/bundler/chainId.js.map +1 -0
  69. package/_cjs/actions/bundler/estimateUserOperationGas.js +49 -0
  70. package/_cjs/actions/bundler/estimateUserOperationGas.js.map +1 -0
  71. package/_cjs/actions/bundler/getUserOperationByHash.js +47 -0
  72. package/_cjs/actions/bundler/getUserOperationByHash.js.map +1 -0
  73. package/_cjs/actions/bundler/getUserOperationReceipt.js +52 -0
  74. package/_cjs/actions/bundler/getUserOperationReceipt.js.map +1 -0
  75. package/_cjs/actions/bundler/sendUserOperation.js +23 -0
  76. package/_cjs/actions/bundler/sendUserOperation.js.map +1 -0
  77. package/_cjs/actions/bundler/supportedEntryPoints.js +11 -0
  78. package/_cjs/actions/bundler/supportedEntryPoints.js.map +1 -0
  79. package/_cjs/actions/bundler/waitForUserOperationReceipt.js +67 -0
  80. package/_cjs/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
  81. package/_cjs/actions/erc7579/accountId.js +66 -0
  82. package/_cjs/actions/erc7579/accountId.js.map +1 -0
  83. package/_cjs/actions/erc7579/installModule.js +65 -0
  84. package/_cjs/actions/erc7579/installModule.js.map +1 -0
  85. package/_cjs/actions/erc7579/installModules.js +65 -0
  86. package/_cjs/actions/erc7579/installModules.js.map +1 -0
  87. package/_cjs/actions/erc7579/isModuleInstalled.js +86 -0
  88. package/_cjs/actions/erc7579/isModuleInstalled.js.map +1 -0
  89. package/_cjs/actions/erc7579/supportsExecutionMode.js +95 -0
  90. package/_cjs/actions/erc7579/supportsExecutionMode.js.map +1 -0
  91. package/_cjs/actions/erc7579/supportsModule.js +84 -0
  92. package/_cjs/actions/erc7579/supportsModule.js.map +1 -0
  93. package/_cjs/actions/erc7579/uninstallModule.js +65 -0
  94. package/_cjs/actions/erc7579/uninstallModule.js.map +1 -0
  95. package/_cjs/actions/erc7579/uninstallModules.js +65 -0
  96. package/_cjs/actions/erc7579/uninstallModules.js.map +1 -0
  97. package/_cjs/actions/erc7579.js +33 -0
  98. package/_cjs/actions/erc7579.js.map +1 -0
  99. package/_cjs/actions/index.js +25 -0
  100. package/_cjs/actions/index.js.map +1 -0
  101. package/_cjs/actions/pimlico/getUserOperationGasPrice.js +25 -0
  102. package/_cjs/actions/pimlico/getUserOperationGasPrice.js.map +1 -0
  103. package/_cjs/actions/pimlico/getUserOperationStatus.js +11 -0
  104. package/_cjs/actions/pimlico/getUserOperationStatus.js.map +1 -0
  105. package/_cjs/actions/pimlico/sendCompressedUserOperation.js +16 -0
  106. package/_cjs/actions/pimlico/sendCompressedUserOperation.js.map +1 -0
  107. package/_cjs/actions/pimlico/sponsorUserOperation.js +43 -0
  108. package/_cjs/actions/pimlico/sponsorUserOperation.js.map +1 -0
  109. package/_cjs/actions/pimlico/validateSponsorshipPolicies.js +16 -0
  110. package/_cjs/actions/pimlico/validateSponsorshipPolicies.js.map +1 -0
  111. package/_cjs/actions/pimlico.js +17 -0
  112. package/_cjs/actions/pimlico.js.map +1 -0
  113. package/_cjs/actions/public/getAccountNonce.js +38 -0
  114. package/_cjs/actions/public/getAccountNonce.js.map +1 -0
  115. package/_cjs/actions/public/getSenderAddress.js +59 -0
  116. package/_cjs/actions/public/getSenderAddress.js.map +1 -0
  117. package/_cjs/actions/smartAccount/deployContract.js +38 -0
  118. package/_cjs/actions/smartAccount/deployContract.js.map +1 -0
  119. package/_cjs/actions/smartAccount/prepareUserOperationRequest.js +195 -0
  120. package/_cjs/actions/smartAccount/prepareUserOperationRequest.js.map +1 -0
  121. package/_cjs/actions/smartAccount/sendTransaction.js +43 -0
  122. package/_cjs/actions/smartAccount/sendTransaction.js.map +1 -0
  123. package/_cjs/actions/smartAccount/sendTransactions.js +45 -0
  124. package/_cjs/actions/smartAccount/sendTransactions.js.map +1 -0
  125. package/_cjs/actions/smartAccount/sendUserOperation.js +21 -0
  126. package/_cjs/actions/smartAccount/sendUserOperation.js.map +1 -0
  127. package/_cjs/actions/smartAccount/signMessage.js +16 -0
  128. package/_cjs/actions/smartAccount/signMessage.js.map +1 -0
  129. package/_cjs/actions/smartAccount/signTypedData.js +34 -0
  130. package/_cjs/actions/smartAccount/signTypedData.js.map +1 -0
  131. package/_cjs/actions/smartAccount/writeContract.js +21 -0
  132. package/_cjs/actions/smartAccount/writeContract.js.map +1 -0
  133. package/_cjs/actions/smartAccount.js +20 -0
  134. package/_cjs/actions/smartAccount.js.map +1 -0
  135. package/_cjs/actions/stackup/accounts.js +12 -0
  136. package/_cjs/actions/stackup/accounts.js.map +1 -0
  137. package/_cjs/actions/stackup/sponsorUserOperation.js +32 -0
  138. package/_cjs/actions/stackup/sponsorUserOperation.js.map +1 -0
  139. package/_cjs/actions/stackup.js +10 -0
  140. package/_cjs/actions/stackup.js.map +1 -0
  141. package/_cjs/clients/createBundlerClient.js +17 -0
  142. package/_cjs/clients/createBundlerClient.js.map +1 -0
  143. package/_cjs/clients/createSmartAccountClient.js +20 -0
  144. package/_cjs/clients/createSmartAccountClient.js.map +1 -0
  145. package/_cjs/clients/decorators/bundler.js +24 -0
  146. package/_cjs/clients/decorators/bundler.js.map +1 -0
  147. package/_cjs/clients/decorators/pimlico.js +25 -0
  148. package/_cjs/clients/decorators/pimlico.js.map +1 -0
  149. package/_cjs/clients/decorators/smartAccount.js +43 -0
  150. package/_cjs/clients/decorators/smartAccount.js.map +1 -0
  151. package/_cjs/clients/decorators/stackup.js +14 -0
  152. package/_cjs/clients/decorators/stackup.js.map +1 -0
  153. package/_cjs/clients/pimlico.js +31 -0
  154. package/_cjs/clients/pimlico.js.map +1 -0
  155. package/_cjs/clients/stackup.js +20 -0
  156. package/_cjs/clients/stackup.js.map +1 -0
  157. package/_cjs/errors/account.js +311 -0
  158. package/_cjs/errors/account.js.map +1 -0
  159. package/_cjs/errors/bundler.js +61 -0
  160. package/_cjs/errors/bundler.js.map +1 -0
  161. package/_cjs/errors/estimateUserOperationGas.js +53 -0
  162. package/_cjs/errors/estimateUserOperationGas.js.map +1 -0
  163. package/_cjs/errors/gas.js +113 -0
  164. package/_cjs/errors/gas.js.map +1 -0
  165. package/_cjs/errors/index.js +35 -0
  166. package/_cjs/errors/index.js.map +1 -0
  167. package/_cjs/errors/paymaster.js +228 -0
  168. package/_cjs/errors/paymaster.js.map +1 -0
  169. package/_cjs/errors/sendUserOperation.js +37 -0
  170. package/_cjs/errors/sendUserOperation.js.map +1 -0
  171. package/_cjs/errors/utils.js +18 -0
  172. package/_cjs/errors/utils.js.map +1 -0
  173. package/_cjs/experimental/eip7677/actions/getPaymasterData.js +41 -0
  174. package/_cjs/experimental/eip7677/actions/getPaymasterData.js.map +1 -0
  175. package/_cjs/experimental/eip7677/actions/getPaymasterStubData.js +51 -0
  176. package/_cjs/experimental/eip7677/actions/getPaymasterStubData.js.map +1 -0
  177. package/_cjs/experimental/eip7677/clients/decorators/paymasterActionsEip7677.js +21 -0
  178. package/_cjs/experimental/eip7677/clients/decorators/paymasterActionsEip7677.js.map +1 -0
  179. package/_cjs/experimental/eip7677/index.js +10 -0
  180. package/_cjs/experimental/eip7677/index.js.map +1 -0
  181. package/_cjs/experimental/eip7677/types/paymaster.js +3 -0
  182. package/_cjs/experimental/eip7677/types/paymaster.js.map +1 -0
  183. package/_cjs/experimental/index.js +5 -0
  184. package/_cjs/experimental/index.js.map +1 -0
  185. package/_cjs/index.js +37 -0
  186. package/_cjs/index.js.map +1 -0
  187. package/_cjs/package.json +1 -0
  188. package/_cjs/types/bundler.js +3 -0
  189. package/_cjs/types/bundler.js.map +1 -0
  190. package/_cjs/types/entrypoint.js +3 -0
  191. package/_cjs/types/entrypoint.js.map +1 -0
  192. package/_cjs/types/index.js +3 -0
  193. package/_cjs/types/index.js.map +1 -0
  194. package/_cjs/types/pimlico.js +3 -0
  195. package/_cjs/types/pimlico.js.map +1 -0
  196. package/_cjs/types/stackup.js +3 -0
  197. package/_cjs/types/stackup.js.map +1 -0
  198. package/_cjs/types/userOperation.js +3 -0
  199. package/_cjs/types/userOperation.js.map +1 -0
  200. package/_cjs/utils/decodeNonce.js +12 -0
  201. package/_cjs/utils/decodeNonce.js.map +1 -0
  202. package/_cjs/utils/deepHexlify.js +31 -0
  203. package/_cjs/utils/deepHexlify.js.map +1 -0
  204. package/_cjs/utils/encode7579CallData.js +81 -0
  205. package/_cjs/utils/encode7579CallData.js.map +1 -0
  206. package/_cjs/utils/encodeNonce.js +11 -0
  207. package/_cjs/utils/encodeNonce.js.map +1 -0
  208. package/_cjs/utils/errors/getBundlerError.js +124 -0
  209. package/_cjs/utils/errors/getBundlerError.js.map +1 -0
  210. package/_cjs/utils/errors/getEstimateUserOperationGasError.js +19 -0
  211. package/_cjs/utils/errors/getEstimateUserOperationGasError.js.map +1 -0
  212. package/_cjs/utils/errors/getSendUserOperationError.js +19 -0
  213. package/_cjs/utils/errors/getSendUserOperationError.js.map +1 -0
  214. package/_cjs/utils/getAddressFromInitCodeOrPaymasterAndData.js +15 -0
  215. package/_cjs/utils/getAddressFromInitCodeOrPaymasterAndData.js.map +1 -0
  216. package/_cjs/utils/getEntryPointVersion.js +16 -0
  217. package/_cjs/utils/getEntryPointVersion.js.map +1 -0
  218. package/_cjs/utils/getPackedUserOperation.js +106 -0
  219. package/_cjs/utils/getPackedUserOperation.js.map +1 -0
  220. package/_cjs/utils/getRequiredPrefund.js +27 -0
  221. package/_cjs/utils/getRequiredPrefund.js.map +1 -0
  222. package/_cjs/utils/getUserOperationHash.js +94 -0
  223. package/_cjs/utils/getUserOperationHash.js.map +1 -0
  224. package/_cjs/utils/index.js +38 -0
  225. package/_cjs/utils/index.js.map +1 -0
  226. package/_cjs/utils/isSmartAccountDeployed.js +15 -0
  227. package/_cjs/utils/isSmartAccountDeployed.js.map +1 -0
  228. package/_cjs/utils/observe.js +44 -0
  229. package/_cjs/utils/observe.js.map +1 -0
  230. package/_cjs/utils/providerToSmartAccountSigner.js +32 -0
  231. package/_cjs/utils/providerToSmartAccountSigner.js.map +1 -0
  232. package/_cjs/utils/signUserOperationHashWithECDSA.js +58 -0
  233. package/_cjs/utils/signUserOperationHashWithECDSA.js.map +1 -0
  234. package/_cjs/utils/walletClientToSmartAccountSigner.js +23 -0
  235. package/_cjs/utils/walletClientToSmartAccountSigner.js.map +1 -0
  236. package/_cjs/vitest.config.js +31 -0
  237. package/_cjs/vitest.config.js.map +1 -0
  238. package/_esm/accounts/biconomy/abi/BiconomySmartAccountAbi.js +105 -0
  239. package/_esm/accounts/biconomy/abi/BiconomySmartAccountAbi.js.map +1 -0
  240. package/_esm/accounts/biconomy/privateKeyToBiconomySmartAccount.js +15 -0
  241. package/_esm/accounts/biconomy/privateKeyToBiconomySmartAccount.js.map +1 -0
  242. package/_esm/accounts/biconomy/signerToBiconomySmartAccount.js +268 -0
  243. package/_esm/accounts/biconomy/signerToBiconomySmartAccount.js.map +1 -0
  244. package/_esm/accounts/index.js +15 -0
  245. package/_esm/accounts/index.js.map +1 -0
  246. package/_esm/accounts/kernel/abi/KernelAccountAbi.js +87 -0
  247. package/_esm/accounts/kernel/abi/KernelAccountAbi.js.map +1 -0
  248. package/_esm/accounts/kernel/abi/KernelV3AccountAbi.js +107 -0
  249. package/_esm/accounts/kernel/abi/KernelV3AccountAbi.js.map +1 -0
  250. package/_esm/accounts/kernel/abi/KernelV3MetaFactoryAbi.js +18 -0
  251. package/_esm/accounts/kernel/abi/KernelV3MetaFactoryAbi.js.map +1 -0
  252. package/_esm/accounts/kernel/constants.js +24 -0
  253. package/_esm/accounts/kernel/constants.js.map +1 -0
  254. package/_esm/accounts/kernel/signerToEcdsaKernelSmartAccount.js +395 -0
  255. package/_esm/accounts/kernel/signerToEcdsaKernelSmartAccount.js.map +1 -0
  256. package/_esm/accounts/kernel/utils/encodeCallData.js +89 -0
  257. package/_esm/accounts/kernel/utils/encodeCallData.js.map +1 -0
  258. package/_esm/accounts/kernel/utils/getExecMode.js +11 -0
  259. package/_esm/accounts/kernel/utils/getExecMode.js.map +1 -0
  260. package/_esm/accounts/kernel/utils/getNonceKey.js +21 -0
  261. package/_esm/accounts/kernel/utils/getNonceKey.js.map +1 -0
  262. package/_esm/accounts/kernel/utils/isKernelV2.js +5 -0
  263. package/_esm/accounts/kernel/utils/isKernelV2.js.map +1 -0
  264. package/_esm/accounts/kernel/utils/signMessage.js +25 -0
  265. package/_esm/accounts/kernel/utils/signMessage.js.map +1 -0
  266. package/_esm/accounts/kernel/utils/signTypedData.js +39 -0
  267. package/_esm/accounts/kernel/utils/signTypedData.js.map +1 -0
  268. package/_esm/accounts/kernel/utils/wrapMessageHash.js +16 -0
  269. package/_esm/accounts/kernel/utils/wrapMessageHash.js.map +1 -0
  270. package/_esm/accounts/light/privateKeyToLightSmartAccount.js +15 -0
  271. package/_esm/accounts/light/privateKeyToLightSmartAccount.js.map +1 -0
  272. package/_esm/accounts/light/signerToLightSmartAccount.js +258 -0
  273. package/_esm/accounts/light/signerToLightSmartAccount.js.map +1 -0
  274. package/_esm/accounts/safe/privateKeyToSafeSmartAccount.js +15 -0
  275. package/_esm/accounts/safe/privateKeyToSafeSmartAccount.js.map +1 -0
  276. package/_esm/accounts/safe/signerToSafeSmartAccount.js +1014 -0
  277. package/_esm/accounts/safe/signerToSafeSmartAccount.js.map +1 -0
  278. package/_esm/accounts/simple/privateKeyToSimpleSmartAccount.js +15 -0
  279. package/_esm/accounts/simple/privateKeyToSimpleSmartAccount.js.map +1 -0
  280. package/_esm/accounts/simple/signerToSimpleSmartAccount.js +261 -0
  281. package/_esm/accounts/simple/signerToSimpleSmartAccount.js.map +1 -0
  282. package/_esm/accounts/toSmartAccount.js +80 -0
  283. package/_esm/accounts/toSmartAccount.js.map +1 -0
  284. package/_esm/accounts/trust/privateKeyToTrustSmartAccount.js +15 -0
  285. package/_esm/accounts/trust/privateKeyToTrustSmartAccount.js.map +1 -0
  286. package/_esm/accounts/trust/signerToTrustSmartAccount.js +138 -0
  287. package/_esm/accounts/trust/signerToTrustSmartAccount.js.map +1 -0
  288. package/_esm/accounts/trust/utils/encodeCallData.js +70 -0
  289. package/_esm/accounts/trust/utils/encodeCallData.js.map +1 -0
  290. package/_esm/accounts/trust/utils/getAccountAddress.js +15 -0
  291. package/_esm/accounts/trust/utils/getAccountAddress.js.map +1 -0
  292. package/_esm/accounts/trust/utils/getDummySignature.js +4 -0
  293. package/_esm/accounts/trust/utils/getDummySignature.js.map +1 -0
  294. package/_esm/accounts/trust/utils/getFactoryData.js +42 -0
  295. package/_esm/accounts/trust/utils/getFactoryData.js.map +1 -0
  296. package/_esm/accounts/trust/utils/signMessage.js +5 -0
  297. package/_esm/accounts/trust/utils/signMessage.js.map +1 -0
  298. package/_esm/accounts/trust/utils/signTransaction.js +5 -0
  299. package/_esm/accounts/trust/utils/signTransaction.js.map +1 -0
  300. package/_esm/accounts/trust/utils/signUserOperation.js +15 -0
  301. package/_esm/accounts/trust/utils/signUserOperation.js.map +1 -0
  302. package/_esm/accounts/types.js +19 -0
  303. package/_esm/accounts/types.js.map +1 -0
  304. package/_esm/actions/bundler/chainId.js +29 -0
  305. package/_esm/actions/bundler/chainId.js.map +1 -0
  306. package/_esm/actions/bundler/estimateUserOperationGas.js +72 -0
  307. package/_esm/actions/bundler/estimateUserOperationGas.js.map +1 -0
  308. package/_esm/actions/bundler/getUserOperationByHash.js +65 -0
  309. package/_esm/actions/bundler/getUserOperationByHash.js.map +1 -0
  310. package/_esm/actions/bundler/getUserOperationReceipt.js +70 -0
  311. package/_esm/actions/bundler/getUserOperationReceipt.js.map +1 -0
  312. package/_esm/actions/bundler/sendUserOperation.js +44 -0
  313. package/_esm/actions/bundler/sendUserOperation.js.map +1 -0
  314. package/_esm/actions/bundler/supportedEntryPoints.js +29 -0
  315. package/_esm/actions/bundler/supportedEntryPoints.js.map +1 -0
  316. package/_esm/actions/bundler/waitForUserOperationReceipt.js +83 -0
  317. package/_esm/actions/bundler/waitForUserOperationReceipt.js.map +1 -0
  318. package/_esm/actions/erc7579/accountId.js +62 -0
  319. package/_esm/actions/erc7579/accountId.js.map +1 -0
  320. package/_esm/actions/erc7579/installModule.js +61 -0
  321. package/_esm/actions/erc7579/installModule.js.map +1 -0
  322. package/_esm/actions/erc7579/installModules.js +61 -0
  323. package/_esm/actions/erc7579/installModules.js.map +1 -0
  324. package/_esm/actions/erc7579/isModuleInstalled.js +82 -0
  325. package/_esm/actions/erc7579/isModuleInstalled.js.map +1 -0
  326. package/_esm/actions/erc7579/supportsExecutionMode.js +90 -0
  327. package/_esm/actions/erc7579/supportsExecutionMode.js.map +1 -0
  328. package/_esm/actions/erc7579/supportsModule.js +79 -0
  329. package/_esm/actions/erc7579/supportsModule.js.map +1 -0
  330. package/_esm/actions/erc7579/uninstallModule.js +61 -0
  331. package/_esm/actions/erc7579/uninstallModule.js.map +1 -0
  332. package/_esm/actions/erc7579/uninstallModules.js +61 -0
  333. package/_esm/actions/erc7579/uninstallModules.js.map +1 -0
  334. package/_esm/actions/erc7579.js +22 -0
  335. package/_esm/actions/erc7579.js.map +1 -0
  336. package/_esm/actions/index.js +12 -0
  337. package/_esm/actions/index.js.map +1 -0
  338. package/_esm/actions/pimlico/getUserOperationGasPrice.js +42 -0
  339. package/_esm/actions/pimlico/getUserOperationGasPrice.js.map +1 -0
  340. package/_esm/actions/pimlico/getUserOperationStatus.js +30 -0
  341. package/_esm/actions/pimlico/getUserOperationStatus.js.map +1 -0
  342. package/_esm/actions/pimlico/sendCompressedUserOperation.js +37 -0
  343. package/_esm/actions/pimlico/sendCompressedUserOperation.js.map +1 -0
  344. package/_esm/actions/pimlico/sponsorUserOperation.js +64 -0
  345. package/_esm/actions/pimlico/sponsorUserOperation.js.map +1 -0
  346. package/_esm/actions/pimlico/validateSponsorshipPolicies.js +47 -0
  347. package/_esm/actions/pimlico/validateSponsorshipPolicies.js.map +1 -0
  348. package/_esm/actions/pimlico.js +8 -0
  349. package/_esm/actions/pimlico.js.map +1 -0
  350. package/_esm/actions/public/getAccountNonce.js +60 -0
  351. package/_esm/actions/public/getAccountNonce.js.map +1 -0
  352. package/_esm/actions/public/getSenderAddress.js +80 -0
  353. package/_esm/actions/public/getSenderAddress.js.map +1 -0
  354. package/_esm/actions/smartAccount/deployContract.js +62 -0
  355. package/_esm/actions/smartAccount/deployContract.js.map +1 -0
  356. package/_esm/actions/smartAccount/prepareUserOperationRequest.js +195 -0
  357. package/_esm/actions/smartAccount/prepareUserOperationRequest.js.map +1 -0
  358. package/_esm/actions/smartAccount/sendTransaction.js +85 -0
  359. package/_esm/actions/smartAccount/sendTransaction.js.map +1 -0
  360. package/_esm/actions/smartAccount/sendTransactions.js +87 -0
  361. package/_esm/actions/smartAccount/sendTransactions.js.map +1 -0
  362. package/_esm/actions/smartAccount/sendUserOperation.js +17 -0
  363. package/_esm/actions/smartAccount/sendUserOperation.js.map +1 -0
  364. package/_esm/actions/smartAccount/signMessage.js +58 -0
  365. package/_esm/actions/smartAccount/signMessage.js.map +1 -0
  366. package/_esm/actions/smartAccount/signTypedData.js +128 -0
  367. package/_esm/actions/smartAccount/signTypedData.js.map +1 -0
  368. package/_esm/actions/smartAccount/writeContract.js +17 -0
  369. package/_esm/actions/smartAccount/writeContract.js.map +1 -0
  370. package/_esm/actions/smartAccount.js +10 -0
  371. package/_esm/actions/smartAccount.js.map +1 -0
  372. package/_esm/actions/stackup/accounts.js +30 -0
  373. package/_esm/actions/stackup/accounts.js.map +1 -0
  374. package/_esm/actions/stackup/sponsorUserOperation.js +53 -0
  375. package/_esm/actions/stackup/sponsorUserOperation.js.map +1 -0
  376. package/_esm/actions/stackup.js +5 -0
  377. package/_esm/actions/stackup.js.map +1 -0
  378. package/_esm/clients/createBundlerClient.js +32 -0
  379. package/_esm/clients/createBundlerClient.js.map +1 -0
  380. package/_esm/clients/createSmartAccountClient.js +35 -0
  381. package/_esm/clients/createSmartAccountClient.js.map +1 -0
  382. package/_esm/clients/decorators/bundler.js +21 -0
  383. package/_esm/clients/decorators/bundler.js.map +1 -0
  384. package/_esm/clients/decorators/pimlico.js +64 -0
  385. package/_esm/clients/decorators/pimlico.js.map +1 -0
  386. package/_esm/clients/decorators/smartAccount.js +39 -0
  387. package/_esm/clients/decorators/smartAccount.js.map +1 -0
  388. package/_esm/clients/decorators/stackup.js +10 -0
  389. package/_esm/clients/decorators/stackup.js.map +1 -0
  390. package/_esm/clients/pimlico.js +64 -0
  391. package/_esm/clients/pimlico.js.map +1 -0
  392. package/_esm/clients/stackup.js +35 -0
  393. package/_esm/clients/stackup.js.map +1 -0
  394. package/_esm/errors/account.js +298 -0
  395. package/_esm/errors/account.js.map +1 -0
  396. package/_esm/errors/bundler.js +56 -0
  397. package/_esm/errors/bundler.js.map +1 -0
  398. package/_esm/errors/estimateUserOperationGas.js +49 -0
  399. package/_esm/errors/estimateUserOperationGas.js.map +1 -0
  400. package/_esm/errors/gas.js +106 -0
  401. package/_esm/errors/gas.js.map +1 -0
  402. package/_esm/errors/index.js +8 -0
  403. package/_esm/errors/index.js.map +1 -0
  404. package/_esm/errors/paymaster.js +218 -0
  405. package/_esm/errors/paymaster.js.map +1 -0
  406. package/_esm/errors/sendUserOperation.js +33 -0
  407. package/_esm/errors/sendUserOperation.js.map +1 -0
  408. package/_esm/errors/utils.js +14 -0
  409. package/_esm/errors/utils.js.map +1 -0
  410. package/_esm/experimental/eip7677/actions/getPaymasterData.js +37 -0
  411. package/_esm/experimental/eip7677/actions/getPaymasterData.js.map +1 -0
  412. package/_esm/experimental/eip7677/actions/getPaymasterStubData.js +47 -0
  413. package/_esm/experimental/eip7677/actions/getPaymasterStubData.js.map +1 -0
  414. package/_esm/experimental/eip7677/clients/decorators/paymasterActionsEip7677.js +18 -0
  415. package/_esm/experimental/eip7677/clients/decorators/paymasterActionsEip7677.js.map +1 -0
  416. package/_esm/experimental/eip7677/index.js +5 -0
  417. package/_esm/experimental/eip7677/index.js.map +1 -0
  418. package/_esm/experimental/eip7677/types/paymaster.js +2 -0
  419. package/_esm/experimental/eip7677/types/paymaster.js.map +1 -0
  420. package/_esm/experimental/index.js +2 -0
  421. package/_esm/experimental/index.js.map +1 -0
  422. package/_esm/index.js +20 -0
  423. package/_esm/index.js.map +1 -0
  424. package/_esm/package.json +1 -0
  425. package/_esm/types/bundler.js +2 -0
  426. package/_esm/types/bundler.js.map +1 -0
  427. package/_esm/types/entrypoint.js +2 -0
  428. package/_esm/types/entrypoint.js.map +1 -0
  429. package/_esm/types/index.js +2 -0
  430. package/_esm/types/index.js.map +1 -0
  431. package/_esm/types/pimlico.js +2 -0
  432. package/_esm/types/pimlico.js.map +1 -0
  433. package/_esm/types/stackup.js +2 -0
  434. package/_esm/types/stackup.js.map +1 -0
  435. package/_esm/types/userOperation.js +2 -0
  436. package/_esm/types/userOperation.js.map +1 -0
  437. package/_esm/utils/decodeNonce.js +8 -0
  438. package/_esm/utils/decodeNonce.js.map +1 -0
  439. package/_esm/utils/deepHexlify.js +30 -0
  440. package/_esm/utils/deepHexlify.js.map +1 -0
  441. package/_esm/utils/encode7579CallData.js +77 -0
  442. package/_esm/utils/encode7579CallData.js.map +1 -0
  443. package/_esm/utils/encodeNonce.js +7 -0
  444. package/_esm/utils/encodeNonce.js.map +1 -0
  445. package/_esm/utils/errors/getBundlerError.js +121 -0
  446. package/_esm/utils/errors/getBundlerError.js.map +1 -0
  447. package/_esm/utils/errors/getEstimateUserOperationGasError.js +18 -0
  448. package/_esm/utils/errors/getEstimateUserOperationGasError.js.map +1 -0
  449. package/_esm/utils/errors/getSendUserOperationError.js +15 -0
  450. package/_esm/utils/errors/getSendUserOperationError.js.map +1 -0
  451. package/_esm/utils/getAddressFromInitCodeOrPaymasterAndData.js +11 -0
  452. package/_esm/utils/getAddressFromInitCodeOrPaymasterAndData.js.map +1 -0
  453. package/_esm/utils/getEntryPointVersion.js +11 -0
  454. package/_esm/utils/getEntryPointVersion.js.map +1 -0
  455. package/_esm/utils/getPackedUserOperation.js +94 -0
  456. package/_esm/utils/getPackedUserOperation.js.map +1 -0
  457. package/_esm/utils/getRequiredPrefund.js +37 -0
  458. package/_esm/utils/getRequiredPrefund.js.map +1 -0
  459. package/_esm/utils/getUserOperationHash.js +111 -0
  460. package/_esm/utils/getUserOperationHash.js.map +1 -0
  461. package/_esm/utils/index.js +19 -0
  462. package/_esm/utils/index.js.map +1 -0
  463. package/_esm/utils/isSmartAccountDeployed.js +11 -0
  464. package/_esm/utils/isSmartAccountDeployed.js.map +1 -0
  465. package/_esm/utils/observe.js +47 -0
  466. package/_esm/utils/observe.js.map +1 -0
  467. package/_esm/utils/providerToSmartAccountSigner.js +28 -0
  468. package/_esm/utils/providerToSmartAccountSigner.js.map +1 -0
  469. package/_esm/utils/signUserOperationHashWithECDSA.js +76 -0
  470. package/_esm/utils/signUserOperationHashWithECDSA.js.map +1 -0
  471. package/_esm/utils/walletClientToSmartAccountSigner.js +19 -0
  472. package/_esm/utils/walletClientToSmartAccountSigner.js.map +1 -0
  473. package/_esm/vitest.config.js +29 -0
  474. package/_esm/vitest.config.js.map +1 -0
  475. package/_types/accounts/biconomy/abi/BiconomySmartAccountAbi.d.ts +59 -0
  476. package/_types/accounts/biconomy/abi/BiconomySmartAccountAbi.d.ts.map +1 -0
  477. package/_types/accounts/biconomy/privateKeyToBiconomySmartAccount.d.ts +13 -0
  478. package/_types/accounts/biconomy/privateKeyToBiconomySmartAccount.d.ts.map +1 -0
  479. package/_types/accounts/biconomy/signerToBiconomySmartAccount.d.ts +29 -0
  480. package/_types/accounts/biconomy/signerToBiconomySmartAccount.d.ts.map +1 -0
  481. package/_types/accounts/index.d.ts +15 -0
  482. package/_types/accounts/index.d.ts.map +1 -0
  483. package/_types/accounts/kernel/abi/KernelAccountAbi.d.ts +68 -0
  484. package/_types/accounts/kernel/abi/KernelAccountAbi.d.ts.map +1 -0
  485. package/_types/accounts/kernel/abi/KernelV3AccountAbi.d.ts +135 -0
  486. package/_types/accounts/kernel/abi/KernelV3AccountAbi.d.ts.map +1 -0
  487. package/_types/accounts/kernel/abi/KernelV3MetaFactoryAbi.d.ts +24 -0
  488. package/_types/accounts/kernel/abi/KernelV3MetaFactoryAbi.d.ts.map +1 -0
  489. package/_types/accounts/kernel/constants.d.ts +21 -0
  490. package/_types/accounts/kernel/constants.d.ts.map +1 -0
  491. package/_types/accounts/kernel/signerToEcdsaKernelSmartAccount.d.ts +44 -0
  492. package/_types/accounts/kernel/signerToEcdsaKernelSmartAccount.d.ts.map +1 -0
  493. package/_types/accounts/kernel/utils/encodeCallData.d.ts +13 -0
  494. package/_types/accounts/kernel/utils/encodeCallData.d.ts.map +1 -0
  495. package/_types/accounts/kernel/utils/getExecMode.d.ts +7 -0
  496. package/_types/accounts/kernel/utils/getExecMode.d.ts.map +1 -0
  497. package/_types/accounts/kernel/utils/getNonceKey.d.ts +5 -0
  498. package/_types/accounts/kernel/utils/getNonceKey.d.ts.map +1 -0
  499. package/_types/accounts/kernel/utils/isKernelV2.d.ts +4 -0
  500. package/_types/accounts/kernel/utils/isKernelV2.d.ts.map +1 -0
  501. package/_types/accounts/kernel/utils/signMessage.d.ts +4 -0
  502. package/_types/accounts/kernel/utils/signMessage.d.ts.map +1 -0
  503. package/_types/accounts/kernel/utils/signTypedData.d.ts +4 -0
  504. package/_types/accounts/kernel/utils/signTypedData.d.ts.map +1 -0
  505. package/_types/accounts/kernel/utils/wrapMessageHash.d.ts +11 -0
  506. package/_types/accounts/kernel/utils/wrapMessageHash.d.ts.map +1 -0
  507. package/_types/accounts/light/privateKeyToLightSmartAccount.d.ts +14 -0
  508. package/_types/accounts/light/privateKeyToLightSmartAccount.d.ts.map +1 -0
  509. package/_types/accounts/light/signerToLightSmartAccount.d.ts +22 -0
  510. package/_types/accounts/light/signerToLightSmartAccount.d.ts.map +1 -0
  511. package/_types/accounts/safe/privateKeyToSafeSmartAccount.d.ts +13 -0
  512. package/_types/accounts/safe/privateKeyToSafeSmartAccount.d.ts.map +1 -0
  513. package/_types/accounts/safe/signerToSafeSmartAccount.d.ts +61 -0
  514. package/_types/accounts/safe/signerToSafeSmartAccount.d.ts.map +1 -0
  515. package/_types/accounts/simple/privateKeyToSimpleSmartAccount.d.ts +13 -0
  516. package/_types/accounts/simple/privateKeyToSimpleSmartAccount.d.ts.map +1 -0
  517. package/_types/accounts/simple/signerToSimpleSmartAccount.d.ts +20 -0
  518. package/_types/accounts/simple/signerToSimpleSmartAccount.d.ts.map +1 -0
  519. package/_types/accounts/toSmartAccount.d.ts +26 -0
  520. package/_types/accounts/toSmartAccount.d.ts.map +1 -0
  521. package/_types/accounts/trust/privateKeyToTrustSmartAccount.d.ts +13 -0
  522. package/_types/accounts/trust/privateKeyToTrustSmartAccount.d.ts.map +1 -0
  523. package/_types/accounts/trust/signerToTrustSmartAccount.d.ts +27 -0
  524. package/_types/accounts/trust/signerToTrustSmartAccount.d.ts.map +1 -0
  525. package/_types/accounts/trust/utils/encodeCallData.d.ts +12 -0
  526. package/_types/accounts/trust/utils/encodeCallData.d.ts.map +1 -0
  527. package/_types/accounts/trust/utils/getAccountAddress.d.ts +10 -0
  528. package/_types/accounts/trust/utils/getAccountAddress.d.ts.map +1 -0
  529. package/_types/accounts/trust/utils/getDummySignature.d.ts +3 -0
  530. package/_types/accounts/trust/utils/getDummySignature.d.ts.map +1 -0
  531. package/_types/accounts/trust/utils/getFactoryData.d.ts +10 -0
  532. package/_types/accounts/trust/utils/getFactoryData.d.ts.map +1 -0
  533. package/_types/accounts/trust/utils/signMessage.d.ts +4 -0
  534. package/_types/accounts/trust/utils/signMessage.d.ts.map +1 -0
  535. package/_types/accounts/trust/utils/signTransaction.d.ts +5 -0
  536. package/_types/accounts/trust/utils/signTransaction.d.ts.map +1 -0
  537. package/_types/accounts/trust/utils/signUserOperation.d.ts +9 -0
  538. package/_types/accounts/trust/utils/signUserOperation.d.ts.map +1 -0
  539. package/_types/accounts/types.d.ts +32 -0
  540. package/_types/accounts/types.d.ts.map +1 -0
  541. package/_types/actions/bundler/chainId.d.ts +27 -0
  542. package/_types/actions/bundler/chainId.d.ts.map +1 -0
  543. package/_types/actions/bundler/estimateUserOperationGas.d.ts +91 -0
  544. package/_types/actions/bundler/estimateUserOperationGas.d.ts.map +1 -0
  545. package/_types/actions/bundler/getUserOperationByHash.d.ts +39 -0
  546. package/_types/actions/bundler/getUserOperationByHash.d.ts.map +1 -0
  547. package/_types/actions/bundler/getUserOperationReceipt.d.ts +58 -0
  548. package/_types/actions/bundler/getUserOperationReceipt.d.ts.map +1 -0
  549. package/_types/actions/bundler/sendUserOperation.d.ts +39 -0
  550. package/_types/actions/bundler/sendUserOperation.d.ts.map +1 -0
  551. package/_types/actions/bundler/supportedEntryPoints.d.ts +27 -0
  552. package/_types/actions/bundler/supportedEntryPoints.d.ts.map +1 -0
  553. package/_types/actions/bundler/waitForUserOperationReceipt.d.ts +43 -0
  554. package/_types/actions/bundler/waitForUserOperationReceipt.d.ts.map +1 -0
  555. package/_types/actions/erc7579/accountId.d.ts +6 -0
  556. package/_types/actions/erc7579/accountId.d.ts.map +1 -0
  557. package/_types/actions/erc7579/installModule.d.ts +16 -0
  558. package/_types/actions/erc7579/installModule.d.ts.map +1 -0
  559. package/_types/actions/erc7579/installModules.d.ts +18 -0
  560. package/_types/actions/erc7579/installModules.d.ts.map +1 -0
  561. package/_types/actions/erc7579/isModuleInstalled.d.ts +12 -0
  562. package/_types/actions/erc7579/isModuleInstalled.d.ts.map +1 -0
  563. package/_types/actions/erc7579/supportsExecutionMode.d.ts +15 -0
  564. package/_types/actions/erc7579/supportsExecutionMode.d.ts.map +1 -0
  565. package/_types/actions/erc7579/supportsModule.d.ts +11 -0
  566. package/_types/actions/erc7579/supportsModule.d.ts.map +1 -0
  567. package/_types/actions/erc7579/uninstallModule.d.ts +16 -0
  568. package/_types/actions/erc7579/uninstallModule.d.ts.map +1 -0
  569. package/_types/actions/erc7579/uninstallModules.d.ts +20 -0
  570. package/_types/actions/erc7579/uninstallModules.d.ts.map +1 -0
  571. package/_types/actions/erc7579.d.ts +30 -0
  572. package/_types/actions/erc7579.d.ts.map +1 -0
  573. package/_types/actions/index.d.ts +20 -0
  574. package/_types/actions/index.d.ts.map +1 -0
  575. package/_types/actions/pimlico/getUserOperationGasPrice.d.ts +40 -0
  576. package/_types/actions/pimlico/getUserOperationGasPrice.d.ts.map +1 -0
  577. package/_types/actions/pimlico/getUserOperationStatus.d.ts +32 -0
  578. package/_types/actions/pimlico/getUserOperationStatus.d.ts.map +1 -0
  579. package/_types/actions/pimlico/sendCompressedUserOperation.d.ts +35 -0
  580. package/_types/actions/pimlico/sendCompressedUserOperation.d.ts.map +1 -0
  581. package/_types/actions/pimlico/sponsorUserOperation.d.ts +52 -0
  582. package/_types/actions/pimlico/sponsorUserOperation.d.ts.map +1 -0
  583. package/_types/actions/pimlico/validateSponsorshipPolicies.d.ts +56 -0
  584. package/_types/actions/pimlico/validateSponsorshipPolicies.d.ts.map +1 -0
  585. package/_types/actions/pimlico.d.ts +10 -0
  586. package/_types/actions/pimlico.d.ts.map +1 -0
  587. package/_types/actions/public/getAccountNonce.d.ts +36 -0
  588. package/_types/actions/public/getAccountNonce.d.ts.map +1 -0
  589. package/_types/actions/public/getSenderAddress.d.ts +48 -0
  590. package/_types/actions/public/getSenderAddress.d.ts.map +1 -0
  591. package/_types/actions/smartAccount/deployContract.d.ts +36 -0
  592. package/_types/actions/smartAccount/deployContract.d.ts.map +1 -0
  593. package/_types/actions/smartAccount/prepareUserOperationRequest.d.ts +28 -0
  594. package/_types/actions/smartAccount/prepareUserOperationRequest.d.ts.map +1 -0
  595. package/_types/actions/smartAccount/sendTransaction.d.ts +54 -0
  596. package/_types/actions/smartAccount/sendTransaction.d.ts.map +1 -0
  597. package/_types/actions/smartAccount/sendTransactions.d.ts +64 -0
  598. package/_types/actions/smartAccount/sendTransactions.d.ts.map +1 -0
  599. package/_types/actions/smartAccount/sendUserOperation.d.ts +10 -0
  600. package/_types/actions/smartAccount/sendUserOperation.d.ts.map +1 -0
  601. package/_types/actions/smartAccount/signMessage.d.ts +51 -0
  602. package/_types/actions/smartAccount/signMessage.d.ts.map +1 -0
  603. package/_types/actions/smartAccount/signTypedData.d.ts +105 -0
  604. package/_types/actions/smartAccount/signTypedData.d.ts.map +1 -0
  605. package/_types/actions/smartAccount/writeContract.d.ts +58 -0
  606. package/_types/actions/smartAccount/writeContract.d.ts.map +1 -0
  607. package/_types/actions/smartAccount.d.ts +10 -0
  608. package/_types/actions/smartAccount.d.ts.map +1 -0
  609. package/_types/actions/stackup/accounts.d.ts +30 -0
  610. package/_types/actions/stackup/accounts.d.ts.map +1 -0
  611. package/_types/actions/stackup/sponsorUserOperation.d.ts +38 -0
  612. package/_types/actions/stackup/sponsorUserOperation.d.ts.map +1 -0
  613. package/_types/actions/stackup.d.ts +7 -0
  614. package/_types/actions/stackup.d.ts.map +1 -0
  615. package/_types/clients/createBundlerClient.d.ts +28 -0
  616. package/_types/clients/createBundlerClient.d.ts.map +1 -0
  617. package/_types/clients/createSmartAccountClient.d.ts +40 -0
  618. package/_types/clients/createSmartAccountClient.d.ts.map +1 -0
  619. package/_types/clients/decorators/bundler.d.ts +175 -0
  620. package/_types/clients/decorators/bundler.d.ts.map +1 -0
  621. package/_types/clients/decorators/pimlico.d.ts +142 -0
  622. package/_types/clients/decorators/pimlico.d.ts.map +1 -0
  623. package/_types/clients/decorators/smartAccount.d.ts +330 -0
  624. package/_types/clients/decorators/smartAccount.d.ts.map +1 -0
  625. package/_types/clients/decorators/stackup.d.ts +55 -0
  626. package/_types/clients/decorators/stackup.d.ts.map +1 -0
  627. package/_types/clients/pimlico.d.ts +52 -0
  628. package/_types/clients/pimlico.d.ts.map +1 -0
  629. package/_types/clients/stackup.d.ts +29 -0
  630. package/_types/clients/stackup.d.ts.map +1 -0
  631. package/_types/errors/account.d.ts +121 -0
  632. package/_types/errors/account.d.ts.map +1 -0
  633. package/_types/errors/bundler.d.ts +24 -0
  634. package/_types/errors/bundler.d.ts.map +1 -0
  635. package/_types/errors/estimateUserOperationGas.d.ts +14 -0
  636. package/_types/errors/estimateUserOperationGas.d.ts.map +1 -0
  637. package/_types/errors/gas.d.ts +47 -0
  638. package/_types/errors/gas.d.ts.map +1 -0
  639. package/_types/errors/index.d.ts +8 -0
  640. package/_types/errors/index.d.ts.map +1 -0
  641. package/_types/errors/paymaster.d.ts +85 -0
  642. package/_types/errors/paymaster.d.ts.map +1 -0
  643. package/_types/errors/sendUserOperation.d.ts +14 -0
  644. package/_types/errors/sendUserOperation.d.ts.map +1 -0
  645. package/_types/errors/utils.d.ts +5 -0
  646. package/_types/errors/utils.d.ts.map +1 -0
  647. package/_types/experimental/eip7677/actions/getPaymasterData.d.ts +51 -0
  648. package/_types/experimental/eip7677/actions/getPaymasterData.d.ts.map +1 -0
  649. package/_types/experimental/eip7677/actions/getPaymasterStubData.d.ts +63 -0
  650. package/_types/experimental/eip7677/actions/getPaymasterStubData.d.ts.map +1 -0
  651. package/_types/experimental/eip7677/clients/decorators/paymasterActionsEip7677.d.ts +11 -0
  652. package/_types/experimental/eip7677/clients/decorators/paymasterActionsEip7677.d.ts.map +1 -0
  653. package/_types/experimental/eip7677/index.d.ts +6 -0
  654. package/_types/experimental/eip7677/index.d.ts.map +1 -0
  655. package/_types/experimental/eip7677/types/paymaster.d.ts +52 -0
  656. package/_types/experimental/eip7677/types/paymaster.d.ts.map +1 -0
  657. package/_types/experimental/index.d.ts +2 -0
  658. package/_types/experimental/index.d.ts.map +1 -0
  659. package/_types/index.d.ts +33 -0
  660. package/_types/index.d.ts.map +1 -0
  661. package/_types/types/bundler.d.ts +110 -0
  662. package/_types/types/bundler.d.ts.map +1 -0
  663. package/_types/types/entrypoint.d.ts +6 -0
  664. package/_types/types/entrypoint.d.ts.map +1 -0
  665. package/_types/types/index.d.ts +27 -0
  666. package/_types/types/index.d.ts.map +1 -0
  667. package/_types/types/pimlico.d.ts +93 -0
  668. package/_types/types/pimlico.d.ts.map +1 -0
  669. package/_types/types/stackup.d.ts +49 -0
  670. package/_types/types/stackup.d.ts.map +1 -0
  671. package/_types/types/userOperation.d.ts +93 -0
  672. package/_types/types/userOperation.d.ts.map +1 -0
  673. package/_types/utils/decodeNonce.d.ts +5 -0
  674. package/_types/utils/decodeNonce.d.ts.map +1 -0
  675. package/_types/utils/deepHexlify.d.ts +6 -0
  676. package/_types/utils/deepHexlify.d.ts.map +1 -0
  677. package/_types/utils/encode7579CallData.d.ts +16 -0
  678. package/_types/utils/encode7579CallData.d.ts.map +1 -0
  679. package/_types/utils/encodeNonce.d.ts +5 -0
  680. package/_types/utils/encodeNonce.d.ts.map +1 -0
  681. package/_types/utils/errors/getBundlerError.d.ts +11 -0
  682. package/_types/utils/errors/getBundlerError.d.ts.map +1 -0
  683. package/_types/utils/errors/getEstimateUserOperationGasError.d.ts +10 -0
  684. package/_types/utils/errors/getEstimateUserOperationGasError.d.ts.map +1 -0
  685. package/_types/utils/errors/getSendUserOperationError.d.ts +5 -0
  686. package/_types/utils/errors/getSendUserOperationError.d.ts.map +1 -0
  687. package/_types/utils/getAddressFromInitCodeOrPaymasterAndData.d.ts +3 -0
  688. package/_types/utils/getAddressFromInitCodeOrPaymasterAndData.d.ts.map +1 -0
  689. package/_types/utils/getEntryPointVersion.d.ts +8 -0
  690. package/_types/utils/getEntryPointVersion.d.ts.map +1 -0
  691. package/_types/utils/getPackedUserOperation.d.ts +39 -0
  692. package/_types/utils/getPackedUserOperation.d.ts.map +1 -0
  693. package/_types/utils/getRequiredPrefund.d.ts +21 -0
  694. package/_types/utils/getRequiredPrefund.d.ts.map +1 -0
  695. package/_types/utils/getUserOperationHash.d.ts +31 -0
  696. package/_types/utils/getUserOperationHash.d.ts.map +1 -0
  697. package/_types/utils/index.d.ts +16 -0
  698. package/_types/utils/index.d.ts.map +1 -0
  699. package/_types/utils/isSmartAccountDeployed.d.ts +3 -0
  700. package/_types/utils/isSmartAccountDeployed.d.ts.map +1 -0
  701. package/_types/utils/observe.d.ts +17 -0
  702. package/_types/utils/observe.d.ts.map +1 -0
  703. package/_types/utils/providerToSmartAccountSigner.d.ts +5 -0
  704. package/_types/utils/providerToSmartAccountSigner.d.ts.map +1 -0
  705. package/_types/utils/signUserOperationHashWithECDSA.d.ts +45 -0
  706. package/_types/utils/signUserOperationHashWithECDSA.d.ts.map +1 -0
  707. package/_types/utils/walletClientToSmartAccountSigner.d.ts +4 -0
  708. package/_types/utils/walletClientToSmartAccountSigner.d.ts.map +1 -0
  709. package/_types/vitest.config.d.ts +3 -0
  710. package/_types/vitest.config.d.ts.map +1 -0
  711. package/package.json +1 -1
@@ -0,0 +1,1014 @@
1
+ import { concat, concatHex, encodeAbiParameters, encodeFunctionData, encodePacked, getContractAddress, hashMessage, hashTypedData, hexToBigInt, keccak256, pad, toBytes, toHex, zeroAddress } from "viem";
2
+ import { getChainId, readContract, signMessage, signTypedData } from "viem/actions";
3
+ import { getAccountNonce } from "../../actions/public/getAccountNonce.js";
4
+ import { encode7579CallData } from "../../utils/encode7579CallData.js";
5
+ import { getEntryPointVersion, isUserOperationVersion06, isUserOperationVersion07 } from "../../utils/getEntryPointVersion.js";
6
+ import { isSmartAccountDeployed } from "../../utils/isSmartAccountDeployed.js";
7
+ import { toSmartAccount } from "../toSmartAccount.js";
8
+ import { SignTransactionNotSupportedBySmartAccount } from "../types.js";
9
+ const multiSendAbi = [
10
+ {
11
+ inputs: [
12
+ {
13
+ internalType: "bytes",
14
+ name: "transactions",
15
+ type: "bytes"
16
+ }
17
+ ],
18
+ name: "multiSend",
19
+ outputs: [],
20
+ stateMutability: "payable",
21
+ type: "function"
22
+ }
23
+ ];
24
+ const initSafe7579Abi = [
25
+ {
26
+ type: "function",
27
+ name: "initSafe7579",
28
+ inputs: [
29
+ {
30
+ name: "safe7579",
31
+ type: "address",
32
+ internalType: "address"
33
+ },
34
+ {
35
+ name: "executors",
36
+ type: "tuple[]",
37
+ internalType: "struct ModuleInit[]",
38
+ components: [
39
+ {
40
+ name: "module",
41
+ type: "address",
42
+ internalType: "address"
43
+ },
44
+ {
45
+ name: "initData",
46
+ type: "bytes",
47
+ internalType: "bytes"
48
+ }
49
+ ]
50
+ },
51
+ {
52
+ name: "fallbacks",
53
+ type: "tuple[]",
54
+ internalType: "struct ModuleInit[]",
55
+ components: [
56
+ {
57
+ name: "module",
58
+ type: "address",
59
+ internalType: "address"
60
+ },
61
+ {
62
+ name: "initData",
63
+ type: "bytes",
64
+ internalType: "bytes"
65
+ }
66
+ ]
67
+ },
68
+ {
69
+ name: "hooks",
70
+ type: "tuple[]",
71
+ internalType: "struct ModuleInit[]",
72
+ components: [
73
+ {
74
+ name: "module",
75
+ type: "address",
76
+ internalType: "address"
77
+ },
78
+ {
79
+ name: "initData",
80
+ type: "bytes",
81
+ internalType: "bytes"
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ name: "attesters",
87
+ type: "address[]",
88
+ internalType: "address[]"
89
+ },
90
+ {
91
+ name: "threshold",
92
+ type: "uint8",
93
+ internalType: "uint8"
94
+ }
95
+ ],
96
+ outputs: [],
97
+ stateMutability: "nonpayable"
98
+ }
99
+ ];
100
+ const preValidationSetupAbi = [
101
+ {
102
+ type: "function",
103
+ name: "preValidationSetup",
104
+ inputs: [
105
+ {
106
+ name: "initHash",
107
+ type: "bytes32",
108
+ internalType: "bytes32"
109
+ },
110
+ {
111
+ name: "to",
112
+ type: "address",
113
+ internalType: "address"
114
+ },
115
+ {
116
+ name: "preInit",
117
+ type: "bytes",
118
+ internalType: "bytes"
119
+ }
120
+ ],
121
+ outputs: [],
122
+ stateMutability: "nonpayable"
123
+ }
124
+ ];
125
+ const enableModulesAbi = [
126
+ {
127
+ inputs: [
128
+ {
129
+ internalType: "address[]",
130
+ name: "modules",
131
+ type: "address[]"
132
+ }
133
+ ],
134
+ name: "enableModules",
135
+ outputs: [],
136
+ stateMutability: "nonpayable",
137
+ type: "function"
138
+ }
139
+ ];
140
+ const setupAbi = [
141
+ {
142
+ inputs: [
143
+ {
144
+ internalType: "address[]",
145
+ name: "_owners",
146
+ type: "address[]"
147
+ },
148
+ {
149
+ internalType: "uint256",
150
+ name: "_threshold",
151
+ type: "uint256"
152
+ },
153
+ {
154
+ internalType: "address",
155
+ name: "to",
156
+ type: "address"
157
+ },
158
+ {
159
+ internalType: "bytes",
160
+ name: "data",
161
+ type: "bytes"
162
+ },
163
+ {
164
+ internalType: "address",
165
+ name: "fallbackHandler",
166
+ type: "address"
167
+ },
168
+ {
169
+ internalType: "address",
170
+ name: "paymentToken",
171
+ type: "address"
172
+ },
173
+ {
174
+ internalType: "uint256",
175
+ name: "payment",
176
+ type: "uint256"
177
+ },
178
+ {
179
+ internalType: "address payable",
180
+ name: "paymentReceiver",
181
+ type: "address"
182
+ }
183
+ ],
184
+ name: "setup",
185
+ outputs: [],
186
+ stateMutability: "nonpayable",
187
+ type: "function"
188
+ }
189
+ ];
190
+ const createProxyWithNonceAbi = [
191
+ {
192
+ inputs: [
193
+ {
194
+ internalType: "address",
195
+ name: "_singleton",
196
+ type: "address"
197
+ },
198
+ {
199
+ internalType: "bytes",
200
+ name: "initializer",
201
+ type: "bytes"
202
+ },
203
+ {
204
+ internalType: "uint256",
205
+ name: "saltNonce",
206
+ type: "uint256"
207
+ }
208
+ ],
209
+ name: "createProxyWithNonce",
210
+ outputs: [
211
+ {
212
+ internalType: "contract SafeProxy",
213
+ name: "proxy",
214
+ type: "address"
215
+ }
216
+ ],
217
+ stateMutability: "nonpayable",
218
+ type: "function"
219
+ }
220
+ ];
221
+ const proxyCreationCodeAbi = [
222
+ {
223
+ inputs: [],
224
+ name: "proxyCreationCode",
225
+ outputs: [
226
+ {
227
+ internalType: "bytes",
228
+ name: "",
229
+ type: "bytes"
230
+ }
231
+ ],
232
+ stateMutability: "pure",
233
+ type: "function"
234
+ }
235
+ ];
236
+ const setupSafeAbi = [
237
+ {
238
+ type: "function",
239
+ name: "setupSafe",
240
+ inputs: [
241
+ {
242
+ name: "initData",
243
+ type: "tuple",
244
+ internalType: "struct Safe7579Launchpad.InitData",
245
+ components: [
246
+ {
247
+ name: "singleton",
248
+ type: "address",
249
+ internalType: "address"
250
+ },
251
+ {
252
+ name: "owners",
253
+ type: "address[]",
254
+ internalType: "address[]"
255
+ },
256
+ {
257
+ name: "threshold",
258
+ type: "uint256",
259
+ internalType: "uint256"
260
+ },
261
+ {
262
+ name: "setupTo",
263
+ type: "address",
264
+ internalType: "address"
265
+ },
266
+ {
267
+ name: "setupData",
268
+ type: "bytes",
269
+ internalType: "bytes"
270
+ },
271
+ {
272
+ name: "safe7579",
273
+ type: "address",
274
+ internalType: "contract ISafe7579"
275
+ },
276
+ {
277
+ name: "validators",
278
+ type: "tuple[]",
279
+ internalType: "struct ModuleInit[]",
280
+ components: [
281
+ {
282
+ name: "module",
283
+ type: "address",
284
+ internalType: "address"
285
+ },
286
+ {
287
+ name: "initData",
288
+ type: "bytes",
289
+ internalType: "bytes"
290
+ }
291
+ ]
292
+ },
293
+ {
294
+ name: "callData",
295
+ type: "bytes",
296
+ internalType: "bytes"
297
+ }
298
+ ]
299
+ }
300
+ ],
301
+ outputs: [],
302
+ stateMutability: "nonpayable"
303
+ }
304
+ ];
305
+ const executeUserOpWithErrorStringAbi = [
306
+ {
307
+ inputs: [
308
+ {
309
+ internalType: "address",
310
+ name: "to",
311
+ type: "address"
312
+ },
313
+ {
314
+ internalType: "uint256",
315
+ name: "value",
316
+ type: "uint256"
317
+ },
318
+ {
319
+ internalType: "bytes",
320
+ name: "data",
321
+ type: "bytes"
322
+ },
323
+ {
324
+ internalType: "uint8",
325
+ name: "operation",
326
+ type: "uint8"
327
+ }
328
+ ],
329
+ name: "executeUserOpWithErrorString",
330
+ outputs: [],
331
+ stateMutability: "nonpayable",
332
+ type: "function"
333
+ }
334
+ ];
335
+ const EIP712_SAFE_OPERATION_TYPE_V06 = {
336
+ SafeOp: [
337
+ { type: "address", name: "safe" },
338
+ { type: "uint256", name: "nonce" },
339
+ { type: "bytes", name: "initCode" },
340
+ { type: "bytes", name: "callData" },
341
+ { type: "uint256", name: "callGasLimit" },
342
+ { type: "uint256", name: "verificationGasLimit" },
343
+ { type: "uint256", name: "preVerificationGas" },
344
+ { type: "uint256", name: "maxFeePerGas" },
345
+ { type: "uint256", name: "maxPriorityFeePerGas" },
346
+ { type: "bytes", name: "paymasterAndData" },
347
+ { type: "uint48", name: "validAfter" },
348
+ { type: "uint48", name: "validUntil" },
349
+ { type: "address", name: "entryPoint" }
350
+ ]
351
+ };
352
+ const EIP712_SAFE_OPERATION_TYPE_V07 = {
353
+ SafeOp: [
354
+ { type: "address", name: "safe" },
355
+ { type: "uint256", name: "nonce" },
356
+ { type: "bytes", name: "initCode" },
357
+ { type: "bytes", name: "callData" },
358
+ { type: "uint128", name: "verificationGasLimit" },
359
+ { type: "uint128", name: "callGasLimit" },
360
+ { type: "uint256", name: "preVerificationGas" },
361
+ { type: "uint128", name: "maxPriorityFeePerGas" },
362
+ { type: "uint128", name: "maxFeePerGas" },
363
+ { type: "bytes", name: "paymasterAndData" },
364
+ { type: "uint48", name: "validAfter" },
365
+ { type: "uint48", name: "validUntil" },
366
+ { type: "address", name: "entryPoint" }
367
+ ]
368
+ };
369
+ const SAFE_VERSION_TO_ADDRESSES_MAP = {
370
+ "1.4.1": {
371
+ "v0.6": {
372
+ SAFE_MODULE_SETUP_ADDRESS: "0x8EcD4ec46D4D2a6B64fE960B3D64e8B94B2234eb",
373
+ SAFE_4337_MODULE_ADDRESS: "0xa581c4A4DB7175302464fF3C06380BC3270b4037",
374
+ SAFE_PROXY_FACTORY_ADDRESS: "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
375
+ SAFE_SINGLETON_ADDRESS: "0x41675C099F32341bf84BFc5382aF534df5C7461a",
376
+ MULTI_SEND_ADDRESS: "0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526",
377
+ MULTI_SEND_CALL_ONLY_ADDRESS: "0x9641d764fc13c8B624c04430C7356C1C7C8102e2"
378
+ },
379
+ "v0.7": {
380
+ SAFE_MODULE_SETUP_ADDRESS: "0x2dd68b007B46fBe91B9A7c3EDa5A7a1063cB5b47",
381
+ SAFE_4337_MODULE_ADDRESS: "0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226",
382
+ SAFE_PROXY_FACTORY_ADDRESS: "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
383
+ SAFE_SINGLETON_ADDRESS: "0x41675C099F32341bf84BFc5382aF534df5C7461a",
384
+ MULTI_SEND_ADDRESS: "0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526",
385
+ MULTI_SEND_CALL_ONLY_ADDRESS: "0x9641d764fc13c8B624c04430C7356C1C7C8102e2"
386
+ }
387
+ }
388
+ };
389
+ const adjustVInSignature = (signingMethod, signature) => {
390
+ const ETHEREUM_V_VALUES = [0, 1, 27, 28];
391
+ const MIN_VALID_V_VALUE_FOR_SAFE_ECDSA = 27;
392
+ let signatureV = Number.parseInt(signature.slice(-2), 16);
393
+ if (!ETHEREUM_V_VALUES.includes(signatureV)) {
394
+ throw new Error("Invalid signature");
395
+ }
396
+ if (signingMethod === "eth_sign") {
397
+ if (signatureV < MIN_VALID_V_VALUE_FOR_SAFE_ECDSA) {
398
+ signatureV += MIN_VALID_V_VALUE_FOR_SAFE_ECDSA;
399
+ }
400
+ signatureV += 4;
401
+ }
402
+ if (signingMethod === "eth_signTypedData") {
403
+ if (signatureV < MIN_VALID_V_VALUE_FOR_SAFE_ECDSA) {
404
+ signatureV += MIN_VALID_V_VALUE_FOR_SAFE_ECDSA;
405
+ }
406
+ }
407
+ return (signature.slice(0, -2) + signatureV.toString(16));
408
+ };
409
+ const generateSafeMessageMessage = (message) => {
410
+ const signableMessage = message;
411
+ if (typeof signableMessage === "string" || signableMessage.raw) {
412
+ return hashMessage(signableMessage);
413
+ }
414
+ return hashTypedData(message);
415
+ };
416
+ const encodeInternalTransaction = (tx) => {
417
+ const encoded = encodePacked(["uint8", "address", "uint256", "uint256", "bytes"], [
418
+ tx.operation,
419
+ tx.to,
420
+ tx.value,
421
+ BigInt(tx.data.slice(2).length / 2),
422
+ tx.data
423
+ ]);
424
+ return encoded.slice(2);
425
+ };
426
+ const encodeMultiSend = (txs) => {
427
+ const data = `0x${txs
428
+ .map((tx) => encodeInternalTransaction(tx))
429
+ .join("")}`;
430
+ return encodeFunctionData({
431
+ abi: multiSendAbi,
432
+ functionName: "multiSend",
433
+ args: [data]
434
+ });
435
+ };
436
+ const get7579LaunchPadInitData = ({ safe4337ModuleAddress, safeSingletonAddress, erc7579LaunchpadAddress, owner, validators, executors, fallbacks, hooks, attesters, attestersThreshold }) => {
437
+ const initData = {
438
+ singleton: safeSingletonAddress,
439
+ owners: [owner],
440
+ threshold: BigInt(1),
441
+ setupTo: erc7579LaunchpadAddress,
442
+ setupData: encodeFunctionData({
443
+ abi: initSafe7579Abi,
444
+ functionName: "initSafe7579",
445
+ args: [
446
+ safe4337ModuleAddress, // SAFE_7579_ADDRESS,
447
+ executors.map((executor) => ({
448
+ module: executor.address,
449
+ initData: executor.context
450
+ })),
451
+ fallbacks.map((fallback) => ({
452
+ module: fallback.address,
453
+ initData: fallback.context
454
+ })),
455
+ hooks.map((hook) => ({
456
+ module: hook.address,
457
+ initData: hook.context
458
+ })),
459
+ attesters,
460
+ attestersThreshold
461
+ ]
462
+ }),
463
+ safe7579: safe4337ModuleAddress,
464
+ validators: validators
465
+ };
466
+ return initData;
467
+ };
468
+ const getInitializerCode = async ({ owner, safeModuleSetupAddress, safe4337ModuleAddress, multiSendAddress, safeSingletonAddress, erc7579LaunchpadAddress, paymentToken, payment, paymentReceiver, setupTransactions = [], safeModules = [], validators = [], executors = [], fallbacks = [], hooks = [], attesters = [], attestersThreshold = 0 }) => {
469
+ if (erc7579LaunchpadAddress) {
470
+ const initData = get7579LaunchPadInitData({
471
+ safe4337ModuleAddress,
472
+ safeSingletonAddress,
473
+ erc7579LaunchpadAddress,
474
+ owner,
475
+ validators,
476
+ executors,
477
+ fallbacks,
478
+ hooks,
479
+ attesters,
480
+ attestersThreshold
481
+ });
482
+ const initHash = keccak256(encodeAbiParameters([
483
+ {
484
+ internalType: "address",
485
+ name: "singleton",
486
+ type: "address"
487
+ },
488
+ {
489
+ internalType: "address[]",
490
+ name: "owners",
491
+ type: "address[]"
492
+ },
493
+ {
494
+ internalType: "uint256",
495
+ name: "threshold",
496
+ type: "uint256"
497
+ },
498
+ {
499
+ internalType: "address",
500
+ name: "setupTo",
501
+ type: "address"
502
+ },
503
+ {
504
+ internalType: "bytes",
505
+ name: "setupData",
506
+ type: "bytes"
507
+ },
508
+ {
509
+ internalType: "contract ISafe7579",
510
+ name: "safe7579",
511
+ type: "address"
512
+ },
513
+ {
514
+ internalType: "struct ModuleInit[]",
515
+ name: "validators",
516
+ type: "tuple[]",
517
+ components: [
518
+ {
519
+ internalType: "address",
520
+ name: "module",
521
+ type: "address"
522
+ },
523
+ {
524
+ internalType: "bytes",
525
+ name: "initData",
526
+ type: "bytes"
527
+ }
528
+ ]
529
+ }
530
+ ], [
531
+ initData.singleton,
532
+ initData.owners,
533
+ initData.threshold,
534
+ initData.setupTo,
535
+ initData.setupData,
536
+ initData.safe7579,
537
+ initData.validators.map((validator) => ({
538
+ module: validator.address,
539
+ initData: validator.context
540
+ }))
541
+ ]));
542
+ return encodeFunctionData({
543
+ abi: preValidationSetupAbi,
544
+ functionName: "preValidationSetup",
545
+ args: [initHash, zeroAddress, "0x"]
546
+ });
547
+ }
548
+ const multiSendCallData = encodeMultiSend([
549
+ {
550
+ to: safeModuleSetupAddress,
551
+ data: encodeFunctionData({
552
+ abi: enableModulesAbi,
553
+ functionName: "enableModules",
554
+ args: [[safe4337ModuleAddress, ...safeModules]]
555
+ }),
556
+ value: BigInt(0),
557
+ operation: 1
558
+ },
559
+ ...setupTransactions.map((tx) => ({ ...tx, operation: 0 }))
560
+ ]);
561
+ return encodeFunctionData({
562
+ abi: setupAbi,
563
+ functionName: "setup",
564
+ args: [
565
+ [owner],
566
+ BigInt(1),
567
+ multiSendAddress,
568
+ multiSendCallData,
569
+ safe4337ModuleAddress,
570
+ paymentToken,
571
+ payment,
572
+ paymentReceiver
573
+ ]
574
+ });
575
+ };
576
+ function getPaymasterAndData(unpackedUserOperation) {
577
+ return unpackedUserOperation.paymaster
578
+ ? concat([
579
+ unpackedUserOperation.paymaster,
580
+ pad(toHex(unpackedUserOperation.paymasterVerificationGasLimit ||
581
+ BigInt(0)), {
582
+ size: 16
583
+ }),
584
+ pad(toHex(unpackedUserOperation.paymasterPostOpGasLimit || BigInt(0)), {
585
+ size: 16
586
+ }),
587
+ unpackedUserOperation.paymasterData || "0x"
588
+ ])
589
+ : "0x";
590
+ }
591
+ const getAccountInitCode = async ({ owner, safeModuleSetupAddress, safe4337ModuleAddress, safeSingletonAddress, erc7579LaunchpadAddress, multiSendAddress, paymentToken, payment, paymentReceiver, saltNonce = BigInt(0), setupTransactions = [], safeModules = [], validators = [], executors = [], fallbacks = [], hooks = [], attesters = [], attestersThreshold = 0 }) => {
592
+ if (!owner) {
593
+ throw new Error("Owner account not found");
594
+ }
595
+ const initializer = await getInitializerCode({
596
+ owner,
597
+ safeModuleSetupAddress,
598
+ safe4337ModuleAddress,
599
+ multiSendAddress,
600
+ setupTransactions,
601
+ safeSingletonAddress,
602
+ safeModules,
603
+ erc7579LaunchpadAddress,
604
+ validators,
605
+ executors,
606
+ fallbacks,
607
+ hooks,
608
+ attesters,
609
+ attestersThreshold,
610
+ paymentToken,
611
+ payment,
612
+ paymentReceiver
613
+ });
614
+ const initCodeCallData = encodeFunctionData({
615
+ abi: createProxyWithNonceAbi,
616
+ functionName: "createProxyWithNonce",
617
+ args: [
618
+ erc7579LaunchpadAddress ?? safeSingletonAddress,
619
+ initializer,
620
+ saltNonce
621
+ ]
622
+ });
623
+ return initCodeCallData;
624
+ };
625
+ const getAccountAddress = async ({ client, owner, safeModuleSetupAddress, safe4337ModuleAddress, safeProxyFactoryAddress, safeSingletonAddress, multiSendAddress, erc7579LaunchpadAddress, paymentToken, payment, paymentReceiver, setupTransactions = [], safeModules = [], saltNonce = BigInt(0), validators = [], executors = [], fallbacks = [], hooks = [], attesters = [], attestersThreshold = 0 }) => {
626
+ const proxyCreationCode = await readContract(client, {
627
+ abi: proxyCreationCodeAbi,
628
+ address: safeProxyFactoryAddress,
629
+ functionName: "proxyCreationCode"
630
+ });
631
+ const initializer = await getInitializerCode({
632
+ owner,
633
+ safeModuleSetupAddress,
634
+ safe4337ModuleAddress,
635
+ multiSendAddress,
636
+ setupTransactions,
637
+ safeSingletonAddress,
638
+ safeModules,
639
+ erc7579LaunchpadAddress,
640
+ validators,
641
+ executors,
642
+ fallbacks,
643
+ hooks,
644
+ attesters,
645
+ attestersThreshold,
646
+ paymentToken,
647
+ payment,
648
+ paymentReceiver
649
+ });
650
+ const deploymentCode = encodePacked(["bytes", "uint256"], [
651
+ proxyCreationCode,
652
+ hexToBigInt(erc7579LaunchpadAddress ?? safeSingletonAddress)
653
+ ]);
654
+ const salt = keccak256(encodePacked(["bytes32", "uint256"], [keccak256(encodePacked(["bytes"], [initializer])), saltNonce]));
655
+ return getContractAddress({
656
+ from: safeProxyFactoryAddress,
657
+ salt,
658
+ bytecode: deploymentCode,
659
+ opcode: "CREATE2"
660
+ });
661
+ };
662
+ const getDefaultAddresses = (safeVersion, entryPointAddress, { addModuleLibAddress: _addModuleLibAddress, safeModuleSetupAddress: _safeModuleSetupAddress, safe4337ModuleAddress: _safe4337ModuleAddress, safeProxyFactoryAddress: _safeProxyFactoryAddress, safeSingletonAddress: _safeSingletonAddress, multiSendAddress: _multiSendAddress, multiSendCallOnlyAddress: _multiSendCallOnlyAddress }) => {
663
+ const entryPointVersion = getEntryPointVersion(entryPointAddress);
664
+ const safeModuleSetupAddress = _safeModuleSetupAddress ??
665
+ _addModuleLibAddress ??
666
+ SAFE_VERSION_TO_ADDRESSES_MAP[safeVersion][entryPointVersion]
667
+ .SAFE_MODULE_SETUP_ADDRESS;
668
+ const safe4337ModuleAddress = _safe4337ModuleAddress ??
669
+ SAFE_VERSION_TO_ADDRESSES_MAP[safeVersion][entryPointVersion]
670
+ .SAFE_4337_MODULE_ADDRESS;
671
+ const safeProxyFactoryAddress = _safeProxyFactoryAddress ??
672
+ SAFE_VERSION_TO_ADDRESSES_MAP[safeVersion][entryPointVersion]
673
+ .SAFE_PROXY_FACTORY_ADDRESS;
674
+ const safeSingletonAddress = _safeSingletonAddress ??
675
+ SAFE_VERSION_TO_ADDRESSES_MAP[safeVersion][entryPointVersion]
676
+ .SAFE_SINGLETON_ADDRESS;
677
+ const multiSendAddress = _multiSendAddress ??
678
+ SAFE_VERSION_TO_ADDRESSES_MAP[safeVersion][entryPointVersion]
679
+ .MULTI_SEND_ADDRESS;
680
+ const multiSendCallOnlyAddress = _multiSendCallOnlyAddress ??
681
+ SAFE_VERSION_TO_ADDRESSES_MAP[safeVersion][getEntryPointVersion(entryPointAddress)].MULTI_SEND_CALL_ONLY_ADDRESS;
682
+ return {
683
+ safeModuleSetupAddress,
684
+ safe4337ModuleAddress,
685
+ safeProxyFactoryAddress,
686
+ safeSingletonAddress,
687
+ multiSendAddress,
688
+ multiSendCallOnlyAddress
689
+ };
690
+ };
691
+ function isErc7579Args(args) {
692
+ return args.erc7579LaunchpadAddress !== undefined;
693
+ }
694
+ /**
695
+ * @description Creates an Simple Account from a private key.
696
+ *
697
+ * @returns A Private Key Simple Account.
698
+ */
699
+ export async function signerToSafeSmartAccount(client, args) {
700
+ const chainId = client.chain?.id ?? (await getChainId(client));
701
+ const { signer, address, safeVersion, entryPoint: entryPointAddress, safe4337ModuleAddress: _safe4337ModuleAddress, safeProxyFactoryAddress: _safeProxyFactoryAddress, safeSingletonAddress: _safeSingletonAddress, erc7579LaunchpadAddress = args.erc7579LaunchpadAddress, saltNonce = BigInt(0), validUntil = 0, validAfter = 0, nonceKey, paymentToken = zeroAddress, payment = BigInt(0), paymentReceiver = zeroAddress } = args;
702
+ let _safeModuleSetupAddress = undefined;
703
+ let _multiSendAddress = undefined;
704
+ let _multiSendCallOnlyAddress = undefined;
705
+ let safeModules = undefined;
706
+ let setupTransactions = [];
707
+ let validators = [];
708
+ let executors = [];
709
+ let fallbacks = [];
710
+ let hooks = [];
711
+ let attesters = [];
712
+ let attestersThreshold = 0;
713
+ if (!isErc7579Args(args)) {
714
+ _safeModuleSetupAddress = args.safeModuleSetupAddress;
715
+ _multiSendAddress = args.multiSendAddress;
716
+ _multiSendCallOnlyAddress = args.multiSendCallOnlyAddress;
717
+ safeModules = args.safeModules;
718
+ setupTransactions = args.setupTransactions ?? [];
719
+ }
720
+ if (isErc7579Args(args)) {
721
+ validators = args.validators ?? [];
722
+ executors = args.executors ?? [];
723
+ fallbacks = args.fallbacks ?? [];
724
+ hooks = args.hooks ?? [];
725
+ attesters = args.attesters ?? [];
726
+ attestersThreshold = args.attestersThreshold ?? 0;
727
+ }
728
+ const viemSigner = {
729
+ ...signer,
730
+ signTransaction: (_, __) => {
731
+ throw new SignTransactionNotSupportedBySmartAccount();
732
+ }
733
+ };
734
+ const { safeModuleSetupAddress, safe4337ModuleAddress, safeProxyFactoryAddress, safeSingletonAddress, multiSendAddress, multiSendCallOnlyAddress } = getDefaultAddresses(safeVersion, entryPointAddress, {
735
+ safeModuleSetupAddress: _safeModuleSetupAddress,
736
+ safe4337ModuleAddress: _safe4337ModuleAddress,
737
+ safeProxyFactoryAddress: _safeProxyFactoryAddress,
738
+ safeSingletonAddress: _safeSingletonAddress,
739
+ multiSendAddress: _multiSendAddress,
740
+ multiSendCallOnlyAddress: _multiSendCallOnlyAddress
741
+ });
742
+ const accountAddress = address ??
743
+ (await getAccountAddress({
744
+ client,
745
+ owner: viemSigner.address,
746
+ safeModuleSetupAddress,
747
+ safe4337ModuleAddress,
748
+ safeProxyFactoryAddress,
749
+ safeSingletonAddress,
750
+ multiSendAddress,
751
+ erc7579LaunchpadAddress,
752
+ saltNonce,
753
+ setupTransactions,
754
+ safeModules,
755
+ validators,
756
+ executors,
757
+ fallbacks,
758
+ hooks,
759
+ attesters,
760
+ attestersThreshold,
761
+ paymentToken,
762
+ payment,
763
+ paymentReceiver
764
+ }));
765
+ if (!accountAddress)
766
+ throw new Error("Account address not found");
767
+ let safeDeployed = await isSmartAccountDeployed(client, accountAddress);
768
+ const safeSmartAccount = toSmartAccount({
769
+ address: accountAddress,
770
+ client: client,
771
+ publicKey: accountAddress,
772
+ entryPoint: entryPointAddress,
773
+ source: "SafeSmartAccount",
774
+ async signMessage({ message }) {
775
+ const messageHash = hashTypedData({
776
+ domain: {
777
+ chainId: chainId,
778
+ verifyingContract: accountAddress
779
+ },
780
+ types: {
781
+ SafeMessage: [{ name: "message", type: "bytes" }]
782
+ },
783
+ primaryType: "SafeMessage",
784
+ message: {
785
+ message: generateSafeMessageMessage(message)
786
+ }
787
+ });
788
+ return adjustVInSignature("eth_sign", await signMessage(client, {
789
+ account: viemSigner,
790
+ message: {
791
+ raw: toBytes(messageHash)
792
+ }
793
+ }));
794
+ },
795
+ async signTransaction(_, __) {
796
+ throw new SignTransactionNotSupportedBySmartAccount();
797
+ },
798
+ async signTypedData(typedData) {
799
+ return adjustVInSignature("eth_signTypedData", await signTypedData(client, {
800
+ account: viemSigner,
801
+ domain: {
802
+ chainId: chainId,
803
+ verifyingContract: accountAddress
804
+ },
805
+ types: {
806
+ SafeMessage: [{ name: "message", type: "bytes" }]
807
+ },
808
+ primaryType: "SafeMessage",
809
+ message: {
810
+ message: generateSafeMessageMessage(typedData)
811
+ }
812
+ }));
813
+ },
814
+ async getNonce(key) {
815
+ return getAccountNonce(client, {
816
+ sender: accountAddress,
817
+ entryPoint: entryPointAddress,
818
+ key: key ?? nonceKey
819
+ });
820
+ },
821
+ async signUserOperation(userOperation) {
822
+ const message = {
823
+ safe: accountAddress,
824
+ callData: userOperation.callData,
825
+ nonce: userOperation.nonce,
826
+ initCode: userOperation.initCode ?? "0x",
827
+ maxFeePerGas: userOperation.maxFeePerGas,
828
+ maxPriorityFeePerGas: userOperation.maxPriorityFeePerGas,
829
+ preVerificationGas: userOperation.preVerificationGas,
830
+ verificationGasLimit: userOperation.verificationGasLimit,
831
+ callGasLimit: userOperation.callGasLimit,
832
+ paymasterAndData: userOperation.paymasterAndData ?? "0x",
833
+ validAfter: validAfter,
834
+ validUntil: validUntil,
835
+ entryPoint: entryPointAddress
836
+ };
837
+ let isDeployed = false;
838
+ if (isUserOperationVersion06(entryPointAddress, userOperation)) {
839
+ message.paymasterAndData = userOperation.paymasterAndData;
840
+ isDeployed = userOperation.initCode === "0x";
841
+ }
842
+ if (isUserOperationVersion07(entryPointAddress, userOperation)) {
843
+ if (userOperation.factory && userOperation.factoryData) {
844
+ message.initCode = concatHex([
845
+ userOperation.factory,
846
+ userOperation.factoryData
847
+ ]);
848
+ }
849
+ message.paymasterAndData =
850
+ getPaymasterAndData(userOperation);
851
+ isDeployed = !userOperation.factory;
852
+ }
853
+ let verifyingContract = safe4337ModuleAddress;
854
+ if (erc7579LaunchpadAddress && !isDeployed) {
855
+ verifyingContract = userOperation.sender;
856
+ }
857
+ const signatures = [
858
+ {
859
+ signer: viemSigner.address,
860
+ data: await signTypedData(client, {
861
+ account: viemSigner,
862
+ domain: {
863
+ chainId,
864
+ verifyingContract
865
+ },
866
+ types: getEntryPointVersion(entryPointAddress) ===
867
+ "v0.6"
868
+ ? EIP712_SAFE_OPERATION_TYPE_V06
869
+ : EIP712_SAFE_OPERATION_TYPE_V07,
870
+ primaryType: "SafeOp",
871
+ message: message
872
+ })
873
+ }
874
+ ];
875
+ signatures.sort((left, right) => left.signer
876
+ .toLowerCase()
877
+ .localeCompare(right.signer.toLowerCase()));
878
+ const signatureBytes = concat(signatures.map((sig) => sig.data));
879
+ return encodePacked(["uint48", "uint48", "bytes"], [validAfter, validUntil, signatureBytes]);
880
+ },
881
+ async getInitCode() {
882
+ safeDeployed =
883
+ safeDeployed ||
884
+ (await isSmartAccountDeployed(client, accountAddress));
885
+ if (safeDeployed)
886
+ return "0x";
887
+ return concatHex([
888
+ (await this.getFactory()) ?? "0x",
889
+ (await this.getFactoryData()) ?? "0x"
890
+ ]);
891
+ },
892
+ async getFactory() {
893
+ safeDeployed =
894
+ safeDeployed ||
895
+ (await isSmartAccountDeployed(client, accountAddress));
896
+ if (safeDeployed)
897
+ return undefined;
898
+ return safeProxyFactoryAddress;
899
+ },
900
+ async getFactoryData() {
901
+ safeDeployed =
902
+ safeDeployed ||
903
+ (await isSmartAccountDeployed(client, accountAddress));
904
+ if (safeDeployed)
905
+ return undefined;
906
+ return await getAccountInitCode({
907
+ owner: viemSigner.address,
908
+ safeModuleSetupAddress,
909
+ safe4337ModuleAddress,
910
+ safeSingletonAddress,
911
+ multiSendAddress,
912
+ erc7579LaunchpadAddress,
913
+ saltNonce,
914
+ setupTransactions,
915
+ safeModules,
916
+ validators,
917
+ executors,
918
+ fallbacks,
919
+ hooks,
920
+ attesters,
921
+ attestersThreshold,
922
+ paymentToken,
923
+ payment,
924
+ paymentReceiver
925
+ });
926
+ },
927
+ async encodeDeployCallData(_) {
928
+ throw new Error("Safe account doesn't support account deployment");
929
+ },
930
+ async encodeCallData(args) {
931
+ const isArray = Array.isArray(args);
932
+ if (erc7579LaunchpadAddress) {
933
+ // First transaction will be slower because we need to enable 7579 modules
934
+ safeDeployed =
935
+ safeDeployed ||
936
+ (await isSmartAccountDeployed(client, accountAddress));
937
+ if (!safeDeployed) {
938
+ const initData = get7579LaunchPadInitData({
939
+ safe4337ModuleAddress,
940
+ safeSingletonAddress,
941
+ erc7579LaunchpadAddress,
942
+ owner: viemSigner.address,
943
+ validators,
944
+ executors,
945
+ fallbacks,
946
+ hooks,
947
+ attesters,
948
+ attestersThreshold
949
+ });
950
+ return encodeFunctionData({
951
+ abi: setupSafeAbi,
952
+ functionName: "setupSafe",
953
+ args: [
954
+ {
955
+ ...initData,
956
+ validators: initData.validators.map((validator) => ({
957
+ module: validator.address,
958
+ initData: validator.context
959
+ })),
960
+ callData: encode7579CallData({
961
+ mode: {
962
+ type: isArray
963
+ ? "batchcall"
964
+ : "call",
965
+ revertOnError: false,
966
+ selector: "0x",
967
+ context: "0x"
968
+ },
969
+ callData: args
970
+ })
971
+ }
972
+ ]
973
+ });
974
+ }
975
+ return encode7579CallData({
976
+ mode: {
977
+ type: isArray ? "batchcall" : "call",
978
+ revertOnError: false,
979
+ selector: "0x",
980
+ context: "0x"
981
+ },
982
+ callData: args
983
+ });
984
+ }
985
+ let to;
986
+ let value;
987
+ let data;
988
+ let operationType = 0;
989
+ if (isArray) {
990
+ const argsArray = args;
991
+ to = multiSendCallOnlyAddress;
992
+ value = BigInt(0);
993
+ data = encodeMultiSend(argsArray.map((tx) => ({ ...tx, operation: 0 })));
994
+ operationType = 1;
995
+ }
996
+ else {
997
+ const singleTransaction = args;
998
+ to = singleTransaction.to;
999
+ data = singleTransaction.data;
1000
+ value = singleTransaction.value;
1001
+ }
1002
+ return encodeFunctionData({
1003
+ abi: executeUserOpWithErrorStringAbi,
1004
+ functionName: "executeUserOpWithErrorString",
1005
+ args: [to, value, data, operationType]
1006
+ });
1007
+ },
1008
+ async getDummySignature(_userOperation) {
1009
+ return "0x000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
1010
+ }
1011
+ });
1012
+ return safeSmartAccount;
1013
+ }
1014
+ //# sourceMappingURL=signerToSafeSmartAccount.js.map