@zerodev/sdk 4.0.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 (465) hide show
  1. package/README.md +450 -0
  2. package/dist/cjs/index.d.ts +21 -0
  3. package/dist/cjs/index.js +49 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.d.ts +162 -0
  6. package/dist/cjs/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.js +215 -0
  7. package/dist/cjs/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.js.map +1 -0
  8. package/dist/cjs/kernel-zerodev/abis/ERC20Abi.d.ts +39 -0
  9. package/dist/cjs/kernel-zerodev/abis/ERC20Abi.js +157 -0
  10. package/dist/cjs/kernel-zerodev/abis/ERC20Abi.js.map +1 -0
  11. package/dist/cjs/kernel-zerodev/abis/ESCDAValidatorAbi.d.ts +158 -0
  12. package/dist/cjs/kernel-zerodev/abis/ESCDAValidatorAbi.js +210 -0
  13. package/dist/cjs/kernel-zerodev/abis/ESCDAValidatorAbi.js.map +1 -0
  14. package/dist/cjs/kernel-zerodev/abis/KernelAccountAbi.d.ts +496 -0
  15. package/dist/cjs/kernel-zerodev/abis/KernelAccountAbi.js +646 -0
  16. package/dist/cjs/kernel-zerodev/abis/KernelAccountAbi.js.map +1 -0
  17. package/dist/cjs/kernel-zerodev/abis/KernelFactoryAbi.d.ts +293 -0
  18. package/dist/cjs/kernel-zerodev/abis/KernelFactoryAbi.js +384 -0
  19. package/dist/cjs/kernel-zerodev/abis/KernelFactoryAbi.js.map +1 -0
  20. package/dist/cjs/kernel-zerodev/abis/KillSwitchValidatorAbi.d.ts +150 -0
  21. package/dist/cjs/kernel-zerodev/abis/KillSwitchValidatorAbi.js +200 -0
  22. package/dist/cjs/kernel-zerodev/abis/KillSwitchValidatorAbi.js.map +1 -0
  23. package/dist/cjs/kernel-zerodev/abis/MultiSendAbi.d.ts +15 -0
  24. package/dist/cjs/kernel-zerodev/abis/MultiSendAbi.js +24 -0
  25. package/dist/cjs/kernel-zerodev/abis/MultiSendAbi.js.map +1 -0
  26. package/dist/cjs/kernel-zerodev/abis/Test_ERC20Abi.d.ts +39 -0
  27. package/dist/cjs/kernel-zerodev/abis/Test_ERC20Abi.js +161 -0
  28. package/dist/cjs/kernel-zerodev/abis/Test_ERC20Abi.js.map +1 -0
  29. package/dist/cjs/kernel-zerodev/abis/Test_ERC721Abi.d.ts +287 -0
  30. package/dist/cjs/kernel-zerodev/abis/Test_ERC721Abi.js +377 -0
  31. package/dist/cjs/kernel-zerodev/abis/Test_ERC721Abi.js.map +1 -0
  32. package/dist/cjs/kernel-zerodev/abis/TokenActionsAbi.d.ts +63 -0
  33. package/dist/cjs/kernel-zerodev/abis/TokenActionsAbi.js +85 -0
  34. package/dist/cjs/kernel-zerodev/abis/TokenActionsAbi.js.map +1 -0
  35. package/dist/cjs/kernel-zerodev/abis/index.d.ts +8 -0
  36. package/dist/cjs/kernel-zerodev/abis/index.js +18 -0
  37. package/dist/cjs/kernel-zerodev/abis/index.js.map +1 -0
  38. package/dist/cjs/kernel-zerodev/account.d.ts +35 -0
  39. package/dist/cjs/kernel-zerodev/account.js +209 -0
  40. package/dist/cjs/kernel-zerodev/account.js.map +1 -0
  41. package/dist/cjs/kernel-zerodev/api/index.d.ts +1 -0
  42. package/dist/cjs/kernel-zerodev/api/index.js +24 -0
  43. package/dist/cjs/kernel-zerodev/api/index.js.map +1 -0
  44. package/dist/cjs/kernel-zerodev/client/create-client.d.ts +11 -0
  45. package/dist/cjs/kernel-zerodev/client/create-client.js +21 -0
  46. package/dist/cjs/kernel-zerodev/client/create-client.js.map +1 -0
  47. package/dist/cjs/kernel-zerodev/constants.d.ts +27 -0
  48. package/dist/cjs/kernel-zerodev/constants.js +66 -0
  49. package/dist/cjs/kernel-zerodev/constants.js.map +1 -0
  50. package/dist/cjs/kernel-zerodev/errors.d.ts +5 -0
  51. package/dist/cjs/kernel-zerodev/errors.js +12 -0
  52. package/dist/cjs/kernel-zerodev/errors.js.map +1 -0
  53. package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.d.ts +21 -0
  54. package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.js +94 -0
  55. package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.js.map +1 -0
  56. package/dist/cjs/kernel-zerodev/middleware/gas-estimator.d.ts +15 -0
  57. package/dist/cjs/kernel-zerodev/middleware/gas-estimator.js +132 -0
  58. package/dist/cjs/kernel-zerodev/middleware/gas-estimator.js.map +1 -0
  59. package/dist/cjs/kernel-zerodev/middleware/paymaster.d.ts +5 -0
  60. package/dist/cjs/kernel-zerodev/middleware/paymaster.js +43 -0
  61. package/dist/cjs/kernel-zerodev/middleware/paymaster.js.map +1 -0
  62. package/dist/cjs/kernel-zerodev/owner/getCustodialOwner.d.ts +8 -0
  63. package/dist/cjs/kernel-zerodev/owner/getCustodialOwner.js +53 -0
  64. package/dist/cjs/kernel-zerodev/owner/getCustodialOwner.js.map +1 -0
  65. package/dist/cjs/kernel-zerodev/owner/getRPCProviderOwner.d.ts +2 -0
  66. package/dist/cjs/kernel-zerodev/owner/getRPCProviderOwner.js +15 -0
  67. package/dist/cjs/kernel-zerodev/owner/getRPCProviderOwner.js.map +1 -0
  68. package/dist/cjs/kernel-zerodev/owner/index.d.ts +2 -0
  69. package/dist/cjs/kernel-zerodev/owner/index.js +8 -0
  70. package/dist/cjs/kernel-zerodev/owner/index.js.map +1 -0
  71. package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +7 -0
  72. package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.js +65 -0
  73. package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -0
  74. package/dist/cjs/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.d.ts +6 -0
  75. package/dist/cjs/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js +16 -0
  76. package/dist/cjs/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js.map +1 -0
  77. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +5 -0
  78. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js +41 -0
  79. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -0
  80. package/dist/cjs/kernel-zerodev/owner/passkey/index.d.ts +3 -0
  81. package/dist/cjs/kernel-zerodev/owner/passkey/index.js +10 -0
  82. package/dist/cjs/kernel-zerodev/owner/passkey/index.js.map +1 -0
  83. package/dist/cjs/kernel-zerodev/owner/passkey/types.d.ts +12 -0
  84. package/dist/cjs/kernel-zerodev/owner/passkey/types.js +3 -0
  85. package/dist/cjs/kernel-zerodev/owner/passkey/types.js.map +1 -0
  86. package/dist/cjs/kernel-zerodev/owner/passkey/utils.d.ts +11 -0
  87. package/dist/cjs/kernel-zerodev/owner/passkey/utils.js +105 -0
  88. package/dist/cjs/kernel-zerodev/owner/passkey/utils.js.map +1 -0
  89. package/dist/cjs/kernel-zerodev/paymaster/base.d.ts +16 -0
  90. package/dist/cjs/kernel-zerodev/paymaster/base.js +58 -0
  91. package/dist/cjs/kernel-zerodev/paymaster/base.js.map +1 -0
  92. package/dist/cjs/kernel-zerodev/paymaster/index.d.ts +3 -0
  93. package/dist/cjs/kernel-zerodev/paymaster/index.js +10 -0
  94. package/dist/cjs/kernel-zerodev/paymaster/index.js.map +1 -0
  95. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.d.ts +14 -0
  96. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js +173 -0
  97. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js.map +1 -0
  98. package/dist/cjs/kernel-zerodev/paymaster/types.d.ts +29 -0
  99. package/dist/cjs/kernel-zerodev/paymaster/types.js +3 -0
  100. package/dist/cjs/kernel-zerodev/paymaster/types.js.map +1 -0
  101. package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.d.ts +8 -0
  102. package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.js +31 -0
  103. package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.js.map +1 -0
  104. package/dist/cjs/kernel-zerodev/provider.d.ts +42 -0
  105. package/dist/cjs/kernel-zerodev/provider.js +249 -0
  106. package/dist/cjs/kernel-zerodev/provider.js.map +1 -0
  107. package/dist/cjs/kernel-zerodev/types.d.ts +7 -0
  108. package/dist/cjs/kernel-zerodev/types.js +3 -0
  109. package/dist/cjs/kernel-zerodev/types.js.map +1 -0
  110. package/dist/cjs/kernel-zerodev/utils/ERC4337-utils.d.ts +5 -0
  111. package/dist/cjs/kernel-zerodev/utils/ERC4337-utils.js +106 -0
  112. package/dist/cjs/kernel-zerodev/utils/ERC4337-utils.js.map +1 -0
  113. package/dist/cjs/kernel-zerodev/utils/calc-pre-verification-gas.d.ts +15 -0
  114. package/dist/cjs/kernel-zerodev/utils/calc-pre-verification-gas.js +33 -0
  115. package/dist/cjs/kernel-zerodev/utils/calc-pre-verification-gas.js.map +1 -0
  116. package/dist/cjs/kernel-zerodev/utils.d.ts +15 -0
  117. package/dist/cjs/kernel-zerodev/utils.js +60 -0
  118. package/dist/cjs/kernel-zerodev/utils.js.map +1 -0
  119. package/dist/cjs/kernel-zerodev/validator/base.d.ts +53 -0
  120. package/dist/cjs/kernel-zerodev/validator/base.js +240 -0
  121. package/dist/cjs/kernel-zerodev/validator/base.js.map +1 -0
  122. package/dist/cjs/kernel-zerodev/validator/ecdsa-validator.d.ts +19 -0
  123. package/dist/cjs/kernel-zerodev/validator/ecdsa-validator.js +93 -0
  124. package/dist/cjs/kernel-zerodev/validator/ecdsa-validator.js.map +1 -0
  125. package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.d.ts +27 -0
  126. package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.js +103 -0
  127. package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.js.map +1 -0
  128. package/dist/cjs/kernel-zerodev/validator/index.d.ts +6 -0
  129. package/dist/cjs/kernel-zerodev/validator/index.js +15 -0
  130. package/dist/cjs/kernel-zerodev/validator/index.js.map +1 -0
  131. package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.d.ts +21 -0
  132. package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js +110 -0
  133. package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js.map +1 -0
  134. package/dist/cjs/kernel-zerodev/validator/types.d.ts +17 -0
  135. package/dist/cjs/kernel-zerodev/validator/types.js +3 -0
  136. package/dist/cjs/kernel-zerodev/validator/types.js.map +1 -0
  137. package/dist/cjs/kernel-zerodev/validator-provider/base.d.ts +28 -0
  138. package/dist/cjs/kernel-zerodev/validator-provider/base.js +94 -0
  139. package/dist/cjs/kernel-zerodev/validator-provider/base.js.map +1 -0
  140. package/dist/cjs/kernel-zerodev/validator-provider/ecdsa-provider.d.ts +8 -0
  141. package/dist/cjs/kernel-zerodev/validator-provider/ecdsa-provider.js +60 -0
  142. package/dist/cjs/kernel-zerodev/validator-provider/ecdsa-provider.js.map +1 -0
  143. package/dist/cjs/kernel-zerodev/validator-provider/erc165-session-key-provider.d.ts +8 -0
  144. package/dist/cjs/kernel-zerodev/validator-provider/erc165-session-key-provider.js +64 -0
  145. package/dist/cjs/kernel-zerodev/validator-provider/erc165-session-key-provider.js.map +1 -0
  146. package/dist/cjs/kernel-zerodev/validator-provider/index.d.ts +6 -0
  147. package/dist/cjs/kernel-zerodev/validator-provider/index.js +15 -0
  148. package/dist/cjs/kernel-zerodev/validator-provider/index.js.map +1 -0
  149. package/dist/cjs/kernel-zerodev/validator-provider/kill-switch-provider.d.ts +8 -0
  150. package/dist/cjs/kernel-zerodev/validator-provider/kill-switch-provider.js +64 -0
  151. package/dist/cjs/kernel-zerodev/validator-provider/kill-switch-provider.js.map +1 -0
  152. package/dist/cjs/kernel-zerodev/validator-provider/types.d.ts +21 -0
  153. package/dist/cjs/kernel-zerodev/validator-provider/types.js +3 -0
  154. package/dist/cjs/kernel-zerodev/validator-provider/types.js.map +1 -0
  155. package/dist/cjs/package.json +1 -0
  156. package/dist/esm/index.d.ts +21 -0
  157. package/dist/esm/index.js +13 -0
  158. package/dist/esm/index.js.map +1 -0
  159. package/dist/esm/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.d.ts +162 -0
  160. package/dist/esm/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.js +212 -0
  161. package/dist/esm/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.js.map +1 -0
  162. package/dist/esm/kernel-zerodev/abis/ERC20Abi.d.ts +39 -0
  163. package/dist/esm/kernel-zerodev/abis/ERC20Abi.js +154 -0
  164. package/dist/esm/kernel-zerodev/abis/ERC20Abi.js.map +1 -0
  165. package/dist/esm/kernel-zerodev/abis/ESCDAValidatorAbi.d.ts +158 -0
  166. package/dist/esm/kernel-zerodev/abis/ESCDAValidatorAbi.js +207 -0
  167. package/dist/esm/kernel-zerodev/abis/ESCDAValidatorAbi.js.map +1 -0
  168. package/dist/esm/kernel-zerodev/abis/KernelAccountAbi.d.ts +496 -0
  169. package/dist/esm/kernel-zerodev/abis/KernelAccountAbi.js +643 -0
  170. package/dist/esm/kernel-zerodev/abis/KernelAccountAbi.js.map +1 -0
  171. package/dist/esm/kernel-zerodev/abis/KernelFactoryAbi.d.ts +293 -0
  172. package/dist/esm/kernel-zerodev/abis/KernelFactoryAbi.js +381 -0
  173. package/dist/esm/kernel-zerodev/abis/KernelFactoryAbi.js.map +1 -0
  174. package/dist/esm/kernel-zerodev/abis/KillSwitchValidatorAbi.d.ts +150 -0
  175. package/dist/esm/kernel-zerodev/abis/KillSwitchValidatorAbi.js +197 -0
  176. package/dist/esm/kernel-zerodev/abis/KillSwitchValidatorAbi.js.map +1 -0
  177. package/dist/esm/kernel-zerodev/abis/MultiSendAbi.d.ts +15 -0
  178. package/dist/esm/kernel-zerodev/abis/MultiSendAbi.js +21 -0
  179. package/dist/esm/kernel-zerodev/abis/MultiSendAbi.js.map +1 -0
  180. package/dist/esm/kernel-zerodev/abis/Test_ERC20Abi.d.ts +39 -0
  181. package/dist/esm/kernel-zerodev/abis/Test_ERC20Abi.js +158 -0
  182. package/dist/esm/kernel-zerodev/abis/Test_ERC20Abi.js.map +1 -0
  183. package/dist/esm/kernel-zerodev/abis/Test_ERC721Abi.d.ts +287 -0
  184. package/dist/esm/kernel-zerodev/abis/Test_ERC721Abi.js +374 -0
  185. package/dist/esm/kernel-zerodev/abis/Test_ERC721Abi.js.map +1 -0
  186. package/dist/esm/kernel-zerodev/abis/TokenActionsAbi.d.ts +63 -0
  187. package/dist/esm/kernel-zerodev/abis/TokenActionsAbi.js +82 -0
  188. package/dist/esm/kernel-zerodev/abis/TokenActionsAbi.js.map +1 -0
  189. package/dist/esm/kernel-zerodev/abis/index.d.ts +8 -0
  190. package/dist/esm/kernel-zerodev/abis/index.js +9 -0
  191. package/dist/esm/kernel-zerodev/abis/index.js.map +1 -0
  192. package/dist/esm/kernel-zerodev/account.d.ts +35 -0
  193. package/dist/esm/kernel-zerodev/account.js +204 -0
  194. package/dist/esm/kernel-zerodev/account.js.map +1 -0
  195. package/dist/esm/kernel-zerodev/api/index.d.ts +1 -0
  196. package/dist/esm/kernel-zerodev/api/index.js +17 -0
  197. package/dist/esm/kernel-zerodev/api/index.js.map +1 -0
  198. package/dist/esm/kernel-zerodev/client/create-client.d.ts +11 -0
  199. package/dist/esm/kernel-zerodev/client/create-client.js +17 -0
  200. package/dist/esm/kernel-zerodev/client/create-client.js.map +1 -0
  201. package/dist/esm/kernel-zerodev/constants.d.ts +27 -0
  202. package/dist/esm/kernel-zerodev/constants.js +63 -0
  203. package/dist/esm/kernel-zerodev/constants.js.map +1 -0
  204. package/dist/esm/kernel-zerodev/errors.d.ts +5 -0
  205. package/dist/esm/kernel-zerodev/errors.js +6 -0
  206. package/dist/esm/kernel-zerodev/errors.js.map +1 -0
  207. package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.d.ts +21 -0
  208. package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.js +90 -0
  209. package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.js.map +1 -0
  210. package/dist/esm/kernel-zerodev/middleware/gas-estimator.d.ts +15 -0
  211. package/dist/esm/kernel-zerodev/middleware/gas-estimator.js +124 -0
  212. package/dist/esm/kernel-zerodev/middleware/gas-estimator.js.map +1 -0
  213. package/dist/esm/kernel-zerodev/middleware/paymaster.d.ts +5 -0
  214. package/dist/esm/kernel-zerodev/middleware/paymaster.js +39 -0
  215. package/dist/esm/kernel-zerodev/middleware/paymaster.js.map +1 -0
  216. package/dist/esm/kernel-zerodev/owner/getCustodialOwner.d.ts +8 -0
  217. package/dist/esm/kernel-zerodev/owner/getCustodialOwner.js +46 -0
  218. package/dist/esm/kernel-zerodev/owner/getCustodialOwner.js.map +1 -0
  219. package/dist/esm/kernel-zerodev/owner/getRPCProviderOwner.d.ts +2 -0
  220. package/dist/esm/kernel-zerodev/owner/getRPCProviderOwner.js +12 -0
  221. package/dist/esm/kernel-zerodev/owner/getRPCProviderOwner.js.map +1 -0
  222. package/dist/esm/kernel-zerodev/owner/index.d.ts +2 -0
  223. package/dist/esm/kernel-zerodev/owner/index.js +3 -0
  224. package/dist/esm/kernel-zerodev/owner/index.js.map +1 -0
  225. package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +7 -0
  226. package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.js +58 -0
  227. package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -0
  228. package/dist/esm/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.d.ts +6 -0
  229. package/dist/esm/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js +12 -0
  230. package/dist/esm/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.js.map +1 -0
  231. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +5 -0
  232. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js +34 -0
  233. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -0
  234. package/dist/esm/kernel-zerodev/owner/passkey/index.d.ts +3 -0
  235. package/dist/esm/kernel-zerodev/owner/passkey/index.js +4 -0
  236. package/dist/esm/kernel-zerodev/owner/passkey/index.js.map +1 -0
  237. package/dist/esm/kernel-zerodev/owner/passkey/types.d.ts +12 -0
  238. package/dist/esm/kernel-zerodev/owner/passkey/types.js +2 -0
  239. package/dist/esm/kernel-zerodev/owner/passkey/types.js.map +1 -0
  240. package/dist/esm/kernel-zerodev/owner/passkey/utils.d.ts +11 -0
  241. package/dist/esm/kernel-zerodev/owner/passkey/utils.js +92 -0
  242. package/dist/esm/kernel-zerodev/owner/passkey/utils.js.map +1 -0
  243. package/dist/esm/kernel-zerodev/paymaster/base.d.ts +16 -0
  244. package/dist/esm/kernel-zerodev/paymaster/base.js +51 -0
  245. package/dist/esm/kernel-zerodev/paymaster/base.js.map +1 -0
  246. package/dist/esm/kernel-zerodev/paymaster/index.d.ts +3 -0
  247. package/dist/esm/kernel-zerodev/paymaster/index.js +7 -0
  248. package/dist/esm/kernel-zerodev/paymaster/index.js.map +1 -0
  249. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.d.ts +14 -0
  250. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js +168 -0
  251. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js.map +1 -0
  252. package/dist/esm/kernel-zerodev/paymaster/types.d.ts +29 -0
  253. package/dist/esm/kernel-zerodev/paymaster/types.js +2 -0
  254. package/dist/esm/kernel-zerodev/paymaster/types.js.map +1 -0
  255. package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.d.ts +8 -0
  256. package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.js +27 -0
  257. package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.js.map +1 -0
  258. package/dist/esm/kernel-zerodev/provider.d.ts +42 -0
  259. package/dist/esm/kernel-zerodev/provider.js +245 -0
  260. package/dist/esm/kernel-zerodev/provider.js.map +1 -0
  261. package/dist/esm/kernel-zerodev/types.d.ts +7 -0
  262. package/dist/esm/kernel-zerodev/types.js +2 -0
  263. package/dist/esm/kernel-zerodev/types.js.map +1 -0
  264. package/dist/esm/kernel-zerodev/utils/ERC4337-utils.d.ts +5 -0
  265. package/dist/esm/kernel-zerodev/utils/ERC4337-utils.js +100 -0
  266. package/dist/esm/kernel-zerodev/utils/ERC4337-utils.js.map +1 -0
  267. package/dist/esm/kernel-zerodev/utils/calc-pre-verification-gas.d.ts +15 -0
  268. package/dist/esm/kernel-zerodev/utils/calc-pre-verification-gas.js +29 -0
  269. package/dist/esm/kernel-zerodev/utils/calc-pre-verification-gas.js.map +1 -0
  270. package/dist/esm/kernel-zerodev/utils.d.ts +15 -0
  271. package/dist/esm/kernel-zerodev/utils.js +53 -0
  272. package/dist/esm/kernel-zerodev/utils.js.map +1 -0
  273. package/dist/esm/kernel-zerodev/validator/base.d.ts +53 -0
  274. package/dist/esm/kernel-zerodev/validator/base.js +237 -0
  275. package/dist/esm/kernel-zerodev/validator/base.js.map +1 -0
  276. package/dist/esm/kernel-zerodev/validator/ecdsa-validator.d.ts +19 -0
  277. package/dist/esm/kernel-zerodev/validator/ecdsa-validator.js +89 -0
  278. package/dist/esm/kernel-zerodev/validator/ecdsa-validator.js.map +1 -0
  279. package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.d.ts +27 -0
  280. package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.js +99 -0
  281. package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.js.map +1 -0
  282. package/dist/esm/kernel-zerodev/validator/index.d.ts +6 -0
  283. package/dist/esm/kernel-zerodev/validator/index.js +10 -0
  284. package/dist/esm/kernel-zerodev/validator/index.js.map +1 -0
  285. package/dist/esm/kernel-zerodev/validator/kill-switch-validator.d.ts +21 -0
  286. package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js +106 -0
  287. package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js.map +1 -0
  288. package/dist/esm/kernel-zerodev/validator/types.d.ts +17 -0
  289. package/dist/esm/kernel-zerodev/validator/types.js +2 -0
  290. package/dist/esm/kernel-zerodev/validator/types.js.map +1 -0
  291. package/dist/esm/kernel-zerodev/validator-provider/base.d.ts +28 -0
  292. package/dist/esm/kernel-zerodev/validator-provider/base.js +91 -0
  293. package/dist/esm/kernel-zerodev/validator-provider/base.js.map +1 -0
  294. package/dist/esm/kernel-zerodev/validator-provider/ecdsa-provider.d.ts +8 -0
  295. package/dist/esm/kernel-zerodev/validator-provider/ecdsa-provider.js +56 -0
  296. package/dist/esm/kernel-zerodev/validator-provider/ecdsa-provider.js.map +1 -0
  297. package/dist/esm/kernel-zerodev/validator-provider/erc165-session-key-provider.d.ts +8 -0
  298. package/dist/esm/kernel-zerodev/validator-provider/erc165-session-key-provider.js +60 -0
  299. package/dist/esm/kernel-zerodev/validator-provider/erc165-session-key-provider.js.map +1 -0
  300. package/dist/esm/kernel-zerodev/validator-provider/index.d.ts +6 -0
  301. package/dist/esm/kernel-zerodev/validator-provider/index.js +10 -0
  302. package/dist/esm/kernel-zerodev/validator-provider/index.js.map +1 -0
  303. package/dist/esm/kernel-zerodev/validator-provider/kill-switch-provider.d.ts +8 -0
  304. package/dist/esm/kernel-zerodev/validator-provider/kill-switch-provider.js +60 -0
  305. package/dist/esm/kernel-zerodev/validator-provider/kill-switch-provider.js.map +1 -0
  306. package/dist/esm/kernel-zerodev/validator-provider/types.d.ts +21 -0
  307. package/dist/esm/kernel-zerodev/validator-provider/types.js +2 -0
  308. package/dist/esm/kernel-zerodev/validator-provider/types.js.map +1 -0
  309. package/dist/esm/package.json +1 -0
  310. package/dist/types/index.d.ts +22 -0
  311. package/dist/types/index.d.ts.map +1 -0
  312. package/dist/types/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.d.ts +163 -0
  313. package/dist/types/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.d.ts.map +1 -0
  314. package/dist/types/kernel-zerodev/abis/ERC20Abi.d.ts +40 -0
  315. package/dist/types/kernel-zerodev/abis/ERC20Abi.d.ts.map +1 -0
  316. package/dist/types/kernel-zerodev/abis/ESCDAValidatorAbi.d.ts +159 -0
  317. package/dist/types/kernel-zerodev/abis/ESCDAValidatorAbi.d.ts.map +1 -0
  318. package/dist/types/kernel-zerodev/abis/KernelAccountAbi.d.ts +497 -0
  319. package/dist/types/kernel-zerodev/abis/KernelAccountAbi.d.ts.map +1 -0
  320. package/dist/types/kernel-zerodev/abis/KernelFactoryAbi.d.ts +294 -0
  321. package/dist/types/kernel-zerodev/abis/KernelFactoryAbi.d.ts.map +1 -0
  322. package/dist/types/kernel-zerodev/abis/KillSwitchValidatorAbi.d.ts +151 -0
  323. package/dist/types/kernel-zerodev/abis/KillSwitchValidatorAbi.d.ts.map +1 -0
  324. package/dist/types/kernel-zerodev/abis/MultiSendAbi.d.ts +16 -0
  325. package/dist/types/kernel-zerodev/abis/MultiSendAbi.d.ts.map +1 -0
  326. package/dist/types/kernel-zerodev/abis/Test_ERC20Abi.d.ts +40 -0
  327. package/dist/types/kernel-zerodev/abis/Test_ERC20Abi.d.ts.map +1 -0
  328. package/dist/types/kernel-zerodev/abis/Test_ERC721Abi.d.ts +288 -0
  329. package/dist/types/kernel-zerodev/abis/Test_ERC721Abi.d.ts.map +1 -0
  330. package/dist/types/kernel-zerodev/abis/TokenActionsAbi.d.ts +64 -0
  331. package/dist/types/kernel-zerodev/abis/TokenActionsAbi.d.ts.map +1 -0
  332. package/dist/types/kernel-zerodev/abis/index.d.ts +9 -0
  333. package/dist/types/kernel-zerodev/abis/index.d.ts.map +1 -0
  334. package/dist/types/kernel-zerodev/account.d.ts +36 -0
  335. package/dist/types/kernel-zerodev/account.d.ts.map +1 -0
  336. package/dist/types/kernel-zerodev/api/index.d.ts +2 -0
  337. package/dist/types/kernel-zerodev/api/index.d.ts.map +1 -0
  338. package/dist/types/kernel-zerodev/client/create-client.d.ts +12 -0
  339. package/dist/types/kernel-zerodev/client/create-client.d.ts.map +1 -0
  340. package/dist/types/kernel-zerodev/constants.d.ts +28 -0
  341. package/dist/types/kernel-zerodev/constants.d.ts.map +1 -0
  342. package/dist/types/kernel-zerodev/errors.d.ts +6 -0
  343. package/dist/types/kernel-zerodev/errors.d.ts.map +1 -0
  344. package/dist/types/kernel-zerodev/ethers-provider/ethers-provider.d.ts +39 -0
  345. package/dist/types/kernel-zerodev/ethers-provider/ethers-provider.d.ts.map +1 -0
  346. package/dist/types/kernel-zerodev/middleware/gas-estimator.d.ts +20 -0
  347. package/dist/types/kernel-zerodev/middleware/gas-estimator.d.ts.map +1 -0
  348. package/dist/types/kernel-zerodev/middleware/paymaster.d.ts +6 -0
  349. package/dist/types/kernel-zerodev/middleware/paymaster.d.ts.map +1 -0
  350. package/dist/types/kernel-zerodev/owner/getCustodialOwner.d.ts +9 -0
  351. package/dist/types/kernel-zerodev/owner/getCustodialOwner.d.ts.map +1 -0
  352. package/dist/types/kernel-zerodev/owner/getRPCProviderOwner.d.ts +3 -0
  353. package/dist/types/kernel-zerodev/owner/getRPCProviderOwner.d.ts.map +1 -0
  354. package/dist/types/kernel-zerodev/owner/index.d.ts +3 -0
  355. package/dist/types/kernel-zerodev/owner/index.d.ts.map +1 -0
  356. package/dist/types/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts +8 -0
  357. package/dist/types/kernel-zerodev/owner/passkey/createPasskeyOwner.d.ts.map +1 -0
  358. package/dist/types/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.d.ts +7 -0
  359. package/dist/types/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.d.ts.map +1 -0
  360. package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +6 -0
  361. package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts.map +1 -0
  362. package/dist/types/kernel-zerodev/owner/passkey/index.d.ts +4 -0
  363. package/dist/types/kernel-zerodev/owner/passkey/index.d.ts.map +1 -0
  364. package/dist/types/kernel-zerodev/owner/passkey/types.d.ts +14 -0
  365. package/dist/types/kernel-zerodev/owner/passkey/types.d.ts.map +1 -0
  366. package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts +12 -0
  367. package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts.map +1 -0
  368. package/dist/types/kernel-zerodev/paymaster/base.d.ts +17 -0
  369. package/dist/types/kernel-zerodev/paymaster/base.d.ts.map +1 -0
  370. package/dist/types/kernel-zerodev/paymaster/index.d.ts +4 -0
  371. package/dist/types/kernel-zerodev/paymaster/index.d.ts.map +1 -0
  372. package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts +15 -0
  373. package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts.map +1 -0
  374. package/dist/types/kernel-zerodev/paymaster/types.d.ts +30 -0
  375. package/dist/types/kernel-zerodev/paymaster/types.d.ts.map +1 -0
  376. package/dist/types/kernel-zerodev/paymaster/verifying-paymaster.d.ts +9 -0
  377. package/dist/types/kernel-zerodev/paymaster/verifying-paymaster.d.ts.map +1 -0
  378. package/dist/types/kernel-zerodev/provider.d.ts +43 -0
  379. package/dist/types/kernel-zerodev/provider.d.ts.map +1 -0
  380. package/dist/types/kernel-zerodev/types.d.ts +8 -0
  381. package/dist/types/kernel-zerodev/types.d.ts.map +1 -0
  382. package/dist/types/kernel-zerodev/utils/ERC4337-utils.d.ts +18 -0
  383. package/dist/types/kernel-zerodev/utils/ERC4337-utils.d.ts.map +1 -0
  384. package/dist/types/kernel-zerodev/utils/calc-pre-verification-gas.d.ts +44 -0
  385. package/dist/types/kernel-zerodev/utils/calc-pre-verification-gas.d.ts.map +1 -0
  386. package/dist/types/kernel-zerodev/utils.d.ts +16 -0
  387. package/dist/types/kernel-zerodev/utils.d.ts.map +1 -0
  388. package/dist/types/kernel-zerodev/validator/base.d.ts +54 -0
  389. package/dist/types/kernel-zerodev/validator/base.d.ts.map +1 -0
  390. package/dist/types/kernel-zerodev/validator/ecdsa-validator.d.ts +20 -0
  391. package/dist/types/kernel-zerodev/validator/ecdsa-validator.d.ts.map +1 -0
  392. package/dist/types/kernel-zerodev/validator/erc165-session-key-validator.d.ts +28 -0
  393. package/dist/types/kernel-zerodev/validator/erc165-session-key-validator.d.ts.map +1 -0
  394. package/dist/types/kernel-zerodev/validator/index.d.ts +7 -0
  395. package/dist/types/kernel-zerodev/validator/index.d.ts.map +1 -0
  396. package/dist/types/kernel-zerodev/validator/kill-switch-validator.d.ts +22 -0
  397. package/dist/types/kernel-zerodev/validator/kill-switch-validator.d.ts.map +1 -0
  398. package/dist/types/kernel-zerodev/validator/types.d.ts +18 -0
  399. package/dist/types/kernel-zerodev/validator/types.d.ts.map +1 -0
  400. package/dist/types/kernel-zerodev/validator-provider/base.d.ts +29 -0
  401. package/dist/types/kernel-zerodev/validator-provider/base.d.ts.map +1 -0
  402. package/dist/types/kernel-zerodev/validator-provider/ecdsa-provider.d.ts +9 -0
  403. package/dist/types/kernel-zerodev/validator-provider/ecdsa-provider.d.ts.map +1 -0
  404. package/dist/types/kernel-zerodev/validator-provider/erc165-session-key-provider.d.ts +9 -0
  405. package/dist/types/kernel-zerodev/validator-provider/erc165-session-key-provider.d.ts.map +1 -0
  406. package/dist/types/kernel-zerodev/validator-provider/index.d.ts +7 -0
  407. package/dist/types/kernel-zerodev/validator-provider/index.d.ts.map +1 -0
  408. package/dist/types/kernel-zerodev/validator-provider/kill-switch-provider.d.ts +9 -0
  409. package/dist/types/kernel-zerodev/validator-provider/kill-switch-provider.d.ts.map +1 -0
  410. package/dist/types/kernel-zerodev/validator-provider/types.d.ts +22 -0
  411. package/dist/types/kernel-zerodev/validator-provider/types.d.ts.map +1 -0
  412. package/package.json +76 -0
  413. package/passkey/package.json +5 -0
  414. package/src/index.ts +43 -0
  415. package/src/kernel-zerodev/__tests__/mocks/mock-signer.ts +24 -0
  416. package/src/kernel-zerodev/abis/ERC165SessionKeyValidatorAbi.ts +211 -0
  417. package/src/kernel-zerodev/abis/ERC20Abi.ts +153 -0
  418. package/src/kernel-zerodev/abis/ESCDAValidatorAbi.ts +206 -0
  419. package/src/kernel-zerodev/abis/KernelAccountAbi.ts +642 -0
  420. package/src/kernel-zerodev/abis/KernelFactoryAbi.ts +380 -0
  421. package/src/kernel-zerodev/abis/KillSwitchValidatorAbi.ts +196 -0
  422. package/src/kernel-zerodev/abis/MultiSendAbi.ts +20 -0
  423. package/src/kernel-zerodev/abis/Test_ERC20Abi.ts +157 -0
  424. package/src/kernel-zerodev/abis/Test_ERC721Abi.ts +373 -0
  425. package/src/kernel-zerodev/abis/TokenActionsAbi.ts +81 -0
  426. package/src/kernel-zerodev/abis/index.ts +17 -0
  427. package/src/kernel-zerodev/account.ts +275 -0
  428. package/src/kernel-zerodev/api/index.ts +25 -0
  429. package/src/kernel-zerodev/client/create-client.ts +37 -0
  430. package/src/kernel-zerodev/constants.ts +95 -0
  431. package/src/kernel-zerodev/errors.ts +13 -0
  432. package/src/kernel-zerodev/ethers-provider/ethers-provider.ts +118 -0
  433. package/src/kernel-zerodev/middleware/gas-estimator.ts +183 -0
  434. package/src/kernel-zerodev/middleware/paymaster.ts +66 -0
  435. package/src/kernel-zerodev/owner/getCustodialOwner.ts +74 -0
  436. package/src/kernel-zerodev/owner/getRPCProviderOwner.ts +22 -0
  437. package/src/kernel-zerodev/owner/index.ts +2 -0
  438. package/src/kernel-zerodev/owner/passkey/createPasskeyOwner.ts +98 -0
  439. package/src/kernel-zerodev/owner/passkey/getOrCreatePasskeyOwner.ts +22 -0
  440. package/src/kernel-zerodev/owner/passkey/getPasskeyOwner.ts +69 -0
  441. package/src/kernel-zerodev/owner/passkey/index.ts +3 -0
  442. package/src/kernel-zerodev/owner/passkey/types.ts +18 -0
  443. package/src/kernel-zerodev/owner/passkey/utils.ts +157 -0
  444. package/src/kernel-zerodev/paymaster/base.ts +76 -0
  445. package/src/kernel-zerodev/paymaster/index.ts +9 -0
  446. package/src/kernel-zerodev/paymaster/token-paymaster.ts +209 -0
  447. package/src/kernel-zerodev/paymaster/types.ts +36 -0
  448. package/src/kernel-zerodev/paymaster/verifying-paymaster.ts +38 -0
  449. package/src/kernel-zerodev/provider.ts +341 -0
  450. package/src/kernel-zerodev/types.ts +8 -0
  451. package/src/kernel-zerodev/utils/ERC4337-utils.ts +161 -0
  452. package/src/kernel-zerodev/utils/calc-pre-verification-gas.ts +88 -0
  453. package/src/kernel-zerodev/utils.ts +106 -0
  454. package/src/kernel-zerodev/validator/base.ts +265 -0
  455. package/src/kernel-zerodev/validator/ecdsa-validator.ts +117 -0
  456. package/src/kernel-zerodev/validator/erc165-session-key-validator.ts +127 -0
  457. package/src/kernel-zerodev/validator/index.ts +12 -0
  458. package/src/kernel-zerodev/validator/kill-switch-validator.ts +142 -0
  459. package/src/kernel-zerodev/validator/types.ts +36 -0
  460. package/src/kernel-zerodev/validator-provider/base.ts +140 -0
  461. package/src/kernel-zerodev/validator-provider/ecdsa-provider.ts +61 -0
  462. package/src/kernel-zerodev/validator-provider/erc165-session-key-provider.ts +68 -0
  463. package/src/kernel-zerodev/validator-provider/index.ts +12 -0
  464. package/src/kernel-zerodev/validator-provider/kill-switch-provider.ts +68 -0
  465. package/src/kernel-zerodev/validator-provider/types.ts +26 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc165-session-key-validator.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/erc165-session-key-validator.ts"],"names":[],"mappings":";;;AAAA,8CAM0B;AAC1B,uCAAgF;AAChF,+BAAuE;AACvE,6FAAuF;AACvF,kDAAkD;AAClD,qEAA+D;AAgB/D,MAAa,yBAA0B,SAAQ,6BAAmB;IAIhE,YAAY,MAAuC;QACjD,KAAK,CAAC,MAAM,CAAC,CAAC;QAJN;;;;;WAA+B;QACzC;;;;;WAA+B;QAI7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAA,aAAM,EAAC;YACZ,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAClC,IAAA,UAAG,EAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,IAAA,UAAG,EAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9C,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,oBAA6B,EAC7B,QAAa;QAEb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACtD,GAAG,EAAE,sCAAgB;YACrB,OAAO,EAAE,oBAAoB;YAC7B,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACtD,GAAG,EAAE,8DAA4B;YACjC,OAAO,EAAE,IAAI,CAAC,gBAAgB;YAC9B,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,oBAAoB,CAAC;SACjE,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAA,aAAM,EAAC;YAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAClC,IAAA,UAAG,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/B,IAAA,UAAG,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/B,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACtC,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACtC,IAAA,UAAG,EAAC,IAAA,YAAK,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SACvC,CAAC,CAAC;QACH,OAAO,CACL,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE;YAChC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACrC,UAAU,CAAC,CAAC,CAAC;YACb,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,WAAW,EAAE,CAC3E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,OAAO,8BAAe,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,oBAAyB;QACpC,OAAO,IAAA,yBAAkB,EAAC;YACxB,GAAG,EAAE,8DAA4B;YACjC,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,oBAAoB,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,UAAe;QAC3B,OAAO,IAAA,yBAAkB,EAAC;YACxB,GAAG,EAAE,8DAA4B;YACjC,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE,CAAC,UAAU,CAAC;SACnB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA4B;QAC5C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAA4B;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QACD,MAAM,IAAI,GAAG,IAAA,8BAAoB,EAC/B;YACE,GAAG,MAAM;YACT,SAAS,EAAE,IAAI;SAChB,EACD,IAAI,CAAC,iBAAiB,EACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CACtB,CAAC;QACF,MAAM,gBAAgB,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC7D,CAAC;CACF;AAnGD,8DAmGC","sourcesContent":["import {\n getUserOperationHash,\n type Address,\n type Hex,\n type SmartAccountSigner,\n type UserOperationRequest,\n} from \"@alchemy/aa-core\";\nimport { KernelBaseValidator, type KernelBaseValidatorParams } from \"./base.js\";\nimport { encodeFunctionData, toBytes, concat, pad, toHex } from \"viem\";\nimport { ERC165SessionKeyValidatorAbi } from \"../abis/ERC165SessionKeyValidatorAbi.js\";\nimport { DUMMY_ECDSA_SIG } from \"../constants.js\";\nimport { KernelAccountAbi } from \"../abis/KernelAccountAbi.js\";\n\nexport interface ERC165SessionKeyValidatorParams\n extends KernelBaseValidatorParams {\n sessionKey: SmartAccountSigner;\n sessionKeyData: SessionKeyData;\n}\n\ninterface SessionKeyData {\n selector: Hex;\n erc165InterfaceId: Hex;\n validUntil: number;\n validAfter: number;\n addressOffset: number;\n}\n\nexport class ERC165SessionKeyValidator extends KernelBaseValidator {\n protected sessionKey: SmartAccountSigner;\n sessionKeyData: SessionKeyData;\n\n constructor(params: ERC165SessionKeyValidatorParams) {\n super(params);\n this.sessionKey = params.sessionKey;\n this.sessionKeyData = params.sessionKeyData;\n }\n\n async signer(): Promise<SmartAccountSigner> {\n return await Promise.resolve(this.sessionKey);\n }\n\n async getEnableData(): Promise<Hex> {\n return concat([\n await this.sessionKey.getAddress(),\n pad(this.sessionKeyData.erc165InterfaceId, { size: 4 }),\n pad(this.sessionKeyData.selector, { size: 4 }),\n pad(toHex(this.sessionKeyData.validUntil), { size: 6 }),\n pad(toHex(this.sessionKeyData.validAfter), { size: 6 }),\n pad(toHex(this.sessionKeyData.addressOffset), { size: 4 }),\n ]);\n }\n\n async isPluginEnabled(\n kernelAccountAddress: Address,\n selector: Hex\n ): Promise<boolean> {\n if (!this.publicClient) {\n throw new Error(\"Validator uninitialized: PublicClient missing\");\n }\n const execDetail = await this.publicClient.readContract({\n abi: KernelAccountAbi,\n address: kernelAccountAddress,\n functionName: \"getExecution\",\n args: [selector],\n });\n const enableData = await this.publicClient.readContract({\n abi: ERC165SessionKeyValidatorAbi,\n address: this.validatorAddress,\n functionName: \"sessionKeys\",\n args: [await this.sessionKey.getAddress(), kernelAccountAddress],\n });\n const enableDataHex = concat([\n await this.sessionKey.getAddress(),\n pad(enableData[2], { size: 4 }),\n pad(enableData[1], { size: 4 }),\n pad(toHex(enableData[3]), { size: 6 }),\n pad(toHex(enableData[4]), { size: 6 }),\n pad(toHex(enableData[5]), { size: 4 }),\n ]);\n return (\n execDetail.validator.toLowerCase() ===\n this.validatorAddress.toLowerCase() &&\n enableData[0] &&\n enableDataHex.toLowerCase() === (await this.getEnableData()).toLowerCase()\n );\n }\n\n async getDummyUserOpSignature(): Promise<Hex> {\n return DUMMY_ECDSA_SIG;\n }\n\n encodeEnable(sessionKeyEnableData: Hex): Hex {\n return encodeFunctionData({\n abi: ERC165SessionKeyValidatorAbi,\n functionName: \"enable\",\n args: [sessionKeyEnableData],\n });\n }\n\n encodeDisable(sessionKey: Hex): Hex {\n return encodeFunctionData({\n abi: ERC165SessionKeyValidatorAbi,\n functionName: \"disable\",\n args: [sessionKey],\n });\n }\n\n async signMessage(message: string | Uint8Array): Promise<Hex> {\n return await this.sessionKey.signMessage(message);\n }\n\n async signUserOp(userOp: UserOperationRequest): Promise<Hex> {\n if (!this.chain) {\n throw new Error(\"Validator uninitialized\");\n }\n const hash = getUserOperationHash(\n {\n ...userOp,\n signature: \"0x\",\n },\n this.entryPointAddress,\n BigInt(this.chain.id)\n );\n const formattedMessage = typeof hash === \"string\" ? toBytes(hash) : hash;\n return await this.sessionKey.signMessage(formattedMessage);\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { ECDSAValidator } from "./ecdsa-validator.js";
