@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
@@ -0,0 +1,227 @@
1
+ import type { Abi, AbiFunction, Address, Chain, Hex, TypedDataDefinition } from 'viem';
2
+ import type { OwnerSet } from '../types.js';
3
+ export type UniversalActionPolicyParamCondition = 'equal' | 'greaterThan' | 'lessThan' | 'greaterThanOrEqual' | 'lessThanOrEqual' | 'notEqual' | 'inRange';
4
+ export interface UniversalActionPolicyParamRule {
5
+ readonly condition: UniversalActionPolicyParamCondition;
6
+ readonly calldataOffset: bigint;
7
+ readonly usageLimit?: bigint;
8
+ readonly referenceValue: Hex | bigint;
9
+ }
10
+ export type ArgPolicyExpression = {
11
+ readonly type: 'rule';
12
+ readonly rule: UniversalActionPolicyParamRule;
13
+ } | {
14
+ readonly type: 'not';
15
+ readonly child: ArgPolicyExpression;
16
+ } | {
17
+ readonly type: 'and' | 'or';
18
+ readonly left: ArgPolicyExpression;
19
+ readonly right: ArgPolicyExpression;
20
+ };
21
+ export type SessionPolicy = {
22
+ readonly type: 'sudo';
23
+ } | {
24
+ readonly type: 'universal-action';
25
+ readonly valueLimitPerUse?: bigint;
26
+ readonly rules: [
27
+ UniversalActionPolicyParamRule,
28
+ ...UniversalActionPolicyParamRule[]
29
+ ];
30
+ } | {
31
+ readonly type: 'arg-policy';
32
+ readonly valueLimitPerUse?: bigint;
33
+ readonly expression: ArgPolicyExpression;
34
+ } | {
35
+ readonly type: 'spending-limits';
36
+ readonly limits: {
37
+ readonly token: Address;
38
+ readonly amount: bigint;
39
+ }[];
40
+ } | {
41
+ readonly type: 'time-frame';
42
+ readonly validUntil: number;
43
+ readonly validAfter: number;
44
+ } | {
45
+ readonly type: 'usage-limit';
46
+ readonly limit: bigint;
47
+ } | {
48
+ readonly type: 'value-limit';
49
+ readonly limit: bigint;
50
+ } | {
51
+ readonly type: 'intent-execution';
52
+ };
53
+ export interface FallbackAction {
54
+ readonly policies?: SessionPolicy[];
55
+ }
56
+ export interface ScopedAction {
57
+ readonly target: Address;
58
+ readonly selector: Hex;
59
+ readonly policies?: SessionPolicy[];
60
+ }
61
+ export type SessionAction = FallbackAction | ScopedAction;
62
+ export interface Permission {
63
+ readonly abi: Abi;
64
+ readonly address: Address;
65
+ readonly functions: Readonly<Record<string, {
66
+ readonly valueLimitPerUse?: bigint;
67
+ readonly params?: Readonly<Record<string, unknown>>;
68
+ readonly maxUses?: bigint;
69
+ readonly validUntil?: Date;
70
+ readonly validAfter?: Date;
71
+ readonly valueLimit?: bigint;
72
+ readonly spendingLimit?: {
73
+ readonly token: Address;
74
+ readonly amount: bigint;
75
+ };
76
+ } | undefined>>;
77
+ }
78
+ export interface SessionPolicyAddresses {
79
+ readonly sudo?: Address;
80
+ readonly universalAction?: Address;
81
+ readonly argPolicy?: Address;
82
+ readonly spendingLimits?: Address;
83
+ readonly timeFrame?: Address;
84
+ readonly usageLimit?: Address;
85
+ readonly valueLimit?: Address;
86
+ }
87
+ export type CrossChainSettlementLayer = 'SAME_CHAIN' | 'ECO' | 'ACROSS';
88
+ export interface CrossChainPermit {
89
+ from?: {
90
+ chain: Chain;
91
+ token: Address;
92
+ maxAmount?: bigint;
93
+ }[];
94
+ to?: {
95
+ chain: Chain;
96
+ token: Address;
97
+ recipient?: Address | 'any';
98
+ }[];
99
+ validUntil?: bigint;
100
+ validAfter?: bigint;
101
+ fillDeadline?: {
102
+ chain: Chain;
103
+ min?: bigint;
104
+ max?: bigint;
105
+ }[];
106
+ recipientIsAccount?: boolean;
107
+ settlementLayers?: CrossChainSettlementLayer[];
108
+ }
109
+ export interface FromLeg {
110
+ chain: Chain;
111
+ token: Address;
112
+ maxAmount?: bigint;
113
+ }
114
+ export interface ToLeg {
115
+ chain: Chain;
116
+ token: Address;
117
+ recipient?: Address | 'any';
118
+ }
119
+ export interface CrossChainPermissionInput {
120
+ from?: FromLeg | FromLeg[];
121
+ to?: ToLeg | ToLeg[];
122
+ validUntil?: Date;
123
+ validAfter?: Date;
124
+ fillDeadline?: {
125
+ chain: Chain;
126
+ min?: Date;
127
+ max?: Date;
128
+ }[];
129
+ allowRecipientNotAccount?: boolean;
130
+ settlementLayers?: CrossChainSettlementLayer[];
131
+ }
132
+ export interface Permit2ClaimPolicy {
133
+ type: 'permit2';
134
+ spenders?: Address[];
135
+ sourceTokens?: {
136
+ chain: Chain;
137
+ address: Address;
138
+ }[];
139
+ destinationTokens?: {
140
+ chain: Chain;
141
+ address: Address;
142
+ }[];
143
+ recipients?: {
144
+ chain: Chain;
145
+ address: Address | 'any';
146
+ }[];
147
+ recipientIsAccount?: boolean;
148
+ permitDeadline?: {
149
+ min?: bigint;
150
+ max?: bigint;
151
+ };
152
+ fillDeadline?: {
153
+ chain: Chain;
154
+ min?: bigint;
155
+ max?: bigint;
156
+ }[];
157
+ }
158
+ export interface SessionDefinition {
159
+ chain: Chain;
160
+ owners: OwnerSet;
161
+ permissions?: Permission[];
162
+ claimPolicies?: Permit2ClaimPolicy[];
163
+ crossChainPermits?: CrossChainPermissionInput[];
164
+ policyAddresses?: SessionPolicyAddresses;
165
+ }
166
+ export interface ResolvedPolicy {
167
+ policy: Address;
168
+ initData: Hex;
169
+ }
170
+ export interface ResolvedAction {
171
+ actionTargetSelector: Hex;
172
+ actionTarget: Address;
173
+ actionPolicies: readonly ResolvedPolicy[];
174
+ }
175
+ export interface ResolvedERC7739Content {
176
+ appDomainSeparator: Hex;
177
+ contentNames: readonly string[];
178
+ }
179
+ export interface ResolvedERC7739Policies {
180
+ allowedERC7739Content: readonly ResolvedERC7739Content[];
181
+ erc1271Policies: readonly ResolvedPolicy[];
182
+ }
183
+ export interface Session {
184
+ chain: Chain;
185
+ owners: OwnerSet;
186
+ hasExplicitPermissions: boolean;
187
+ permissionId: Hex;
188
+ sessionValidator: Address;
189
+ sessionValidatorInitData: Hex;
190
+ salt: Hex;
191
+ erc7739Policies: ResolvedERC7739Policies;
192
+ actions: readonly ResolvedAction[];
193
+ claimPolicies: readonly Permit2ClaimPolicy[];
194
+ }
195
+ export interface SessionData {
196
+ sessionValidator: Address;
197
+ sessionValidatorInitData: Hex;
198
+ salt: Hex;
199
+ erc7739Policies: ResolvedERC7739Policies;
200
+ actions: readonly ResolvedAction[];
201
+ claimPolicies: readonly ResolvedPolicy[];
202
+ }
203
+ export interface SessionEnableData {
204
+ readonly userSignature: Hex;
205
+ readonly hashesAndChainIds: readonly ChainDigest[];
206
+ readonly sessionToEnableIndex: number;
207
+ }
208
+ export interface ChainDigest {
209
+ chainId: bigint;
210
+ sessionDigest: Hex;
211
+ }
212
+ export interface SessionDetails {
213
+ nonces: bigint[];
214
+ hashesAndChainIds: ChainDigest[];
215
+ data: TypedDataDefinition<typeof import('./authorization.js').types, 'MultiChainSession'>;
216
+ }
217
+ export interface ResolvedSessionSignerSet {
218
+ readonly kind: 'smart-session';
219
+ readonly session: Session;
220
+ readonly enableData?: SessionEnableData;
221
+ readonly verifyExecutions: boolean;
222
+ readonly claimPolicyData?: Hex;
223
+ }
224
+ export type SmartSessionMockShape = 'enable' | 'use' | 'erc1271';
225
+ export type RawFunctionConfig = NonNullable<Permission['functions'][string]>;
226
+ export type RawAbiFunction = AbiFunction;
227
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../modules/validators/smart-sessions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,WAAW,EACX,OAAO,EACP,KAAK,EACL,GAAG,EACH,mBAAmB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,MAAM,mCAAmC,GAC3C,OAAO,GACP,aAAa,GACb,UAAU,GACV,oBAAoB,GACpB,iBAAiB,GACjB,UAAU,GACV,SAAS,CAAA;AAEb,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,SAAS,EAAE,mCAAmC,CAAA;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,GAAG,GAAG,MAAM,CAAA;CACtC;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,GAC7D;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CACpC,CAAA;AAEL,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE;QACd,8BAA8B;QAC9B,GAAG,8BAA8B,EAAE;KACpC,CAAA;CACF,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAA;CACzC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KACxB,EAAE,CAAA;CACJ,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAA;AAEzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CACpC;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,YAAY,CAAA;AAEzD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACjB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAC1B,MAAM,CACJ,MAAM,EACJ;QACE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;QAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAA;QAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAA;QAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE;YACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;YACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;SACxB,CAAA;KACF,GACD,SAAS,CACZ,CACF,CAAA;CACF;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7D,EAAE,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,EAAE,CAAA;IACpE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7D,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAC1B,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,CAAC,EAAE,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,EAAE,CAAA;IACzD,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IACnD,iBAAiB,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IACxD,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,EAAE,CAAA;IACzD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC9D;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,QAAQ,CAAA;IAChB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACpC,iBAAiB,CAAC,EAAE,yBAAyB,EAAE,CAAA;IAC/C,eAAe,CAAC,EAAE,sBAAsB,CAAA;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,oBAAoB,EAAE,GAAG,CAAA;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,SAAS,cAAc,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,GAAG,CAAA;IACvB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,SAAS,sBAAsB,EAAE,CAAA;IACxD,eAAe,EAAE,SAAS,cAAc,EAAE,CAAA;CAC3C;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,QAAQ,CAAA;IAChB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,YAAY,EAAE,GAAG,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,wBAAwB,EAAE,GAAG,CAAA;IAC7B,IAAI,EAAE,GAAG,CAAA;IACT,eAAe,EAAE,uBAAuB,CAAA;IACxC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAClC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAA;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,OAAO,CAAA;IACzB,wBAAwB,EAAE,GAAG,CAAA;IAC7B,IAAI,EAAE,GAAG,CAAA;IACT,eAAe,EAAE,uBAAuB,CAAA;IACxC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAClC,aAAa,EAAE,SAAS,cAAc,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAA;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,WAAW,EAAE,CAAA;IAClD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,iBAAiB,EAAE,WAAW,EAAE,CAAA;IAChC,IAAI,EAAE,mBAAmB,CACvB,cAAc,iBAAiB,EAAE,KAAK,EACtC,mBAAmB,CACpB,CAAA;CACF;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IACvC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAA;CAC/B;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAA;AAEhE,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAC5E,MAAM,MAAM,cAAc,GAAG,WAAW,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { Address } from 'viem';
2
+ import type { ResolvedModule } from '../types.js';
3
+ export declare const SOCIAL_RECOVERY_VALIDATOR_ADDRESS: Address;
4
+ /**
5
+ * Resolves the social recovery validator module.
6
+ *
7
+ * The module shares the ownable validator's `(threshold, address[])` init
8
+ * encoding and its concatenated-ECDSA signature format, so it resolves through
9
+ * the same encoder at a different address. `onInstall` requires the guardian
10
+ * list to be sorted and unique, which `resolveOwnableAddresses` guarantees.
11
+ */
12
+ export declare function resolveSocialRecoveryValidator(input: {
13
+ readonly guardians: readonly Address[];
14
+ readonly threshold?: number;
15
+ }): ResolvedModule;
16
+ //# sourceMappingURL=social-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-recovery.d.ts","sourceRoot":"","sources":["../../../../modules/validators/social-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG9C,eAAO,MAAM,iCAAiC,EAAE,OACF,CAAA;AAE9C;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAA;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,GAAG,cAAc,CAMjB"}
@@ -0,0 +1,17 @@
1
+ import { resolveOwnableAddresses } from './ownable.js';
2
+ export const SOCIAL_RECOVERY_VALIDATOR_ADDRESS = '0xa04d053b3c8021e8d5bf641816c42daa75d8b597';
3
+ /**
4
+ * Resolves the social recovery validator module.
5
+ *
6
+ * The module shares the ownable validator's `(threshold, address[])` init
7
+ * encoding and its concatenated-ECDSA signature format, so it resolves through
8
+ * the same encoder at a different address. `onInstall` requires the guardian
9
+ * list to be sorted and unique, which `resolveOwnableAddresses` guarantees.
10
+ */
11
+ export function resolveSocialRecoveryValidator(input) {
12
+ return resolveOwnableAddresses({
13
+ owners: input.guardians,
14
+ threshold: input.threshold ?? 1,
15
+ address: SOCIAL_RECOVERY_VALIDATOR_ADDRESS,
16
+ });
17
+ }
@@ -0,0 +1,143 @@
1
+ import type { Account, Address, Hex } from 'viem';
2
+ import type { WebAuthnAccount } from 'viem/account-abstraction';
3
+ import type { ModuleId } from '../types.js';
4
+ import type { SmartSessionEnableContributionData } from './smart-session-signature-types.js';
5
+ export type ValidatorKind = 'ecdsa' | 'ens' | 'passkey' | 'multi-factor' | 'k1' | 'smart-session';
6
+ export type ValidatorPayloadKind = 'message' | 'typed-data' | 'intent' | 'user-operation' | 'session-enable';
7
+ export type ValidatorSigningPurpose = 'erc1271' | 'intent' | 'user-operation' | 'session-enable';
8
+ export interface OwnableValidatorConfig {
9
+ type: 'ecdsa';
10
+ accounts: Account[];
11
+ threshold?: number;
12
+ module?: Address;
13
+ }
14
+ export interface ENSValidatorConfig {
15
+ type: 'ens';
16
+ owners: {
17
+ account: Account;
18
+ expiration?: Date;
19
+ }[];
20
+ threshold?: number;
21
+ }
22
+ export interface WebauthnValidatorConfig {
23
+ type: 'passkey';
24
+ accounts: WebAuthnAccount[];
25
+ threshold?: number;
26
+ module?: Address;
27
+ }
28
+ export interface MultiFactorValidatorConfig {
29
+ type: 'multi-factor';
30
+ validators: (OwnableValidatorConfig | ENSValidatorConfig | WebauthnValidatorConfig)[];
31
+ threshold?: number;
32
+ module?: Address;
33
+ }
34
+ export type OwnerSet = OwnableValidatorConfig | ENSValidatorConfig | WebauthnValidatorConfig | MultiFactorValidatorConfig;
35
+ export type AtomicValidatorInput = OwnableValidatorConfig | ENSValidatorConfig | WebauthnValidatorConfig;
36
+ export type MultiFactorValidatorInput = MultiFactorValidatorConfig;
37
+ export type ValidatorInput = OwnerSet;
38
+ export type ValidatorModuleSelection = {
39
+ readonly source: 'explicit';
40
+ readonly address: Address;
41
+ } | {
42
+ readonly source: 'default';
43
+ readonly profile: 'ownable' | 'ens' | 'webauthn' | 'multi-factor';
44
+ };
45
+ export type ValidatorOwner = {
46
+ readonly kind: 'ecdsa' | 'ens';
47
+ readonly id: string;
48
+ readonly signerId: string;
49
+ readonly account: Account;
50
+ readonly expiration?: Date;
51
+ } | {
52
+ readonly kind: 'webauthn';
53
+ readonly id: string;
54
+ readonly signerId: string;
55
+ readonly account: WebAuthnAccount;
56
+ };
57
+ export interface AtomicValidatorDefinition {
58
+ readonly kind: Exclude<ValidatorKind, 'multi-factor'>;
59
+ readonly id: string;
60
+ readonly publicId: number | Hex;
61
+ readonly module: ValidatorModuleSelection;
62
+ readonly owners: readonly ValidatorOwner[];
63
+ readonly threshold: number;
64
+ }
65
+ export interface MultiFactorValidatorDefinition {
66
+ readonly kind: 'multi-factor';
67
+ readonly id: string;
68
+ readonly publicId: number | Hex;
69
+ readonly module: ValidatorModuleSelection;
70
+ readonly validators: readonly AtomicValidatorDefinition[];
71
+ readonly threshold: number;
72
+ }
73
+ export type ResolvedValidatorDefinition = AtomicValidatorDefinition | MultiFactorValidatorDefinition;
74
+ export type ValidatorContributionCodec = {
75
+ readonly kind: 'ordered-threshold';
76
+ readonly validator: ModuleId;
77
+ readonly ownerOrder: readonly string[];
78
+ readonly threshold: number;
79
+ readonly recoveryEncoding: 'ethereum' | 'validator-offset-4';
80
+ readonly webauthn?: {
81
+ readonly account: Address;
82
+ readonly usePrecompile: boolean;
83
+ readonly format: 'current' | 'v0';
84
+ };
85
+ } | {
86
+ readonly kind: 'nested-threshold';
87
+ readonly validator: ModuleId;
88
+ readonly factorOrder: readonly string[];
89
+ readonly threshold: number;
90
+ } | {
91
+ readonly kind: 'smart-session';
92
+ readonly validator: ModuleId;
93
+ readonly mode: 'use' | 'enable-and-use' | 'pre-claim' | 'notarized';
94
+ readonly permissionId: Hex;
95
+ readonly claimPolicyData?: Hex;
96
+ readonly enableData?: SmartSessionEnableContributionData;
97
+ readonly signerCodec?: Exclude<ValidatorContributionCodec, {
98
+ readonly kind: 'smart-session';
99
+ }>;
100
+ };
101
+ export type ValidatorContributionInput = {
102
+ readonly kind: 'ecdsa';
103
+ readonly ownerId: string;
104
+ readonly signature: Hex;
105
+ readonly encoding: 'raw-signer' | 'validator-contribution';
106
+ } | {
107
+ readonly kind: 'webauthn';
108
+ readonly ownerId: string;
109
+ readonly publicKey: Hex;
110
+ readonly signature: Hex;
111
+ readonly authenticatorData: Hex;
112
+ readonly clientDataJSON: string;
113
+ readonly challengeIndex: number;
114
+ readonly typeIndex: number;
115
+ readonly userVerificationRequired: boolean;
116
+ } | {
117
+ readonly kind: 'factor';
118
+ readonly factorId: string;
119
+ readonly publicId: number | Hex;
120
+ readonly validator: Address;
121
+ readonly contribution: Hex;
122
+ } | {
123
+ readonly kind: 'session';
124
+ readonly signature: Hex;
125
+ };
126
+ export interface ValidatorCapabilities {
127
+ readonly compatibilityKey: {
128
+ readonly validatorKind: ValidatorKind;
129
+ readonly moduleAddress: Address;
130
+ readonly accountProfile: string;
131
+ readonly purpose: ValidatorSigningPurpose;
132
+ };
133
+ readonly payloadKinds: readonly ValidatorPayloadKind[];
134
+ readonly signatureModes: readonly string[];
135
+ readonly signerTopology: 'single' | 'threshold' | 'nested-threshold';
136
+ readonly supportsIndependentSigning: boolean;
137
+ readonly supportsOriginReuse: boolean;
138
+ readonly supportsMockSignature: boolean;
139
+ readonly supportsEip712: boolean;
140
+ readonly recoveryEncoding: 'ethereum' | 'validator-offset-4';
141
+ readonly contributionCodec: ValidatorContributionCodec;
142
+ }
143
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../modules/validators/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ import { type Address, type Hex } from 'viem';
2
+ import type { ResolvedModule } from '../types.js';
3
+ import type { AtomicValidatorDefinition } from './types.js';
4
+ export declare const WEBAUTHN_VALIDATOR_ADDRESS: Address;
5
+ export declare const WEBAUTHN_V0_VALIDATOR_ADDRESS: `0x${string}`;
6
+ export declare const WEBAUTHN_MOCK_SIGNATURE: "0x0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001b9b86eb98fda3ed4d797d9e690588dfadf17b329a76a47cec935bebf92d7ddc80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000019b2e9410bb6850f9f660a03d609d5a844fb96bcdc87a15139b03ee22c70f469100d2b865a215c3bf786387064effa8fcedcb1d625b5148f8a1236d5e3ff11acf000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d9763050000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000867b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22396a4546696a75684557724d34534f572d7443684a625545484550343456636a634a2d42716f3166544d38222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a38303830222c2263726f73734f726967696e223a66616c73657d0000000000000000000000000000000000000000000000000000";
7
+ export interface PublicKey {
8
+ prefix?: number | undefined;
9
+ x: bigint;
10
+ y: bigint;
11
+ }
12
+ export interface WebauthnCredential {
13
+ pubKey: PublicKey | Hex | Uint8Array;
14
+ authenticatorId: string;
15
+ }
16
+ export interface WebAuthnSignature {
17
+ authenticatorData: Hex;
18
+ clientDataJSON: string;
19
+ challengeIndex: bigint;
20
+ typeIndex: bigint;
21
+ r: bigint;
22
+ s: bigint;
23
+ }
24
+ export declare function parseWebauthnPublicKey(publicKey: Hex | Uint8Array): PublicKey;
25
+ export declare function parseWebauthnSignature(signature: Hex | Uint8Array): {
26
+ readonly r: bigint;
27
+ readonly s: bigint;
28
+ };
29
+ export declare function generateWebauthnCredentialId(pubKeyX: bigint, pubKeyY: bigint, account: Address): Hex;
30
+ export declare function encodeWebauthnSignatures(credentialIds: readonly Hex[], usePrecompile: boolean, signatures: readonly WebAuthnSignature[]): Hex;
31
+ export declare function encodeWebauthnSignatureV0(signature: Omit<WebAuthnSignature, 'challengeIndex'>, usePrecompile: boolean): Hex;
32
+ export declare function encodeWebauthnValidatorContribution(input: {
33
+ readonly ownerOrder: readonly string[];
34
+ readonly threshold: number;
35
+ readonly account: Address;
36
+ readonly usePrecompile: boolean;
37
+ readonly format: 'current' | 'v0';
38
+ readonly contributions: readonly {
39
+ readonly ownerId: string;
40
+ readonly publicKey: Hex;
41
+ readonly signature: Hex;
42
+ readonly authenticatorData: Hex;
43
+ readonly clientDataJSON: string;
44
+ readonly challengeIndex: number;
45
+ readonly typeIndex: number;
46
+ }[];
47
+ }): Hex;
48
+ export declare function resolveWebauthnCredentials(input: {
49
+ readonly credentials: readonly WebauthnCredential[];
50
+ readonly threshold: number;
51
+ readonly address?: `0x${string}`;
52
+ }): ResolvedModule;
53
+ export declare function resolveWebauthnValidator(definition: AtomicValidatorDefinition): ResolvedModule;
54
+ //# sourceMappingURL=webauthn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webauthn.d.ts","sourceRoot":"","sources":["../../../../modules/validators/webauthn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import { bytesToHex, encodeAbiParameters, hexToBytes, keccak256, } from 'viem';
2
+ export const WEBAUTHN_VALIDATOR_ADDRESS = '0x0000000000578c4cb0e472a5462da43c495c3f33';
3
+ export const WEBAUTHN_V0_VALIDATOR_ADDRESS = WEBAUTHN_VALIDATOR_ADDRESS;
4
+ export const WEBAUTHN_MOCK_SIGNATURE = '0x0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001b9b86eb98fda3ed4d797d9e690588dfadf17b329a76a47cec935bebf92d7ddc80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000019b2e9410bb6850f9f660a03d609d5a844fb96bcdc87a15139b03ee22c70f469100d2b865a215c3bf786387064effa8fcedcb1d625b5148f8a1236d5e3ff11acf000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d9763050000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000867b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22396a4546696a75684557724d34534f572d7443684a625545484550343456636a634a2d42716f3166544d38222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a38303830222c2263726f73734f726967696e223a66616c73657d0000000000000000000000000000000000000000000000000000';
5
+ export function parseWebauthnPublicKey(publicKey) {
6
+ const bytes = typeof publicKey === 'string' ? hexToBytes(publicKey) : publicKey;
7
+ const offset = bytes.length === 65 ? 1 : 0;
8
+ const prefix = offset === 1 ? bytes[0] : undefined;
9
+ return {
10
+ ...(prefix === undefined ? {} : { prefix }),
11
+ x: BigInt(bytesToHex(bytes.slice(offset, 32 + offset))),
12
+ y: BigInt(bytesToHex(bytes.slice(32 + offset, 64 + offset))),
13
+ };
14
+ }
15
+ export function parseWebauthnSignature(signature) {
16
+ const bytes = typeof signature === 'string' ? hexToBytes(signature) : signature;
17
+ return {
18
+ r: BigInt(bytesToHex(bytes.slice(0, 32))),
19
+ s: BigInt(bytesToHex(bytes.slice(32, 64))),
20
+ };
21
+ }
22
+ export function generateWebauthnCredentialId(pubKeyX, pubKeyY, account) {
23
+ return keccak256(encodeAbiParameters([{ type: 'uint256' }, { type: 'uint256' }, { type: 'address' }], [pubKeyX, pubKeyY, account]));
24
+ }
25
+ export function encodeWebauthnSignatures(credentialIds, usePrecompile, signatures) {
26
+ const ordered = credentialIds
27
+ .map((credentialId, index) => ({
28
+ credentialId,
29
+ signature: signatures[index],
30
+ }))
31
+ .sort((left, right) => left.credentialId.localeCompare(right.credentialId));
32
+ return encodeAbiParameters([
33
+ { type: 'bytes32[]', name: 'credIds' },
34
+ { type: 'bool', name: 'usePrecompile' },
35
+ {
36
+ type: 'tuple[]',
37
+ name: 'webAuthns',
38
+ components: [
39
+ { type: 'bytes', name: 'authenticatorData' },
40
+ { type: 'string', name: 'clientDataJSON' },
41
+ { type: 'uint256', name: 'challengeIndex' },
42
+ { type: 'uint256', name: 'typeIndex' },
43
+ { type: 'uint256', name: 'r' },
44
+ { type: 'uint256', name: 's' },
45
+ ],
46
+ },
47
+ ], [
48
+ ordered.map(({ credentialId }) => credentialId),
49
+ usePrecompile,
50
+ ordered.map(({ signature }) => signature),
51
+ ]);
52
+ }
53
+ export function encodeWebauthnSignatureV0(signature, usePrecompile) {
54
+ return encodeAbiParameters([
55
+ { type: 'bytes', name: 'authenticatorData' },
56
+ { type: 'string', name: 'clientDataJSON' },
57
+ { type: 'uint256', name: 'responseTypeLocation' },
58
+ { type: 'uint256', name: 'r' },
59
+ { type: 'uint256', name: 's' },
60
+ { type: 'bool', name: 'usePrecompiled' },
61
+ ], [
62
+ signature.authenticatorData,
63
+ signature.clientDataJSON,
64
+ signature.typeIndex,
65
+ signature.r,
66
+ signature.s,
67
+ usePrecompile,
68
+ ]);
69
+ }
70
+ export function encodeWebauthnValidatorContribution(input) {
71
+ if (input.threshold < 1 || input.threshold > input.ownerOrder.length) {
72
+ throw new Error('Validator threshold is outside the configured owner set');
73
+ }
74
+ const configured = new Set(input.ownerOrder);
75
+ const contributions = new Map();
76
+ for (const contribution of input.contributions) {
77
+ if (!configured.has(contribution.ownerId)) {
78
+ throw new Error(`Unknown validator owner ${contribution.ownerId}`);
79
+ }
80
+ if (contributions.has(contribution.ownerId)) {
81
+ throw new Error(`Duplicate validator owner ${contribution.ownerId}`);
82
+ }
83
+ contributions.set(contribution.ownerId, contribution);
84
+ }
85
+ const ordered = input.ownerOrder.flatMap((ownerId) => {
86
+ const contribution = contributions.get(ownerId);
87
+ return contribution ? [contribution] : [];
88
+ });
89
+ if (ordered.length < input.threshold) {
90
+ throw new Error(`Insufficient validator contributions: required ${input.threshold}, received ${ordered.length}`);
91
+ }
92
+ const signatures = ordered.map((contribution) => ({
93
+ authenticatorData: contribution.authenticatorData,
94
+ clientDataJSON: contribution.clientDataJSON,
95
+ challengeIndex: BigInt(contribution.challengeIndex),
96
+ typeIndex: BigInt(contribution.typeIndex),
97
+ ...parseWebauthnSignature(contribution.signature),
98
+ }));
99
+ if (input.format === 'v0') {
100
+ if (signatures.length !== 1) {
101
+ throw new Error('WebAuthn V0 accepts exactly one contribution');
102
+ }
103
+ return encodeWebauthnSignatureV0(signatures[0], input.usePrecompile);
104
+ }
105
+ const credentialIds = ordered.map((contribution) => {
106
+ const publicKey = parseWebauthnPublicKey(contribution.publicKey);
107
+ return generateWebauthnCredentialId(publicKey.x, publicKey.y, input.account);
108
+ });
109
+ return encodeWebauthnSignatures(credentialIds, input.usePrecompile, signatures);
110
+ }
111
+ export function resolveWebauthnCredentials(input) {
112
+ const credentials = input.credentials.map((credential) => {
113
+ const publicKey = typeof credential.pubKey === 'object' &&
114
+ !(credential.pubKey instanceof Uint8Array)
115
+ ? credential.pubKey
116
+ : parseWebauthnPublicKey(credential.pubKey);
117
+ return {
118
+ pubKeyX: publicKey.x,
119
+ pubKeyY: publicKey.y,
120
+ requireUV: false,
121
+ };
122
+ });
123
+ return {
124
+ kind: 'validator',
125
+ address: input.address ?? WEBAUTHN_VALIDATOR_ADDRESS,
126
+ initData: encodeAbiParameters([
127
+ { name: 'threshold', type: 'uint256' },
128
+ {
129
+ name: 'credentials',
130
+ type: 'tuple[]',
131
+ components: [
132
+ { name: 'pubKeyX', type: 'uint256' },
133
+ { name: 'pubKeyY', type: 'uint256' },
134
+ { name: 'requireUV', type: 'bool' },
135
+ ],
136
+ },
137
+ ], [BigInt(input.threshold), credentials]),
138
+ deInitData: '0x',
139
+ additionalContext: '0x',
140
+ };
141
+ }
142
+ export function resolveWebauthnValidator(definition) {
143
+ const credentials = definition.owners.map((owner) => {
144
+ if (owner.kind !== 'webauthn') {
145
+ throw new Error('WebAuthn validator contains a non-WebAuthn owner');
146
+ }
147
+ return {
148
+ pubKey: owner.account.publicKey,
149
+ authenticatorId: owner.account.id,
150
+ };
151
+ });
152
+ return resolveWebauthnCredentials({
153
+ credentials,
154
+ threshold: definition.threshold,
155
+ address: definition.module.source === 'explicit'
156
+ ? definition.module.address
157
+ : WEBAUTHN_VALIDATOR_ADDRESS,
158
+ });
159
+ }