@rhinestone/sdk 2.0.0-beta.9 → 2.1.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 (615) hide show
  1. package/README.md +2 -2
  2. package/dist/src/accounts/adapter.d.ts +31 -0
  3. package/dist/src/accounts/adapter.d.ts.map +1 -0
  4. package/dist/src/accounts/adapters/eoa.d.ts +4 -0
  5. package/dist/src/accounts/adapters/eoa.d.ts.map +1 -0
  6. package/dist/src/accounts/adapters/eoa.js +45 -0
  7. package/dist/src/accounts/adapters/hca.d.ts +5 -0
  8. package/dist/src/accounts/adapters/hca.d.ts.map +1 -0
  9. package/dist/src/accounts/adapters/hca.js +121 -0
  10. package/dist/src/accounts/adapters/kernel.d.ts +9 -0
  11. package/dist/src/accounts/adapters/kernel.d.ts.map +1 -0
  12. package/dist/src/accounts/adapters/kernel.js +159 -0
  13. package/dist/src/accounts/adapters/nexus.d.ts +16 -0
  14. package/dist/src/accounts/adapters/nexus.d.ts.map +1 -0
  15. package/dist/src/accounts/adapters/nexus.js +212 -0
  16. package/dist/src/accounts/adapters/safe.d.ts +6 -0
  17. package/dist/src/accounts/adapters/safe.d.ts.map +1 -0
  18. package/dist/src/accounts/adapters/safe.js +194 -0
  19. package/dist/src/accounts/adapters/shared.d.ts +9 -0
  20. package/dist/src/accounts/adapters/shared.d.ts.map +1 -0
  21. package/dist/src/accounts/adapters/shared.js +62 -0
  22. package/dist/src/accounts/adapters/startale.d.ts +14 -0
  23. package/dist/src/accounts/adapters/startale.d.ts.map +1 -0
  24. package/dist/src/accounts/adapters/startale.js +165 -0
  25. package/dist/src/accounts/construction.d.ts +25 -0
  26. package/dist/src/accounts/construction.d.ts.map +1 -0
  27. package/dist/src/accounts/construction.js +34 -0
  28. package/dist/src/accounts/deployment.d.ts +12 -0
  29. package/dist/src/accounts/deployment.d.ts.map +1 -0
  30. package/dist/src/accounts/deployment.js +33 -0
  31. package/dist/src/accounts/erc7579-calls.d.ts +4 -0
  32. package/dist/src/accounts/erc7579-calls.d.ts.map +1 -0
  33. package/dist/src/accounts/erc7579-calls.js +57 -0
  34. package/dist/src/accounts/error.d.ts +3 -10
  35. package/dist/src/accounts/error.d.ts.map +1 -1
  36. package/dist/src/accounts/error.js +5 -11
  37. package/dist/src/accounts/legacy.d.ts +14 -0
  38. package/dist/src/accounts/legacy.d.ts.map +1 -0
  39. package/dist/src/accounts/legacy.js +40 -0
  40. package/dist/src/accounts/registry.d.ts +4 -0
  41. package/dist/src/accounts/registry.d.ts.map +1 -0
  42. package/dist/src/accounts/registry.js +22 -0
  43. package/dist/src/accounts/types.d.ts +131 -0
  44. package/dist/src/accounts/types.d.ts.map +1 -0
  45. package/dist/src/accounts/types.js +1 -0
  46. package/dist/src/accounts/wallet-account.d.ts +3 -0
  47. package/dist/src/accounts/wallet-account.d.ts.map +1 -0
  48. package/dist/src/accounts/wallet-account.js +12 -0
  49. package/dist/src/actions/deploy.d.ts +4 -0
  50. package/dist/src/actions/deploy.d.ts.map +1 -0
  51. package/dist/src/actions/deploy.js +8 -0
  52. package/dist/src/actions/ecdsa.d.ts +2 -2
  53. package/dist/src/actions/ecdsa.d.ts.map +1 -1
  54. package/dist/src/actions/ecdsa.js +12 -65
  55. package/dist/src/actions/index.d.ts +2 -16
  56. package/dist/src/actions/index.d.ts.map +1 -1
  57. package/dist/src/actions/index.js +3 -49
  58. package/dist/src/actions/mfa.d.ts +1 -1
  59. package/dist/src/actions/mfa.d.ts.map +1 -1
  60. package/dist/src/actions/mfa.js +30 -10
  61. package/dist/src/actions/modules.d.ts +4 -0
  62. package/dist/src/actions/modules.d.ts.map +1 -0
  63. package/dist/src/actions/modules.js +22 -0
  64. package/dist/src/actions/ownable.d.ts +6 -0
  65. package/dist/src/actions/ownable.d.ts.map +1 -0
  66. package/dist/src/actions/ownable.js +63 -0
  67. package/dist/src/actions/passkeys.d.ts +2 -2
  68. package/dist/src/actions/passkeys.d.ts.map +1 -1
  69. package/dist/src/actions/passkeys.js +23 -78
  70. package/dist/src/actions/recovery.d.ts +58 -24
  71. package/dist/src/actions/recovery.d.ts.map +1 -1
  72. package/dist/src/actions/recovery.js +107 -162
  73. package/dist/src/actions/runtime.d.ts +17 -0
  74. package/dist/src/actions/runtime.d.ts.map +1 -0
  75. package/dist/src/actions/runtime.js +182 -0
  76. package/dist/src/actions/smart-sessions.d.ts +30 -6
  77. package/dist/src/actions/smart-sessions.d.ts.map +1 -1
  78. package/dist/src/actions/smart-sessions.js +69 -18
  79. package/dist/src/actions/webauthn.d.ts +6 -0
  80. package/dist/src/actions/webauthn.d.ts.map +1 -0
  81. package/dist/src/actions/webauthn.js +67 -0
  82. package/dist/src/api/account.d.ts +265 -0
  83. package/dist/src/api/account.d.ts.map +1 -0
  84. package/dist/src/api/account.js +638 -0
  85. package/dist/src/api/accounts.d.ts +12 -0
  86. package/dist/src/api/accounts.d.ts.map +1 -0
  87. package/dist/src/api/accounts.js +17 -0
  88. package/dist/src/api/compose-types.d.ts +147 -0
  89. package/dist/src/api/compose-types.d.ts.map +1 -0
  90. package/dist/src/api/compose-types.js +1 -0
  91. package/dist/src/api/compose.d.ts +6 -0
  92. package/dist/src/api/compose.d.ts.map +1 -0
  93. package/dist/src/api/compose.js +772 -0
  94. package/dist/src/api/direct-signing.d.ts +27 -0
  95. package/dist/src/api/direct-signing.d.ts.map +1 -0
  96. package/dist/src/api/direct-signing.js +191 -0
  97. package/dist/src/api/project-mappers.d.ts +7 -0
  98. package/dist/src/api/project-mappers.d.ts.map +1 -0
  99. package/dist/src/api/project-mappers.js +23 -0
  100. package/dist/src/api/queries/app-fees.d.ts +4 -0
  101. package/dist/src/api/queries/app-fees.d.ts.map +1 -0
  102. package/dist/src/api/queries/app-fees.js +3 -0
  103. package/dist/src/api/queries/portfolio.d.ts +9 -0
  104. package/dist/src/api/queries/portfolio.d.ts.map +1 -0
  105. package/dist/src/api/queries/portfolio.js +28 -0
  106. package/dist/src/api/queries/session.d.ts +8 -0
  107. package/dist/src/api/queries/session.d.ts.map +1 -0
  108. package/dist/src/api/queries/session.js +15 -0
  109. package/dist/src/api/sdk.d.ts +80 -0
  110. package/dist/src/api/sdk.d.ts.map +1 -0
  111. package/dist/src/api/sdk.js +103 -0
  112. package/dist/src/api/signer-selection.d.ts +20 -0
  113. package/dist/src/api/signer-selection.d.ts.map +1 -0
  114. package/dist/src/api/signer-selection.js +159 -0
  115. package/dist/src/calls/normalize.d.ts +9 -0
  116. package/dist/src/calls/normalize.d.ts.map +1 -0
  117. package/dist/src/calls/normalize.js +17 -0
  118. package/dist/src/calls/resolve.d.ts +3 -0
  119. package/dist/src/calls/resolve.d.ts.map +1 -0
  120. package/dist/src/calls/resolve.js +15 -0
  121. package/dist/src/calls/types.d.ts +25 -0
  122. package/dist/src/calls/types.d.ts.map +1 -0
  123. package/dist/src/calls/types.js +1 -0
  124. package/dist/src/chains/caip2.d.ts +10 -0
  125. package/dist/src/chains/caip2.d.ts.map +1 -0
  126. package/dist/src/chains/caip2.js +85 -0
  127. package/dist/src/chains/catalog.d.ts +5 -0
  128. package/dist/src/chains/catalog.d.ts.map +1 -0
  129. package/dist/src/chains/catalog.js +41 -0
  130. package/dist/src/chains/errors.d.ts +15 -0
  131. package/dist/src/chains/errors.d.ts.map +1 -0
  132. package/dist/src/chains/errors.js +21 -0
  133. package/dist/src/{orchestrator/destinations.d.ts → chains/non-evm.d.ts} +9 -6
  134. package/dist/src/chains/non-evm.d.ts.map +1 -0
  135. package/dist/src/chains/non-evm.js +30 -0
  136. package/dist/src/chains/tokens.d.ts +4 -0
  137. package/dist/src/chains/tokens.d.ts.map +1 -0
  138. package/dist/src/chains/tokens.js +22 -0
  139. package/dist/src/chains/types.d.ts +25 -0
  140. package/dist/src/chains/types.d.ts.map +1 -0
  141. package/dist/src/chains/types.js +1 -0
  142. package/dist/src/clients/bundler/client.d.ts +10 -0
  143. package/dist/src/clients/bundler/client.d.ts.map +1 -0
  144. package/dist/src/clients/bundler/client.js +85 -0
  145. package/dist/src/clients/bundler/endpoints.d.ts +3 -0
  146. package/dist/src/clients/bundler/endpoints.d.ts.map +1 -0
  147. package/dist/src/clients/bundler/endpoints.js +18 -0
  148. package/dist/src/clients/bundler/port.d.ts +22 -0
  149. package/dist/src/clients/bundler/port.d.ts.map +1 -0
  150. package/dist/src/clients/bundler/port.js +1 -0
  151. package/dist/src/clients/json-rpc.d.ts +20 -0
  152. package/dist/src/clients/json-rpc.d.ts.map +1 -0
  153. package/dist/src/clients/json-rpc.js +56 -0
  154. package/dist/src/clients/orchestrator/auth.d.ts +7 -0
  155. package/dist/src/clients/orchestrator/auth.d.ts.map +1 -0
  156. package/dist/src/clients/orchestrator/auth.js +27 -0
  157. package/dist/src/clients/orchestrator/chain-catalog.d.ts +36 -0
  158. package/dist/src/clients/orchestrator/chain-catalog.d.ts.map +1 -0
  159. package/dist/src/clients/orchestrator/chain-catalog.js +67 -0
  160. package/dist/src/clients/orchestrator/client.d.ts +13 -0
  161. package/dist/src/clients/orchestrator/client.d.ts.map +1 -0
  162. package/dist/src/clients/orchestrator/client.js +97 -0
  163. package/dist/src/clients/orchestrator/errors.d.ts +238 -0
  164. package/dist/src/clients/orchestrator/errors.d.ts.map +1 -0
  165. package/dist/src/clients/orchestrator/errors.js +525 -0
  166. package/dist/src/clients/orchestrator/fetch.d.ts +7 -0
  167. package/dist/src/clients/orchestrator/fetch.d.ts.map +1 -0
  168. package/dist/src/clients/orchestrator/fetch.js +37 -0
  169. package/dist/src/clients/orchestrator/mappers.d.ts +9 -0
  170. package/dist/src/clients/orchestrator/mappers.d.ts.map +1 -0
  171. package/dist/src/clients/orchestrator/mappers.js +198 -0
  172. package/dist/src/clients/orchestrator/port.d.ts +26 -0
  173. package/dist/src/clients/orchestrator/port.d.ts.map +1 -0
  174. package/dist/src/clients/orchestrator/port.js +1 -0
  175. package/dist/src/{orchestrator/types.d.ts → clients/orchestrator/public.d.ts} +113 -43
  176. package/dist/src/clients/orchestrator/public.d.ts.map +1 -0
  177. package/dist/src/clients/orchestrator/public.js +14 -0
  178. package/dist/src/clients/orchestrator/types.d.ts +144 -0
  179. package/dist/src/clients/orchestrator/types.d.ts.map +1 -0
  180. package/dist/src/clients/orchestrator/types.js +1 -0
  181. package/dist/src/clients/orchestrator/wire.d.ts +19 -0
  182. package/dist/src/clients/orchestrator/wire.d.ts.map +1 -0
  183. package/dist/src/clients/orchestrator/wire.gen.d.ts +6463 -0
  184. package/dist/src/clients/orchestrator/wire.gen.d.ts.map +1 -0
  185. package/dist/src/clients/orchestrator/wire.gen.js +1 -0
  186. package/dist/src/clients/orchestrator/wire.js +1 -0
  187. package/dist/src/clients/paymaster/client.d.ts +8 -0
  188. package/dist/src/clients/paymaster/client.d.ts.map +1 -0
  189. package/dist/src/clients/paymaster/client.js +38 -0
  190. package/dist/src/clients/paymaster/endpoints.d.ts +3 -0
  191. package/dist/src/clients/paymaster/endpoints.d.ts.map +1 -0
  192. package/dist/src/clients/paymaster/endpoints.js +16 -0
  193. package/dist/src/clients/paymaster/port.d.ts +17 -0
  194. package/dist/src/clients/paymaster/port.d.ts.map +1 -0
  195. package/dist/src/clients/paymaster/port.js +1 -0
  196. package/dist/src/clients/rpc/client.d.ts +6 -0
  197. package/dist/src/clients/rpc/client.d.ts.map +1 -0
  198. package/dist/src/clients/rpc/client.js +66 -0
  199. package/dist/src/clients/rpc/compatibility.d.ts +12 -0
  200. package/dist/src/clients/rpc/compatibility.d.ts.map +1 -0
  201. package/dist/src/clients/rpc/compatibility.js +16 -0
  202. package/dist/src/clients/rpc/port.d.ts +13 -0
  203. package/dist/src/clients/rpc/port.d.ts.map +1 -0
  204. package/dist/src/clients/rpc/port.js +1 -0
  205. package/dist/src/clients/rpc/providers.d.ts +3 -0
  206. package/dist/src/clients/rpc/providers.d.ts.map +1 -0
  207. package/dist/src/clients/rpc/providers.js +8 -0
  208. package/dist/src/clients/rpc/transport.d.ts +4 -0
  209. package/dist/src/clients/rpc/transport.d.ts.map +1 -0
  210. package/dist/src/clients/rpc/transport.js +5 -0
  211. package/dist/src/clients/rpc/types.d.ts +23 -0
  212. package/dist/src/clients/rpc/types.d.ts.map +1 -0
  213. package/dist/src/clients/rpc/types.js +1 -0
  214. package/dist/src/config/account-runtime.d.ts +7 -0
  215. package/dist/src/config/account-runtime.d.ts.map +1 -0
  216. package/dist/src/config/account-runtime.js +36 -0
  217. package/dist/src/config/account.d.ts +767 -0
  218. package/dist/src/config/account.d.ts.map +1 -0
  219. package/dist/src/config/account.js +10 -0
  220. package/dist/src/config/defaults.d.ts +14 -0
  221. package/dist/src/config/defaults.d.ts.map +1 -0
  222. package/dist/src/config/defaults.js +26 -0
  223. package/dist/src/config/input.d.ts +59 -0
  224. package/dist/src/config/input.d.ts.map +1 -0
  225. package/dist/src/config/input.js +1 -0
  226. package/dist/src/config/legacy.d.ts +22 -0
  227. package/dist/src/config/legacy.d.ts.map +1 -0
  228. package/dist/src/config/legacy.js +23 -0
  229. package/dist/src/config/resolve.d.ts +13 -0
  230. package/dist/src/config/resolve.d.ts.map +1 -0
  231. package/dist/src/config/resolve.js +200 -0
  232. package/dist/src/config/resolved.d.ts +77 -0
  233. package/dist/src/config/resolved.d.ts.map +1 -0
  234. package/dist/src/config/resolved.js +1 -0
  235. package/dist/src/config/validate.d.ts +3 -0
  236. package/dist/src/config/validate.d.ts.map +1 -0
  237. package/dist/src/config/validate.js +6 -0
  238. package/dist/src/{execution/error.d.ts → errors/execution.d.ts} +47 -9
  239. package/dist/src/errors/execution.d.ts.map +1 -0
  240. package/dist/src/errors/execution.js +131 -0
  241. package/dist/src/errors/index.d.ts +6 -4
  242. package/dist/src/errors/index.d.ts.map +1 -1
  243. package/dist/src/errors/index.js +7 -6
  244. package/dist/src/index.d.ts +14 -84
  245. package/dist/src/index.d.ts.map +1 -1
  246. package/dist/src/index.js +9 -293
  247. package/dist/src/jwt-server/jcs.d.ts +1 -1
  248. package/dist/src/jwt-server/jcs.js +4 -2
  249. package/dist/src/modules/erc7579-abi.d.ts +4 -0
  250. package/dist/src/modules/erc7579-abi.d.ts.map +1 -0
  251. package/dist/src/modules/erc7579-abi.js +12 -0
  252. package/dist/src/modules/intent-executor.d.ts +6 -0
  253. package/dist/src/modules/intent-executor.d.ts.map +1 -0
  254. package/dist/src/modules/intent-executor.js +13 -0
  255. package/dist/src/modules/legacy-core.d.ts +29 -0
  256. package/dist/src/modules/legacy-core.d.ts.map +1 -0
  257. package/dist/src/modules/legacy-core.js +80 -0
  258. package/dist/src/modules/normalize.d.ts +4 -0
  259. package/dist/src/modules/normalize.d.ts.map +1 -0
  260. package/dist/src/modules/normalize.js +15 -0
  261. package/dist/src/modules/plan.d.ts +16 -0
  262. package/dist/src/modules/plan.d.ts.map +1 -0
  263. package/dist/src/modules/plan.js +51 -0
  264. package/dist/src/modules/read-core.d.ts +62 -0
  265. package/dist/src/modules/read-core.d.ts.map +1 -0
  266. package/dist/src/modules/read-core.js +206 -0
  267. package/dist/src/modules/types.d.ts +46 -0
  268. package/dist/src/modules/types.d.ts.map +1 -0
  269. package/dist/src/modules/types.js +1 -0
  270. package/dist/src/modules/validators/capabilities.d.ts +4 -0
  271. package/dist/src/modules/validators/capabilities.d.ts.map +1 -0
  272. package/dist/src/modules/validators/capabilities.js +58 -0
  273. package/dist/src/modules/validators/contribution.d.ts +4 -0
  274. package/dist/src/modules/validators/contribution.d.ts.map +1 -0
  275. package/dist/src/modules/validators/contribution.js +64 -0
  276. package/dist/src/modules/validators/definition.d.ts +3 -0
  277. package/dist/src/modules/validators/definition.d.ts.map +1 -0
  278. package/dist/src/modules/validators/definition.js +68 -0
  279. package/dist/src/modules/validators/ens.d.ts +5 -0
  280. package/dist/src/modules/validators/ens.d.ts.map +1 -0
  281. package/dist/src/modules/validators/ens.js +34 -0
  282. package/dist/src/modules/validators/k1.d.ts +2 -0
  283. package/dist/src/modules/validators/k1.d.ts.map +1 -0
  284. package/dist/src/modules/validators/k1.js +1 -0
  285. package/dist/src/modules/validators/multi-factor.d.ts +18 -0
  286. package/dist/src/modules/validators/multi-factor.d.ts.map +1 -0
  287. package/dist/src/modules/validators/multi-factor.js +79 -0
  288. package/dist/src/modules/validators/ownable.d.ts +26 -0
  289. package/dist/src/modules/validators/ownable.d.ts.map +1 -0
  290. package/dist/src/modules/validators/ownable.js +84 -0
  291. package/dist/src/modules/validators/permissions.d.ts +2 -1
  292. package/dist/src/modules/validators/permissions.d.ts.map +1 -1
  293. package/dist/src/modules/validators/permissions.js +192 -18
  294. package/dist/src/modules/validators/policies/claim/arbiters.d.ts +19 -0
  295. package/dist/src/modules/validators/policies/claim/arbiters.d.ts.map +1 -0
  296. package/dist/src/modules/validators/policies/claim/arbiters.js +82 -0
  297. package/dist/src/modules/validators/resolve.d.ts +5 -0
  298. package/dist/src/modules/validators/resolve.d.ts.map +1 -0
  299. package/dist/src/modules/validators/resolve.js +22 -0
  300. package/dist/src/modules/validators/signer-id.d.ts +5 -0
  301. package/dist/src/modules/validators/signer-id.d.ts.map +1 -0
  302. package/dist/src/modules/validators/signer-id.js +8 -0
  303. package/dist/src/modules/validators/smart-session-signature-types.d.ts +35 -0
  304. package/dist/src/modules/validators/smart-session-signature-types.d.ts.map +1 -0
  305. package/dist/src/modules/validators/smart-session-signature-types.js +1 -0
  306. package/dist/src/modules/validators/smart-sessions/authorization.d.ts +99 -0
  307. package/dist/src/modules/validators/smart-sessions/authorization.d.ts.map +1 -0
  308. package/dist/src/modules/validators/smart-sessions/authorization.js +101 -0
  309. package/dist/src/modules/validators/smart-sessions/calls.d.ts +19 -0
  310. package/dist/src/modules/validators/smart-sessions/calls.d.ts.map +1 -0
  311. package/dist/src/modules/validators/smart-sessions/calls.js +85 -0
  312. package/dist/src/modules/validators/smart-sessions/cross-chain-permits.d.ts +4 -0
  313. package/dist/src/modules/validators/smart-sessions/cross-chain-permits.d.ts.map +1 -0
  314. package/dist/src/modules/validators/smart-sessions/cross-chain-permits.js +77 -0
  315. package/dist/src/modules/validators/smart-sessions/digest.d.ts +5 -0
  316. package/dist/src/modules/validators/smart-sessions/digest.d.ts.map +1 -0
  317. package/dist/src/modules/validators/smart-sessions/digest.js +30 -0
  318. package/dist/src/modules/validators/smart-sessions/mock-signature.d.ts +10 -0
  319. package/dist/src/modules/validators/smart-sessions/mock-signature.d.ts.map +1 -0
  320. package/dist/src/modules/validators/smart-sessions/mock-signature.js +31 -0
  321. package/dist/src/modules/validators/smart-sessions/module.d.ts +11 -0
  322. package/dist/src/modules/validators/smart-sessions/module.d.ts.map +1 -0
  323. package/dist/src/modules/validators/smart-sessions/module.js +18 -0
  324. package/dist/src/modules/validators/smart-sessions/policies/addresses.d.ts +23 -0
  325. package/dist/src/modules/validators/smart-sessions/policies/addresses.d.ts.map +1 -0
  326. package/dist/src/modules/validators/smart-sessions/policies/addresses.js +29 -0
  327. package/dist/src/modules/validators/smart-sessions/policies/claim.d.ts +10 -0
  328. package/dist/src/modules/validators/smart-sessions/policies/claim.d.ts.map +1 -0
  329. package/dist/src/modules/validators/smart-sessions/policies/claim.js +106 -0
  330. package/dist/src/modules/validators/smart-sessions/policies/encode.d.ts +4 -0
  331. package/dist/src/modules/validators/smart-sessions/policies/encode.d.ts.map +1 -0
  332. package/dist/src/modules/validators/smart-sessions/policies/encode.js +197 -0
  333. package/dist/src/modules/validators/smart-sessions/resolve.d.ts +16 -0
  334. package/dist/src/modules/validators/smart-sessions/resolve.d.ts.map +1 -0
  335. package/dist/src/modules/validators/smart-sessions/resolve.js +120 -0
  336. package/dist/src/modules/validators/smart-sessions/signature.d.ts +14 -0
  337. package/dist/src/modules/validators/smart-sessions/signature.d.ts.map +1 -0
  338. package/dist/src/modules/validators/smart-sessions/signature.js +167 -0
  339. package/dist/src/modules/validators/smart-sessions/state.d.ts +19 -0
  340. package/dist/src/modules/validators/smart-sessions/state.d.ts.map +1 -0
  341. package/dist/src/modules/validators/smart-sessions/state.js +42 -0
  342. package/dist/src/modules/validators/smart-sessions/types.d.ts +227 -0
  343. package/dist/src/modules/validators/smart-sessions/types.d.ts.map +1 -0
  344. package/dist/src/modules/validators/smart-sessions/types.js +1 -0
  345. package/dist/src/modules/validators/social-recovery.d.ts +16 -0
  346. package/dist/src/modules/validators/social-recovery.d.ts.map +1 -0
  347. package/dist/src/modules/validators/social-recovery.js +17 -0
  348. package/dist/src/modules/validators/types.d.ts +143 -0
  349. package/dist/src/modules/validators/types.d.ts.map +1 -0
  350. package/dist/src/modules/validators/types.js +1 -0
  351. package/dist/src/modules/validators/webauthn.d.ts +54 -0
  352. package/dist/src/modules/validators/webauthn.d.ts.map +1 -0
  353. package/dist/src/modules/validators/webauthn.js +159 -0
  354. package/dist/src/signing/context.d.ts +25 -0
  355. package/dist/src/signing/context.d.ts.map +1 -0
  356. package/dist/src/signing/context.js +163 -0
  357. package/dist/src/signing/contribution.d.ts +13 -0
  358. package/dist/src/signing/contribution.d.ts.map +1 -0
  359. package/dist/src/signing/contribution.js +83 -0
  360. package/dist/src/signing/eip7702.d.ts +41 -0
  361. package/dist/src/signing/eip7702.d.ts.map +1 -0
  362. package/dist/src/signing/eip7702.js +215 -0
  363. package/dist/src/signing/error.d.ts +27 -0
  364. package/dist/src/signing/error.d.ts.map +1 -0
  365. package/dist/src/signing/error.js +25 -0
  366. package/dist/src/signing/execute.d.ts +17 -0
  367. package/dist/src/signing/execute.d.ts.map +1 -0
  368. package/dist/src/signing/execute.js +138 -0
  369. package/dist/src/signing/intent-plans/assemble.d.ts +15 -0
  370. package/dist/src/signing/intent-plans/assemble.d.ts.map +1 -0
  371. package/dist/src/signing/intent-plans/assemble.js +96 -0
  372. package/dist/src/signing/intent-plans/independent.d.ts +48 -0
  373. package/dist/src/signing/intent-plans/independent.d.ts.map +1 -0
  374. package/dist/src/signing/intent-plans/independent.js +150 -0
  375. package/dist/src/signing/intent-plans/plan.d.ts +14 -0
  376. package/dist/src/signing/intent-plans/plan.d.ts.map +1 -0
  377. package/dist/src/signing/intent-plans/plan.js +187 -0
  378. package/dist/src/signing/intent-plans/types.d.ts +63 -0
  379. package/dist/src/signing/intent-plans/types.d.ts.map +1 -0
  380. package/dist/src/signing/intent-plans/types.js +1 -0
  381. package/dist/src/signing/message.d.ts +28 -0
  382. package/dist/src/signing/message.d.ts.map +1 -0
  383. package/dist/src/signing/message.js +90 -0
  384. package/dist/src/signing/passkeys.d.ts +28 -0
  385. package/dist/src/signing/passkeys.d.ts.map +1 -0
  386. package/dist/src/signing/passkeys.js +17 -0
  387. package/dist/src/signing/plan.d.ts +35 -0
  388. package/dist/src/signing/plan.d.ts.map +1 -0
  389. package/dist/src/signing/plan.js +377 -0
  390. package/dist/src/signing/protocols/erc6492.d.ts +11 -0
  391. package/dist/src/signing/protocols/erc6492.d.ts.map +1 -0
  392. package/dist/src/signing/protocols/erc6492.js +24 -0
  393. package/dist/src/signing/protocols/erc7739.d.ts +17 -0
  394. package/dist/src/signing/protocols/erc7739.d.ts.map +1 -0
  395. package/dist/src/signing/protocols/erc7739.js +84 -0
  396. package/dist/src/signing/session-enable.d.ts +35 -0
  397. package/dist/src/signing/session-enable.d.ts.map +1 -0
  398. package/dist/src/signing/session-enable.js +62 -0
  399. package/dist/src/signing/signers/compatibility.d.ts +4 -0
  400. package/dist/src/signing/signers/compatibility.d.ts.map +1 -0
  401. package/dist/src/signing/signers/compatibility.js +51 -0
  402. package/dist/src/signing/signers/ecdsa.d.ts +14 -0
  403. package/dist/src/signing/signers/ecdsa.d.ts.map +1 -0
  404. package/dist/src/signing/signers/ecdsa.js +54 -0
  405. package/dist/src/signing/signers/registry.d.ts +7 -0
  406. package/dist/src/signing/signers/registry.d.ts.map +1 -0
  407. package/dist/src/signing/signers/registry.js +33 -0
  408. package/dist/src/signing/signers/types.d.ts +16 -0
  409. package/dist/src/signing/signers/types.d.ts.map +1 -0
  410. package/dist/src/signing/signers/types.js +1 -0
  411. package/dist/src/signing/signers/wallet-chain.d.ts +9 -0
  412. package/dist/src/signing/signers/wallet-chain.d.ts.map +1 -0
  413. package/dist/src/signing/signers/wallet-chain.js +15 -0
  414. package/dist/src/signing/signers/webauthn.d.ts +11 -0
  415. package/dist/src/signing/signers/webauthn.d.ts.map +1 -0
  416. package/dist/src/signing/signers/webauthn.js +14 -0
  417. package/dist/src/signing/typed-data.d.ts +39 -0
  418. package/dist/src/signing/typed-data.d.ts.map +1 -0
  419. package/dist/src/signing/typed-data.js +135 -0
  420. package/dist/src/signing/types.d.ts +346 -0
  421. package/dist/src/signing/types.d.ts.map +1 -0
  422. package/dist/src/signing/types.js +1 -0
  423. package/dist/src/signing/user-operation.d.ts +23 -0
  424. package/dist/src/signing/user-operation.d.ts.map +1 -0
  425. package/dist/src/signing/user-operation.js +61 -0
  426. package/dist/src/smart-sessions/index.d.ts +16 -0
  427. package/dist/src/smart-sessions/index.d.ts.map +1 -0
  428. package/dist/src/smart-sessions/index.js +45 -0
  429. package/dist/src/transactions/intents/account.d.ts +15 -0
  430. package/dist/src/transactions/intents/account.d.ts.map +1 -0
  431. package/dist/src/transactions/intents/account.js +48 -0
  432. package/dist/src/transactions/intents/compatibility.d.ts +4 -0
  433. package/dist/src/transactions/intents/compatibility.d.ts.map +1 -0
  434. package/dist/src/transactions/intents/compatibility.js +19 -0
  435. package/dist/src/transactions/intents/normalize.d.ts +5 -0
  436. package/dist/src/transactions/intents/normalize.d.ts.map +1 -0
  437. package/dist/src/transactions/intents/normalize.js +48 -0
  438. package/dist/src/transactions/intents/prepare.d.ts +7 -0
  439. package/dist/src/transactions/intents/prepare.d.ts.map +1 -0
  440. package/dist/src/transactions/intents/prepare.js +249 -0
  441. package/dist/src/transactions/intents/quotes.d.ts +3 -0
  442. package/dist/src/transactions/intents/quotes.d.ts.map +1 -0
  443. package/dist/src/transactions/intents/quotes.js +11 -0
  444. package/dist/src/transactions/intents/request.d.ts +11 -0
  445. package/dist/src/transactions/intents/request.d.ts.map +1 -0
  446. package/dist/src/transactions/intents/request.js +55 -0
  447. package/dist/src/transactions/intents/send.d.ts +3 -0
  448. package/dist/src/transactions/intents/send.d.ts.map +1 -0
  449. package/dist/src/transactions/intents/send.js +22 -0
  450. package/dist/src/transactions/intents/session-signing.d.ts +7 -0
  451. package/dist/src/transactions/intents/session-signing.d.ts.map +1 -0
  452. package/dist/src/transactions/intents/session-signing.js +363 -0
  453. package/dist/src/transactions/intents/sessions.d.ts +17 -0
  454. package/dist/src/transactions/intents/sessions.d.ts.map +1 -0
  455. package/dist/src/transactions/intents/sessions.js +85 -0
  456. package/dist/src/transactions/intents/sign-transaction.d.ts +10 -0
  457. package/dist/src/transactions/intents/sign-transaction.d.ts.map +1 -0
  458. package/dist/src/transactions/intents/sign-transaction.js +386 -0
  459. package/dist/src/transactions/intents/split.d.ts +13 -0
  460. package/dist/src/transactions/intents/split.d.ts.map +1 -0
  461. package/dist/src/transactions/intents/split.js +3 -0
  462. package/dist/src/transactions/intents/status-policy.d.ts +13 -0
  463. package/dist/src/transactions/intents/status-policy.d.ts.map +1 -0
  464. package/dist/src/transactions/intents/status-policy.js +39 -0
  465. package/dist/src/transactions/intents/status.d.ts +4 -0
  466. package/dist/src/transactions/intents/status.d.ts.map +1 -0
  467. package/dist/src/transactions/intents/status.js +50 -0
  468. package/dist/src/transactions/intents/submit.d.ts +3 -0
  469. package/dist/src/transactions/intents/submit.d.ts.map +1 -0
  470. package/dist/src/transactions/intents/submit.js +32 -0
  471. package/dist/src/transactions/intents/types.d.ts +136 -0
  472. package/dist/src/transactions/intents/types.d.ts.map +1 -0
  473. package/dist/src/transactions/intents/types.js +1 -0
  474. package/dist/src/transactions/user-operations/hash.d.ts +5 -0
  475. package/dist/src/transactions/user-operations/hash.d.ts.map +1 -0
  476. package/dist/src/transactions/user-operations/hash.js +9 -0
  477. package/dist/src/transactions/user-operations/nonce.d.ts +18 -0
  478. package/dist/src/transactions/user-operations/nonce.d.ts.map +1 -0
  479. package/dist/src/transactions/user-operations/nonce.js +43 -0
  480. package/dist/src/transactions/user-operations/prepare.d.ts +12 -0
  481. package/dist/src/transactions/user-operations/prepare.d.ts.map +1 -0
  482. package/dist/src/transactions/user-operations/prepare.js +136 -0
  483. package/dist/src/transactions/user-operations/reconstruct.d.ts +28 -0
  484. package/dist/src/transactions/user-operations/reconstruct.d.ts.map +1 -0
  485. package/dist/src/transactions/user-operations/reconstruct.js +52 -0
  486. package/dist/src/transactions/user-operations/send.d.ts +3 -0
  487. package/dist/src/transactions/user-operations/send.d.ts.map +1 -0
  488. package/dist/src/transactions/user-operations/send.js +8 -0
  489. package/dist/src/transactions/user-operations/sign.d.ts +3 -0
  490. package/dist/src/transactions/user-operations/sign.d.ts.map +1 -0
  491. package/dist/src/transactions/user-operations/sign.js +14 -0
  492. package/dist/src/transactions/user-operations/status.d.ts +4 -0
  493. package/dist/src/transactions/user-operations/status.d.ts.map +1 -0
  494. package/dist/src/transactions/user-operations/status.js +37 -0
  495. package/dist/src/transactions/user-operations/submit.d.ts +3 -0
  496. package/dist/src/transactions/user-operations/submit.d.ts.map +1 -0
  497. package/dist/src/transactions/user-operations/submit.js +8 -0
  498. package/dist/src/transactions/user-operations/types.d.ts +68 -0
  499. package/dist/src/transactions/user-operations/types.d.ts.map +1 -0
  500. package/dist/src/transactions/user-operations/types.js +1 -0
  501. package/dist/src/transactions/user-operations/validator-account.d.ts +5 -0
  502. package/dist/src/transactions/user-operations/validator-account.d.ts.map +1 -0
  503. package/dist/src/transactions/user-operations/validator-account.js +26 -0
  504. package/dist/src/utils/index.d.ts +68 -4
  505. package/dist/src/utils/index.d.ts.map +1 -1
  506. package/dist/src/utils/index.js +113 -51
  507. package/package.json +10 -11
  508. package/dist/src/accounts/index.d.ts +0 -51
  509. package/dist/src/accounts/index.d.ts.map +0 -1
  510. package/dist/src/accounts/index.js +0 -589
  511. package/dist/src/accounts/json-rpc/index.d.ts +0 -5
  512. package/dist/src/accounts/json-rpc/index.d.ts.map +0 -1
  513. package/dist/src/accounts/json-rpc/index.js +0 -19
  514. package/dist/src/accounts/json-rpc/providers.d.ts +0 -5
  515. package/dist/src/accounts/json-rpc/providers.d.ts.map +0 -1
  516. package/dist/src/accounts/json-rpc/providers.js +0 -16
  517. package/dist/src/accounts/kernel.d.ts +0 -27
  518. package/dist/src/accounts/kernel.d.ts.map +0 -1
  519. package/dist/src/accounts/kernel.js +0 -272
  520. package/dist/src/accounts/nexus.d.ts +0 -33
  521. package/dist/src/accounts/nexus.d.ts.map +0 -1
  522. package/dist/src/accounts/nexus.js +0 -444
  523. package/dist/src/accounts/safe.d.ts +0 -33
  524. package/dist/src/accounts/safe.d.ts.map +0 -1
  525. package/dist/src/accounts/safe.js +0 -343
  526. package/dist/src/accounts/signing/common.d.ts +0 -32
  527. package/dist/src/accounts/signing/common.d.ts.map +0 -1
  528. package/dist/src/accounts/signing/common.js +0 -184
  529. package/dist/src/accounts/signing/message.d.ts +0 -7
  530. package/dist/src/accounts/signing/message.d.ts.map +0 -1
  531. package/dist/src/accounts/signing/message.js +0 -45
  532. package/dist/src/accounts/signing/passkeys.d.ts +0 -36
  533. package/dist/src/accounts/signing/passkeys.d.ts.map +0 -1
  534. package/dist/src/accounts/signing/passkeys.js +0 -119
  535. package/dist/src/accounts/signing/typedData.d.ts +0 -5
  536. package/dist/src/accounts/signing/typedData.d.ts.map +0 -1
  537. package/dist/src/accounts/signing/typedData.js +0 -33
  538. package/dist/src/accounts/startale.d.ts +0 -26
  539. package/dist/src/accounts/startale.d.ts.map +0 -1
  540. package/dist/src/accounts/startale.js +0 -191
  541. package/dist/src/accounts/utils.d.ts +0 -33
  542. package/dist/src/accounts/utils.d.ts.map +0 -1
  543. package/dist/src/accounts/utils.js +0 -202
  544. package/dist/src/auth/provider.d.ts +0 -7
  545. package/dist/src/auth/provider.d.ts.map +0 -1
  546. package/dist/src/auth/provider.js +0 -38
  547. package/dist/src/execution/compact.d.ts +0 -5
  548. package/dist/src/execution/compact.d.ts.map +0 -1
  549. package/dist/src/execution/compact.js +0 -4
  550. package/dist/src/execution/error.d.ts.map +0 -1
  551. package/dist/src/execution/error.js +0 -85
  552. package/dist/src/execution/index.d.ts +0 -42
  553. package/dist/src/execution/index.d.ts.map +0 -1
  554. package/dist/src/execution/index.js +0 -202
  555. package/dist/src/execution/utils.d.ts +0 -127
  556. package/dist/src/execution/utils.d.ts.map +0 -1
  557. package/dist/src/execution/utils.js +0 -1116
  558. package/dist/src/modules/abi/smart-sessions.d.ts +0 -104
  559. package/dist/src/modules/abi/smart-sessions.d.ts.map +0 -1
  560. package/dist/src/modules/abi/smart-sessions.js +0 -128
  561. package/dist/src/modules/chain-abstraction.d.ts +0 -5
  562. package/dist/src/modules/chain-abstraction.d.ts.map +0 -1
  563. package/dist/src/modules/chain-abstraction.js +0 -3
  564. package/dist/src/modules/common.d.ts +0 -30
  565. package/dist/src/modules/common.d.ts.map +0 -1
  566. package/dist/src/modules/common.js +0 -30
  567. package/dist/src/modules/index.d.ts +0 -11
  568. package/dist/src/modules/index.d.ts.map +0 -1
  569. package/dist/src/modules/index.js +0 -90
  570. package/dist/src/modules/legacy.d.ts +0 -10
  571. package/dist/src/modules/legacy.d.ts.map +0 -1
  572. package/dist/src/modules/legacy.js +0 -62
  573. package/dist/src/modules/read.d.ts +0 -10
  574. package/dist/src/modules/read.d.ts.map +0 -1
  575. package/dist/src/modules/read.js +0 -171
  576. package/dist/src/modules/validators/core.d.ts +0 -31
  577. package/dist/src/modules/validators/core.d.ts.map +0 -1
  578. package/dist/src/modules/validators/core.js +0 -266
  579. package/dist/src/modules/validators/index.d.ts +0 -4
  580. package/dist/src/modules/validators/index.d.ts.map +0 -1
  581. package/dist/src/modules/validators/index.js +0 -3
  582. package/dist/src/modules/validators/smart-sessions.d.ts +0 -196
  583. package/dist/src/modules/validators/smart-sessions.d.ts.map +0 -1
  584. package/dist/src/modules/validators/smart-sessions.js +0 -772
  585. package/dist/src/orchestrator/caip2.d.ts +0 -13
  586. package/dist/src/orchestrator/caip2.d.ts.map +0 -1
  587. package/dist/src/orchestrator/caip2.js +0 -52
  588. package/dist/src/orchestrator/client.d.ts +0 -29
  589. package/dist/src/orchestrator/client.d.ts.map +0 -1
  590. package/dist/src/orchestrator/client.js +0 -293
  591. package/dist/src/orchestrator/consts.d.ts +0 -6
  592. package/dist/src/orchestrator/consts.d.ts.map +0 -1
  593. package/dist/src/orchestrator/consts.js +0 -5
  594. package/dist/src/orchestrator/destinations.d.ts.map +0 -1
  595. package/dist/src/orchestrator/destinations.js +0 -36
  596. package/dist/src/orchestrator/error.d.ts +0 -97
  597. package/dist/src/orchestrator/error.d.ts.map +0 -1
  598. package/dist/src/orchestrator/error.js +0 -173
  599. package/dist/src/orchestrator/index.d.ts +0 -12
  600. package/dist/src/orchestrator/index.d.ts.map +0 -1
  601. package/dist/src/orchestrator/index.js +0 -10
  602. package/dist/src/orchestrator/registry.d.ts +0 -17
  603. package/dist/src/orchestrator/registry.d.ts.map +0 -1
  604. package/dist/src/orchestrator/registry.js +0 -100
  605. package/dist/src/orchestrator/types.d.ts.map +0 -1
  606. package/dist/src/orchestrator/types.js +0 -15
  607. package/dist/src/orchestrator/utils.d.ts +0 -3
  608. package/dist/src/orchestrator/utils.d.ts.map +0 -1
  609. package/dist/src/orchestrator/utils.js +0 -22
  610. package/dist/src/types.d.ts +0 -466
  611. package/dist/src/types.d.ts.map +0 -1
  612. package/dist/src/utils/walletClient.d.ts +0 -34
  613. package/dist/src/utils/walletClient.d.ts.map +0 -1
  614. package/dist/src/utils/walletClient.js +0 -117
  615. /package/dist/src/{types.js → accounts/adapter.js} +0 -0