2
+ import { ERC165SessionKeyValidator } from "./erc165-session-key-validator.js";
3
+ import { KillSwitchValidator } from "./kill-switch-validator.js";
4
+ import type { ValidatorMap } from "./types.js";
5
+ export declare const Validators: ValidatorMap;
6
+ export { ECDSAValidator, KillSwitchValidator, ERC165SessionKeyValidator };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC165SessionKeyValidator = exports.KillSwitchValidator = exports.ECDSAValidator = exports.Validators = void 0;
4
+ const ecdsa_validator_js_1 = require("./ecdsa-validator.js");
5
+ Object.defineProperty(exports, "ECDSAValidator", { enumerable: true, get: function () { return ecdsa_validator_js_1.ECDSAValidator; } });
6
+ const erc165_session_key_validator_js_1 = require("./erc165-session-key-validator.js");
7
+ Object.defineProperty(exports, "ERC165SessionKeyValidator", { enumerable: true, get: function () { return erc165_session_key_validator_js_1.ERC165SessionKeyValidator; } });
8
+ const kill_switch_validator_js_1 = require("./kill-switch-validator.js");
9
+ Object.defineProperty(exports, "KillSwitchValidator", { enumerable: true, get: function () { return kill_switch_validator_js_1.KillSwitchValidator; } });
10
+ exports.Validators = {
11
+ ECDSA: ecdsa_validator_js_1.ECDSAValidator,
12
+ KILL_SWITCH: kill_switch_validator_js_1.KillSwitchValidator,
13
+ ERC165_SESSION_KEY: erc165_session_key_validator_js_1.ERC165SessionKeyValidator,
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/index.ts"],"names":[],"mappings":";;;AAAA,6DAAsD;AAW7C,+FAXA,mCAAc,OAWA;AAVvB,uFAA8E;AAUhC,0GAVrC,2DAAyB,OAUqC;AATvE,yEAAiE;AASxC,oGAThB,8CAAmB,OASgB;AAN/B,QAAA,UAAU,GAAiB;IACtC,KAAK,EAAE,mCAAc;IACrB,WAAW,EAAE,8CAAmB;IAChC,kBAAkB,EAAE,2DAAyB;CAC9C,CAAC","sourcesContent":["import { ECDSAValidator } from \"./ecdsa-validator.js\";\nimport { ERC165SessionKeyValidator } from \"./erc165-session-key-validator.js\";\nimport { KillSwitchValidator } from \"./kill-switch-validator.js\";\nimport type { ValidatorMap } from \"./types.js\";\n\nexport const Validators: ValidatorMap = {\n ECDSA: ECDSAValidator,\n KILL_SWITCH: KillSwitchValidator,\n ERC165_SESSION_KEY: ERC165SessionKeyValidator,\n};\n\nexport { ECDSAValidator, KillSwitchValidator, ERC165SessionKeyValidator };\n"]}
@@ -0,0 +1,21 @@
1
+ import { type Address, type Hex, type SmartAccountSigner, type UserOperationRequest } from "@alchemy/aa-core";
2
+ import { KernelBaseValidator, type KernelBaseValidatorParams } from "./base.js";
3
+ export interface KillSwitchValidatorParams extends KernelBaseValidatorParams {
4
+ guardian: SmartAccountSigner;
5
+ delaySeconds: number;
6
+ }
7
+ export declare class KillSwitchValidator extends KernelBaseValidator {
8
+ protected guardian: SmartAccountSigner;
9
+ protected delaySeconds: number;
10
+ constructor(params: KillSwitchValidatorParams);
11
+ static init(params: KillSwitchValidatorParams): Promise<KillSwitchValidator>;
12
+ signer(): Promise<SmartAccountSigner>;
13
+ getEnableData(): Promise<Hex>;
14
+ getPausedUntil(): number;
15
+ encodeEnable(newGuardian: Hex): Hex;
16
+ encodeDisable(disableData?: Hex): Hex;
17
+ isPluginEnabled(kernelAccountAddress: Address, selector: Hex): Promise<boolean>;
18
+ getDummyUserOpSignature(): Promise<Hex>;
19
+ signMessage(message: string | Uint8Array): Promise<Hex>;
20
+ signUserOp(userOp: UserOperationRequest): Promise<Hex>;
21
+ }
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KillSwitchValidator = void 0;
4
+ const aa_core_1 = require("@alchemy/aa-core");
5
+ const base_js_1 = require("./base.js");
6
+ const viem_1 = require("viem");
7
+ const KillSwitchValidatorAbi_js_1 = require("../abis/KillSwitchValidatorAbi.js");
8
+ const index_js_1 = require("../api/index.js");
9
+ const constants_js_1 = require("../constants.js");
10
+ const KernelAccountAbi_js_1 = require("../abis/KernelAccountAbi.js");
11
+ class KillSwitchValidator extends base_js_1.KernelBaseValidator {
12
+ constructor(params) {
13
+ super(params);
14
+ Object.defineProperty(this, "guardian", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: void 0
19
+ });
20
+ Object.defineProperty(this, "delaySeconds", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: void 0
25
+ });
26
+ this.guardian = params.guardian;
27
+ this.delaySeconds = params.delaySeconds;
28
+ }
29
+ static async init(params) {
30
+ const chainId = await (0, index_js_1.getChainId)(params.projectId);
31
+ if (!chainId) {
32
+ throw new Error("ChainId not found");
33
+ }
34
+ const chain = (0, aa_core_1.getChain)(chainId);
35
+ const instance = new KillSwitchValidator({ ...params, chain });
36
+ return instance;
37
+ }
38
+ async signer() {
39
+ return await Promise.resolve(this.guardian);
40
+ }
41
+ async getEnableData() {
42
+ return await (await this.signer()).getAddress();
43
+ }
44
+ getPausedUntil() {
45
+ return Math.floor(Date.now() / 1000) + this.delaySeconds;
46
+ }
47
+ encodeEnable(newGuardian) {
48
+ return (0, viem_1.encodeFunctionData)({
49
+ abi: KillSwitchValidatorAbi_js_1.KillSwitchValidatorAbi,
50
+ functionName: "enable",
51
+ args: [newGuardian],
52
+ });
53
+ }
54
+ encodeDisable(disableData = "0x") {
55
+ return (0, viem_1.encodeFunctionData)({
56
+ abi: KillSwitchValidatorAbi_js_1.KillSwitchValidatorAbi,
57
+ functionName: "disable",
58
+ args: [disableData],
59
+ });
60
+ }
61
+ async isPluginEnabled(kernelAccountAddress, selector) {
62
+ if (!this.publicClient) {
63
+ throw new Error("Validator uninitialized: PublicClient missing");
64
+ }
65
+ const kernel = (0, viem_1.getContract)({
66
+ abi: KernelAccountAbi_js_1.KernelAccountAbi,
67
+ address: kernelAccountAddress,
68
+ publicClient: this.publicClient,
69
+ });
70
+ const execDetail = await kernel.read.getExecution([selector]);
71
+ const enableData = await this.publicClient.readContract({
72
+ abi: KillSwitchValidatorAbi_js_1.KillSwitchValidatorAbi,
73
+ address: this.validatorAddress,
74
+ functionName: "killSwitchValidatorStorage",
75
+ args: [kernelAccountAddress],
76
+ });
77
+ const pausedUntil = Math.floor(Date.now() / 1000) + this.delaySeconds;
78
+ return (execDetail.validator.toLowerCase() ===
79
+ this.validatorAddress.toLowerCase() &&
80
+ enableData[0] === (await this.getEnableData()) &&
81
+ enableData[3] === (await kernel.read.getDisabledMode()) &&
82
+ enableData[2] === pausedUntil &&
83
+ enableData[1].toLowerCase() ===
84
+ (await kernel.read.getDefaultValidator()).toLowerCase());
85
+ }
86
+ async getDummyUserOpSignature() {
87
+ return (0, viem_1.concatHex)([(0, viem_1.pad)("0xffffffffffff", { size: 6 }), constants_js_1.DUMMY_ECDSA_SIG]);
88
+ }
89
+ async signMessage(message) {
90
+ return await this.guardian.signMessage(message);
91
+ }
92
+ async signUserOp(userOp) {
93
+ const pausedUntil = this.getPausedUntil();
94
+ if (!this.chain) {
95
+ throw new Error("Validator uninitialized");
96
+ }
97
+ const hash = (0, aa_core_1.getUserOperationHash)({
98
+ ...userOp,
99
+ signature: "0x",
100
+ }, this.entryPointAddress, BigInt(this.chain.id));
101
+ const extendedHash = (0, viem_1.keccak256)((0, viem_1.concat)([(0, viem_1.pad)((0, viem_1.toHex)(pausedUntil), { size: 6 }), hash]));
102
+ const signature = (0, viem_1.concat)([
103
+ (0, viem_1.pad)((0, viem_1.toHex)(pausedUntil), { size: 6 }),
104
+ await this.guardian.signMessage((0, viem_1.toBytes)(extendedHash)),
105
+ ]);
106
+ return signature;
107
+ }
108
+ }
109
+ exports.KillSwitchValidator = KillSwitchValidator;
110
+ //# sourceMappingURL=kill-switch-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kill-switch-validator.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/kill-switch-validator.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n getChain,\n getUserOperationHash,\n type Address,\n type Hex,\n type SmartAccountSigner,\n type UserOperationRequest,\n} from \"@alchemy/aa-core\";\nimport { KernelBaseValidator, type KernelBaseValidatorParams } from \"./base.js\";\nimport {\n concat,\n concatHex,\n encodeFunctionData,\n getContract,\n keccak256,\n pad,\n toBytes,\n toHex,\n} from \"viem\";\nimport { KillSwitchValidatorAbi } from \"../abis/KillSwitchValidatorAbi.js\";\nimport { getChainId } from \"../api/index.js\";\nimport { DUMMY_ECDSA_SIG } from \"../constants.js\";\nimport { KernelAccountAbi } from \"../abis/KernelAccountAbi.js\";\n\nexport interface KillSwitchValidatorParams extends KernelBaseValidatorParams {\n guardian: SmartAccountSigner;\n delaySeconds: number;\n}\n\nexport class KillSwitchValidator extends KernelBaseValidator {\n protected guardian: SmartAccountSigner;\n protected delaySeconds: number;\n\n constructor(params: KillSwitchValidatorParams) {\n super(params);\n this.guardian = params.guardian;\n this.delaySeconds = params.delaySeconds;\n }\n\n public static async init(\n params: KillSwitchValidatorParams\n ): Promise<KillSwitchValidator> {\n const chainId = await getChainId(params.projectId);\n if (!chainId) {\n throw new Error(\"ChainId not found\");\n }\n const chain = getChain(chainId);\n const instance = new KillSwitchValidator({ ...params, chain });\n return instance;\n }\n\n async signer(): Promise<SmartAccountSigner> {\n return await Promise.resolve(this.guardian);\n }\n\n async getEnableData(): Promise<Hex> {\n return await (await this.signer()).getAddress();\n }\n\n getPausedUntil(): number {\n return Math.floor(Date.now() / 1000) + this.delaySeconds;\n }\n\n encodeEnable(newGuardian: Hex): Hex {\n return encodeFunctionData({\n abi: KillSwitchValidatorAbi,\n functionName: \"enable\",\n args: [newGuardian],\n });\n }\n\n encodeDisable(disableData: Hex = \"0x\"): Hex {\n return encodeFunctionData({\n abi: KillSwitchValidatorAbi,\n functionName: \"disable\",\n args: [disableData],\n });\n }\n\n async isPluginEnabled(\n kernelAccountAddress: Address,\n selector: Hex\n ): Promise<boolean> {\n if (!this.publicClient) {\n throw new Error(\"Validator uninitialized: PublicClient missing\");\n }\n const kernel = getContract({\n abi: KernelAccountAbi,\n address: kernelAccountAddress,\n publicClient: this.publicClient,\n });\n const execDetail = await kernel.read.getExecution([selector]);\n const enableData = await this.publicClient.readContract({\n abi: KillSwitchValidatorAbi,\n address: this.validatorAddress,\n functionName: \"killSwitchValidatorStorage\",\n args: [kernelAccountAddress],\n });\n const pausedUntil = Math.floor(Date.now() / 1000) + this.delaySeconds;\n return (\n execDetail.validator.toLowerCase() ===\n this.validatorAddress.toLowerCase() &&\n enableData[0] === (await this.getEnableData()) &&\n enableData[3] === (await kernel.read.getDisabledMode()) &&\n enableData[2] === pausedUntil &&\n enableData[1].toLowerCase() ===\n (await kernel.read.getDefaultValidator()).toLowerCase()\n );\n }\n\n async getDummyUserOpSignature(): Promise<Hex> {\n return concatHex([pad(\"0xffffffffffff\", { size: 6 }), DUMMY_ECDSA_SIG]);\n }\n\n async signMessage(message: string | Uint8Array): Promise<Hex> {\n return await this.guardian.signMessage(message);\n }\n\n async signUserOp(userOp: UserOperationRequest): Promise<Hex> {\n const pausedUntil = this.getPausedUntil();\n if (!this.chain) {\n throw new Error(\"Validator uninitialized\");\n }\n const hash = getUserOperationHash(\n {\n ...userOp,\n signature: \"0x\",\n },\n this.entryPointAddress,\n BigInt(this.chain.id)\n ) as Hex;\n\n const extendedHash = keccak256(\n concat([pad(toHex(pausedUntil), { size: 6 }), hash])\n );\n const signature = concat([\n pad(toHex(pausedUntil), { size: 6 }),\n await this.guardian.signMessage(toBytes(extendedHash)),\n ]);\n return signature;\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import type { ECDSAValidator, ECDSAValidatorParams } from "./ecdsa-validator.js";
2
+ import type { ERC165SessionKeyValidator, ERC165SessionKeyValidatorParams } from "./erc165-session-key-validator.js";
3
+ import type { KillSwitchValidator, KillSwitchValidatorParams } from "./kill-switch-validator.js";
4
+ export type SupportedValidators = "ECDSA" | "KILL_SWITCH" | "ERC165_SESSION_KEY";
5
+ export type ValidatorTypeMap = {
6
+ ECDSA: ECDSAValidator;
7
+ KILL_SWITCH: KillSwitchValidator;
8
+ ERC165_SESSION_KEY: ERC165SessionKeyValidator;
9
+ };
10
+ export type ValidatorParamsMap = {
11
+ ECDSA: ECDSAValidatorParams;
12
+ KILL_SWITCH: KillSwitchValidatorParams;
13
+ ERC165_SESSION_KEY: ERC165SessionKeyValidatorParams;
14
+ };
15
+ export type ValidatorMap = {
16
+ [V in SupportedValidators]: new (params: ValidatorParamsMap[V]) => ValidatorTypeMap[V];
17
+ };
@@ -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/kernel-zerodev/validator/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ECDSAValidator,\n ECDSAValidatorParams,\n} from \"./ecdsa-validator.js\";\nimport type {\n ERC165SessionKeyValidator,\n ERC165SessionKeyValidatorParams,\n} from \"./erc165-session-key-validator.js\";\n\nimport type {\n KillSwitchValidator,\n KillSwitchValidatorParams,\n} from \"./kill-switch-validator.js\";\n\nexport type SupportedValidators =\n | \"ECDSA\"\n | \"KILL_SWITCH\"\n | \"ERC165_SESSION_KEY\";\n\nexport type ValidatorTypeMap = {\n ECDSA: ECDSAValidator;\n KILL_SWITCH: KillSwitchValidator;\n ERC165_SESSION_KEY: ERC165SessionKeyValidator;\n};\n\nexport type ValidatorParamsMap = {\n ECDSA: ECDSAValidatorParams;\n KILL_SWITCH: KillSwitchValidatorParams;\n ERC165_SESSION_KEY: ERC165SessionKeyValidatorParams;\n};\n\nexport type ValidatorMap = {\n [V in SupportedValidators]: new (\n params: ValidatorParamsMap[V]\n ) => ValidatorTypeMap[V];\n};\n"]}
@@ -0,0 +1,28 @@
1
+ import { type Hex, type SendUserOperationResult, type SmartAccountSigner } from "@alchemy/aa-core";
2
+ import { ZeroDevProvider, type ZeroDevProviderConfig } from "../provider.js";
3
+ import type { KernelBaseValidator, KernelBaseValidatorParams } from "../validator/base.js";
4
+ import type { PaymasterAndBundlerProviders, PaymasterConfig, PaymasterPolicy } from "../paymaster/types.js";
5
+ import { type KernelSmartAccountParams } from "../account.js";
6
+ import type { RequiredProps } from "../types.js";
7
+ export type ValidatorProviderParamsOpts<P extends KernelBaseValidatorParams> = {
8
+ paymasterConfig?: PaymasterConfig<PaymasterPolicy>;
9
+ providerConfig?: Partial<ZeroDevProviderConfig>;
10
+ accountConfig?: Omit<KernelSmartAccountParams, keyof ExtendedValidatorProviderParams<P>>;
11
+ validatorConfig?: Omit<P, keyof ExtendedValidatorProviderParams<P>>;
12
+ };
13
+ export interface ValidatorProviderParams<P extends KernelBaseValidatorParams> {
14
+ projectId: string;
15
+ owner: SmartAccountSigner;
16
+ bundlerProvider?: PaymasterAndBundlerProviders;
17
+ opts?: ValidatorProviderParamsOpts<P>;
18
+ usePaymaster?: boolean;
19
+ }
20
+ export type ExtendedValidatorProviderParams<P extends KernelBaseValidatorParams> = ValidatorProviderParams<P> & RequiredProps<P>;
21
+ export declare abstract class ValidatorProvider<P extends KernelBaseValidatorParams> extends ZeroDevProvider {
22
+ constructor(params: ExtendedValidatorProviderParams<P>, validator: KernelBaseValidator);
23
+ getValidator: () => KernelBaseValidator;
24
+ getEncodedEnableData: (enableData: Hex) => Promise<Hex>;
25
+ getEncodedDisableData: (disableData: Hex) => Promise<Hex>;
26
+ sendEnableUserOperation: (enableData: Hex) => Promise<SendUserOperationResult>;
27
+ sendDisableUserOperation: (disableData: Hex) => Promise<SendUserOperationResult>;
28
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidatorProvider = void 0;
4
+ const provider_js_1 = require("../provider.js");
5
+ const account_js_1 = require("../account.js");
6
+ const chains_1 = require("viem/chains");
7
+ const paymaster_js_1 = require("../middleware/paymaster.js");
8
+ class ValidatorProvider extends provider_js_1.ZeroDevProvider {
9
+ constructor(params, validator) {
10
+ super({
11
+ ...params.opts?.providerConfig,
12
+ chain: params.opts?.providerConfig?.chain ?? chains_1.polygonMumbai,
13
+ rpcUrl: params.opts?.providerConfig?.rpcUrl,
14
+ projectId: params.projectId,
15
+ bundlerProvider: params.bundlerProvider,
16
+ });
17
+ Object.defineProperty(this, "getValidator", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: () => {
22
+ if (!(0, account_js_1.isKernelAccount)(this.account) || !this.account.validator) {
23
+ throw new Error("ValidatorProvider: account with validator is not set, did you call all connects first?");
24
+ }
25
+ return this.account.getValidator();
26
+ }
27
+ });
28
+ Object.defineProperty(this, "getEncodedEnableData", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: async (enableData) => {
33
+ if (!(0, account_js_1.isKernelAccount)(this.account) || !this.account.validator) {
34
+ throw new Error("ValidatorProvider: account with validator is not set, did you call all connects first?");
35
+ }
36
+ return await this.account.validator.encodeEnable(enableData);
37
+ }
38
+ });
39
+ Object.defineProperty(this, "getEncodedDisableData", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: async (disableData) => {
44
+ if (!(0, account_js_1.isKernelAccount)(this.account) || !this.account.validator) {
45
+ throw new Error("ValidatorProvider: account with validator is not set, did you call all connects first?");
46
+ }
47
+ return await this.account.validator.encodeDisable(disableData);
48
+ }
49
+ });
50
+ Object.defineProperty(this, "sendEnableUserOperation", {
51
+ enumerable: true,
52
+ configurable: true,
53
+ writable: true,
54
+ value: async (enableData) => {
55
+ const encodedEnableData = await this.getEncodedEnableData(enableData);
56
+ if (!(0, account_js_1.isKernelAccount)(this.account) || !this.account.validator) {
57
+ throw new Error("ValidatorProvider: account with validator is not set, did you call all connects first?");
58
+ }
59
+ return await this.sendUserOperation({
60
+ target: this.account.validator.validatorAddress,
61
+ data: encodedEnableData,
62
+ });
63
+ }
64
+ });
65
+ Object.defineProperty(this, "sendDisableUserOperation", {
66
+ enumerable: true,
67
+ configurable: true,
68
+ writable: true,
69
+ value: async (disableData) => {
70
+ const encodedDisableData = await this.getEncodedDisableData(disableData);
71
+ if (!(0, account_js_1.isKernelAccount)(this.account) || !this.account.validator) {
72
+ throw new Error("ValidatorProvider: account with validator is not set, did you call all connects first?");
73
+ }
74
+ return await this.sendUserOperation({
75
+ target: this.account.validator.validatorAddress,
76
+ data: encodedDisableData,
77
+ });
78
+ }
79
+ });
80
+ this.connect(() => new account_js_1.KernelSmartContractAccount({
81
+ projectId: params.projectId,
82
+ owner: params.owner,
83
+ validator,
84
+ rpcClient: this.rpcClient,
85
+ bundlerProvider: params.bundlerProvider,
86
+ ...params.opts?.accountConfig,
87
+ }));
88
+ if (params.usePaymaster === undefined || params.usePaymaster) {
89
+ (0, paymaster_js_1.withZeroDevPaymasterAndData)(this, params.opts?.paymasterConfig ?? { policy: "VERIFYING_PAYMASTER" });
90
+ }
91
+ }
92
+ }
93
+ exports.ValidatorProvider = ValidatorProvider;
94
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/base.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type Hex,\n type SendUserOperationResult,\n type SmartAccountSigner,\n} from \"@alchemy/aa-core\";\nimport { ZeroDevProvider, type ZeroDevProviderConfig } from \"../provider.js\";\nimport type {\n KernelBaseValidator,\n KernelBaseValidatorParams,\n} from \"../validator/base.js\";\nimport type {\n PaymasterAndBundlerProviders,\n PaymasterConfig,\n PaymasterPolicy,\n} from \"../paymaster/types.js\";\nimport {\n KernelSmartContractAccount,\n type KernelSmartAccountParams,\n isKernelAccount,\n} from \"../account.js\";\nimport { polygonMumbai } from \"viem/chains\";\nimport { withZeroDevPaymasterAndData } from \"../middleware/paymaster.js\";\nimport type { RequiredProps } from \"../types.js\";\n\nexport type ValidatorProviderParamsOpts<P extends KernelBaseValidatorParams> = {\n paymasterConfig?: PaymasterConfig<PaymasterPolicy>;\n providerConfig?: Partial<ZeroDevProviderConfig>;\n accountConfig?: Omit<\n KernelSmartAccountParams,\n keyof ExtendedValidatorProviderParams<P>\n >;\n validatorConfig?: Omit<P, keyof ExtendedValidatorProviderParams<P>>;\n};\n\nexport interface ValidatorProviderParams<P extends KernelBaseValidatorParams> {\n projectId: string;\n owner: SmartAccountSigner;\n bundlerProvider?: PaymasterAndBundlerProviders;\n opts?: ValidatorProviderParamsOpts<P>;\n usePaymaster?: boolean;\n}\n\nexport type ExtendedValidatorProviderParams<\n P extends KernelBaseValidatorParams\n> = ValidatorProviderParams<P> & RequiredProps<P>;\n\n// A simple facade abstraction for validator related provider operations\n// Needs to be implemented for each validator plugin\nexport abstract class ValidatorProvider<\n P extends KernelBaseValidatorParams\n> extends ZeroDevProvider {\n constructor(\n params: ExtendedValidatorProviderParams<P>,\n validator: KernelBaseValidator\n ) {\n super({\n ...params.opts?.providerConfig,\n chain: params.opts?.providerConfig?.chain ?? polygonMumbai,\n rpcUrl: params.opts?.providerConfig?.rpcUrl,\n projectId: params.projectId,\n bundlerProvider: params.bundlerProvider,\n });\n this.connect(\n () =>\n new KernelSmartContractAccount({\n projectId: params.projectId,\n owner: params.owner,\n validator,\n rpcClient: this.rpcClient,\n bundlerProvider: params.bundlerProvider,\n ...params.opts?.accountConfig,\n })\n );\n if (params.usePaymaster === undefined || params.usePaymaster) {\n withZeroDevPaymasterAndData(\n this,\n params.opts?.paymasterConfig ?? { policy: \"VERIFYING_PAYMASTER\" }\n );\n }\n }\n\n getValidator = (): KernelBaseValidator => {\n if (!isKernelAccount(this.account) || !this.account.validator) {\n throw new Error(\n \"ValidatorProvider: account with validator is not set, did you call all connects first?\"\n );\n }\n return this.account.getValidator();\n };\n\n getEncodedEnableData = async (enableData: Hex): Promise<Hex> => {\n if (!isKernelAccount(this.account) || !this.account.validator) {\n throw new Error(\n \"ValidatorProvider: account with validator is not set, did you call all connects first?\"\n );\n }\n return await this.account.validator.encodeEnable(enableData);\n };\n\n getEncodedDisableData = async (disableData: Hex): Promise<Hex> => {\n if (!isKernelAccount(this.account) || !this.account.validator) {\n throw new Error(\n \"ValidatorProvider: account with validator is not set, did you call all connects first?\"\n );\n }\n return await this.account.validator.encodeDisable(disableData);\n };\n\n sendEnableUserOperation = async (\n enableData: Hex\n ): Promise<SendUserOperationResult> => {\n const encodedEnableData = await this.getEncodedEnableData(enableData);\n if (!isKernelAccount(this.account) || !this.account.validator) {\n throw new Error(\n \"ValidatorProvider: account with validator is not set, did you call all connects first?\"\n );\n }\n\n return await this.sendUserOperation({\n target: this.account.validator.validatorAddress,\n data: encodedEnableData,\n });\n };\n\n sendDisableUserOperation = async (\n disableData: Hex\n ): Promise<SendUserOperationResult> => {\n const encodedDisableData = await this.getEncodedDisableData(disableData);\n if (!isKernelAccount(this.account) || !this.account.validator) {\n throw new Error(\n \"ValidatorProvider: account with validator is not set, did you call all connects first?\"\n );\n }\n\n return await this.sendUserOperation({\n target: this.account.validator.validatorAddress,\n data: encodedDisableData,\n });\n };\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { ValidatorProvider, type ExtendedValidatorProviderParams } from "./base.js";
2
+ import { type ECDSAValidatorParams } from "../validator/ecdsa-validator.js";
3
+ export declare class ECDSAProvider extends ValidatorProvider<ECDSAValidatorParams> {
4
+ constructor(params: ExtendedValidatorProviderParams<ECDSAValidatorParams>);
5
+ static init(params: ExtendedValidatorProviderParams<ECDSAValidatorParams>): Promise<ECDSAProvider>;
6
+ changeOwner: (enableData: `0x${string}`) => Promise<import("@alchemy/aa-core").SendUserOperationResult>;
7
+ deleteOwner: (disableData: `0x${string}`) => Promise<import("@alchemy/aa-core").SendUserOperationResult>;
8
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ECDSAProvider = void 0;
4
+ const base_js_1 = require("./base.js");
5
+ const ecdsa_validator_js_1 = require("../validator/ecdsa-validator.js");
6
+ const aa_core_1 = require("@alchemy/aa-core");
7
+ const index_js_1 = require("../api/index.js");
8
+ const chains_1 = require("viem/chains");
9
+ class ECDSAProvider extends base_js_1.ValidatorProvider {
10
+ constructor(params) {
11
+ const chain = typeof params.opts?.providerConfig?.chain === "number"
12
+ ? (0, aa_core_1.getChain)(params.opts.providerConfig.chain)
13
+ : params.opts?.providerConfig?.chain ?? chains_1.polygonMumbai;
14
+ const validator = new ecdsa_validator_js_1.ECDSAValidator({
15
+ projectId: params.projectId,
16
+ owner: params.owner,
17
+ chain,
18
+ ...params.opts?.validatorConfig,
19
+ });
20
+ super({
21
+ ...params,
22
+ opts: {
23
+ ...params.opts,
24
+ providerConfig: { ...params.opts?.providerConfig, chain },
25
+ },
26
+ }, validator);
27
+ Object.defineProperty(this, "changeOwner", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: this.sendEnableUserOperation
32
+ });
33
+ Object.defineProperty(this, "deleteOwner", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: this.sendDisableUserOperation
38
+ });
39
+ }
40
+ static async init(params) {
41
+ const chainId = await (0, index_js_1.getChainId)(params.projectId);
42
+ if (!chainId) {
43
+ throw new Error("ChainId not found");
44
+ }
45
+ const chain = (0, aa_core_1.getChain)(chainId);
46
+ const instance = new ECDSAProvider({
47
+ ...params,
48
+ opts: {
49
+ ...params.opts,
50
+ providerConfig: {
51
+ chain,
52
+ ...params.opts?.providerConfig,
53
+ },
54
+ },
55
+ });
56
+ return instance;
57
+ }
58
+ }
59
+ exports.ECDSAProvider = ECDSAProvider;
60
+ //# sourceMappingURL=ecdsa-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecdsa-provider.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/ecdsa-provider.ts"],"names":[],"mappings":";;;AAAA,uCAGmB;AACnB,wEAGyC;AACzC,8CAA4C;AAC5C,8CAA6C;AAC7C,wCAA4C;AAE5C,MAAa,aAAc,SAAQ,2BAAuC;IACxE,YAAY,MAA6D;QACvE,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,KAAK,QAAQ;YACpD,CAAC,CAAC,IAAA,kBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,IAAI,sBAAa,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,mCAAc,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK;YACL,GAAG,MAAM,CAAC,IAAI,EAAE,eAAe;SAChC,CAAC,CAAC;QACH,KAAK,CACH;YACE,GAAG,MAAM;YACT,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI;gBACd,cAAc,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;aAC1D;SACF,EACD,SAAS,CACV,CAAC;QAwBJ;;;;mBAAc,IAAI,CAAC,uBAAuB;WAAC;QAE3C;;;;mBAAc,IAAI,CAAC,wBAAwB;WAAC;IAzB5C,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CACtB,MAA6D;QAE7D,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAU,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QACD,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC;YACjC,GAAG,MAAM;YACT,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI;gBACd,cAAc,EAAE;oBACd,KAAK;oBACL,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc;iBAC/B;aACF;SACF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;CAKF;AAhDD,sCAgDC","sourcesContent":["import {\n ValidatorProvider,\n type ExtendedValidatorProviderParams,\n} from \"./base.js\";\nimport {\n ECDSAValidator,\n type ECDSAValidatorParams,\n} from \"../validator/ecdsa-validator.js\";\nimport { getChain } from \"@alchemy/aa-core\";\nimport { getChainId } from \"../api/index.js\";\nimport { polygonMumbai } from \"viem/chains\";\n\nexport class ECDSAProvider extends ValidatorProvider<ECDSAValidatorParams> {\n constructor(params: ExtendedValidatorProviderParams<ECDSAValidatorParams>) {\n const chain =\n typeof params.opts?.providerConfig?.chain === \"number\"\n ? getChain(params.opts.providerConfig.chain)\n : params.opts?.providerConfig?.chain ?? polygonMumbai;\n const validator = new ECDSAValidator({\n projectId: params.projectId,\n owner: params.owner,\n chain,\n ...params.opts?.validatorConfig,\n });\n super(\n {\n ...params,\n opts: {\n ...params.opts,\n providerConfig: { ...params.opts?.providerConfig, chain },\n },\n },\n validator\n );\n }\n\n public static async init(\n params: ExtendedValidatorProviderParams<ECDSAValidatorParams>\n ): Promise<ECDSAProvider> {\n const chainId = await getChainId(params.projectId);\n if (!chainId) {\n throw new Error(\"ChainId not found\");\n }\n const chain = getChain(chainId);\n const instance = new ECDSAProvider({\n ...params,\n opts: {\n ...params.opts,\n providerConfig: {\n chain,\n ...params.opts?.providerConfig,\n },\n },\n });\n return instance;\n }\n\n changeOwner = this.sendEnableUserOperation;\n\n deleteOwner = this.sendDisableUserOperation;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { ValidatorProvider, type ExtendedValidatorProviderParams } from "./base.js";
2
+ import { type ERC165SessionKeyValidatorParams } from "../validator/erc165-session-key-validator.js";
3
+ export declare class ERC165SessionKeyProvider extends ValidatorProvider<ERC165SessionKeyValidatorParams> {
4
+ constructor(params: ExtendedValidatorProviderParams<ERC165SessionKeyValidatorParams>);
5
+ static init(params: ExtendedValidatorProviderParams<ERC165SessionKeyValidatorParams>): Promise<ERC165SessionKeyProvider>;
6
+ changeGuardian: (enableData: `0x${string}`) => Promise<import("@alchemy/aa-core").SendUserOperationResult>;
7
+ deleteERC165SessionKeyData: (disableData: `0x${string}`) => Promise<import("@alchemy/aa-core").SendUserOperationResult>;
8
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC165SessionKeyProvider = void 0;
4
+ const base_js_1 = require("./base.js");
5
+ const erc165_session_key_validator_js_1 = require("../validator/erc165-session-key-validator.js");
6
+ const aa_core_1 = require("@alchemy/aa-core");
7
+ const index_js_1 = require("../api/index.js");
8
+ const chains_1 = require("viem/chains");
9
+ const constants_js_1 = require("../constants.js");
10
+ class ERC165SessionKeyProvider extends base_js_1.ValidatorProvider {
11
+ constructor(params) {
12
+ const chain = typeof params.opts?.providerConfig?.chain === "number"
13
+ ? (0, aa_core_1.getChain)(params.opts.providerConfig.chain)
14
+ : params.opts?.providerConfig?.chain ?? chains_1.polygonMumbai;
15
+ const validator = new erc165_session_key_validator_js_1.ERC165SessionKeyValidator({
16
+ projectId: params.projectId,
17
+ sessionKey: params.sessionKey,
18
+ sessionKeyData: params.sessionKeyData,
19
+ chain,
20
+ validatorAddress: params.opts?.validatorConfig?.validatorAddress ??
21
+ constants_js_1.ERC165_SESSION_KEY_VALIDATOR_ADDRESS,
22
+ ...params.opts?.validatorConfig,
23
+ });
24
+ super({
25
+ ...params,
26
+ opts: {
27
+ ...params.opts,
28
+ providerConfig: { ...params.opts?.providerConfig, chain },
29
+ },
30
+ }, validator);
31
+ Object.defineProperty(this, "changeGuardian", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: this.sendEnableUserOperation
36
+ });
37
+ Object.defineProperty(this, "deleteERC165SessionKeyData", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: this.sendDisableUserOperation
42
+ });
43
+ }
44
+ static async init(params) {
45
+ const chainId = await (0, index_js_1.getChainId)(params.projectId);
46
+ if (!chainId) {
47
+ throw new Error("ChainId not found");
48
+ }
49
+ const chain = (0, aa_core_1.getChain)(chainId);
50
+ const instance = new ERC165SessionKeyProvider({
51
+ ...params,
52
+ opts: {
53
+ ...params.opts,
54
+ providerConfig: {
55
+ chain,
56
+ ...params.opts?.providerConfig,
57
+ },
58
+ },
59
+ });
60
+ return instance;
61
+ }
62
+ }
63
+ exports.ERC165SessionKeyProvider = ERC165SessionKeyProvider;
64
+ //# sourceMappingURL=erc165-session-key-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc165-session-key-provider.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/erc165-session-key-provider.ts"],"names":[],"mappings":";;;AAAA,uCAGmB;AACnB,kGAGsD;AACtD,8CAA4C;AAC5C,8CAA6C;AAC7C,wCAA4C;AAC5C,kDAAuE;AAEvE,MAAa,wBAAyB,SAAQ,2BAAkD;IAC9F,YACE,MAAwE;QAExE,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,KAAK,QAAQ;YACpD,CAAC,CAAC,IAAA,kBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,IAAI,sBAAa,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,2DAAyB,CAAC;YAC9C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,KAAK;YACL,gBAAgB,EACd,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,gBAAgB;gBAC9C,mDAAoC;YACtC,GAAG,MAAM,CAAC,IAAI,EAAE,eAAe;SAChC,CAAC,CAAC;QACH,KAAK,CACH;YACE,GAAG,MAAM;YACT,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI;gBACd,cAAc,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE;aAC1D;SACF,EACD,SAAS,CACV,CAAC;QAwBJ;;;;mBAAiB,IAAI,CAAC,uBAAuB;WAAC;QAE9C;;;;mBAA6B,IAAI,CAAC,wBAAwB;WAAC;IAzB3D,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CACtB,MAAwE;QAExE,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAU,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QACD,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC;YAC5C,GAAG,MAAM;YACT,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI;gBACd,cAAc,EAAE;oBACd,KAAK;oBACL,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc;iBAC/B;aACF;SACF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;CAKF;AAtDD,4DAsDC","sourcesContent":["import {\n ValidatorProvider,\n type ExtendedValidatorProviderParams,\n} from \"./base.js\";\nimport {\n ERC165SessionKeyValidator,\n type ERC165SessionKeyValidatorParams,\n} from \"../validator/erc165-session-key-validator.js\";\nimport { getChain } from \"@alchemy/aa-core\";\nimport { getChainId } from \"../api/index.js\";\nimport { polygonMumbai } from \"viem/chains\";\nimport { ERC165_SESSION_KEY_VALIDATOR_ADDRESS } from \"../constants.js\";\n\nexport class ERC165SessionKeyProvider extends ValidatorProvider<ERC165SessionKeyValidatorParams> {\n constructor(\n params: ExtendedValidatorProviderParams<ERC165SessionKeyValidatorParams>\n ) {\n const chain =\n typeof params.opts?.providerConfig?.chain === \"number\"\n ? getChain(params.opts.providerConfig.chain)\n : params.opts?.providerConfig?.chain ?? polygonMumbai;\n const validator = new ERC165SessionKeyValidator({\n projectId: params.projectId,\n sessionKey: params.sessionKey,\n sessionKeyData: params.sessionKeyData,\n chain,\n validatorAddress:\n params.opts?.validatorConfig?.validatorAddress ??\n ERC165_SESSION_KEY_VALIDATOR_ADDRESS,\n ...params.opts?.validatorConfig,\n });\n super(\n {\n ...params,\n opts: {\n ...params.opts,\n providerConfig: { ...params.opts?.providerConfig, chain },\n },\n },\n validator\n );\n }\n\n public static async init(\n params: ExtendedValidatorProviderParams<ERC165SessionKeyValidatorParams>\n ): Promise<ERC165SessionKeyProvider> {\n const chainId = await getChainId(params.projectId);\n if (!chainId) {\n throw new Error(\"ChainId not found\");\n }\n const chain = getChain(chainId);\n const instance = new ERC165SessionKeyProvider({\n ...params,\n opts: {\n ...params.opts,\n providerConfig: {\n chain,\n ...params.opts?.providerConfig,\n },\n },\n });\n return instance;\n }\n\n changeGuardian = this.sendEnableUserOperation;\n\n deleteERC165SessionKeyData = this.sendDisableUserOperation;\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { ECDSAProvider } from "./ecdsa-provider.js";
2
+ import { ERC165SessionKeyProvider } from "./erc165-session-key-provider.js";
3
+ import { KillSwitchProvider } from "./kill-switch-provider.js";
4
+ import type { ValidatorProviderMap } from "./types.js";
5
+ export declare const ValidatorProviders: ValidatorProviderMap;
6
+ export { ECDSAProvider, KillSwitchProvider, ERC165SessionKeyProvider };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC165SessionKeyProvider = exports.KillSwitchProvider = exports.ECDSAProvider = exports.ValidatorProviders = void 0;
4
+ const ecdsa_provider_js_1 = require("./ecdsa-provider.js");
5
+ Object.defineProperty(exports, "ECDSAProvider", { enumerable: true, get: function () { return ecdsa_provider_js_1.ECDSAProvider; } });
6
+ const erc165_session_key_provider_js_1 = require("./erc165-session-key-provider.js");
7
+ Object.defineProperty(exports, "ERC165SessionKeyProvider", { enumerable: true, get: function () { return erc165_session_key_provider_js_1.ERC165SessionKeyProvider; } });
8
+ const kill_switch_provider_js_1 = require("./kill-switch-provider.js");
9
+ Object.defineProperty(exports, "KillSwitchProvider", { enumerable: true, get: function () { return kill_switch_provider_js_1.KillSwitchProvider; } });
10
+ exports.ValidatorProviders = {
11
+ ECDSA: ecdsa_provider_js_1.ECDSAProvider,
12
+ KILL_SWITCH: kill_switch_provider_js_1.KillSwitchProvider,
13
+ ERC165_SESSION_KEY: erc165_session_key_provider_js_1.ERC165SessionKeyProvider,
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/index.ts"],"names":[],"mappings":";;;AAAA,2DAAoD;AAW3C,8FAXA,iCAAa,OAWA;AAVtB,qFAA4E;AAUhC,yGAVnC,yDAAwB,OAUmC;AATpE,uEAA+D;AASvC,mGATf,4CAAkB,OASe;AAN7B,QAAA,kBAAkB,GAAyB;IACtD,KAAK,EAAE,iCAAa;IACpB,WAAW,EAAE,4CAAkB;IAC/B,kBAAkB,EAAE,yDAAwB;CAC7C,CAAC","sourcesContent":["import { ECDSAProvider } from \"./ecdsa-provider.js\";\nimport { ERC165SessionKeyProvider } from \"./erc165-session-key-provider.js\";\nimport { KillSwitchProvider } from \"./kill-switch-provider.js\";\nimport type { ValidatorProviderMap } from \"./types.js\";\n\nexport const ValidatorProviders: ValidatorProviderMap = {\n ECDSA: ECDSAProvider,\n KILL_SWITCH: KillSwitchProvider,\n ERC165_SESSION_KEY: ERC165SessionKeyProvider,\n};\n\nexport { ECDSAProvider, KillSwitchProvider, ERC165SessionKeyProvider };\n"]}
@@ -0,0 +1,8 @@
1
+ import { ValidatorProvider, type ExtendedValidatorProviderParams } from "./base.js";
2
+ import { type KillSwitchValidatorParams } from "../validator/kill-switch-validator.js";
3
+ export declare class KillSwitchProvider extends ValidatorProvider<KillSwitchValidatorParams> {
4
+ constructor(params: ExtendedValidatorProviderParams<KillSwitchValidatorParams>);
5
+ static init(params: ExtendedValidatorProviderParams<KillSwitchValidatorParams>): Promise<KillSwitchProvider>;
6
+ changeGuardian: (enableData: `0x${string}`) => Promise<import("@alchemy/aa-core").SendUserOperationResult>;
7
+ deleteKillSwitchData: (disableData: `0x${string}`) => Promise<import("@alchemy/aa-core").SendUserOperationResult>;
8
+ }