@aa-sdk/core 4.0.0-alpha.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 (743) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +54 -0
  3. package/dist/cjs/abis/EntryPointAbi_v6.d.ts +1018 -0
  4. package/dist/cjs/abis/EntryPointAbi_v6.js +1313 -0
  5. package/dist/cjs/abis/EntryPointAbi_v6.js.map +1 -0
  6. package/dist/cjs/abis/EntryPointAbi_v7.d.ts +775 -0
  7. package/dist/cjs/abis/EntryPointAbi_v7.js +661 -0
  8. package/dist/cjs/abis/EntryPointAbi_v7.js.map +1 -0
  9. package/dist/cjs/abis/SimpleAccountAbi_v6.d.ts +405 -0
  10. package/dist/cjs/abis/SimpleAccountAbi_v6.js +528 -0
  11. package/dist/cjs/abis/SimpleAccountAbi_v6.js.map +1 -0
  12. package/dist/cjs/abis/SimpleAccountAbi_v7.d.ts +410 -0
  13. package/dist/cjs/abis/SimpleAccountAbi_v7.js +538 -0
  14. package/dist/cjs/abis/SimpleAccountAbi_v7.js.map +1 -0
  15. package/dist/cjs/abis/SimpleAccountFactoryAbi.d.ts +55 -0
  16. package/dist/cjs/abis/SimpleAccountFactoryAbi.js +78 -0
  17. package/dist/cjs/abis/SimpleAccountFactoryAbi.js.map +1 -0
  18. package/dist/cjs/account/base.d.ts +49 -0
  19. package/dist/cjs/account/base.js +257 -0
  20. package/dist/cjs/account/base.js.map +1 -0
  21. package/dist/cjs/account/schema.d.ts +100 -0
  22. package/dist/cjs/account/schema.js +43 -0
  23. package/dist/cjs/account/schema.js.map +1 -0
  24. package/dist/cjs/account/simple.d.ts +14 -0
  25. package/dist/cjs/account/simple.js +119 -0
  26. package/dist/cjs/account/simple.js.map +1 -0
  27. package/dist/cjs/account/smartContractAccount.d.ts +68 -0
  28. package/dist/cjs/account/smartContractAccount.js +174 -0
  29. package/dist/cjs/account/smartContractAccount.js.map +1 -0
  30. package/dist/cjs/account/types.d.ts +30 -0
  31. package/dist/cjs/account/types.js +3 -0
  32. package/dist/cjs/account/types.js.map +1 -0
  33. package/dist/cjs/actions/bundler/estimateUserOperationGas.d.ts +8 -0
  34. package/dist/cjs/actions/bundler/estimateUserOperationGas.js +18 -0
  35. package/dist/cjs/actions/bundler/estimateUserOperationGas.js.map +1 -0
  36. package/dist/cjs/actions/bundler/getSupportedEntryPoints.d.ts +3 -0
  37. package/dist/cjs/actions/bundler/getSupportedEntryPoints.js +11 -0
  38. package/dist/cjs/actions/bundler/getSupportedEntryPoints.js.map +1 -0
  39. package/dist/cjs/actions/bundler/getUserOperationByHash.d.ts +6 -0
  40. package/dist/cjs/actions/bundler/getUserOperationByHash.js +11 -0
  41. package/dist/cjs/actions/bundler/getUserOperationByHash.js.map +1 -0
  42. package/dist/cjs/actions/bundler/getUserOperationReceipt.d.ts +6 -0
  43. package/dist/cjs/actions/bundler/getUserOperationReceipt.js +11 -0
  44. package/dist/cjs/actions/bundler/getUserOperationReceipt.js.map +1 -0
  45. package/dist/cjs/actions/bundler/sendRawUserOperation.d.ts +7 -0
  46. package/dist/cjs/actions/bundler/sendRawUserOperation.js +11 -0
  47. package/dist/cjs/actions/bundler/sendRawUserOperation.js.map +1 -0
  48. package/dist/cjs/actions/smartAccount/buildUserOperation.d.ts +5 -0
  49. package/dist/cjs/actions/smartAccount/buildUserOperation.js +25 -0
  50. package/dist/cjs/actions/smartAccount/buildUserOperation.js.map +1 -0
  51. package/dist/cjs/actions/smartAccount/buildUserOperationFromTx.d.ts +5 -0
  52. package/dist/cjs/actions/smartAccount/buildUserOperationFromTx.js +39 -0
  53. package/dist/cjs/actions/smartAccount/buildUserOperationFromTx.js.map +1 -0
  54. package/dist/cjs/actions/smartAccount/buildUserOperationFromTxs.d.ts +4 -0
  55. package/dist/cjs/actions/smartAccount/buildUserOperationFromTxs.js +62 -0
  56. package/dist/cjs/actions/smartAccount/buildUserOperationFromTxs.js.map +1 -0
  57. package/dist/cjs/actions/smartAccount/checkGasSponsorshipEligibility.d.ts +4 -0
  58. package/dist/cjs/actions/smartAccount/checkGasSponsorshipEligibility.js +34 -0
  59. package/dist/cjs/actions/smartAccount/checkGasSponsorshipEligibility.js.map +1 -0
  60. package/dist/cjs/actions/smartAccount/dropAndReplaceUserOperation.d.ts +5 -0
  61. package/dist/cjs/actions/smartAccount/dropAndReplaceUserOperation.js +64 -0
  62. package/dist/cjs/actions/smartAccount/dropAndReplaceUserOperation.js.map +1 -0
  63. package/dist/cjs/actions/smartAccount/estimateUserOperationGas.d.ts +5 -0
  64. package/dist/cjs/actions/smartAccount/estimateUserOperationGas.js +23 -0
  65. package/dist/cjs/actions/smartAccount/estimateUserOperationGas.js.map +1 -0
  66. package/dist/cjs/actions/smartAccount/getAddress.d.ts +4 -0
  67. package/dist/cjs/actions/smartAccount/getAddress.js +13 -0
  68. package/dist/cjs/actions/smartAccount/getAddress.js.map +1 -0
  69. package/dist/cjs/actions/smartAccount/internal/initUserOperation.d.ts +7 -0
  70. package/dist/cjs/actions/smartAccount/internal/initUserOperation.js +42 -0
  71. package/dist/cjs/actions/smartAccount/internal/initUserOperation.js.map +1 -0
  72. package/dist/cjs/actions/smartAccount/internal/runMiddlewareStack.d.ts +10 -0
  73. package/dist/cjs/actions/smartAccount/internal/runMiddlewareStack.js +47 -0
  74. package/dist/cjs/actions/smartAccount/internal/runMiddlewareStack.js.map +1 -0
  75. package/dist/cjs/actions/smartAccount/internal/sendUserOperation.d.ts +10 -0
  76. package/dist/cjs/actions/smartAccount/internal/sendUserOperation.js +28 -0
  77. package/dist/cjs/actions/smartAccount/internal/sendUserOperation.js.map +1 -0
  78. package/dist/cjs/actions/smartAccount/sendTransaction.d.ts +5 -0
  79. package/dist/cjs/actions/smartAccount/sendTransaction.js +35 -0
  80. package/dist/cjs/actions/smartAccount/sendTransaction.js.map +1 -0
  81. package/dist/cjs/actions/smartAccount/sendTransactions.d.ts +4 -0
  82. package/dist/cjs/actions/smartAccount/sendTransactions.js +36 -0
  83. package/dist/cjs/actions/smartAccount/sendTransactions.js.map +1 -0
  84. package/dist/cjs/actions/smartAccount/sendUserOperation.d.ts +5 -0
  85. package/dist/cjs/actions/smartAccount/sendUserOperation.js +31 -0
  86. package/dist/cjs/actions/smartAccount/sendUserOperation.js.map +1 -0
  87. package/dist/cjs/actions/smartAccount/signMessage.d.ts +6 -0
  88. package/dist/cjs/actions/smartAccount/signMessage.js +12 -0
  89. package/dist/cjs/actions/smartAccount/signMessage.js.map +1 -0
  90. package/dist/cjs/actions/smartAccount/signMessageWith6492.d.ts +4 -0
  91. package/dist/cjs/actions/smartAccount/signMessageWith6492.js +12 -0
  92. package/dist/cjs/actions/smartAccount/signMessageWith6492.js.map +1 -0
  93. package/dist/cjs/actions/smartAccount/signTypedData.d.ts +10 -0
  94. package/dist/cjs/actions/smartAccount/signTypedData.js +12 -0
  95. package/dist/cjs/actions/smartAccount/signTypedData.js.map +1 -0
  96. package/dist/cjs/actions/smartAccount/signTypedDataWith6492.d.ts +6 -0
  97. package/dist/cjs/actions/smartAccount/signTypedDataWith6492.js +12 -0
  98. package/dist/cjs/actions/smartAccount/signTypedDataWith6492.js.map +1 -0
  99. package/dist/cjs/actions/smartAccount/signUserOperation.d.ts +5 -0
  100. package/dist/cjs/actions/smartAccount/signUserOperation.js +30 -0
  101. package/dist/cjs/actions/smartAccount/signUserOperation.js.map +1 -0
  102. package/dist/cjs/actions/smartAccount/types.d.ts +42 -0
  103. package/dist/cjs/actions/smartAccount/types.js +3 -0
  104. package/dist/cjs/actions/smartAccount/types.js.map +1 -0
  105. package/dist/cjs/actions/smartAccount/upgradeAccount.d.ts +4 -0
  106. package/dist/cjs/actions/smartAccount/upgradeAccount.js +38 -0
  107. package/dist/cjs/actions/smartAccount/upgradeAccount.js.map +1 -0
  108. package/dist/cjs/actions/smartAccount/waitForUserOperationTransacation.d.ts +3 -0
  109. package/dist/cjs/actions/smartAccount/waitForUserOperationTransacation.js +36 -0
  110. package/dist/cjs/actions/smartAccount/waitForUserOperationTransacation.js.map +1 -0
  111. package/dist/cjs/chains/index.d.ts +20 -0
  112. package/dist/cjs/chains/index.js +169 -0
  113. package/dist/cjs/chains/index.js.map +1 -0
  114. package/dist/cjs/client/bundlerClient.d.ts +10 -0
  115. package/dist/cjs/client/bundlerClient.js +51 -0
  116. package/dist/cjs/client/bundlerClient.js.map +1 -0
  117. package/dist/cjs/client/decorators/bundlerClient.d.ts +41 -0
  118. package/dist/cjs/client/decorators/bundlerClient.js +17 -0
  119. package/dist/cjs/client/decorators/bundlerClient.js.map +1 -0
  120. package/dist/cjs/client/decorators/smartAccountClient.d.ts +35 -0
  121. package/dist/cjs/client/decorators/smartAccountClient.js +43 -0
  122. package/dist/cjs/client/decorators/smartAccountClient.js.map +1 -0
  123. package/dist/cjs/client/isSmartAccountClient.d.ts +5 -0
  124. package/dist/cjs/client/isSmartAccountClient.js +18 -0
  125. package/dist/cjs/client/isSmartAccountClient.js.map +1 -0
  126. package/dist/cjs/client/schema.d.ts +767 -0
  127. package/dist/cjs/client/schema.js +63 -0
  128. package/dist/cjs/client/schema.js.map +1 -0
  129. package/dist/cjs/client/smartAccountClient.d.ts +33 -0
  130. package/dist/cjs/client/smartAccountClient.js +93 -0
  131. package/dist/cjs/client/smartAccountClient.js.map +1 -0
  132. package/dist/cjs/client/types.d.ts +26 -0
  133. package/dist/cjs/client/types.js +3 -0
  134. package/dist/cjs/client/types.js.map +1 -0
  135. package/dist/cjs/ens/utils.d.ts +6 -0
  136. package/dist/cjs/ens/utils.js +53 -0
  137. package/dist/cjs/ens/utils.js.map +1 -0
  138. package/dist/cjs/entrypoint/0.6.d.ts +1029 -0
  139. package/dist/cjs/entrypoint/0.6.js +49 -0
  140. package/dist/cjs/entrypoint/0.6.js.map +1 -0
  141. package/dist/cjs/entrypoint/0.7.d.ts +792 -0
  142. package/dist/cjs/entrypoint/0.7.js +88 -0
  143. package/dist/cjs/entrypoint/0.7.js.map +1 -0
  144. package/dist/cjs/entrypoint/index.d.ts +8 -0
  145. package/dist/cjs/entrypoint/index.js +53 -0
  146. package/dist/cjs/entrypoint/index.js.map +1 -0
  147. package/dist/cjs/entrypoint/types.d.ts +46 -0
  148. package/dist/cjs/entrypoint/types.js +3 -0
  149. package/dist/cjs/entrypoint/types.js.map +1 -0
  150. package/dist/cjs/errors/account.d.ts +47 -0
  151. package/dist/cjs/errors/account.js +140 -0
  152. package/dist/cjs/errors/account.js.map +1 -0
  153. package/dist/cjs/errors/base.d.ts +18 -0
  154. package/dist/cjs/errors/base.js +39 -0
  155. package/dist/cjs/errors/base.js.map +1 -0
  156. package/dist/cjs/errors/client.d.ts +14 -0
  157. package/dist/cjs/errors/client.js +44 -0
  158. package/dist/cjs/errors/client.js.map +1 -0
  159. package/dist/cjs/errors/entrypoint.d.ts +10 -0
  160. package/dist/cjs/errors/entrypoint.js +32 -0
  161. package/dist/cjs/errors/entrypoint.js.map +1 -0
  162. package/dist/cjs/errors/signer.d.ts +5 -0
  163. package/dist/cjs/errors/signer.js +20 -0
  164. package/dist/cjs/errors/signer.js.map +1 -0
  165. package/dist/cjs/errors/transaction.d.ts +10 -0
  166. package/dist/cjs/errors/transaction.js +29 -0
  167. package/dist/cjs/errors/transaction.js.map +1 -0
  168. package/dist/cjs/errors/useroperation.d.ts +10 -0
  169. package/dist/cjs/errors/useroperation.js +34 -0
  170. package/dist/cjs/errors/useroperation.js.map +1 -0
  171. package/dist/cjs/index.d.ts +63 -0
  172. package/dist/cjs/index.js +198 -0
  173. package/dist/cjs/index.js.map +1 -0
  174. package/dist/cjs/logger.d.ts +20 -0
  175. package/dist/cjs/logger.js +60 -0
  176. package/dist/cjs/logger.js.map +1 -0
  177. package/dist/cjs/middleware/actions.d.ts +12 -0
  178. package/dist/cjs/middleware/actions.js +37 -0
  179. package/dist/cjs/middleware/actions.js.map +1 -0
  180. package/dist/cjs/middleware/defaults/feeEstimator.d.ts +3 -0
  181. package/dist/cjs/middleware/defaults/feeEstimator.js +21 -0
  182. package/dist/cjs/middleware/defaults/feeEstimator.js.map +1 -0
  183. package/dist/cjs/middleware/defaults/gasEstimator.d.ts +3 -0
  184. package/dist/cjs/middleware/defaults/gasEstimator.js +26 -0
  185. package/dist/cjs/middleware/defaults/gasEstimator.js.map +1 -0
  186. package/dist/cjs/middleware/defaults/paymasterAndData.d.ts +2 -0
  187. package/dist/cjs/middleware/defaults/paymasterAndData.js +12 -0
  188. package/dist/cjs/middleware/defaults/paymasterAndData.js.map +1 -0
  189. package/dist/cjs/middleware/defaults/userOpSigner.d.ts +2 -0
  190. package/dist/cjs/middleware/defaults/userOpSigner.js +26 -0
  191. package/dist/cjs/middleware/defaults/userOpSigner.js.map +1 -0
  192. package/dist/cjs/middleware/noopMiddleware.d.ts +2 -0
  193. package/dist/cjs/middleware/noopMiddleware.js +8 -0
  194. package/dist/cjs/middleware/noopMiddleware.js.map +1 -0
  195. package/dist/cjs/middleware/types.d.ts +21 -0
  196. package/dist/cjs/middleware/types.js +3 -0
  197. package/dist/cjs/middleware/types.js.map +1 -0
  198. package/dist/cjs/package.json +1 -0
  199. package/dist/cjs/signer/local-account.d.ts +219 -0
  200. package/dist/cjs/signer/local-account.js +56 -0
  201. package/dist/cjs/signer/local-account.js.map +1 -0
  202. package/dist/cjs/signer/schema.d.ts +4 -0
  203. package/dist/cjs/signer/schema.js +16 -0
  204. package/dist/cjs/signer/schema.js.map +1 -0
  205. package/dist/cjs/signer/types.d.ts +15 -0
  206. package/dist/cjs/signer/types.js +3 -0
  207. package/dist/cjs/signer/types.js.map +1 -0
  208. package/dist/cjs/signer/utils.d.ts +15 -0
  209. package/dist/cjs/signer/utils.js +31 -0
  210. package/dist/cjs/signer/utils.js.map +1 -0
  211. package/dist/cjs/signer/wallet-client.d.ts +217 -0
  212. package/dist/cjs/signer/wallet-client.js +58 -0
  213. package/dist/cjs/signer/wallet-client.js.map +1 -0
  214. package/dist/cjs/transport/split.d.ts +9 -0
  215. package/dist/cjs/transport/split.js +26 -0
  216. package/dist/cjs/transport/split.js.map +1 -0
  217. package/dist/cjs/types.d.ts +158 -0
  218. package/dist/cjs/types.js +3 -0
  219. package/dist/cjs/types.js.map +1 -0
  220. package/dist/cjs/utils/bigint.d.ts +10 -0
  221. package/dist/cjs/utils/bigint.js +55 -0
  222. package/dist/cjs/utils/bigint.js.map +1 -0
  223. package/dist/cjs/utils/bytes.d.ts +7 -0
  224. package/dist/cjs/utils/bytes.js +11 -0
  225. package/dist/cjs/utils/bytes.js.map +1 -0
  226. package/dist/cjs/utils/defaults.d.ts +6 -0
  227. package/dist/cjs/utils/defaults.js +59 -0
  228. package/dist/cjs/utils/defaults.js.map +1 -0
  229. package/dist/cjs/utils/index.d.ts +23 -0
  230. package/dist/cjs/utils/index.js +127 -0
  231. package/dist/cjs/utils/index.js.map +1 -0
  232. package/dist/cjs/utils/schema.d.ts +25 -0
  233. package/dist/cjs/utils/schema.js +35 -0
  234. package/dist/cjs/utils/schema.js.map +1 -0
  235. package/dist/cjs/utils/stateOverride.d.ts +4 -0
  236. package/dist/cjs/utils/stateOverride.js +52 -0
  237. package/dist/cjs/utils/stateOverride.js.map +1 -0
  238. package/dist/cjs/utils/testUtils.d.ts +6 -0
  239. package/dist/cjs/utils/testUtils.js +33 -0
  240. package/dist/cjs/utils/testUtils.js.map +1 -0
  241. package/dist/cjs/utils/types.d.ts +16 -0
  242. package/dist/cjs/utils/types.js +3 -0
  243. package/dist/cjs/utils/types.js.map +1 -0
  244. package/dist/cjs/utils/userop.d.ts +49 -0
  245. package/dist/cjs/utils/userop.js +75 -0
  246. package/dist/cjs/utils/userop.js.map +1 -0
  247. package/dist/cjs/version.d.ts +1 -0
  248. package/dist/cjs/version.js +5 -0
  249. package/dist/cjs/version.js.map +1 -0
  250. package/dist/esm/abis/EntryPointAbi_v6.d.ts +1018 -0
  251. package/dist/esm/abis/EntryPointAbi_v6.js +1310 -0
  252. package/dist/esm/abis/EntryPointAbi_v6.js.map +1 -0
  253. package/dist/esm/abis/EntryPointAbi_v7.d.ts +775 -0
  254. package/dist/esm/abis/EntryPointAbi_v7.js +658 -0
  255. package/dist/esm/abis/EntryPointAbi_v7.js.map +1 -0
  256. package/dist/esm/abis/SimpleAccountAbi_v6.d.ts +405 -0
  257. package/dist/esm/abis/SimpleAccountAbi_v6.js +525 -0
  258. package/dist/esm/abis/SimpleAccountAbi_v6.js.map +1 -0
  259. package/dist/esm/abis/SimpleAccountAbi_v7.d.ts +410 -0
  260. package/dist/esm/abis/SimpleAccountAbi_v7.js +535 -0
  261. package/dist/esm/abis/SimpleAccountAbi_v7.js.map +1 -0
  262. package/dist/esm/abis/SimpleAccountFactoryAbi.d.ts +55 -0
  263. package/dist/esm/abis/SimpleAccountFactoryAbi.js +75 -0
  264. package/dist/esm/abis/SimpleAccountFactoryAbi.js.map +1 -0
  265. package/dist/esm/account/base.d.ts +49 -0
  266. package/dist/esm/account/base.js +253 -0
  267. package/dist/esm/account/base.js.map +1 -0
  268. package/dist/esm/account/schema.d.ts +100 -0
  269. package/dist/esm/account/schema.js +35 -0
  270. package/dist/esm/account/schema.js.map +1 -0
  271. package/dist/esm/account/simple.d.ts +14 -0
  272. package/dist/esm/account/simple.js +115 -0
  273. package/dist/esm/account/simple.js.map +1 -0
  274. package/dist/esm/account/smartContractAccount.d.ts +68 -0
  275. package/dist/esm/account/smartContractAccount.js +167 -0
  276. package/dist/esm/account/smartContractAccount.js.map +1 -0
  277. package/dist/esm/account/types.d.ts +30 -0
  278. package/dist/esm/account/types.js +2 -0
  279. package/dist/esm/account/types.js.map +1 -0
  280. package/dist/esm/actions/bundler/estimateUserOperationGas.d.ts +8 -0
  281. package/dist/esm/actions/bundler/estimateUserOperationGas.js +14 -0
  282. package/dist/esm/actions/bundler/estimateUserOperationGas.js.map +1 -0
  283. package/dist/esm/actions/bundler/getSupportedEntryPoints.d.ts +3 -0
  284. package/dist/esm/actions/bundler/getSupportedEntryPoints.js +7 -0
  285. package/dist/esm/actions/bundler/getSupportedEntryPoints.js.map +1 -0
  286. package/dist/esm/actions/bundler/getUserOperationByHash.d.ts +6 -0
  287. package/dist/esm/actions/bundler/getUserOperationByHash.js +7 -0
  288. package/dist/esm/actions/bundler/getUserOperationByHash.js.map +1 -0
  289. package/dist/esm/actions/bundler/getUserOperationReceipt.d.ts +6 -0
  290. package/dist/esm/actions/bundler/getUserOperationReceipt.js +7 -0
  291. package/dist/esm/actions/bundler/getUserOperationReceipt.js.map +1 -0
  292. package/dist/esm/actions/bundler/sendRawUserOperation.d.ts +7 -0
  293. package/dist/esm/actions/bundler/sendRawUserOperation.js +7 -0
  294. package/dist/esm/actions/bundler/sendRawUserOperation.js.map +1 -0
  295. package/dist/esm/actions/smartAccount/buildUserOperation.d.ts +5 -0
  296. package/dist/esm/actions/smartAccount/buildUserOperation.js +22 -0
  297. package/dist/esm/actions/smartAccount/buildUserOperation.js.map +1 -0
  298. package/dist/esm/actions/smartAccount/buildUserOperationFromTx.d.ts +5 -0
  299. package/dist/esm/actions/smartAccount/buildUserOperationFromTx.js +36 -0
  300. package/dist/esm/actions/smartAccount/buildUserOperationFromTx.js.map +1 -0
  301. package/dist/esm/actions/smartAccount/buildUserOperationFromTxs.d.ts +4 -0
  302. package/dist/esm/actions/smartAccount/buildUserOperationFromTxs.js +58 -0
  303. package/dist/esm/actions/smartAccount/buildUserOperationFromTxs.js.map +1 -0
  304. package/dist/esm/actions/smartAccount/checkGasSponsorshipEligibility.d.ts +4 -0
  305. package/dist/esm/actions/smartAccount/checkGasSponsorshipEligibility.js +30 -0
  306. package/dist/esm/actions/smartAccount/checkGasSponsorshipEligibility.js.map +1 -0
  307. package/dist/esm/actions/smartAccount/dropAndReplaceUserOperation.d.ts +5 -0
  308. package/dist/esm/actions/smartAccount/dropAndReplaceUserOperation.js +60 -0
  309. package/dist/esm/actions/smartAccount/dropAndReplaceUserOperation.js.map +1 -0
  310. package/dist/esm/actions/smartAccount/estimateUserOperationGas.d.ts +5 -0
  311. package/dist/esm/actions/smartAccount/estimateUserOperationGas.js +20 -0
  312. package/dist/esm/actions/smartAccount/estimateUserOperationGas.js.map +1 -0
  313. package/dist/esm/actions/smartAccount/getAddress.d.ts +4 -0
  314. package/dist/esm/actions/smartAccount/getAddress.js +9 -0
  315. package/dist/esm/actions/smartAccount/getAddress.js.map +1 -0
  316. package/dist/esm/actions/smartAccount/internal/initUserOperation.d.ts +7 -0
  317. package/dist/esm/actions/smartAccount/internal/initUserOperation.js +38 -0
  318. package/dist/esm/actions/smartAccount/internal/initUserOperation.js.map +1 -0
  319. package/dist/esm/actions/smartAccount/internal/runMiddlewareStack.d.ts +10 -0
  320. package/dist/esm/actions/smartAccount/internal/runMiddlewareStack.js +43 -0
  321. package/dist/esm/actions/smartAccount/internal/runMiddlewareStack.js.map +1 -0
  322. package/dist/esm/actions/smartAccount/internal/sendUserOperation.d.ts +10 -0
  323. package/dist/esm/actions/smartAccount/internal/sendUserOperation.js +24 -0
  324. package/dist/esm/actions/smartAccount/internal/sendUserOperation.js.map +1 -0
  325. package/dist/esm/actions/smartAccount/sendTransaction.d.ts +5 -0
  326. package/dist/esm/actions/smartAccount/sendTransaction.js +31 -0
  327. package/dist/esm/actions/smartAccount/sendTransaction.js.map +1 -0
  328. package/dist/esm/actions/smartAccount/sendTransactions.d.ts +4 -0
  329. package/dist/esm/actions/smartAccount/sendTransactions.js +32 -0
  330. package/dist/esm/actions/smartAccount/sendTransactions.js.map +1 -0
  331. package/dist/esm/actions/smartAccount/sendUserOperation.d.ts +5 -0
  332. package/dist/esm/actions/smartAccount/sendUserOperation.js +27 -0
  333. package/dist/esm/actions/smartAccount/sendUserOperation.js.map +1 -0
  334. package/dist/esm/actions/smartAccount/signMessage.d.ts +6 -0
  335. package/dist/esm/actions/smartAccount/signMessage.js +8 -0
  336. package/dist/esm/actions/smartAccount/signMessage.js.map +1 -0
  337. package/dist/esm/actions/smartAccount/signMessageWith6492.d.ts +4 -0
  338. package/dist/esm/actions/smartAccount/signMessageWith6492.js +8 -0
  339. package/dist/esm/actions/smartAccount/signMessageWith6492.js.map +1 -0
  340. package/dist/esm/actions/smartAccount/signTypedData.d.ts +10 -0
  341. package/dist/esm/actions/smartAccount/signTypedData.js +8 -0
  342. package/dist/esm/actions/smartAccount/signTypedData.js.map +1 -0
  343. package/dist/esm/actions/smartAccount/signTypedDataWith6492.d.ts +6 -0
  344. package/dist/esm/actions/smartAccount/signTypedDataWith6492.js +8 -0
  345. package/dist/esm/actions/smartAccount/signTypedDataWith6492.js.map +1 -0
  346. package/dist/esm/actions/smartAccount/signUserOperation.d.ts +5 -0
  347. package/dist/esm/actions/smartAccount/signUserOperation.js +26 -0
  348. package/dist/esm/actions/smartAccount/signUserOperation.js.map +1 -0
  349. package/dist/esm/actions/smartAccount/types.d.ts +42 -0
  350. package/dist/esm/actions/smartAccount/types.js +2 -0
  351. package/dist/esm/actions/smartAccount/types.js.map +1 -0
  352. package/dist/esm/actions/smartAccount/upgradeAccount.d.ts +4 -0
  353. package/dist/esm/actions/smartAccount/upgradeAccount.js +34 -0
  354. package/dist/esm/actions/smartAccount/upgradeAccount.js.map +1 -0
  355. package/dist/esm/actions/smartAccount/waitForUserOperationTransacation.d.ts +3 -0
  356. package/dist/esm/actions/smartAccount/waitForUserOperationTransacation.js +32 -0
  357. package/dist/esm/actions/smartAccount/waitForUserOperationTransacation.js.map +1 -0
  358. package/dist/esm/chains/index.d.ts +20 -0
  359. package/dist/esm/chains/index.js +166 -0
  360. package/dist/esm/chains/index.js.map +1 -0
  361. package/dist/esm/client/bundlerClient.d.ts +10 -0
  362. package/dist/esm/client/bundlerClient.js +46 -0
  363. package/dist/esm/client/bundlerClient.js.map +1 -0
  364. package/dist/esm/client/decorators/bundlerClient.d.ts +41 -0
  365. package/dist/esm/client/decorators/bundlerClient.js +13 -0
  366. package/dist/esm/client/decorators/bundlerClient.js.map +1 -0
  367. package/dist/esm/client/decorators/smartAccountClient.d.ts +35 -0
  368. package/dist/esm/client/decorators/smartAccountClient.js +40 -0
  369. package/dist/esm/client/decorators/smartAccountClient.js.map +1 -0
  370. package/dist/esm/client/isSmartAccountClient.d.ts +5 -0
  371. package/dist/esm/client/isSmartAccountClient.js +13 -0
  372. package/dist/esm/client/isSmartAccountClient.js.map +1 -0
  373. package/dist/esm/client/schema.d.ts +767 -0
  374. package/dist/esm/client/schema.js +59 -0
  375. package/dist/esm/client/schema.js.map +1 -0
  376. package/dist/esm/client/smartAccountClient.d.ts +33 -0
  377. package/dist/esm/client/smartAccountClient.js +90 -0
  378. package/dist/esm/client/smartAccountClient.js.map +1 -0
  379. package/dist/esm/client/types.d.ts +26 -0
  380. package/dist/esm/client/types.js +2 -0
  381. package/dist/esm/client/types.js.map +1 -0
  382. package/dist/esm/ens/utils.d.ts +6 -0
  383. package/dist/esm/ens/utils.js +24 -0
  384. package/dist/esm/ens/utils.js.map +1 -0
  385. package/dist/esm/entrypoint/0.6.d.ts +1029 -0
  386. package/dist/esm/entrypoint/0.6.js +47 -0
  387. package/dist/esm/entrypoint/0.6.js.map +1 -0
  388. package/dist/esm/entrypoint/0.7.d.ts +792 -0
  389. package/dist/esm/entrypoint/0.7.js +82 -0
  390. package/dist/esm/entrypoint/0.7.js.map +1 -0
  391. package/dist/esm/entrypoint/index.d.ts +8 -0
  392. package/dist/esm/entrypoint/index.js +46 -0
  393. package/dist/esm/entrypoint/index.js.map +1 -0
  394. package/dist/esm/entrypoint/types.d.ts +46 -0
  395. package/dist/esm/entrypoint/types.js +2 -0
  396. package/dist/esm/entrypoint/types.js.map +1 -0
  397. package/dist/esm/errors/account.d.ts +47 -0
  398. package/dist/esm/errors/account.js +126 -0
  399. package/dist/esm/errors/account.js.map +1 -0
  400. package/dist/esm/errors/base.d.ts +18 -0
  401. package/dist/esm/errors/base.js +35 -0
  402. package/dist/esm/errors/base.js.map +1 -0
  403. package/dist/esm/errors/client.d.ts +14 -0
  404. package/dist/esm/errors/client.js +38 -0
  405. package/dist/esm/errors/client.js.map +1 -0
  406. package/dist/esm/errors/entrypoint.d.ts +10 -0
  407. package/dist/esm/errors/entrypoint.js +27 -0
  408. package/dist/esm/errors/entrypoint.js.map +1 -0
  409. package/dist/esm/errors/signer.d.ts +5 -0
  410. package/dist/esm/errors/signer.js +16 -0
  411. package/dist/esm/errors/signer.js.map +1 -0
  412. package/dist/esm/errors/transaction.d.ts +10 -0
  413. package/dist/esm/errors/transaction.js +24 -0
  414. package/dist/esm/errors/transaction.js.map +1 -0
  415. package/dist/esm/errors/useroperation.d.ts +10 -0
  416. package/dist/esm/errors/useroperation.js +29 -0
  417. package/dist/esm/errors/useroperation.js.map +1 -0
  418. package/dist/esm/index.d.ts +63 -0
  419. package/dist/esm/index.js +48 -0
  420. package/dist/esm/index.js.map +1 -0
  421. package/dist/esm/logger.d.ts +20 -0
  422. package/dist/esm/logger.js +56 -0
  423. package/dist/esm/logger.js.map +1 -0
  424. package/dist/esm/middleware/actions.d.ts +12 -0
  425. package/dist/esm/middleware/actions.js +33 -0
  426. package/dist/esm/middleware/actions.js.map +1 -0
  427. package/dist/esm/middleware/defaults/feeEstimator.d.ts +3 -0
  428. package/dist/esm/middleware/defaults/feeEstimator.js +17 -0
  429. package/dist/esm/middleware/defaults/feeEstimator.js.map +1 -0
  430. package/dist/esm/middleware/defaults/gasEstimator.d.ts +3 -0
  431. package/dist/esm/middleware/defaults/gasEstimator.js +22 -0
  432. package/dist/esm/middleware/defaults/gasEstimator.js.map +1 -0
  433. package/dist/esm/middleware/defaults/paymasterAndData.d.ts +2 -0
  434. package/dist/esm/middleware/defaults/paymasterAndData.js +8 -0
  435. package/dist/esm/middleware/defaults/paymasterAndData.js.map +1 -0
  436. package/dist/esm/middleware/defaults/userOpSigner.d.ts +2 -0
  437. package/dist/esm/middleware/defaults/userOpSigner.js +22 -0
  438. package/dist/esm/middleware/defaults/userOpSigner.js.map +1 -0
  439. package/dist/esm/middleware/noopMiddleware.d.ts +2 -0
  440. package/dist/esm/middleware/noopMiddleware.js +4 -0
  441. package/dist/esm/middleware/noopMiddleware.js.map +1 -0
  442. package/dist/esm/middleware/types.d.ts +21 -0
  443. package/dist/esm/middleware/types.js +2 -0
  444. package/dist/esm/middleware/types.js.map +1 -0
  445. package/dist/esm/package.json +1 -0
  446. package/dist/esm/signer/local-account.d.ts +219 -0
  447. package/dist/esm/signer/local-account.js +53 -0
  448. package/dist/esm/signer/local-account.js.map +1 -0
  449. package/dist/esm/signer/schema.d.ts +4 -0
  450. package/dist/esm/signer/schema.js +12 -0
  451. package/dist/esm/signer/schema.js.map +1 -0
  452. package/dist/esm/signer/types.d.ts +15 -0
  453. package/dist/esm/signer/types.js +2 -0
  454. package/dist/esm/signer/types.js.map +1 -0
  455. package/dist/esm/signer/utils.d.ts +15 -0
  456. package/dist/esm/signer/utils.js +26 -0
  457. package/dist/esm/signer/utils.js.map +1 -0
  458. package/dist/esm/signer/wallet-client.d.ts +217 -0
  459. package/dist/esm/signer/wallet-client.js +54 -0
  460. package/dist/esm/signer/wallet-client.js.map +1 -0
  461. package/dist/esm/transport/split.d.ts +9 -0
  462. package/dist/esm/transport/split.js +22 -0
  463. package/dist/esm/transport/split.js.map +1 -0
  464. package/dist/esm/types.d.ts +158 -0
  465. package/dist/esm/types.js +2 -0
  466. package/dist/esm/types.js.map +1 -0
  467. package/dist/esm/utils/bigint.d.ts +10 -0
  468. package/dist/esm/utils/bigint.js +47 -0
  469. package/dist/esm/utils/bigint.js.map +1 -0
  470. package/dist/esm/utils/bytes.d.ts +7 -0
  471. package/dist/esm/utils/bytes.js +7 -0
  472. package/dist/esm/utils/bytes.js.map +1 -0
  473. package/dist/esm/utils/defaults.d.ts +6 -0
  474. package/dist/esm/utils/defaults.js +55 -0
  475. package/dist/esm/utils/defaults.js.map +1 -0
  476. package/dist/esm/utils/index.d.ts +23 -0
  477. package/dist/esm/utils/index.js +88 -0
  478. package/dist/esm/utils/index.js.map +1 -0
  479. package/dist/esm/utils/schema.d.ts +25 -0
  480. package/dist/esm/utils/schema.js +30 -0
  481. package/dist/esm/utils/schema.js.map +1 -0
  482. package/dist/esm/utils/stateOverride.d.ts +4 -0
  483. package/dist/esm/utils/stateOverride.js +48 -0
  484. package/dist/esm/utils/stateOverride.js.map +1 -0
  485. package/dist/esm/utils/testUtils.d.ts +6 -0
  486. package/dist/esm/utils/testUtils.js +28 -0
  487. package/dist/esm/utils/testUtils.js.map +1 -0
  488. package/dist/esm/utils/types.d.ts +16 -0
  489. package/dist/esm/utils/types.js +2 -0
  490. package/dist/esm/utils/types.js.map +1 -0
  491. package/dist/esm/utils/userop.d.ts +49 -0
  492. package/dist/esm/utils/userop.js +62 -0
  493. package/dist/esm/utils/userop.js.map +1 -0
  494. package/dist/esm/version.d.ts +1 -0
  495. package/dist/esm/version.js +2 -0
  496. package/dist/esm/version.js.map +1 -0
  497. package/dist/types/abis/EntryPointAbi_v6.d.ts +1019 -0
  498. package/dist/types/abis/EntryPointAbi_v6.d.ts.map +1 -0
  499. package/dist/types/abis/EntryPointAbi_v7.d.ts +776 -0
  500. package/dist/types/abis/EntryPointAbi_v7.d.ts.map +1 -0
  501. package/dist/types/abis/SimpleAccountAbi_v6.d.ts +406 -0
  502. package/dist/types/abis/SimpleAccountAbi_v6.d.ts.map +1 -0
  503. package/dist/types/abis/SimpleAccountAbi_v7.d.ts +411 -0
  504. package/dist/types/abis/SimpleAccountAbi_v7.d.ts.map +1 -0
  505. package/dist/types/abis/SimpleAccountFactoryAbi.d.ts +56 -0
  506. package/dist/types/abis/SimpleAccountFactoryAbi.d.ts.map +1 -0
  507. package/dist/types/account/base.d.ts +128 -0
  508. package/dist/types/account/base.d.ts.map +1 -0
  509. package/dist/types/account/schema.d.ts +101 -0
  510. package/dist/types/account/schema.d.ts.map +1 -0
  511. package/dist/types/account/simple.d.ts +15 -0
  512. package/dist/types/account/simple.d.ts.map +1 -0
  513. package/dist/types/account/smartContractAccount.d.ts +69 -0
  514. package/dist/types/account/smartContractAccount.d.ts.map +1 -0
  515. package/dist/types/account/types.d.ts +144 -0
  516. package/dist/types/account/types.d.ts.map +1 -0
  517. package/dist/types/actions/bundler/estimateUserOperationGas.d.ts +9 -0
  518. package/dist/types/actions/bundler/estimateUserOperationGas.d.ts.map +1 -0
  519. package/dist/types/actions/bundler/getSupportedEntryPoints.d.ts +4 -0
  520. package/dist/types/actions/bundler/getSupportedEntryPoints.d.ts.map +1 -0
  521. package/dist/types/actions/bundler/getUserOperationByHash.d.ts +7 -0
  522. package/dist/types/actions/bundler/getUserOperationByHash.d.ts.map +1 -0
  523. package/dist/types/actions/bundler/getUserOperationReceipt.d.ts +7 -0
  524. package/dist/types/actions/bundler/getUserOperationReceipt.d.ts.map +1 -0
  525. package/dist/types/actions/bundler/sendRawUserOperation.d.ts +8 -0
  526. package/dist/types/actions/bundler/sendRawUserOperation.d.ts.map +1 -0
  527. package/dist/types/actions/smartAccount/buildUserOperation.d.ts +6 -0
  528. package/dist/types/actions/smartAccount/buildUserOperation.d.ts.map +1 -0
  529. package/dist/types/actions/smartAccount/buildUserOperationFromTx.d.ts +45 -0
  530. package/dist/types/actions/smartAccount/buildUserOperationFromTx.d.ts.map +1 -0
  531. package/dist/types/actions/smartAccount/buildUserOperationFromTxs.d.ts +75 -0
  532. package/dist/types/actions/smartAccount/buildUserOperationFromTxs.d.ts.map +1 -0
  533. package/dist/types/actions/smartAccount/checkGasSponsorshipEligibility.d.ts +33 -0
  534. package/dist/types/actions/smartAccount/checkGasSponsorshipEligibility.d.ts.map +1 -0
  535. package/dist/types/actions/smartAccount/dropAndReplaceUserOperation.d.ts +6 -0
  536. package/dist/types/actions/smartAccount/dropAndReplaceUserOperation.d.ts.map +1 -0
  537. package/dist/types/actions/smartAccount/estimateUserOperationGas.d.ts +19 -0
  538. package/dist/types/actions/smartAccount/estimateUserOperationGas.d.ts.map +1 -0
  539. package/dist/types/actions/smartAccount/getAddress.d.ts +5 -0
  540. package/dist/types/actions/smartAccount/getAddress.d.ts.map +1 -0
  541. package/dist/types/actions/smartAccount/internal/initUserOperation.d.ts +22 -0
  542. package/dist/types/actions/smartAccount/internal/initUserOperation.d.ts.map +1 -0
  543. package/dist/types/actions/smartAccount/internal/runMiddlewareStack.d.ts +25 -0
  544. package/dist/types/actions/smartAccount/internal/runMiddlewareStack.d.ts.map +1 -0
  545. package/dist/types/actions/smartAccount/internal/sendUserOperation.d.ts +18 -0
  546. package/dist/types/actions/smartAccount/internal/sendUserOperation.d.ts.map +1 -0
  547. package/dist/types/actions/smartAccount/sendTransaction.d.ts +6 -0
  548. package/dist/types/actions/smartAccount/sendTransaction.d.ts.map +1 -0
  549. package/dist/types/actions/smartAccount/sendTransactions.d.ts +5 -0
  550. package/dist/types/actions/smartAccount/sendTransactions.d.ts.map +1 -0
  551. package/dist/types/actions/smartAccount/sendUserOperation.d.ts +13 -0
  552. package/dist/types/actions/smartAccount/sendUserOperation.d.ts.map +1 -0
  553. package/dist/types/actions/smartAccount/signMessage.d.ts +7 -0
  554. package/dist/types/actions/smartAccount/signMessage.d.ts.map +1 -0
  555. package/dist/types/actions/smartAccount/signMessageWith6492.d.ts +5 -0
  556. package/dist/types/actions/smartAccount/signMessageWith6492.d.ts.map +1 -0
  557. package/dist/types/actions/smartAccount/signTypedData.d.ts +11 -0
  558. package/dist/types/actions/smartAccount/signTypedData.d.ts.map +1 -0
  559. package/dist/types/actions/smartAccount/signTypedDataWith6492.d.ts +7 -0
  560. package/dist/types/actions/smartAccount/signTypedDataWith6492.d.ts.map +1 -0
  561. package/dist/types/actions/smartAccount/signUserOperation.d.ts +6 -0
  562. package/dist/types/actions/smartAccount/signUserOperation.d.ts.map +1 -0
  563. package/dist/types/actions/smartAccount/types.d.ts +57 -0
  564. package/dist/types/actions/smartAccount/types.d.ts.map +1 -0
  565. package/dist/types/actions/smartAccount/upgradeAccount.d.ts +5 -0
  566. package/dist/types/actions/smartAccount/upgradeAccount.d.ts.map +1 -0
  567. package/dist/types/actions/smartAccount/waitForUserOperationTransacation.d.ts +4 -0
  568. package/dist/types/actions/smartAccount/waitForUserOperationTransacation.d.ts.map +1 -0
  569. package/dist/types/chains/index.d.ts +21 -0
  570. package/dist/types/chains/index.d.ts.map +1 -0
  571. package/dist/types/client/bundlerClient.d.ts +17 -0
  572. package/dist/types/client/bundlerClient.d.ts.map +1 -0
  573. package/dist/types/client/decorators/bundlerClient.d.ts +74 -0
  574. package/dist/types/client/decorators/bundlerClient.d.ts.map +1 -0
  575. package/dist/types/client/decorators/smartAccountClient.d.ts +36 -0
  576. package/dist/types/client/decorators/smartAccountClient.d.ts.map +1 -0
  577. package/dist/types/client/isSmartAccountClient.d.ts +22 -0
  578. package/dist/types/client/isSmartAccountClient.d.ts.map +1 -0
  579. package/dist/types/client/schema.d.ts +780 -0
  580. package/dist/types/client/schema.d.ts.map +1 -0
  581. package/dist/types/client/smartAccountClient.d.ts +34 -0
  582. package/dist/types/client/smartAccountClient.d.ts.map +1 -0
  583. package/dist/types/client/types.d.ts +27 -0
  584. package/dist/types/client/types.d.ts.map +1 -0
  585. package/dist/types/ens/utils.d.ts +7 -0
  586. package/dist/types/ens/utils.d.ts.map +1 -0
  587. package/dist/types/entrypoint/0.6.d.ts +1030 -0
  588. package/dist/types/entrypoint/0.6.d.ts.map +1 -0
  589. package/dist/types/entrypoint/0.7.d.ts +793 -0
  590. package/dist/types/entrypoint/0.7.d.ts.map +1 -0
  591. package/dist/types/entrypoint/index.d.ts +9 -0
  592. package/dist/types/entrypoint/index.d.ts.map +1 -0
  593. package/dist/types/entrypoint/types.d.ts +64 -0
  594. package/dist/types/entrypoint/types.d.ts.map +1 -0
  595. package/dist/types/errors/account.d.ts +48 -0
  596. package/dist/types/errors/account.d.ts.map +1 -0
  597. package/dist/types/errors/base.d.ts +19 -0
  598. package/dist/types/errors/base.d.ts.map +1 -0
  599. package/dist/types/errors/client.d.ts +15 -0
  600. package/dist/types/errors/client.d.ts.map +1 -0
  601. package/dist/types/errors/entrypoint.d.ts +11 -0
  602. package/dist/types/errors/entrypoint.d.ts.map +1 -0
  603. package/dist/types/errors/signer.d.ts +6 -0
  604. package/dist/types/errors/signer.d.ts.map +1 -0
  605. package/dist/types/errors/transaction.d.ts +11 -0
  606. package/dist/types/errors/transaction.d.ts.map +1 -0
  607. package/dist/types/errors/useroperation.d.ts +36 -0
  608. package/dist/types/errors/useroperation.d.ts.map +1 -0
  609. package/dist/types/index.d.ts +64 -0
  610. package/dist/types/index.d.ts.map +1 -0
  611. package/dist/types/logger.d.ts +21 -0
  612. package/dist/types/logger.d.ts.map +1 -0
  613. package/dist/types/middleware/actions.d.ts +27 -0
  614. package/dist/types/middleware/actions.d.ts.map +1 -0
  615. package/dist/types/middleware/defaults/feeEstimator.d.ts +4 -0
  616. package/dist/types/middleware/defaults/feeEstimator.d.ts.map +1 -0
  617. package/dist/types/middleware/defaults/gasEstimator.d.ts +12 -0
  618. package/dist/types/middleware/defaults/gasEstimator.d.ts.map +1 -0
  619. package/dist/types/middleware/defaults/paymasterAndData.d.ts +3 -0
  620. package/dist/types/middleware/defaults/paymasterAndData.d.ts.map +1 -0
  621. package/dist/types/middleware/defaults/userOpSigner.d.ts +3 -0
  622. package/dist/types/middleware/defaults/userOpSigner.d.ts.map +1 -0
  623. package/dist/types/middleware/noopMiddleware.d.ts +10 -0
  624. package/dist/types/middleware/noopMiddleware.d.ts.map +1 -0
  625. package/dist/types/middleware/types.d.ts +22 -0
  626. package/dist/types/middleware/types.d.ts.map +1 -0
  627. package/dist/types/signer/local-account.d.ts +220 -0
  628. package/dist/types/signer/local-account.d.ts.map +1 -0
  629. package/dist/types/signer/schema.d.ts +5 -0
  630. package/dist/types/signer/schema.d.ts.map +1 -0
  631. package/dist/types/signer/types.d.ts +28 -0
  632. package/dist/types/signer/types.d.ts.map +1 -0
  633. package/dist/types/signer/utils.d.ts +16 -0
  634. package/dist/types/signer/utils.d.ts.map +1 -0
  635. package/dist/types/signer/wallet-client.d.ts +218 -0
  636. package/dist/types/signer/wallet-client.d.ts.map +1 -0
  637. package/dist/types/transport/split.d.ts +42 -0
  638. package/dist/types/transport/split.d.ts.map +1 -0
  639. package/dist/types/types.d.ts +176 -0
  640. package/dist/types/types.d.ts.map +1 -0
  641. package/dist/types/utils/bigint.d.ts +56 -0
  642. package/dist/types/utils/bigint.d.ts.map +1 -0
  643. package/dist/types/utils/bytes.d.ts +17 -0
  644. package/dist/types/utils/bytes.d.ts.map +1 -0
  645. package/dist/types/utils/defaults.d.ts +15 -0
  646. package/dist/types/utils/defaults.d.ts.map +1 -0
  647. package/dist/types/utils/index.d.ts +63 -0
  648. package/dist/types/utils/index.d.ts.map +1 -0
  649. package/dist/types/utils/schema.d.ts +29 -0
  650. package/dist/types/utils/schema.d.ts.map +1 -0
  651. package/dist/types/utils/stateOverride.d.ts +5 -0
  652. package/dist/types/utils/stateOverride.d.ts.map +1 -0
  653. package/dist/types/utils/testUtils.d.ts +7 -0
  654. package/dist/types/utils/testUtils.d.ts.map +1 -0
  655. package/dist/types/utils/types.d.ts +39 -0
  656. package/dist/types/utils/types.d.ts.map +1 -0
  657. package/dist/types/utils/userop.d.ts +129 -0
  658. package/dist/types/utils/userop.d.ts.map +1 -0
  659. package/dist/types/version.d.ts +2 -0
  660. package/dist/types/version.d.ts.map +1 -0
  661. package/package.json +70 -0
  662. package/src/abis/EntryPointAbi_v6.ts +1309 -0
  663. package/src/abis/EntryPointAbi_v7.ts +658 -0
  664. package/src/abis/SimpleAccountAbi_v6.ts +524 -0
  665. package/src/abis/SimpleAccountAbi_v7.ts +534 -0
  666. package/src/abis/SimpleAccountFactoryAbi.ts +74 -0
  667. package/src/account/base.ts +415 -0
  668. package/src/account/schema.ts +51 -0
  669. package/src/account/simple.ts +215 -0
  670. package/src/account/smartContractAccount.ts +406 -0
  671. package/src/account/types.ts +184 -0
  672. package/src/actions/bundler/estimateUserOperationGas.ts +32 -0
  673. package/src/actions/bundler/getSupportedEntryPoints.ts +13 -0
  674. package/src/actions/bundler/getUserOperationByHash.ts +17 -0
  675. package/src/actions/bundler/getUserOperationReceipt.ts +17 -0
  676. package/src/actions/bundler/sendRawUserOperation.ts +20 -0
  677. package/src/actions/smartAccount/buildUserOperation.ts +52 -0
  678. package/src/actions/smartAccount/buildUserOperationFromTx.ts +112 -0
  679. package/src/actions/smartAccount/buildUserOperationFromTxs.ts +168 -0
  680. package/src/actions/smartAccount/checkGasSponsorshipEligibility.ts +86 -0
  681. package/src/actions/smartAccount/dropAndReplaceUserOperation.ts +111 -0
  682. package/src/actions/smartAccount/estimateUserOperationGas.ts +65 -0
  683. package/src/actions/smartAccount/getAddress.ts +25 -0
  684. package/src/actions/smartAccount/internal/initUserOperation.ts +93 -0
  685. package/src/actions/smartAccount/internal/runMiddlewareStack.ts +121 -0
  686. package/src/actions/smartAccount/internal/sendUserOperation.ts +64 -0
  687. package/src/actions/smartAccount/sendTransaction.ts +73 -0
  688. package/src/actions/smartAccount/sendTransactions.ts +53 -0
  689. package/src/actions/smartAccount/sendUserOperation.ts +65 -0
  690. package/src/actions/smartAccount/signMessage.ts +28 -0
  691. package/src/actions/smartAccount/signMessageWith6492.ts +21 -0
  692. package/src/actions/smartAccount/signTypedData.ts +42 -0
  693. package/src/actions/smartAccount/signTypedDataWith6492.ts +23 -0
  694. package/src/actions/smartAccount/signUserOperation.ts +54 -0
  695. package/src/actions/smartAccount/types.ts +158 -0
  696. package/src/actions/smartAccount/upgradeAccount.ts +66 -0
  697. package/src/actions/smartAccount/waitForUserOperationTransacation.ts +58 -0
  698. package/src/chains/index.ts +194 -0
  699. package/src/client/bundlerClient.ts +107 -0
  700. package/src/client/decorators/bundlerClient.ts +129 -0
  701. package/src/client/decorators/smartAccountClient.ts +177 -0
  702. package/src/client/isSmartAccountClient.ts +53 -0
  703. package/src/client/schema.ts +92 -0
  704. package/src/client/smartAccountClient.ts +276 -0
  705. package/src/client/types.ts +51 -0
  706. package/src/ens/utils.ts +37 -0
  707. package/src/entrypoint/0.6.ts +74 -0
  708. package/src/entrypoint/0.7.ts +153 -0
  709. package/src/entrypoint/index.ts +152 -0
  710. package/src/entrypoint/types.ts +120 -0
  711. package/src/errors/account.ts +87 -0
  712. package/src/errors/base.ts +48 -0
  713. package/src/errors/client.ts +28 -0
  714. package/src/errors/entrypoint.ts +25 -0
  715. package/src/errors/signer.ts +13 -0
  716. package/src/errors/transaction.ts +16 -0
  717. package/src/errors/useroperation.ts +54 -0
  718. package/src/index.ts +172 -0
  719. package/src/logger.ts +58 -0
  720. package/src/middleware/actions.ts +92 -0
  721. package/src/middleware/defaults/feeEstimator.ts +50 -0
  722. package/src/middleware/defaults/gasEstimator.ts +66 -0
  723. package/src/middleware/defaults/paymasterAndData.ts +13 -0
  724. package/src/middleware/defaults/userOpSigner.ts +35 -0
  725. package/src/middleware/noopMiddleware.ts +12 -0
  726. package/src/middleware/types.ts +49 -0
  727. package/src/signer/local-account.ts +59 -0
  728. package/src/signer/schema.ts +16 -0
  729. package/src/signer/types.ts +46 -0
  730. package/src/signer/utils.ts +68 -0
  731. package/src/signer/wallet-client.ts +49 -0
  732. package/src/transport/split.ts +69 -0
  733. package/src/types.ts +411 -0
  734. package/src/utils/bigint.ts +118 -0
  735. package/src/utils/bytes.ts +23 -0
  736. package/src/utils/defaults.ts +93 -0
  737. package/src/utils/index.ts +173 -0
  738. package/src/utils/schema.ts +52 -0
  739. package/src/utils/stateOverride.ts +80 -0
  740. package/src/utils/testUtils.ts +42 -0
  741. package/src/utils/types.ts +94 -0
  742. package/src/utils/userop.ts +220 -0
  743. package/src/version.ts +3 -0
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSimpleSmartAccount = void 0;
4
+ const viem_1 = require("viem");
5
+ const SimpleAccountAbi_v6_js_1 = require("../abis/SimpleAccountAbi_v6.js");
6
+ const SimpleAccountAbi_v7_js_1 = require("../abis/SimpleAccountAbi_v7.js");
7
+ const SimpleAccountFactoryAbi_js_1 = require("../abis/SimpleAccountFactoryAbi.js");
8
+ const bundlerClient_js_1 = require("../client/bundlerClient.js");
9
+ const index_js_1 = require("../entrypoint/index.js");
10
+ const account_js_1 = require("../errors/account.js");
11
+ const defaults_js_1 = require("../utils/defaults.js");
12
+ const base_js_1 = require("./base.js");
13
+ const schema_js_1 = require("./schema.js");
14
+ const smartContractAccount_js_1 = require("./smartContractAccount.js");
15
+ class SimpleSmartContractAccount extends base_js_1.BaseSmartContractAccount {
16
+ constructor(params) {
17
+ (0, schema_js_1.SimpleSmartAccountParamsSchema)().parse(params);
18
+ const client = (0, bundlerClient_js_1.createBundlerClient)({
19
+ transport: params.transport,
20
+ chain: params.chain,
21
+ });
22
+ super({ ...params, rpcClient: client });
23
+ Object.defineProperty(this, "index", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: void 0
28
+ });
29
+ Object.defineProperty(this, "entryPointVersion", {
30
+ enumerable: true,
31
+ configurable: true,
32
+ writable: true,
33
+ value: void 0
34
+ });
35
+ this.signer = params.signer;
36
+ this.index = params.salt ?? 0n;
37
+ this.entryPointVersion =
38
+ params.entryPointVersion ?? index_js_1.defaultEntryPointVersion;
39
+ }
40
+ getDummySignature() {
41
+ return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
42
+ }
43
+ async encodeExecute(target, value, data) {
44
+ return (0, viem_1.encodeFunctionData)({
45
+ abi: this.entryPointVersion === "0.6.0"
46
+ ? SimpleAccountAbi_v6_js_1.SimpleAccountAbi_v6
47
+ : SimpleAccountAbi_v7_js_1.SimpleAccountAbi_v7,
48
+ functionName: "execute",
49
+ args: [target, value, data],
50
+ });
51
+ }
52
+ async encodeBatchExecute(txs) {
53
+ const [targets, datas] = txs.reduce((accum, curr) => {
54
+ accum[0].push(curr.target);
55
+ accum[1].push(curr.data);
56
+ return accum;
57
+ }, [[], []]);
58
+ return (0, viem_1.encodeFunctionData)({
59
+ abi: this.entryPointVersion === "0.6.0"
60
+ ? SimpleAccountAbi_v6_js_1.SimpleAccountAbi_v6
61
+ : SimpleAccountAbi_v7_js_1.SimpleAccountAbi_v7,
62
+ functionName: "executeBatch",
63
+ args: [targets, datas],
64
+ });
65
+ }
66
+ signMessage(msg) {
67
+ return this.signer.signMessage(typeof msg === "string" && !(0, viem_1.isHex)(msg) ? msg : { raw: msg });
68
+ }
69
+ async getAccountInitCode() {
70
+ return (0, viem_1.concatHex)([
71
+ this.factoryAddress,
72
+ (0, viem_1.encodeFunctionData)({
73
+ abi: SimpleAccountFactoryAbi_js_1.SimpleAccountFactoryAbi,
74
+ functionName: "createAccount",
75
+ args: [await this.signer.getAddress(), this.index],
76
+ }),
77
+ ]);
78
+ }
79
+ }
80
+ async function createSimpleSmartAccount({ chain, entryPoint = (0, index_js_1.getEntryPoint)(chain), factoryAddress = (0, defaults_js_1.getDefaultSimpleAccountFactoryAddress)(chain, entryPoint.version), ...params }) {
81
+ if (!params.signer)
82
+ throw new account_js_1.AccountRequiresOwnerError("SimpleAccount");
83
+ const simpleAccount = new SimpleSmartContractAccount((0, schema_js_1.SimpleSmartAccountParamsSchema)().parse({
84
+ chain,
85
+ entryPointAddress: entryPoint.address,
86
+ factoryAddress,
87
+ ...params,
88
+ }));
89
+ const parsedParams = (0, schema_js_1.SimpleSmartAccountParamsSchema)().parse({
90
+ chain,
91
+ entryPointAddress: entryPoint.address,
92
+ entryPointVersion: entryPoint.version,
93
+ factoryAddress,
94
+ ...params,
95
+ });
96
+ const base = await (0, smartContractAccount_js_1.toSmartContractAccount)({
97
+ source: "SimpleAccount",
98
+ transport: params.transport,
99
+ chain,
100
+ encodeBatchExecute: simpleAccount.encodeBatchExecute.bind(simpleAccount),
101
+ encodeExecute: (tx) => simpleAccount.encodeExecute.bind(simpleAccount)(tx.target, tx.value ?? 0n, tx.data),
102
+ entryPoint,
103
+ getAccountInitCode: async () => {
104
+ if (parsedParams.initCode)
105
+ return parsedParams.initCode;
106
+ return simpleAccount.getAccountInitCode();
107
+ },
108
+ getDummySignature: simpleAccount.getDummySignature.bind(simpleAccount),
109
+ signMessage: ({ message }) => simpleAccount.signMessage(typeof message === "string" ? message : message.raw),
110
+ signTypedData: simpleAccount.signTypedData.bind(simpleAccount),
111
+ accountAddress: parsedParams.accountAddress,
112
+ });
113
+ return {
114
+ ...base,
115
+ getSigner: () => simpleAccount.getSigner(),
116
+ };
117
+ }
118
+ exports.createSimpleSmartAccount = createSimpleSmartAccount;
119
+ //# sourceMappingURL=simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../src/account/simple.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Address } from \"abitype\";\nimport {\n concatHex,\n encodeFunctionData,\n isHex,\n type Chain,\n type FallbackTransport,\n type Hex,\n type Transport,\n} from \"viem\";\nimport { SimpleAccountAbi_v6 } from \"../abis/SimpleAccountAbi_v6.js\";\nimport { SimpleAccountAbi_v7 } from \"../abis/SimpleAccountAbi_v7.js\";\nimport { SimpleAccountFactoryAbi } from \"../abis/SimpleAccountFactoryAbi.js\";\nimport { createBundlerClient } from \"../client/bundlerClient.js\";\nimport {\n defaultEntryPointVersion,\n getEntryPoint,\n} from \"../entrypoint/index.js\";\nimport type {\n DefaultEntryPointVersion,\n EntryPointParameter,\n EntryPointVersion,\n} from \"../entrypoint/types.js\";\nimport { AccountRequiresOwnerError } from \"../errors/account.js\";\nimport type { SmartAccountSigner } from \"../signer/types.js\";\nimport type { BatchUserOperationCallData } from \"../types.js\";\nimport { getDefaultSimpleAccountFactoryAddress } from \"../utils/defaults.js\";\nimport { BaseSmartContractAccount } from \"./base.js\";\nimport { SimpleSmartAccountParamsSchema } from \"./schema.js\";\nimport {\n toSmartContractAccount,\n type SmartContractAccountWithSigner,\n type ToSmartContractAccountParams,\n} from \"./smartContractAccount.js\";\nimport type { SimpleSmartAccountParams } from \"./types.js\";\n\nclass SimpleSmartContractAccount<\n TTransport extends Transport | FallbackTransport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner\n> extends BaseSmartContractAccount<TTransport, TSigner> {\n protected index: bigint;\n protected entryPointVersion: EntryPointVersion;\n\n constructor(params: SimpleSmartAccountParams<TTransport, TSigner>) {\n SimpleSmartAccountParamsSchema().parse(params);\n\n // This is a hack for now, we should kill the SimpleSmart Account when we kill Base Account\n const client = createBundlerClient({\n transport: params.transport as TTransport,\n chain: params.chain,\n });\n\n // @ts-expect-error zod custom type not recognized as required params for signers\n super({ ...params, rpcClient: client });\n this.signer = params.signer as TSigner;\n this.index = params.salt ?? 0n;\n this.entryPointVersion =\n params.entryPointVersion ?? defaultEntryPointVersion;\n }\n\n getDummySignature(): `0x${string}` {\n return \"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c\";\n }\n\n async encodeExecute(\n target: Hex,\n value: bigint,\n data: Hex\n ): Promise<`0x${string}`> {\n return encodeFunctionData({\n abi:\n this.entryPointVersion === \"0.6.0\"\n ? SimpleAccountAbi_v6\n : SimpleAccountAbi_v7,\n functionName: \"execute\",\n args: [target, value, data],\n });\n }\n\n override async encodeBatchExecute(\n txs: BatchUserOperationCallData\n ): Promise<`0x${string}`> {\n const [targets, datas] = txs.reduce(\n (accum, curr) => {\n accum[0].push(curr.target);\n accum[1].push(curr.data);\n\n return accum;\n },\n [[], []] as [Address[], Hex[]]\n );\n\n return encodeFunctionData({\n abi:\n this.entryPointVersion === \"0.6.0\"\n ? SimpleAccountAbi_v6\n : SimpleAccountAbi_v7,\n functionName: \"executeBatch\",\n args: [targets, datas],\n });\n }\n\n signMessage(msg: Uint8Array | string): Promise<`0x${string}`> {\n return this.signer.signMessage(\n typeof msg === \"string\" && !isHex(msg) ? msg : { raw: msg }\n );\n }\n\n public async getAccountInitCode(): Promise<`0x${string}`> {\n return concatHex([\n this.factoryAddress,\n encodeFunctionData({\n abi: SimpleAccountFactoryAbi,\n functionName: \"createAccount\",\n args: [await this.signer.getAddress(), this.index],\n }),\n ]);\n }\n}\n\nexport type SimpleSmartAccount<\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n> = SmartContractAccountWithSigner<\n \"SimpleAccount\",\n TSigner,\n TEntryPointVersion\n>;\n\nexport type CreateSimpleAccountParams<\n TTransport extends Transport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TEntryPointVersion extends EntryPointVersion = DefaultEntryPointVersion\n> = Pick<\n ToSmartContractAccountParams<\n \"SimpleAccount\",\n TTransport,\n Chain,\n TEntryPointVersion\n >,\n \"chain\" | \"transport\"\n> & {\n signer: TSigner;\n salt?: bigint;\n accountAddress?: Address;\n factoryAddress?: Address;\n initCode?: Hex;\n} & EntryPointParameter<TEntryPointVersion, Chain>;\n\nexport async function createSimpleSmartAccount<\n TTransport extends Transport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TEntryPointVersion extends EntryPointVersion = DefaultEntryPointVersion\n>(\n config: CreateSimpleAccountParams<TTransport, TSigner, TEntryPointVersion>\n): Promise<SimpleSmartAccount<TSigner, TEntryPointVersion>>;\n\nexport async function createSimpleSmartAccount({\n chain,\n entryPoint = getEntryPoint(chain),\n factoryAddress = getDefaultSimpleAccountFactoryAddress(\n chain,\n entryPoint.version\n ),\n ...params\n}: CreateSimpleAccountParams): Promise<SimpleSmartAccount> {\n if (!params.signer) throw new AccountRequiresOwnerError(\"SimpleAccount\");\n const simpleAccount = new SimpleSmartContractAccount(\n SimpleSmartAccountParamsSchema().parse({\n chain,\n entryPointAddress: entryPoint.address,\n factoryAddress,\n ...params,\n })\n );\n\n const parsedParams = SimpleSmartAccountParamsSchema().parse({\n chain,\n entryPointAddress: entryPoint.address,\n entryPointVersion: entryPoint.version,\n factoryAddress,\n ...params,\n });\n\n const base = await toSmartContractAccount({\n source: \"SimpleAccount\",\n transport: params.transport,\n chain,\n encodeBatchExecute: simpleAccount.encodeBatchExecute.bind(simpleAccount),\n encodeExecute: (tx) =>\n simpleAccount.encodeExecute.bind(simpleAccount)(\n tx.target,\n tx.value ?? 0n,\n tx.data\n ),\n entryPoint,\n getAccountInitCode: async () => {\n if (parsedParams.initCode) return parsedParams.initCode as Hex;\n return simpleAccount.getAccountInitCode();\n },\n getDummySignature: simpleAccount.getDummySignature.bind(simpleAccount),\n signMessage: ({ message }) =>\n simpleAccount.signMessage(\n typeof message === \"string\" ? message : message.raw\n ),\n // @ts-expect-error these types still represent the same thing, but they are just a little off in there definitions\n signTypedData: simpleAccount.signTypedData.bind(simpleAccount),\n accountAddress: parsedParams.accountAddress,\n });\n\n return {\n ...base,\n getSigner: () => simpleAccount.getSigner(),\n };\n}\n"]}
@@ -0,0 +1,68 @@
1
+ import { type Address, type Chain, type CustomSource, type Hex, type LocalAccount, type PublicClient, type SignableMessage, type Transport, type TypedData, type TypedDataDefinition } from "viem";
2
+ import type { EntryPointDef, EntryPointRegistryBase, EntryPointVersion } from "../entrypoint/types.js";
3
+ import type { SmartAccountSigner } from "../signer/types.js";
4
+ import type { NullAddress } from "../types.js";
5
+ import type { IsUndefined } from "../utils/types.js";
6
+ export type AccountOp = {
7
+ target: Address;
8
+ value?: bigint;
9
+ data: Hex | "0x";
10
+ };
11
+ export type GetEntryPointFromAccount<TAccount extends SmartContractAccount | undefined, TAccountOverride extends SmartContractAccount = SmartContractAccount> = GetAccountParameter<TAccount, TAccountOverride> extends SmartContractAccount<string, infer TEntryPointVersion> ? TEntryPointVersion : EntryPointVersion;
12
+ export type GetAccountParameter<TAccount extends SmartContractAccount | undefined = SmartContractAccount | undefined, TAccountOverride extends SmartContractAccount = SmartContractAccount> = IsUndefined<TAccount> extends true ? {
13
+ account: TAccountOverride;
14
+ } : {
15
+ account?: TAccountOverride;
16
+ };
17
+ export type UpgradeToAndCallParams = {
18
+ upgradeToAddress: Address;
19
+ upgradeToInitData: Hex;
20
+ };
21
+ export type SmartContractAccountWithSigner<Name extends string = string, TSigner extends SmartAccountSigner = SmartAccountSigner, TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = SmartContractAccount<Name, TEntryPointVersion> & {
22
+ getSigner: () => TSigner;
23
+ };
24
+ export declare const isSmartAccountWithSigner: (account: SmartContractAccount) => account is SmartContractAccountWithSigner<string, SmartAccountSigner<any>, keyof EntryPointRegistryBase<unknown>>;
25
+ export type SmartContractAccount<Name extends string = string, TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = LocalAccount<Name> & {
26
+ source: Name;
27
+ getDummySignature: () => Hex | Promise<Hex>;
28
+ encodeExecute: (tx: AccountOp) => Promise<Hex>;
29
+ encodeBatchExecute: (txs: AccountOp[]) => Promise<Hex>;
30
+ signUserOperationHash: (uoHash: Hex) => Promise<Hex>;
31
+ signMessageWith6492: (params: {
32
+ message: SignableMessage;
33
+ }) => Promise<Hex>;
34
+ signTypedDataWith6492: <const typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(typedDataDefinition: TypedDataDefinition<typedData, primaryType>) => Promise<Hex>;
35
+ encodeUpgradeToAndCall: (params: UpgradeToAndCallParams) => Promise<Hex>;
36
+ getNonce(nonceKey?: bigint): Promise<bigint>;
37
+ getInitCode: () => Promise<Hex>;
38
+ isAccountDeployed: () => Promise<boolean>;
39
+ getFactoryAddress: () => Promise<Address>;
40
+ getFactoryData: () => Promise<Hex>;
41
+ getEntryPoint: () => EntryPointDef<TEntryPointVersion>;
42
+ getImplementationAddress: () => Promise<NullAddress | Address>;
43
+ };
44
+ export interface AccountEntryPointRegistry<Name extends string = string> extends EntryPointRegistryBase<SmartContractAccount<Name, EntryPointVersion>> {
45
+ "0.6.0": SmartContractAccount<Name, "0.6.0">;
46
+ "0.7.0": SmartContractAccount<Name, "0.7.0">;
47
+ }
48
+ export type ToSmartContractAccountParams<Name extends string = string, TTransport extends Transport = Transport, TChain extends Chain = Chain, TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = {
49
+ source: Name;
50
+ transport: TTransport;
51
+ chain: TChain;
52
+ entryPoint: EntryPointDef<TEntryPointVersion, TChain>;
53
+ accountAddress?: Address;
54
+ getAccountInitCode: () => Promise<Hex>;
55
+ getDummySignature: () => Hex | Promise<Hex>;
56
+ encodeExecute: (tx: AccountOp) => Promise<Hex>;
57
+ encodeBatchExecute?: (txs: AccountOp[]) => Promise<Hex>;
58
+ signUserOperationHash?: (uoHash: Hex) => Promise<Hex>;
59
+ encodeUpgradeToAndCall?: (params: UpgradeToAndCallParams) => Promise<Hex>;
60
+ } & Omit<CustomSource, "signTransaction" | "address">;
61
+ export declare const parseFactoryAddressFromAccountInitCode: (initCode: Hex) => [Address, Hex];
62
+ export declare const getAccountAddress: ({ client, entryPoint, accountAddress, getAccountInitCode, }: {
63
+ client: PublicClient;
64
+ entryPoint: EntryPointDef;
65
+ accountAddress?: `0x${string}` | undefined;
66
+ getAccountInitCode: () => Promise<Hex>;
67
+ }) => Promise<`0x${string}`>;
68
+ export declare function toSmartContractAccount<Name extends string = string, TTransport extends Transport = Transport, TChain extends Chain = Chain, TEntryPointVersion extends EntryPointVersion = EntryPointVersion>({ transport, chain, entryPoint, source, accountAddress, getAccountInitCode, signMessage, signTypedData, encodeBatchExecute, encodeExecute, getDummySignature, signUserOperationHash, encodeUpgradeToAndCall, }: ToSmartContractAccountParams<Name, TTransport, TChain, TEntryPointVersion>): Promise<SmartContractAccount<Name, TEntryPointVersion>>;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSmartContractAccount = exports.getAccountAddress = exports.parseFactoryAddressFromAccountInitCode = exports.isSmartAccountWithSigner = void 0;
4
+ const viem_1 = require("viem");
5
+ const accounts_1 = require("viem/accounts");
6
+ const bundlerClient_js_1 = require("../client/bundlerClient.js");
7
+ const account_js_1 = require("../errors/account.js");
8
+ const client_js_1 = require("../errors/client.js");
9
+ const entrypoint_js_1 = require("../errors/entrypoint.js");
10
+ const logger_js_1 = require("../logger.js");
11
+ const utils_js_1 = require("../signer/utils.js");
12
+ const base_js_1 = require("./base.js");
13
+ const isSmartAccountWithSigner = (account) => {
14
+ return "getSigner" in account;
15
+ };
16
+ exports.isSmartAccountWithSigner = isSmartAccountWithSigner;
17
+ const parseFactoryAddressFromAccountInitCode = (initCode) => {
18
+ const factoryAddress = `0x${initCode.substring(2, 42)}`;
19
+ const factoryCalldata = `0x${initCode.substring(42)}`;
20
+ return [factoryAddress, factoryCalldata];
21
+ };
22
+ exports.parseFactoryAddressFromAccountInitCode = parseFactoryAddressFromAccountInitCode;
23
+ const getAccountAddress = async ({ client, entryPoint, accountAddress, getAccountInitCode, }) => {
24
+ if (accountAddress)
25
+ return accountAddress;
26
+ const entryPointContract = (0, viem_1.getContract)({
27
+ address: entryPoint.address,
28
+ abi: entryPoint.abi,
29
+ client,
30
+ });
31
+ const initCode = await getAccountInitCode();
32
+ logger_js_1.Logger.verbose("[BaseSmartContractAccount](getAddress) initCode: ", initCode);
33
+ try {
34
+ await entryPointContract.simulate.getSenderAddress([initCode]);
35
+ }
36
+ catch (err) {
37
+ logger_js_1.Logger.verbose("[BaseSmartContractAccount](getAddress) getSenderAddress err: ", err);
38
+ if (err.cause?.data?.errorName === "SenderAddressResult") {
39
+ logger_js_1.Logger.verbose("[BaseSmartContractAccount](getAddress) entryPoint.getSenderAddress result:", err.cause.data.args[0]);
40
+ return err.cause.data.args[0];
41
+ }
42
+ if (err.details === "Invalid URL") {
43
+ throw new client_js_1.InvalidRpcUrlError();
44
+ }
45
+ }
46
+ throw new account_js_1.GetCounterFactualAddressError();
47
+ };
48
+ exports.getAccountAddress = getAccountAddress;
49
+ async function toSmartContractAccount({ transport, chain, entryPoint, source, accountAddress, getAccountInitCode, signMessage, signTypedData, encodeBatchExecute, encodeExecute, getDummySignature, signUserOperationHash, encodeUpgradeToAndCall, }) {
50
+ const client = (0, bundlerClient_js_1.createBundlerClient)({
51
+ transport: (opts) => transport({ ...opts, chain, retryCount: 0 }),
52
+ chain,
53
+ });
54
+ const entryPointContract = (0, viem_1.getContract)({
55
+ address: entryPoint.address,
56
+ abi: entryPoint.abi,
57
+ client,
58
+ });
59
+ const accountAddress_ = await (0, exports.getAccountAddress)({
60
+ client,
61
+ entryPoint: entryPoint,
62
+ accountAddress,
63
+ getAccountInitCode,
64
+ });
65
+ let deploymentState = base_js_1.DeploymentState.UNDEFINED;
66
+ const getInitCode = async () => {
67
+ if (deploymentState === base_js_1.DeploymentState.DEPLOYED) {
68
+ return "0x";
69
+ }
70
+ const contractCode = await client.getBytecode({
71
+ address: accountAddress_,
72
+ });
73
+ if ((contractCode?.length ?? 0) > 2) {
74
+ deploymentState = base_js_1.DeploymentState.DEPLOYED;
75
+ return "0x";
76
+ }
77
+ else {
78
+ deploymentState = base_js_1.DeploymentState.NOT_DEPLOYED;
79
+ }
80
+ return getAccountInitCode();
81
+ };
82
+ const signUserOperationHash_ = signUserOperationHash ??
83
+ (async (uoHash) => {
84
+ return signMessage({ message: { raw: (0, viem_1.hexToBytes)(uoHash) } });
85
+ });
86
+ const getFactoryAddress = async () => (0, exports.parseFactoryAddressFromAccountInitCode)(await getAccountInitCode())[0];
87
+ const getFactoryData = async () => (0, exports.parseFactoryAddressFromAccountInitCode)(await getAccountInitCode())[1];
88
+ const encodeUpgradeToAndCall_ = encodeUpgradeToAndCall ??
89
+ (() => {
90
+ throw new account_js_1.UpgradesNotSupportedError(source);
91
+ });
92
+ const isAccountDeployed = async () => {
93
+ const initCode = await getInitCode();
94
+ return initCode === "0x";
95
+ };
96
+ const getNonce = async (nonceKey = 0n) => {
97
+ if (!(await isAccountDeployed())) {
98
+ return 0n;
99
+ }
100
+ return entryPointContract.read.getNonce([
101
+ accountAddress_,
102
+ nonceKey,
103
+ ]);
104
+ };
105
+ const account = (0, accounts_1.toAccount)({
106
+ address: accountAddress_,
107
+ signMessage,
108
+ signTypedData,
109
+ signTransaction: () => {
110
+ throw new account_js_1.SignTransactionNotSupportedError();
111
+ },
112
+ });
113
+ const create6492Signature = async (isDeployed, signature) => {
114
+ if (isDeployed) {
115
+ return signature;
116
+ }
117
+ const [factoryAddress, factoryCalldata] = (0, exports.parseFactoryAddressFromAccountInitCode)(await getAccountInitCode());
118
+ return (0, utils_js_1.wrapSignatureWith6492)({
119
+ factoryAddress,
120
+ factoryCalldata,
121
+ signature,
122
+ });
123
+ };
124
+ const signMessageWith6492 = async (message) => {
125
+ const [isDeployed, signature] = await Promise.all([
126
+ isAccountDeployed(),
127
+ account.signMessage(message),
128
+ ]);
129
+ return create6492Signature(isDeployed, signature);
130
+ };
131
+ const signTypedDataWith6492 = async (typedDataDefinition) => {
132
+ const [isDeployed, signature] = await Promise.all([
133
+ isAccountDeployed(),
134
+ account.signTypedData(typedDataDefinition),
135
+ ]);
136
+ return create6492Signature(isDeployed, signature);
137
+ };
138
+ const getImplementationAddress = async () => {
139
+ const storage = await client.getStorageAt({
140
+ address: account.address,
141
+ slot: "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
142
+ });
143
+ if (storage == null) {
144
+ throw new account_js_1.FailedToGetStorageSlotError("0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", "Proxy Implementation Address");
145
+ }
146
+ return (0, viem_1.trim)(storage);
147
+ };
148
+ if (entryPoint.version !== "0.6.0" && entryPoint.version !== "0.7.0") {
149
+ throw new entrypoint_js_1.InvalidEntryPointError(chain, entryPoint.version);
150
+ }
151
+ return {
152
+ ...account,
153
+ source,
154
+ signUserOperationHash: signUserOperationHash_,
155
+ getFactoryAddress,
156
+ getFactoryData,
157
+ encodeBatchExecute: encodeBatchExecute ??
158
+ (() => {
159
+ throw new account_js_1.BatchExecutionNotSupportedError(source);
160
+ }),
161
+ encodeExecute,
162
+ getDummySignature,
163
+ getInitCode,
164
+ encodeUpgradeToAndCall: encodeUpgradeToAndCall_,
165
+ getEntryPoint: () => entryPoint,
166
+ isAccountDeployed,
167
+ getNonce,
168
+ signMessageWith6492,
169
+ signTypedDataWith6492,
170
+ getImplementationAddress,
171
+ };
172
+ }
173
+ exports.toSmartContractAccount = toSmartContractAccount;
174
+ //# sourceMappingURL=smartContractAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smartContractAccount.js","sourceRoot":"","sources":["../../../src/account/smartContractAccount.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getContract,\n hexToBytes,\n trim,\n type Address,\n type Chain,\n type CustomSource,\n type Hex,\n type LocalAccount,\n type PublicClient,\n type SignableMessage,\n type Transport,\n type TypedData,\n type TypedDataDefinition,\n} from \"viem\";\nimport { toAccount } from \"viem/accounts\";\nimport { createBundlerClient } from \"../client/bundlerClient.js\";\nimport type {\n EntryPointDef,\n EntryPointRegistryBase,\n EntryPointVersion,\n} from \"../entrypoint/types.js\";\nimport {\n BatchExecutionNotSupportedError,\n FailedToGetStorageSlotError,\n GetCounterFactualAddressError,\n SignTransactionNotSupportedError,\n UpgradesNotSupportedError,\n} from \"../errors/account.js\";\nimport { InvalidRpcUrlError } from \"../errors/client.js\";\nimport { InvalidEntryPointError } from \"../errors/entrypoint.js\";\nimport { Logger } from \"../logger.js\";\nimport type { SmartAccountSigner } from \"../signer/types.js\";\nimport { wrapSignatureWith6492 } from \"../signer/utils.js\";\nimport type { NullAddress } from \"../types.js\";\nimport type { IsUndefined } from \"../utils/types.js\";\nimport { DeploymentState } from \"./base.js\";\n\nexport type AccountOp = {\n target: Address;\n value?: bigint;\n data: Hex | \"0x\";\n};\n\nexport type GetEntryPointFromAccount<\n TAccount extends SmartContractAccount | undefined,\n TAccountOverride extends SmartContractAccount = SmartContractAccount\n> = GetAccountParameter<\n TAccount,\n TAccountOverride\n> extends SmartContractAccount<string, infer TEntryPointVersion>\n ? TEntryPointVersion\n : EntryPointVersion;\n\nexport type GetAccountParameter<\n TAccount extends SmartContractAccount | undefined =\n | SmartContractAccount\n | undefined,\n TAccountOverride extends SmartContractAccount = SmartContractAccount\n> = IsUndefined<TAccount> extends true\n ? { account: TAccountOverride }\n : { account?: TAccountOverride };\n\nexport type UpgradeToAndCallParams = {\n upgradeToAddress: Address;\n upgradeToInitData: Hex;\n};\n\nexport type SmartContractAccountWithSigner<\n Name extends string = string,\n TSigner extends SmartAccountSigner = SmartAccountSigner,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n> = SmartContractAccount<Name, TEntryPointVersion> & {\n getSigner: () => TSigner;\n};\n\nexport const isSmartAccountWithSigner = (\n account: SmartContractAccount\n): account is SmartContractAccountWithSigner => {\n return \"getSigner\" in account;\n};\n\n// [!region SmartContractAccount]\nexport type SmartContractAccount<\n Name extends string = string,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n> = LocalAccount<Name> & {\n source: Name;\n getDummySignature: () => Hex | Promise<Hex>;\n encodeExecute: (tx: AccountOp) => Promise<Hex>;\n encodeBatchExecute: (txs: AccountOp[]) => Promise<Hex>;\n signUserOperationHash: (uoHash: Hex) => Promise<Hex>;\n signMessageWith6492: (params: { message: SignableMessage }) => Promise<Hex>;\n signTypedDataWith6492: <\n const typedData extends TypedData | Record<string, unknown>,\n primaryType extends keyof typedData | \"EIP712Domain\" = keyof typedData\n >(\n typedDataDefinition: TypedDataDefinition<typedData, primaryType>\n ) => Promise<Hex>;\n encodeUpgradeToAndCall: (params: UpgradeToAndCallParams) => Promise<Hex>;\n getNonce(nonceKey?: bigint): Promise<bigint>;\n getInitCode: () => Promise<Hex>;\n isAccountDeployed: () => Promise<boolean>;\n getFactoryAddress: () => Promise<Address>;\n getFactoryData: () => Promise<Hex>;\n getEntryPoint: () => EntryPointDef<TEntryPointVersion>;\n getImplementationAddress: () => Promise<NullAddress | Address>;\n};\n// [!endregion SmartContractAccount]\n\nexport interface AccountEntryPointRegistry<Name extends string = string>\n extends EntryPointRegistryBase<\n SmartContractAccount<Name, EntryPointVersion>\n > {\n \"0.6.0\": SmartContractAccount<Name, \"0.6.0\">;\n \"0.7.0\": SmartContractAccount<Name, \"0.7.0\">;\n}\n\n// [!region ToSmartContractAccountParams]\nexport type ToSmartContractAccountParams<\n Name extends string = string,\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n> = {\n source: Name;\n transport: TTransport;\n chain: TChain;\n entryPoint: EntryPointDef<TEntryPointVersion, TChain>;\n accountAddress?: Address;\n getAccountInitCode: () => Promise<Hex>;\n getDummySignature: () => Hex | Promise<Hex>;\n encodeExecute: (tx: AccountOp) => Promise<Hex>;\n encodeBatchExecute?: (txs: AccountOp[]) => Promise<Hex>;\n // if not provided, will default to just using signMessage over the Hex\n signUserOperationHash?: (uoHash: Hex) => Promise<Hex>;\n encodeUpgradeToAndCall?: (params: UpgradeToAndCallParams) => Promise<Hex>;\n} & Omit<CustomSource, \"signTransaction\" | \"address\">;\n// [!endregion ToSmartContractAccountParams]\n\nexport const parseFactoryAddressFromAccountInitCode = (\n initCode: Hex\n): [Address, Hex] => {\n const factoryAddress: Address = `0x${initCode.substring(2, 42)}`;\n const factoryCalldata: Hex = `0x${initCode.substring(42)}`;\n return [factoryAddress, factoryCalldata];\n};\n\nexport const getAccountAddress = async ({\n client,\n entryPoint,\n accountAddress,\n getAccountInitCode,\n}: {\n client: PublicClient;\n entryPoint: EntryPointDef;\n accountAddress?: Address;\n getAccountInitCode: () => Promise<Hex>;\n}) => {\n if (accountAddress) return accountAddress;\n\n const entryPointContract = getContract({\n address: entryPoint.address,\n abi: entryPoint.abi,\n client,\n });\n\n const initCode = await getAccountInitCode();\n Logger.verbose(\"[BaseSmartContractAccount](getAddress) initCode: \", initCode);\n\n try {\n await entryPointContract.simulate.getSenderAddress([initCode]);\n } catch (err: any) {\n Logger.verbose(\n \"[BaseSmartContractAccount](getAddress) getSenderAddress err: \",\n err\n );\n if (err.cause?.data?.errorName === \"SenderAddressResult\") {\n Logger.verbose(\n \"[BaseSmartContractAccount](getAddress) entryPoint.getSenderAddress result:\",\n err.cause.data.args[0]\n );\n\n return err.cause.data.args[0] as Address;\n }\n\n if (err.details === \"Invalid URL\") {\n throw new InvalidRpcUrlError();\n }\n }\n\n throw new GetCounterFactualAddressError();\n};\n\n// [!region toSmartContractAccount]\nexport async function toSmartContractAccount<\n Name extends string = string,\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n>({\n transport,\n chain,\n entryPoint,\n source,\n accountAddress,\n getAccountInitCode,\n signMessage,\n signTypedData,\n encodeBatchExecute,\n encodeExecute,\n getDummySignature,\n signUserOperationHash,\n encodeUpgradeToAndCall,\n}: ToSmartContractAccountParams<\n Name,\n TTransport,\n TChain,\n TEntryPointVersion\n>): Promise<SmartContractAccount<Name, TEntryPointVersion>>;\n// [!endregion toSmartContractAccount]\n\nexport async function toSmartContractAccount({\n transport,\n chain,\n entryPoint,\n source,\n accountAddress,\n getAccountInitCode,\n signMessage,\n signTypedData,\n encodeBatchExecute,\n encodeExecute,\n getDummySignature,\n signUserOperationHash,\n encodeUpgradeToAndCall,\n}: ToSmartContractAccountParams): Promise<SmartContractAccount> {\n const client = createBundlerClient({\n // we set the retry count to 0 so that viem doesn't retry during\n // getting the address. That call always reverts and without this\n // viem will retry 3 times, making this call very slow\n transport: (opts) => transport({ ...opts, chain, retryCount: 0 }),\n chain,\n });\n\n const entryPointContract = getContract({\n address: entryPoint.address,\n abi: entryPoint.abi,\n client,\n });\n\n const accountAddress_ = await getAccountAddress({\n client,\n entryPoint: entryPoint,\n accountAddress,\n getAccountInitCode,\n });\n\n let deploymentState = DeploymentState.UNDEFINED;\n\n const getInitCode = async () => {\n if (deploymentState === DeploymentState.DEPLOYED) {\n return \"0x\";\n }\n\n const contractCode = await client.getBytecode({\n address: accountAddress_,\n });\n\n if ((contractCode?.length ?? 0) > 2) {\n deploymentState = DeploymentState.DEPLOYED;\n return \"0x\";\n } else {\n deploymentState = DeploymentState.NOT_DEPLOYED;\n }\n\n return getAccountInitCode();\n };\n\n const signUserOperationHash_ =\n signUserOperationHash ??\n (async (uoHash: Hex) => {\n return signMessage({ message: { raw: hexToBytes(uoHash) } });\n });\n\n const getFactoryAddress = async (): Promise<Address> =>\n parseFactoryAddressFromAccountInitCode(await getAccountInitCode())[0];\n\n const getFactoryData = async (): Promise<Hex> =>\n parseFactoryAddressFromAccountInitCode(await getAccountInitCode())[1];\n\n const encodeUpgradeToAndCall_ =\n encodeUpgradeToAndCall ??\n (() => {\n throw new UpgradesNotSupportedError(source);\n });\n\n const isAccountDeployed = async () => {\n const initCode = await getInitCode();\n return initCode === \"0x\";\n };\n\n const getNonce = async (nonceKey = 0n): Promise<bigint> => {\n if (!(await isAccountDeployed())) {\n return 0n;\n }\n\n return entryPointContract.read.getNonce([\n accountAddress_,\n nonceKey,\n ]) as Promise<bigint>;\n };\n\n const account = toAccount({\n address: accountAddress_,\n signMessage,\n signTypedData,\n signTransaction: () => {\n throw new SignTransactionNotSupportedError();\n },\n });\n\n const create6492Signature = async (isDeployed: boolean, signature: Hex) => {\n if (isDeployed) {\n return signature;\n }\n\n const [factoryAddress, factoryCalldata] =\n parseFactoryAddressFromAccountInitCode(await getAccountInitCode());\n\n return wrapSignatureWith6492({\n factoryAddress,\n factoryCalldata,\n signature,\n });\n };\n\n const signMessageWith6492 = async (message: { message: SignableMessage }) => {\n const [isDeployed, signature] = await Promise.all([\n isAccountDeployed(),\n account.signMessage(message),\n ]);\n\n return create6492Signature(isDeployed, signature);\n };\n\n const signTypedDataWith6492 = async <\n const typedData extends TypedData | Record<string, unknown>,\n primaryType extends keyof typedData | \"EIP712Domain\" = keyof typedData\n >(\n typedDataDefinition: TypedDataDefinition<typedData, primaryType>\n ): Promise<Hex> => {\n const [isDeployed, signature] = await Promise.all([\n isAccountDeployed(),\n account.signTypedData(typedDataDefinition),\n ]);\n\n return create6492Signature(isDeployed, signature);\n };\n\n const getImplementationAddress = async (): Promise<NullAddress | Address> => {\n const storage = await client.getStorageAt({\n address: account.address,\n // This is the default slot for the implementation address for Proxies\n slot: \"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\n });\n\n if (storage == null) {\n throw new FailedToGetStorageSlotError(\n \"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\n \"Proxy Implementation Address\"\n );\n }\n\n return trim(storage);\n };\n\n if (entryPoint.version !== \"0.6.0\" && entryPoint.version !== \"0.7.0\") {\n throw new InvalidEntryPointError(chain, entryPoint.version);\n }\n\n return {\n ...account,\n source,\n // TODO: I think this should probably be signUserOperation instead\n // and allow for generating the UO hash based on the EP version\n signUserOperationHash: signUserOperationHash_,\n getFactoryAddress,\n getFactoryData,\n encodeBatchExecute:\n encodeBatchExecute ??\n (() => {\n throw new BatchExecutionNotSupportedError(source);\n }),\n encodeExecute,\n getDummySignature,\n getInitCode,\n encodeUpgradeToAndCall: encodeUpgradeToAndCall_,\n getEntryPoint: () => entryPoint,\n isAccountDeployed,\n getNonce,\n signMessageWith6492,\n signTypedDataWith6492,\n getImplementationAddress,\n };\n}\n"]}
@@ -0,0 +1,30 @@
1
+ import type { Address } from "abitype";
2
+ import type { Hash, Hex, HttpTransport, Transport } from "viem";
3
+ import type { SignTypedDataParameters } from "viem/accounts";
4
+ import type { z } from "zod";
5
+ import type { BundlerClient } from "../client/bundlerClient";
6
+ import type { SmartAccountSigner } from "../signer/types";
7
+ import type { BatchUserOperationCallData } from "../types";
8
+ import type { SimpleSmartAccountParamsSchema, createBaseSmartAccountParamsSchema } from "./schema";
9
+ export type SignTypedDataParams = Omit<SignTypedDataParameters, "privateKey">;
10
+ export type BaseSmartAccountParams<TTransport extends Transport = Transport, TSigner extends SmartAccountSigner = SmartAccountSigner> = z.input<ReturnType<typeof createBaseSmartAccountParamsSchema<TTransport, TSigner>>>;
11
+ export type SimpleSmartAccountParams<TTransport extends Transport = Transport, TSigner extends SmartAccountSigner = SmartAccountSigner> = z.input<ReturnType<typeof SimpleSmartAccountParamsSchema<TTransport, TSigner>>>;
12
+ export interface ISmartContractAccount<TTransport extends Transport = Transport, TSigner extends SmartAccountSigner = SmartAccountSigner> {
13
+ readonly rpcProvider: BundlerClient<TTransport> | BundlerClient<HttpTransport>;
14
+ getInitCode(): Promise<Hex>;
15
+ getDummySignature(): Hex | Promise<Hex>;
16
+ encodeExecute(target: string, value: bigint, data: string): Promise<Hex>;
17
+ encodeBatchExecute(txs: BatchUserOperationCallData): Promise<Hex>;
18
+ getNonce(): Promise<bigint>;
19
+ signUserOperationHash(uoHash: Hash): Promise<Hash>;
20
+ signMessage(msg: string | Uint8Array | Hex): Promise<Hex>;
21
+ signTypedData(params: SignTypedDataParams): Promise<Hash>;
22
+ signMessageWith6492(msg: string | Uint8Array | Hex): Promise<Hex>;
23
+ signTypedDataWith6492(params: SignTypedDataParams): Promise<Hash>;
24
+ getAddress(): Promise<Address>;
25
+ getSigner(): TSigner;
26
+ getFactoryAddress(): Address;
27
+ getEntryPointAddress(): Address;
28
+ extend: <R>(extendFn: (self: this) => R) => this & R;
29
+ encodeUpgradeToAndCall: (upgradeToImplAddress: Address, upgradeToInitData: Hex) => Promise<Hex>;
30
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/account/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Address } from \"abitype\";\nimport type { Hash, Hex, HttpTransport, Transport } from \"viem\";\nimport type { SignTypedDataParameters } from \"viem/accounts\";\nimport type { z } from \"zod\";\nimport type { BundlerClient } from \"../client/bundlerClient\";\nimport type { SmartAccountSigner } from \"../signer/types\";\nimport type { BatchUserOperationCallData } from \"../types\";\nimport type {\n SimpleSmartAccountParamsSchema,\n createBaseSmartAccountParamsSchema,\n} from \"./schema\";\n\n/** @deprecated */\nexport type SignTypedDataParams = Omit<SignTypedDataParameters, \"privateKey\">;\n\n/**\n * @deprecated don't use base smart account anymore, migrate to using toSmartContractAccount instead\n */\nexport type BaseSmartAccountParams<\n TTransport extends Transport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner\n> = z.input<\n ReturnType<typeof createBaseSmartAccountParamsSchema<TTransport, TSigner>>\n>;\n\nexport type SimpleSmartAccountParams<\n TTransport extends Transport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner\n> = z.input<\n ReturnType<typeof SimpleSmartAccountParamsSchema<TTransport, TSigner>>\n>;\n\n/**\n * @deprecated use `toSmartContractAccount` instead for creating instances of smart accounts\n */\nexport interface ISmartContractAccount<\n TTransport extends Transport = Transport,\n TSigner extends SmartAccountSigner = SmartAccountSigner\n> {\n /**\n * The RPC provider the account uses to make RPC calls\n */\n readonly rpcProvider:\n | BundlerClient<TTransport>\n | BundlerClient<HttpTransport>;\n\n /**\n * @returns the init code for the account\n */\n getInitCode(): Promise<Hex>;\n\n /**\n * This is useful for estimating gas costs. It should return a signature that doesn't cause the account to revert\n * when validation is run during estimation.\n *\n * @returns a dummy signature that doesn't cause the account to revert during estimation\n */\n getDummySignature(): Hex | Promise<Hex>;\n\n /**\n * Encodes a call to the account's execute function.\n *\n * @param target - the address receiving the call data\n * @param value - optionally the amount of native token to send\n * @param data - the call data or \"0x\" if empty\n */\n encodeExecute(target: string, value: bigint, data: string): Promise<Hex>;\n\n /**\n * Encodes a batch of transactions to the account's batch execute function.\n * NOTE: not all accounts support batching.\n *\n * @param txs - An Array of objects containing the target, value, and data for each transaction\n * @returns the encoded callData for a UserOperation\n */\n encodeBatchExecute(txs: BatchUserOperationCallData): Promise<Hex>;\n\n /**\n * @returns the nonce of the account\n */\n getNonce(): Promise<bigint>;\n\n /**\n * If your account handles 1271 signatures of personal_sign differently\n * than it does UserOperations, you can implement two different approaches to signing\n *\n * @param uoHash -- The hash of the UserOperation to sign\n * @returns the signature of the UserOperation\n */\n signUserOperationHash(uoHash: Hash): Promise<Hash>;\n\n /**\n * Returns a signed and prefixed message.\n *\n * @param msg - the message to sign\n * @returns the signature of the message\n */\n signMessage(msg: string | Uint8Array | Hex): Promise<Hex>;\n\n /**\n * Signs a typed data object as per ERC-712\n *\n * @param params - {@link SignTypedDataParams}\n * @returns the signed hash for the message passed\n */\n signTypedData(params: SignTypedDataParams): Promise<Hash>;\n\n /**\n * If the account is not deployed, it will sign the message and then wrap it in 6492 format\n *\n * @param msg - the message to sign\n * @returns ths signature wrapped in 6492 format\n */\n signMessageWith6492(msg: string | Uint8Array | Hex): Promise<Hex>;\n\n /**\n * If the account is not deployed, it will sign the typed data blob and then wrap it in 6492 format\n *\n * @param params - {@link SignTypedDataParams}\n * @returns the signed hash for the params passed in wrapped in 6492 format\n */\n signTypedDataWith6492(params: SignTypedDataParams): Promise<Hash>;\n\n /**\n * @returns the address of the account\n */\n getAddress(): Promise<Address>;\n\n /**\n * @returns the current account signer instance that the smart account client\n * operations are being signed with.\n *\n * The signer is expected to be the owner or one of the owners of the account\n * for the signatures to be valid for the acting account.\n */\n getSigner(): TSigner;\n\n /**\n * The factory address of the smart account created by the factory\n *\n * @returns the address of the factory contract for the smart account\n */\n getFactoryAddress(): Address;\n\n /**\n * The entrypoint address is the address ERC 4337 entrypoint singleton contract\n * that this smart account and the connected bundler client use\n *\n * @returns the address of the entry point contract for the smart account\n */\n getEntryPointAddress(): Address;\n\n /**\n * Allows you to add additional functionality and utility methods to this account\n * via a decorator pattern.\n *\n * NOTE: this method does not allow you to override existing methods on the account.\n *\n * @example\n * ```ts\n * const account = new BaseSmartCobntractAccount(...).extend((account) => ({\n * readAccountState: async (...args) => {\n * return this.rpcProvider.readContract({\n * address: await this.getAddress(),\n * abi: ThisContractsAbi\n * args: args\n * });\n * }\n * }));\n *\n * account.debugSendUserOperation(...);\n * ```\n *\n * @param extendFn -- this function gives you access to the created account instance and returns an object\n * with the extension methods\n * @returns -- the account with the extension methods added\n */\n extend: <R>(extendFn: (self: this) => R) => this & R;\n\n encodeUpgradeToAndCall: (\n upgradeToImplAddress: Address,\n upgradeToInitData: Hex\n ) => Promise<Hex>;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import type { Address, Chain, Client, StateOverride, Transport } from "viem";
2
+ import type { BundlerRpcSchema } from "../../client/decorators/bundlerClient";
3
+ import type { UserOperationEstimateGasResponse, UserOperationRequest } from "../../types";
4
+ export declare const estimateUserOperationGas: <TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>, TEntryPointVersion extends keyof import("../../entrypoint/types").EntryPointRegistryBase<unknown> = keyof import("../../entrypoint/types").EntryPointRegistryBase<unknown>>(client: TClient, args: {
5
+ request: UserOperationRequest<TEntryPointVersion>;
6
+ entryPoint: Address;
7
+ stateOverride?: StateOverride | undefined;
8
+ }) => Promise<UserOperationEstimateGasResponse<TEntryPointVersion>>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.estimateUserOperationGas = void 0;
4
+ const stateOverride_js_1 = require("../../utils/stateOverride.js");
5
+ const estimateUserOperationGas = async (client, args) => {
6
+ return client.request({
7
+ method: "eth_estimateUserOperationGas",
8
+ params: args.stateOverride != null
9
+ ? [
10
+ args.request,
11
+ args.entryPoint,
12
+ (0, stateOverride_js_1.serializeStateOverride)(args.stateOverride),
13
+ ]
14
+ : [args.request, args.entryPoint],
15
+ });
16
+ };
17
+ exports.estimateUserOperationGas = estimateUserOperationGas;
18
+ //# sourceMappingURL=estimateUserOperationGas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateUserOperationGas.js","sourceRoot":"","sources":["../../../../src/actions/bundler/estimateUserOperationGas.ts"],"names":[],"mappings":";;;AAOA,mEAAsE;AAE/D,MAAM,wBAAwB,GAAG,KAAK,EAI3C,MAAe,EACf,IAIC,EAC8D,EAAE;IACjE,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,8BAA8B;QACtC,MAAM,EACJ,IAAI,CAAC,aAAa,IAAI,IAAI;YACxB,CAAC,CAAC;gBACE,IAAI,CAAC,OAAO;gBACZ,IAAI,CAAC,UAAU;gBACf,IAAA,yCAAsB,EAAC,IAAI,CAAC,aAAa,CAAC;aAC3C;YACH,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;KACtC,CAAC,CAAC;AACL,CAAC,CAAC;AAtBW,QAAA,wBAAwB,4BAsBnC","sourcesContent":["import type { Address, Chain, Client, StateOverride, Transport } from \"viem\";\nimport type { BundlerRpcSchema } from \"../../client/decorators/bundlerClient\";\nimport type { EntryPointVersion } from \"../../entrypoint/types\";\nimport type {\n UserOperationEstimateGasResponse,\n UserOperationRequest,\n} from \"../../types\";\nimport { serializeStateOverride } from \"../../utils/stateOverride.js\";\n\nexport const estimateUserOperationGas = async <\n TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n>(\n client: TClient,\n args: {\n request: UserOperationRequest<TEntryPointVersion>;\n entryPoint: Address;\n stateOverride?: StateOverride;\n }\n): Promise<UserOperationEstimateGasResponse<TEntryPointVersion>> => {\n return client.request({\n method: \"eth_estimateUserOperationGas\",\n params:\n args.stateOverride != null\n ? [\n args.request,\n args.entryPoint,\n serializeStateOverride(args.stateOverride),\n ]\n : [args.request, args.entryPoint],\n });\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import type { Address, Chain, Client, Transport } from "viem";
2
+ import type { BundlerRpcSchema } from "../../client/decorators/bundlerClient";
3
+ export declare const getSupportedEntryPoints: <TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>>(client: TClient) => Promise<Address[]>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSupportedEntryPoints = void 0;
4
+ const getSupportedEntryPoints = async (client) => {
5
+ return client.request({
6
+ method: "eth_supportedEntryPoints",
7
+ params: [],
8
+ });
9
+ };
10
+ exports.getSupportedEntryPoints = getSupportedEntryPoints;
11
+ //# sourceMappingURL=getSupportedEntryPoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSupportedEntryPoints.js","sourceRoot":"","sources":["../../../../src/actions/bundler/getSupportedEntryPoints.ts"],"names":[],"mappings":";;;AAGO,MAAM,uBAAuB,GAAG,KAAK,EAG1C,MAAe,EACK,EAAE;IACtB,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,0BAA0B;QAClC,MAAM,EAAE,EAAE;KACX,CAAC,CAAC;AACL,CAAC,CAAC;AATW,QAAA,uBAAuB,2BASlC","sourcesContent":["import type { Address, Chain, Client, Transport } from \"viem\";\nimport type { BundlerRpcSchema } from \"../../client/decorators/bundlerClient\";\n\nexport const getSupportedEntryPoints = async <\n TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>\n>(\n client: TClient\n): Promise<Address[]> => {\n return client.request({\n method: \"eth_supportedEntryPoints\",\n params: [],\n });\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import type { Chain, Client, Hex, Transport } from "viem";
2
+ import type { BundlerRpcSchema } from "../../client/decorators/bundlerClient";
3
+ import type { UserOperationResponse } from "../../types";
4
+ export declare const getUserOperationByHash: <TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>>(client: TClient, args: {
5
+ hash: Hex;
6
+ }) => Promise<UserOperationResponse | null>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUserOperationByHash = void 0;
4
+ const getUserOperationByHash = async (client, args) => {
5
+ return client.request({
6
+ method: "eth_getUserOperationByHash",
7
+ params: [args.hash],
8
+ });
9
+ };
10
+ exports.getUserOperationByHash = getUserOperationByHash;
11
+ //# sourceMappingURL=getUserOperationByHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUserOperationByHash.js","sourceRoot":"","sources":["../../../../src/actions/bundler/getUserOperationByHash.ts"],"names":[],"mappings":";;;AAIO,MAAM,sBAAsB,GAAG,KAAK,EAGzC,MAAe,EACf,IAEC,EACsC,EAAE;IACzC,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,4BAA4B;QACpC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,sBAAsB,0BAYjC","sourcesContent":["import type { Chain, Client, Hex, Transport } from \"viem\";\nimport type { BundlerRpcSchema } from \"../../client/decorators/bundlerClient\";\nimport type { UserOperationResponse } from \"../../types\";\n\nexport const getUserOperationByHash = async <\n TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>\n>(\n client: TClient,\n args: {\n hash: Hex;\n }\n): Promise<UserOperationResponse | null> => {\n return client.request({\n method: \"eth_getUserOperationByHash\",\n params: [args.hash],\n });\n};\n"]}
@@ -0,0 +1,6 @@
1
+ import type { Chain, Client, Hex, Transport } from "viem";
2
+ import type { BundlerRpcSchema } from "../../client/decorators/bundlerClient";
3
+ import type { UserOperationReceipt } from "../../types";
4
+ export declare const getUserOperationReceipt: <TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>>(client: TClient, args: {
5
+ hash: Hex;
6
+ }) => Promise<UserOperationReceipt | null>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUserOperationReceipt = void 0;
4
+ const getUserOperationReceipt = async (client, args) => {
5
+ return client.request({
6
+ method: "eth_getUserOperationReceipt",
7
+ params: [args.hash],
8
+ });
9
+ };
10
+ exports.getUserOperationReceipt = getUserOperationReceipt;
11
+ //# sourceMappingURL=getUserOperationReceipt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUserOperationReceipt.js","sourceRoot":"","sources":["../../../../src/actions/bundler/getUserOperationReceipt.ts"],"names":[],"mappings":";;;AAIO,MAAM,uBAAuB,GAAG,KAAK,EAG1C,MAAe,EACf,IAEC,EACqC,EAAE;IACxC,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,uBAAuB,2BAYlC","sourcesContent":["import type { Chain, Client, Hex, Transport } from \"viem\";\nimport type { BundlerRpcSchema } from \"../../client/decorators/bundlerClient\";\nimport type { UserOperationReceipt } from \"../../types\";\n\nexport const getUserOperationReceipt = async <\n TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>\n>(\n client: TClient,\n args: {\n hash: Hex;\n }\n): Promise<UserOperationReceipt | null> => {\n return client.request({\n method: \"eth_getUserOperationReceipt\",\n params: [args.hash],\n });\n};\n"]}
@@ -0,0 +1,7 @@
1
+ import type { Address, Chain, Client, Hex, Transport } from "viem";
2
+ import type { BundlerRpcSchema } from "../../client/decorators/bundlerClient";
3
+ import type { UserOperationRequest } from "../../types";
4
+ export declare const sendRawUserOperation: <TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>, TEntryPointVersion extends keyof import("../../entrypoint/types").EntryPointRegistryBase<unknown> = keyof import("../../entrypoint/types").EntryPointRegistryBase<unknown>>(client: TClient, args: {
5
+ request: UserOperationRequest<TEntryPointVersion>;
6
+ entryPoint: Address;
7
+ }) => Promise<Hex>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendRawUserOperation = void 0;
4
+ const sendRawUserOperation = async (client, args) => {
5
+ return client.request({
6
+ method: "eth_sendUserOperation",
7
+ params: [args.request, args.entryPoint],
8
+ });
9
+ };
10
+ exports.sendRawUserOperation = sendRawUserOperation;
11
+ //# sourceMappingURL=sendRawUserOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendRawUserOperation.js","sourceRoot":"","sources":["../../../../src/actions/bundler/sendRawUserOperation.ts"],"names":[],"mappings":";;;AAKO,MAAM,oBAAoB,GAAG,KAAK,EAIvC,MAAe,EACf,IAGC,EACa,EAAE;IAChB,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;KACxC,CAAC,CAAC;AACL,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B","sourcesContent":["import type { Address, Chain, Client, Hex, Transport } from \"viem\";\nimport type { BundlerRpcSchema } from \"../../client/decorators/bundlerClient\";\nimport type { EntryPointVersion } from \"../../entrypoint/types\";\nimport type { UserOperationRequest } from \"../../types\";\n\nexport const sendRawUserOperation = async <\n TClient extends Client<Transport, Chain | undefined, any, BundlerRpcSchema>,\n TEntryPointVersion extends EntryPointVersion = EntryPointVersion\n>(\n client: TClient,\n args: {\n request: UserOperationRequest<TEntryPointVersion>;\n entryPoint: Address;\n }\n): Promise<Hex> => {\n return client.request({\n method: \"eth_sendUserOperation\",\n params: [args.request, args.entryPoint],\n });\n};\n"]}