package/README.md CHANGED
@@ -143,7 +143,7 @@ const prepared = await account.prepareTransaction({
143
143
  targetChain: arbitrumSepolia,
144
144
  calls: [
145
145
  {
146
- to: 'USDC',
146
+ to: usdc,
147
147
  value: 0n,
148
148
  data: encodeFunctionData({
149
149
  abi: erc20Abi,
@@ -152,7 +152,7 @@ const prepared = await account.prepareTransaction({
152
152
  }),
153
153
  },
154
154
  ],
155
- tokenRequests: [{ address: 'USDC', amount }],
155
+ tokenRequests: [{ address: usdc, amount }],
156
156
  })
157
157
 
158
158
  const signed = await account.signTransaction(prepared)
@@ -0,0 +1,31 @@
1
+ import type { Hex } from 'viem';
2
+ import type { EvmChainReference } from '../chains/types.js';
3
+ import type { ResolvedModule } from '../modules/types.js';
4
+ import type { AccountCallEncodingInput, AccountCapabilities, AccountConstruction, AccountDefinition, AccountDeploymentPlan, AccountEip7702AdoptionPlan, AccountIdentity, AccountSignatureEnvelope } from './types.js';
5
+ export interface AccountSignatureEnvelopeInput {
6
+ readonly account: AccountIdentity;
7
+ readonly envelope: AccountSignatureEnvelope;
8
+ readonly validatorContribution: Hex;
9
+ readonly purpose: 'erc1271' | 'intent' | 'user-operation';
10
+ }
11
+ export interface AccountAdapter {
12
+ readonly account: AccountDefinition;
13
+ readonly capabilities: AccountCapabilities;
14
+ readonly getIdentity: (input: AccountConstruction) => AccountIdentity;
15
+ readonly getDeploymentPlan: (input: AccountConstruction) => AccountDeploymentPlan;
16
+ readonly getEip7702AdoptionPlan?: (input: AccountConstruction) => AccountEip7702AdoptionPlan;
17
+ readonly getEip7702InitCall?: (input: AccountConstruction, eip7702InitSignature: Hex) => Hex;
18
+ readonly encodeCalls: (input: AccountCallEncodingInput) => Hex;
19
+ readonly encodeModuleInstallation: (module: ResolvedModule) => readonly Hex[];
20
+ readonly encodeModuleUninstallation: (module: ResolvedModule) => Hex;
21
+ readonly encodeSignatureEnvelope: (input: AccountSignatureEnvelopeInput) => Hex;
22
+ }
23
+ export interface AccountRuntime {
24
+ readonly adapter: AccountAdapter;
25
+ readonly construction: AccountConstruction;
26
+ readonly identity: AccountIdentity;
27
+ }
28
+ export interface AccountRuntimePort {
29
+ readonly forChain: (chain: EvmChainReference) => Promise<AccountRuntime>;
30
+ }
31
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../accounts/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAA;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,gBAAgB,CAAA;CAC1D;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;IAC1C,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,eAAe,CAAA;IACrE,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,KAAK,EAAE,mBAAmB,KACvB,qBAAqB,CAAA;IAC1B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAChC,KAAK,EAAE,mBAAmB,KACvB,0BAA0B,CAAA;IAK/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAC5B,KAAK,EAAE,mBAAmB,EAC1B,oBAAoB,EAAE,GAAG,KACtB,GAAG,CAAA;IACR,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,GAAG,CAAA;IAC9D,QAAQ,CAAC,wBAAwB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,SAAS,GAAG,EAAE,CAAA;IAC7E,QAAQ,CAAC,0BAA0B,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,GAAG,CAAA;IACpE,QAAQ,CAAC,uBAAuB,EAAE,CAChC,KAAK,EAAE,6BAA6B,KACjC,GAAG,CAAA;CACT;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;CACzE"}
@@ -0,0 +1,4 @@
1
+ import type { AccountAdapter } from '../adapter.js';
2
+ import type { AccountConstruction } from '../types.js';
3
+ export declare function createEoaAdapter(construction: AccountConstruction): AccountAdapter;
4
+ //# sourceMappingURL=eoa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eoa.d.ts","sourceRoot":"","sources":["../../../../accounts/adapters/eoa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAQnD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,mBAAmB,GAChC,cAAc,CAmChB"}
@@ -0,0 +1,45 @@
1
+ import { deploymentPlan } from '../deployment.js';
2
+ import { ModuleInstallationNotSupportedError } from '../error.js';
3
+ function eoaAddress(input) {
4
+ if (input.account.kind !== 'eoa')
5
+ throw new Error('Expected EOA account');
6
+ if (!input.eoa)
7
+ throw new Error('EOA account is required');
8
+ return input.eoa.address;
9
+ }
10
+ export function createEoaAdapter(construction) {
11
+ if (construction.account.kind !== 'eoa') {
12
+ throw new Error('Expected EOA account');
13
+ }
14
+ return {
15
+ account: construction.account,
16
+ capabilities: {
17
+ modular: false,
18
+ supportsDeployment: false,
19
+ supportsUserOperations: false,
20
+ supportsEip7702Adoption: false,
21
+ supportsSmartSessions: false,
22
+ supportsOriginSignatureReuse: true,
23
+ signatureEnvelope: { kind: 'none' },
24
+ },
25
+ getIdentity: (input) => ({
26
+ definition: input.account,
27
+ address: eoaAddress(input),
28
+ }),
29
+ getDeploymentPlan: (input) => deploymentPlan(input.chain, { address: eoaAddress(input) }, true),
30
+ encodeCalls: () => {
31
+ throw new Error('EOA calls do not use ERC-7579 encoding');
32
+ },
33
+ encodeModuleInstallation: () => {
34
+ throw new ModuleInstallationNotSupportedError('eoa');
35
+ },
36
+ encodeModuleUninstallation: () => {
37
+ throw new ModuleInstallationNotSupportedError('eoa');
38
+ },
39
+ encodeSignatureEnvelope: ({ envelope, validatorContribution }) => {
40
+ if (envelope.kind !== 'none')
41
+ throw new Error('Expected EOA envelope');
42
+ return validatorContribution;
43
+ },
44
+ };
45
+ }
@@ -0,0 +1,5 @@
1
+ import type { AccountAdapter } from '../adapter.js';
2
+ import type { AccountConstruction } from '../types.js';
3
+ export declare const HCA_IMPLEMENTATION_ADDRESS: "0x7c2cC1e499a87ab480Df154e05164cD56D05d570";
4
+ export declare function createHcaAdapter(construction: AccountConstruction): AccountAdapter;
5
+ //# sourceMappingURL=hca.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hca.d.ts","sourceRoot":"","sources":["../../../../accounts/adapters/hca.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAGnD,eAAO,MAAM,0BAA0B,EACrC,4CAAqD,CAAA;AA2FvD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,mBAAmB,GAChC,cAAc,CAqChB"}
@@ -0,0 +1,121 @@
1
+ import { concat, decodeAbiParameters, decodeFunctionData, encodeFunctionData, encodePacked, keccak256, pad, parseAbi, slice, } from 'viem';
2
+ import { ENS_HCA_MODULE } from '../../modules/validators/ens.js';
3
+ import { deploymentPlan } from '../deployment.js';
4
+ import { encodeErc7579Calls } from '../erc7579-calls.js';
5
+ import { ModuleInstallationNotSupportedError } from '../error.js';
6
+ import { encodeAddressEnvelope } from './shared.js';
7
+ export const HCA_IMPLEMENTATION_ADDRESS = '0x7c2cC1e499a87ab480Df154e05164cD56D05d570';
8
+ const HCA_FACTORY_ADDRESS = '0x358680728dedb552adaa9f5eb5d4395b291cf943';
9
+ const CREATE3_PROXY_HASH = '0x21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f';
10
+ function primaryOwner(factoryData) {
11
+ const decoded = decodeFunctionData({
12
+ abi: parseAbi(['function createAccount(bytes)']),
13
+ data: factoryData,
14
+ });
15
+ const [, owners] = decodeAbiParameters([
16
+ { type: 'uint256' },
17
+ {
18
+ type: 'tuple[]',
19
+ components: [
20
+ { name: 'addr', type: 'address' },
21
+ { name: 'expiration', type: 'uint48' },
22
+ ],
23
+ },
24
+ ], decoded.args[0]);
25
+ const owner = owners[0];
26
+ if (!owner)
27
+ throw new Error('HCA primary owner is required');
28
+ return owner.addr;
29
+ }
30
+ function predictCreate3Address(factory, owner) {
31
+ const salt = pad(owner, { size: 32, dir: 'right' });
32
+ const proxyHash = keccak256(encodePacked(['bytes1', 'address', 'bytes32', 'bytes32'], ['0xff', factory, salt, CREATE3_PROXY_HASH]));
33
+ const proxyAddress = slice(proxyHash, 12, 32);
34
+ return slice(keccak256(concat(['0xd694', proxyAddress, '0x01'])), 12, 32);
35
+ }
36
+ function hcaMaterial(input) {
37
+ if (input.account.kind !== 'hca')
38
+ throw new Error('Expected HCA account');
39
+ if (input.eoa)
40
+ return { address: input.eoa.address };
41
+ // HCA derives its address from the ENS owner alone and has no module
42
+ // installation, so recovery, sessions, and extra modules can never be
43
+ // installed. `recovery` resolves into `modules`, so it is rejected here too.
44
+ if (input.sessions.enabled || input.modules.length > 0) {
45
+ throw new Error('HCA accounts cannot install recovery, sessions, or additional modules');
46
+ }
47
+ if (!input.owner || input.owner.kind !== 'ens') {
48
+ throw new Error('HCA accounts require ENS owners');
49
+ }
50
+ if (input.initData && !('factory' in input.initData)) {
51
+ return { address: input.initData.address };
52
+ }
53
+ let factory;
54
+ let factoryData;
55
+ if (input.initData && 'factory' in input.initData) {
56
+ factory = input.initData.factory;
57
+ factoryData = input.initData.factoryData;
58
+ try {
59
+ decodeFunctionData({
60
+ abi: parseAbi(['function createAccount(bytes)']),
61
+ data: factoryData,
62
+ });
63
+ }
64
+ catch {
65
+ return { address: input.initData.address };
66
+ }
67
+ }
68
+ else {
69
+ factory =
70
+ input.account.factory.source === 'explicit'
71
+ ? input.account.factory.value
72
+ : HCA_FACTORY_ADDRESS;
73
+ const validator = input.setup.validators[0];
74
+ if (!validator)
75
+ throw new Error('HCA owner validator is required');
76
+ factoryData = encodeFunctionData({
77
+ abi: parseAbi(['function createAccount(bytes)']),
78
+ functionName: 'createAccount',
79
+ args: [validator.initData],
80
+ });
81
+ }
82
+ return {
83
+ address: predictCreate3Address(factory, primaryOwner(factoryData)),
84
+ factory,
85
+ factoryData,
86
+ };
87
+ }
88
+ export function createHcaAdapter(construction) {
89
+ if (construction.account.kind !== 'hca') {
90
+ throw new Error('Expected HCA account');
91
+ }
92
+ return {
93
+ account: construction.account,
94
+ capabilities: {
95
+ modular: false,
96
+ supportsDeployment: true,
97
+ supportsUserOperations: true,
98
+ supportsEip7702Adoption: false,
99
+ supportsSmartSessions: false,
100
+ supportsOriginSignatureReuse: true,
101
+ signatureEnvelope: { kind: 'hca', validator: ENS_HCA_MODULE },
102
+ },
103
+ getIdentity: (input) => ({
104
+ definition: input.account,
105
+ address: hcaMaterial(input).address,
106
+ }),
107
+ getDeploymentPlan: (input) => deploymentPlan(input.chain, hcaMaterial(input), input.deployed),
108
+ encodeCalls: encodeErc7579Calls,
109
+ encodeModuleInstallation: () => {
110
+ throw new ModuleInstallationNotSupportedError('hca');
111
+ },
112
+ encodeModuleUninstallation: () => {
113
+ throw new ModuleInstallationNotSupportedError('hca');
114
+ },
115
+ encodeSignatureEnvelope: ({ envelope, validatorContribution }) => {
116
+ if (envelope.kind !== 'hca')
117
+ throw new Error('Expected HCA envelope');
118
+ return encodeAddressEnvelope(envelope.validator, validatorContribution, ENS_HCA_MODULE);
119
+ },
120
+ };
121
+ }
@@ -0,0 +1,9 @@
1
+ import { type Hex } from 'viem';
2
+ import type { ResolvedModule } from '../../modules/types.js';
3
+ import type { AccountAdapter } from '../adapter.js';
4
+ import type { AccountConstruction } from '../types.js';
5
+ export declare const KERNEL_IMPLEMENTATION_ADDRESS: "0xd6cedde84be40893d153be9d467cd6ad37875b28";
6
+ export declare function wrapKernelMessageHash(messageHash: Hex, account: Hex): Hex;
7
+ export declare function kernelInstallData(module: ResolvedModule): readonly Hex[];
8
+ export declare function createKernelAdapter(construction: AccountConstruction): AccountAdapter;
9
+ //# sourceMappingURL=kernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../../accounts/adapters/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,GAAG,EAOT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAKnD,eAAO,MAAM,6BAA6B,EACxC,4CAAqD,CAAA;AAQvD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,GAAG,CAgBzE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,EAAE,CA2CxE;AAyED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,mBAAmB,GAChC,cAAc,CAmChB"}
@@ -0,0 +1,159 @@
1
+ import { concat, concatHex, decodeAbiParameters, decodeFunctionData, domainSeparator, encodeAbiParameters, encodeFunctionData, getContractAddress, keccak256, parseAbi, stringToHex, toHex, zeroAddress, zeroHash, } from 'viem';
2
+ import { moduleTypeId } from '../../modules/erc7579-abi.js';
3
+ import { deploymentPlan } from '../deployment.js';
4
+ import { encodeErc7579Calls } from '../erc7579-calls.js';
5
+ import { encodeUninstallModule } from './shared.js';
6
+ const KERNEL_META_FACTORY_ADDRESS = '0xd703aae79538628d27099b8c4f621be4ccd142d5';
7
+ export const KERNEL_IMPLEMENTATION_ADDRESS = '0xd6cedde84be40893d153be9d467cd6ad37875b28';
8
+ const KERNEL_FACTORY_ADDRESS = '0x2577507b78c2008ff367261cb6285d44ba5ef2e9';
9
+ const KERNEL_BYTECODE = '0x603d3d8160223d3973d6cedde84be40893d153be9d467cd6ad37875b2860095155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3';
10
+ const HOOK_INSTALLED_ADDRESS = '0x0000000000000000000000000000000000000001';
11
+ export function wrapKernelMessageHash(messageHash, account) {
12
+ const separator = domainSeparator({
13
+ domain: {
14
+ name: 'Kernel',
15
+ version: '0.3.3',
16
+ chainId: 0,
17
+ verifyingContract: account,
18
+ },
19
+ });
20
+ const structHash = keccak256(encodeAbiParameters([{ type: 'bytes32' }, { type: 'bytes32' }], [keccak256(stringToHex('Kernel(bytes32 hash)')), messageHash]));
21
+ return keccak256(concatHex(['0x1901', separator, structHash]));
22
+ }
23
+ export function kernelInstallData(module) {
24
+ const install = (initData) => encodeFunctionData({
25
+ abi: parseAbi(['function installModule(uint256,address,bytes)']),
26
+ functionName: 'installModule',
27
+ args: [moduleTypeId(module.kind), module.address, initData],
28
+ });
29
+ switch (module.kind) {
30
+ case 'validator': {
31
+ const data = encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }, { type: 'bytes' }], [module.initData, '0x', '0x']);
32
+ return [
33
+ install(concat([HOOK_INSTALLED_ADDRESS, data])),
34
+ encodeFunctionData({
35
+ abi: parseAbi(['function grantAccess(bytes21,bytes4,bool)']),
36
+ functionName: 'grantAccess',
37
+ args: [concat(['0x01', module.address]), '0xe9ae5c53', true],
38
+ }),
39
+ ];
40
+ }
41
+ case 'executor': {
42
+ const data = encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [module.initData, '0x']);
43
+ return [install(concat([zeroAddress, data]))];
44
+ }
45
+ case 'fallback': {
46
+ const [selector, flags, selectorData] = decodeAbiParameters([{ type: 'bytes4' }, { type: 'bytes1' }, { type: 'bytes' }], module.initData);
47
+ const data = encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [concat([flags, selectorData]), '0x']);
48
+ return [install(concat([selector, HOOK_INSTALLED_ADDRESS, data]))];
49
+ }
50
+ case 'hook':
51
+ return [install(module.initData)];
52
+ }
53
+ }
54
+ function kernelMaterial(input) {
55
+ if (input.account.kind !== 'kernel')
56
+ throw new Error('Expected Kernel account');
57
+ if (input.eoa)
58
+ return { address: input.eoa.address };
59
+ if (input.initData && !('factory' in input.initData)) {
60
+ return { address: input.initData.address };
61
+ }
62
+ let factoryData;
63
+ let salt;
64
+ let initializationCallData;
65
+ if (input.initData && 'factory' in input.initData) {
66
+ const decoded = decodeFunctionData({
67
+ abi: parseAbi([
68
+ 'function deployWithFactory(address factory,bytes createData,bytes32 salt)',
69
+ ]),
70
+ data: input.initData.factoryData,
71
+ });
72
+ if (decoded.args[0].toLowerCase() !== KERNEL_FACTORY_ADDRESS.toLowerCase()) {
73
+ throw new Error('Unsupported Kernel implementation');
74
+ }
75
+ factoryData = input.initData.factoryData;
76
+ initializationCallData = decoded.args[1];
77
+ salt = decoded.args[2];
78
+ }
79
+ else {
80
+ const rootValidator = input.setup.validators[0];
81
+ if (!rootValidator)
82
+ throw new Error('Kernel root validator is required');
83
+ const initConfig = [
84
+ ...input.setup.validators.slice(1),
85
+ ...input.setup.executors,
86
+ ...input.setup.fallbacks,
87
+ ...input.setup.hooks,
88
+ ].flatMap(kernelInstallData);
89
+ initializationCallData = encodeFunctionData({
90
+ abi: parseAbi([
91
+ 'function initialize(bytes21,address,bytes,bytes,bytes[])',
92
+ ]),
93
+ functionName: 'initialize',
94
+ args: [
95
+ concat(['0x01', rootValidator.address]),
96
+ zeroAddress,
97
+ rootValidator.initData,
98
+ '0x',
99
+ initConfig,
100
+ ],
101
+ });
102
+ salt =
103
+ input.account.salt.source === 'explicit'
104
+ ? input.account.salt.value
105
+ : zeroHash;
106
+ factoryData = encodeFunctionData({
107
+ abi: parseAbi(['function deployWithFactory(address,bytes,bytes32)']),
108
+ functionName: 'deployWithFactory',
109
+ args: [KERNEL_FACTORY_ADDRESS, initializationCallData, salt],
110
+ });
111
+ }
112
+ const actualSalt = keccak256(concat([initializationCallData, salt]));
113
+ const address = getContractAddress({
114
+ from: KERNEL_FACTORY_ADDRESS,
115
+ opcode: 'CREATE2',
116
+ bytecode: KERNEL_BYTECODE,
117
+ salt: actualSalt,
118
+ });
119
+ return {
120
+ address,
121
+ factory: input.initData?.factory ?? KERNEL_META_FACTORY_ADDRESS,
122
+ factoryData,
123
+ };
124
+ }
125
+ export function createKernelAdapter(construction) {
126
+ if (construction.account.kind !== 'kernel') {
127
+ throw new Error('Expected Kernel account');
128
+ }
129
+ const validator = construction.setup.validators[0]?.address ?? zeroAddress;
130
+ return {
131
+ account: construction.account,
132
+ capabilities: {
133
+ modular: true,
134
+ supportsDeployment: true,
135
+ supportsUserOperations: true,
136
+ supportsEip7702Adoption: false,
137
+ supportsSmartSessions: true,
138
+ supportsOriginSignatureReuse: true,
139
+ signatureEnvelope: { kind: 'kernel', validator, isRoot: true },
140
+ },
141
+ getIdentity: (input) => ({
142
+ definition: input.account,
143
+ address: kernelMaterial(input).address,
144
+ }),
145
+ getDeploymentPlan: (input) => deploymentPlan(input.chain, kernelMaterial(input), input.deployed),
146
+ encodeCalls: encodeErc7579Calls,
147
+ encodeModuleInstallation: kernelInstallData,
148
+ encodeModuleUninstallation: encodeUninstallModule,
149
+ encodeSignatureEnvelope: ({ envelope, validatorContribution }) => {
150
+ if (envelope.kind !== 'kernel')
151
+ throw new Error('Expected Kernel envelope');
152
+ return concat([
153
+ envelope.isRoot ? '0x00' : concat(['0x01', envelope.validator]),
154
+ keccak256(toHex('kernel.replayable.signature')),
155
+ validatorContribution,
156
+ ]);
157
+ },
158
+ };
159
+ }
@@ -0,0 +1,16 @@
1
+ import { type Address, type Hex } from 'viem';
2
+ import type { AccountAdapter } from '../adapter.js';
3
+ import { type DeploymentMaterial } from '../deployment.js';
4
+ import type { AccountConstruction } from '../types.js';
5
+ export declare const NEXUS_IMPLEMENTATION_ADDRESS: "0x000000000032ddc454c3bdcba80484ad5a798705";
6
+ export declare const NEXUS_FACTORY_ADDRESS: "0x0000000000679a258c64d2f20f310e12b64b7375";
7
+ export declare const NEXUS_IMPLEMENTATION_1_2_1: "0x000000000d41c0bf0063dba53343389cdb2c9c78";
8
+ export declare const NEXUS_FACTORY_1_2_1: "0x0000000099d5576c73a3b190dabeeaa0f128ce6b";
9
+ export interface NexusDeploymentMaterial extends DeploymentMaterial {
10
+ readonly initializationCallData?: Hex;
11
+ readonly implementation?: Address;
12
+ readonly salt?: Hex;
13
+ }
14
+ export declare function nexusMaterial(input: AccountConstruction): NexusDeploymentMaterial;
15
+ export declare function createNexusAdapter(construction: AccountConstruction): AccountAdapter;
16
+ //# sourceMappingURL=nexus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus.d.ts","sourceRoot":"","sources":["../../../../accounts/adapters/nexus.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAOZ,KAAK,GAAG,EAKT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,KAAK,kBAAkB,EAAkB,MAAM,eAAe,CAAA;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAOnD,eAAO,MAAM,4BAA4B,EACvC,4CAAqD,CAAA;AACvD,eAAO,MAAM,qBAAqB,EAChC,4CAAqD,CAAA;AAIvD,eAAO,MAAM,0BAA0B,EACrC,4CAAqD,CAAA;AACvD,eAAO,MAAM,mBAAmB,EAC9B,4CAAqD,CAAA;AAmCvD,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,GAAG,CAAA;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CACpB;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,mBAAmB,GACzB,uBAAuB,CAwHzB;AA4CD,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,mBAAmB,GAChC,cAAc,CAoChB"}
@@ -0,0 +1,212 @@
1
+ import { concat, decodeFunctionData, encodeAbiParameters, encodeFunctionData, encodePacked, getContractAddress, keccak256, parseAbi, size, zeroAddress, } from 'viem';
2
+ import { OWNABLE_VALIDATOR_ADDRESS } from '../../modules/validators/ownable.js';
3
+ import { deploymentPlan } from '../deployment.js';
4
+ import { encodeErc7579Calls } from '../erc7579-calls.js';
5
+ import { encodeAddressEnvelope, encodeInstallModule, encodeUninstallModule, } from './shared.js';
6
+ export const NEXUS_IMPLEMENTATION_ADDRESS = '0x000000000032ddc454c3bdcba80484ad5a798705';
7
+ export const NEXUS_FACTORY_ADDRESS = '0x0000000000679a258c64d2f20f310e12b64b7375';
8
+ // Current default (1.2.1): new implementation + factory, same bootstrap and
9
+ // proxy creation code as 1.2.0. `version: '1.2.0'` opts back into the previous
10
+ // implementation + factory so its counterfactual address doesn't change.
11
+ export const NEXUS_IMPLEMENTATION_1_2_1 = '0x000000000d41c0bf0063dba53343389cdb2c9c78';
12
+ export const NEXUS_FACTORY_1_2_1 = '0x0000000099d5576c73a3b190dabeeaa0f128ce6b';
13
+ const NEXUS_BOOTSTRAP_ADDRESS = '0x00000000006efb61d8c9546ff1b500de3f244ea7';
14
+ const NEXUS_CREATION_CODE = '0x60806040526102aa803803806100148161018c565b92833981016040828203126101885781516001600160a01b03811692909190838303610188576020810151906001600160401b03821161018857019281601f8501121561018857835161006e610069826101c5565b61018c565b9481865260208601936020838301011161018857815f926020809301865e8601015260017f90b772c2cb8a51aa7a8a65fc23543c6d022d5b3f8e2b92eed79fba7eef8293005d823b15610176577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561015e575f8091610146945190845af43d15610156573d91610137610069846101c5565b9283523d5f602085013e6101e0565b505b604051606b908161023f8239f35b6060916101e0565b50505034156101485763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176101b157604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116101b157601f01601f191660200190565b9061020457508051156101f557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610235575b610215575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040523615605c575f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156058573d5ff35b3d5ffd5b00fea164736f6c634300081b000a';
15
+ // Resolves the implementation + factory a fresh account deploys against. Only
16
+ // the default (unset) and an explicit '1.2.1' deploy the current contracts;
17
+ // '1.2.0' keeps the previous implementation + factory so its counterfactual
18
+ // address doesn't change.
19
+ function getNexusDeployment(version) {
20
+ if (!version || version === '1.2.1') {
21
+ return {
22
+ implementation: NEXUS_IMPLEMENTATION_1_2_1,
23
+ factory: NEXUS_FACTORY_1_2_1,
24
+ };
25
+ }
26
+ return {
27
+ implementation: NEXUS_IMPLEMENTATION_ADDRESS,
28
+ factory: NEXUS_FACTORY_ADDRESS,
29
+ };
30
+ }
31
+ // Maps a Nexus factory to the implementation it deploys, so a persisted
32
+ // `initData` payload recomputes against the right implementation instead of
33
+ // defaulting to one version.
34
+ function implementationForFactory(factory) {
35
+ return factory.toLowerCase() === NEXUS_FACTORY_1_2_1
36
+ ? NEXUS_IMPLEMENTATION_1_2_1
37
+ : NEXUS_IMPLEMENTATION_ADDRESS;
38
+ }
39
+ export function nexusMaterial(input) {
40
+ if (input.account.kind !== 'nexus')
41
+ throw new Error('Expected Nexus account');
42
+ if (input.eoa)
43
+ return { address: input.eoa.address };
44
+ if (input.initData && !('factory' in input.initData)) {
45
+ return { address: input.initData.address };
46
+ }
47
+ const version = input.account.version.source === 'explicit'
48
+ ? input.account.version.value
49
+ : undefined;
50
+ let factory;
51
+ let factoryData;
52
+ let implementation;
53
+ let initializationCallData;
54
+ let salt;
55
+ if (input.initData && 'factory' in input.initData) {
56
+ const decoded = decodeFunctionData({
57
+ abi: parseAbi(['function createAccount(bytes,bytes32)']),
58
+ data: input.initData.factoryData,
59
+ });
60
+ factory = input.initData.factory;
61
+ implementation = implementationForFactory(factory);
62
+ factoryData = input.initData.factoryData;
63
+ const initData = decoded.args[0];
64
+ salt = decoded.args[1];
65
+ initializationCallData = encodeFunctionData({
66
+ abi: parseAbi(['function initializeAccount(bytes)']),
67
+ functionName: 'initializeAccount',
68
+ args: [initData],
69
+ });
70
+ }
71
+ else {
72
+ const deployment = getNexusDeployment(version);
73
+ factory = deployment.factory;
74
+ implementation = deployment.implementation;
75
+ salt =
76
+ input.account.salt.source === 'explicit'
77
+ ? input.account.salt.value
78
+ : keccak256('0x');
79
+ const defaultValidator = input.setup.validators.find((module) => module.address === OWNABLE_VALIDATOR_ADDRESS);
80
+ const defaultValidatorInitData = defaultValidator?.initData ?? '0x';
81
+ const validators = input.setup.validators.filter((module) => module.address !== OWNABLE_VALIDATOR_ADDRESS);
82
+ const configs = (modules) => modules.map((module) => ({
83
+ module: module.address,
84
+ initData: module.initData,
85
+ }));
86
+ const bootstrapData = size(defaultValidatorInitData) > 0
87
+ ? encodeFunctionData({
88
+ abi: parseAbi([
89
+ 'struct BootstrapConfig {address module;bytes initData;}',
90
+ 'struct BootstrapPreValidationHookConfig {uint256 hookType;address module;bytes data;}',
91
+ 'function initNexusWithDefaultValidatorAndOtherModulesNoRegistry(bytes defaultValidatorInitData,BootstrapConfig[] validators,BootstrapConfig[] executors,BootstrapConfig hook,BootstrapConfig[] fallbacks,BootstrapPreValidationHookConfig[] preValidationHooks)',
92
+ ]),
93
+ functionName: 'initNexusWithDefaultValidatorAndOtherModulesNoRegistry',
94
+ args: [
95
+ defaultValidatorInitData,
96
+ configs(validators),
97
+ configs(input.setup.executors),
98
+ { module: zeroAddress, initData: '0x' },
99
+ configs(input.setup.fallbacks),
100
+ [],
101
+ ],
102
+ })
103
+ : encodeFunctionData({
104
+ abi: parseAbi([
105
+ 'struct BootstrapConfig {address module;bytes initData;}',
106
+ 'struct BootstrapPreValidationHookConfig {uint256 hookType;address module;bytes data;}',
107
+ 'function initNexusNoRegistry(BootstrapConfig[] validators,BootstrapConfig[] executors,BootstrapConfig hook,BootstrapConfig[] fallbacks,BootstrapPreValidationHookConfig[] preValidationHooks)',
108
+ ]),
109
+ functionName: 'initNexusNoRegistry',
110
+ args: [
111
+ configs(validators),
112
+ configs(input.setup.executors),
113
+ { module: zeroAddress, initData: '0x' },
114
+ configs(input.setup.fallbacks),
115
+ [],
116
+ ],
117
+ });
118
+ const initData = encodeAbiParameters([{ type: 'address' }, { type: 'bytes' }], [NEXUS_BOOTSTRAP_ADDRESS, bootstrapData]);
119
+ factoryData = encodeFunctionData({
120
+ abi: parseAbi(['function createAccount(bytes,bytes32)']),
121
+ functionName: 'createAccount',
122
+ args: [initData, salt],
123
+ });
124
+ initializationCallData = encodeFunctionData({
125
+ abi: parseAbi(['function initializeAccount(bytes)']),
126
+ functionName: 'initializeAccount',
127
+ args: [initData],
128
+ });
129
+ }
130
+ const accountInitData = encodeAbiParameters([
131
+ { name: 'address', type: 'address' },
132
+ { name: 'calldata', type: 'bytes' },
133
+ ], [implementation, initializationCallData]);
134
+ const address = getContractAddress({
135
+ opcode: 'CREATE2',
136
+ from: factory,
137
+ salt,
138
+ bytecode: concat([NEXUS_CREATION_CODE, accountInitData]),
139
+ });
140
+ return {
141
+ address,
142
+ factory,
143
+ factoryData,
144
+ implementation,
145
+ initializationCallData,
146
+ salt,
147
+ };
148
+ }
149
+ function nexusEip7702AdoptionPlan(input) {
150
+ const { eoa: _eoa, ...factoryConstruction } = input;
151
+ const material = nexusMaterial(factoryConstruction);
152
+ if (!material.factoryData || !material.implementation) {
153
+ throw new Error('Nexus EIP-7702 initialization data is unavailable');
154
+ }
155
+ const decoded = decodeFunctionData({
156
+ abi: parseAbi(['function createAccount(bytes,bytes32)']),
157
+ data: material.factoryData,
158
+ });
159
+ if (decoded.functionName !== 'createAccount') {
160
+ throw new Error('Invalid Nexus EIP-7702 initialization data');
161
+ }
162
+ return {
163
+ contract: material.implementation,
164
+ initData: decoded.args[0],
165
+ };
166
+ }
167
+ // Builds the signed `initializeAccount` call sent as the account setup op when a
168
+ // 7702 intent is prepared. The account authorizes initialization by prefixing
169
+ // the raw module init data (packed with the any-chain sentinel) with its
170
+ // EIP-7702 init signature.
171
+ function nexusEip7702InitCall(input, eip7702InitSignature) {
172
+ const { initData } = nexusEip7702AdoptionPlan(input);
173
+ const packedInitData = encodePacked(['uint256', 'uint256', 'uint256', 'bytes'], [0n, 1n, 0n, initData]);
174
+ return encodeFunctionData({
175
+ abi: parseAbi(['function initializeAccount(bytes)']),
176
+ functionName: 'initializeAccount',
177
+ args: [concat([eip7702InitSignature, packedInitData])],
178
+ });
179
+ }
180
+ export function createNexusAdapter(construction) {
181
+ if (construction.account.kind !== 'nexus') {
182
+ throw new Error('Expected Nexus account');
183
+ }
184
+ const validator = construction.setup.validators[0]?.address ?? zeroAddress;
185
+ return {
186
+ account: construction.account,
187
+ capabilities: {
188
+ modular: true,
189
+ supportsDeployment: true,
190
+ supportsUserOperations: true,
191
+ supportsEip7702Adoption: true,
192
+ supportsSmartSessions: true,
193
+ supportsOriginSignatureReuse: true,
194
+ signatureEnvelope: { kind: 'nexus', validator },
195
+ },
196
+ getIdentity: (input) => ({
197
+ definition: input.account,
198
+ address: nexusMaterial(input).address,
199
+ }),
200
+ getDeploymentPlan: (input) => deploymentPlan(input.chain, nexusMaterial(input), input.deployed),
201
+ getEip7702AdoptionPlan: nexusEip7702AdoptionPlan,
202
+ getEip7702InitCall: nexusEip7702InitCall,
203
+ encodeCalls: encodeErc7579Calls,
204
+ encodeModuleInstallation: (module) => [encodeInstallModule(module)],
205
+ encodeModuleUninstallation: encodeUninstallModule,
206
+ encodeSignatureEnvelope: ({ envelope, validatorContribution }) => {
207
+ if (envelope.kind !== 'nexus')
208
+ throw new Error('Expected Nexus envelope');
209
+ return encodeAddressEnvelope(envelope.validator, validatorContribution, OWNABLE_VALIDATOR_ADDRESS);
210
+ },
211
+ };
212
+ }
@@ -0,0 +1,6 @@
1
+ import type { AccountAdapter } from '../adapter.js';
2
+ import { type DeploymentMaterial } from '../deployment.js';
3
+ import type { AccountConstruction } from '../types.js';
4
+ export declare function safeV0FactoryMaterial(input: AccountConstruction): Pick<Required<DeploymentMaterial>, 'factory' | 'factoryData'>;
5
+ export declare function createSafeAdapter(construction: AccountConstruction): AccountAdapter;
6
+ //# sourceMappingURL=safe.d.ts.map