@rhinestone/sdk 2.0.0-beta.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) 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 +118 -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 +1 -1
  53. package/dist/src/actions/ecdsa.d.ts.map +1 -1
  54. package/dist/src/actions/ecdsa.js +8 -8
  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/passkeys.d.ts +2 -2
  65. package/dist/src/actions/passkeys.d.ts.map +1 -1
  66. package/dist/src/actions/passkeys.js +19 -14
  67. package/dist/src/actions/runtime.d.ts +12 -0
  68. package/dist/src/actions/runtime.d.ts.map +1 -0
  69. package/dist/src/actions/runtime.js +158 -0
  70. package/dist/src/actions/smart-sessions.d.ts +30 -6
  71. package/dist/src/actions/smart-sessions.d.ts.map +1 -1
  72. package/dist/src/actions/smart-sessions.js +69 -18
  73. package/dist/src/api/account.d.ts +265 -0
  74. package/dist/src/api/account.d.ts.map +1 -0
  75. package/dist/src/api/account.js +637 -0
  76. package/dist/src/api/accounts.d.ts +12 -0
  77. package/dist/src/api/accounts.d.ts.map +1 -0
  78. package/dist/src/api/accounts.js +17 -0
  79. package/dist/src/api/compose-types.d.ts +147 -0
  80. package/dist/src/api/compose-types.d.ts.map +1 -0
  81. package/dist/src/api/compose-types.js +1 -0
  82. package/dist/src/api/compose.d.ts +6 -0
  83. package/dist/src/api/compose.d.ts.map +1 -0
  84. package/dist/src/api/compose.js +766 -0
  85. package/dist/src/api/direct-signing.d.ts +27 -0
  86. package/dist/src/api/direct-signing.d.ts.map +1 -0
  87. package/dist/src/api/direct-signing.js +191 -0
  88. package/dist/src/api/project-mappers.d.ts +7 -0
  89. package/dist/src/api/project-mappers.d.ts.map +1 -0
  90. package/dist/src/api/project-mappers.js +23 -0
  91. package/dist/src/api/queries/app-fees.d.ts +4 -0
  92. package/dist/src/api/queries/app-fees.d.ts.map +1 -0
  93. package/dist/src/api/queries/app-fees.js +3 -0
  94. package/dist/src/api/queries/portfolio.d.ts +9 -0
  95. package/dist/src/api/queries/portfolio.d.ts.map +1 -0
  96. package/dist/src/api/queries/portfolio.js +28 -0
  97. package/dist/src/api/queries/session.d.ts +8 -0
  98. package/dist/src/api/queries/session.d.ts.map +1 -0
  99. package/dist/src/api/queries/session.js +15 -0
  100. package/dist/src/api/sdk.d.ts +80 -0
  101. package/dist/src/api/sdk.d.ts.map +1 -0
  102. package/dist/src/api/sdk.js +103 -0
  103. package/dist/src/api/signer-selection.d.ts +7 -0
  104. package/dist/src/api/signer-selection.d.ts.map +1 -0
  105. package/dist/src/api/signer-selection.js +109 -0
  106. package/dist/src/calls/normalize.d.ts +9 -0
  107. package/dist/src/calls/normalize.d.ts.map +1 -0
  108. package/dist/src/calls/normalize.js +17 -0
  109. package/dist/src/calls/resolve.d.ts +3 -0
  110. package/dist/src/calls/resolve.d.ts.map +1 -0
  111. package/dist/src/calls/resolve.js +15 -0
  112. package/dist/src/calls/types.d.ts +25 -0
  113. package/dist/src/calls/types.d.ts.map +1 -0
  114. package/dist/src/calls/types.js +1 -0
  115. package/dist/src/chains/caip2.d.ts +10 -0
  116. package/dist/src/chains/caip2.d.ts.map +1 -0
  117. package/dist/src/chains/caip2.js +85 -0
  118. package/dist/src/chains/catalog.d.ts +5 -0
  119. package/dist/src/chains/catalog.d.ts.map +1 -0
  120. package/dist/src/chains/catalog.js +41 -0
  121. package/dist/src/chains/errors.d.ts +15 -0
  122. package/dist/src/chains/errors.d.ts.map +1 -0
  123. package/dist/src/chains/errors.js +21 -0
  124. package/dist/src/chains/non-evm.d.ts +26 -0
  125. package/dist/src/chains/non-evm.d.ts.map +1 -0
  126. package/dist/src/chains/non-evm.js +30 -0
  127. package/dist/src/chains/tokens.d.ts +4 -0
  128. package/dist/src/chains/tokens.d.ts.map +1 -0
  129. package/dist/src/chains/tokens.js +22 -0
  130. package/dist/src/chains/types.d.ts +25 -0
  131. package/dist/src/chains/types.d.ts.map +1 -0
  132. package/dist/src/chains/types.js +1 -0
  133. package/dist/src/clients/bundler/client.d.ts +10 -0
  134. package/dist/src/clients/bundler/client.d.ts.map +1 -0
  135. package/dist/src/clients/bundler/client.js +85 -0
  136. package/dist/src/clients/bundler/endpoints.d.ts +3 -0
  137. package/dist/src/clients/bundler/endpoints.d.ts.map +1 -0
  138. package/dist/src/clients/bundler/endpoints.js +18 -0
  139. package/dist/src/clients/bundler/port.d.ts +22 -0
  140. package/dist/src/clients/bundler/port.d.ts.map +1 -0
  141. package/dist/src/clients/bundler/port.js +1 -0
  142. package/dist/src/clients/json-rpc.d.ts +20 -0
  143. package/dist/src/clients/json-rpc.d.ts.map +1 -0
  144. package/dist/src/clients/json-rpc.js +56 -0
  145. package/dist/src/clients/orchestrator/auth.d.ts +7 -0
  146. package/dist/src/clients/orchestrator/auth.d.ts.map +1 -0
  147. package/dist/src/clients/orchestrator/auth.js +27 -0
  148. package/dist/src/clients/orchestrator/chain-catalog.d.ts +36 -0
  149. package/dist/src/clients/orchestrator/chain-catalog.d.ts.map +1 -0
  150. package/dist/src/clients/orchestrator/chain-catalog.js +67 -0
  151. package/dist/src/clients/orchestrator/client.d.ts +13 -0
  152. package/dist/src/clients/orchestrator/client.d.ts.map +1 -0
  153. package/dist/src/clients/orchestrator/client.js +97 -0
  154. package/dist/src/clients/orchestrator/errors.d.ts +238 -0
  155. package/dist/src/clients/orchestrator/errors.d.ts.map +1 -0
  156. package/dist/src/clients/orchestrator/errors.js +525 -0
  157. package/dist/src/clients/orchestrator/fetch.d.ts +7 -0
  158. package/dist/src/clients/orchestrator/fetch.d.ts.map +1 -0
  159. package/dist/src/clients/orchestrator/fetch.js +37 -0
  160. package/dist/src/clients/orchestrator/mappers.d.ts +9 -0
  161. package/dist/src/clients/orchestrator/mappers.d.ts.map +1 -0
  162. package/dist/src/clients/orchestrator/mappers.js +198 -0
  163. package/dist/src/clients/orchestrator/port.d.ts +26 -0
  164. package/dist/src/clients/orchestrator/port.d.ts.map +1 -0
  165. package/dist/src/clients/orchestrator/port.js +1 -0
  166. package/dist/src/{orchestrator/types.d.ts → clients/orchestrator/public.d.ts} +115 -42
  167. package/dist/src/clients/orchestrator/public.d.ts.map +1 -0
  168. package/dist/src/clients/orchestrator/public.js +14 -0
  169. package/dist/src/clients/orchestrator/types.d.ts +144 -0
  170. package/dist/src/clients/orchestrator/types.d.ts.map +1 -0
  171. package/dist/src/clients/orchestrator/types.js +1 -0
  172. package/dist/src/clients/orchestrator/wire.d.ts +19 -0
  173. package/dist/src/clients/orchestrator/wire.d.ts.map +1 -0
  174. package/dist/src/clients/orchestrator/wire.gen.d.ts +6463 -0
  175. package/dist/src/clients/orchestrator/wire.gen.d.ts.map +1 -0
  176. package/dist/src/clients/orchestrator/wire.gen.js +1 -0
  177. package/dist/src/clients/orchestrator/wire.js +1 -0
  178. package/dist/src/clients/paymaster/client.d.ts +8 -0
  179. package/dist/src/clients/paymaster/client.d.ts.map +1 -0
  180. package/dist/src/clients/paymaster/client.js +38 -0
  181. package/dist/src/clients/paymaster/endpoints.d.ts +3 -0
  182. package/dist/src/clients/paymaster/endpoints.d.ts.map +1 -0
  183. package/dist/src/clients/paymaster/endpoints.js +16 -0
  184. package/dist/src/clients/paymaster/port.d.ts +17 -0
  185. package/dist/src/clients/paymaster/port.d.ts.map +1 -0
  186. package/dist/src/clients/paymaster/port.js +1 -0
  187. package/dist/src/clients/rpc/client.d.ts +6 -0
  188. package/dist/src/clients/rpc/client.d.ts.map +1 -0
  189. package/dist/src/clients/rpc/client.js +66 -0
  190. package/dist/src/clients/rpc/compatibility.d.ts +12 -0
  191. package/dist/src/clients/rpc/compatibility.d.ts.map +1 -0
  192. package/dist/src/clients/rpc/compatibility.js +16 -0
  193. package/dist/src/clients/rpc/port.d.ts +13 -0
  194. package/dist/src/clients/rpc/port.d.ts.map +1 -0
  195. package/dist/src/clients/rpc/port.js +1 -0
  196. package/dist/src/clients/rpc/providers.d.ts +3 -0
  197. package/dist/src/clients/rpc/providers.d.ts.map +1 -0
  198. package/dist/src/clients/rpc/providers.js +8 -0
  199. package/dist/src/clients/rpc/transport.d.ts +4 -0
  200. package/dist/src/clients/rpc/transport.d.ts.map +1 -0
  201. package/dist/src/clients/rpc/transport.js +5 -0
  202. package/dist/src/clients/rpc/types.d.ts +23 -0
  203. package/dist/src/clients/rpc/types.d.ts.map +1 -0
  204. package/dist/src/clients/rpc/types.js +1 -0
  205. package/dist/src/config/account-runtime.d.ts +7 -0
  206. package/dist/src/config/account-runtime.d.ts.map +1 -0
  207. package/dist/src/config/account-runtime.js +36 -0
  208. package/dist/src/config/account.d.ts +743 -0
  209. package/dist/src/config/account.d.ts.map +1 -0
  210. package/dist/src/config/account.js +10 -0
  211. package/dist/src/config/defaults.d.ts +14 -0
  212. package/dist/src/config/defaults.d.ts.map +1 -0
  213. package/dist/src/config/defaults.js +26 -0
  214. package/dist/src/config/input.d.ts +54 -0
  215. package/dist/src/config/input.d.ts.map +1 -0
  216. package/dist/src/config/input.js +1 -0
  217. package/dist/src/config/legacy.d.ts +22 -0
  218. package/dist/src/config/legacy.d.ts.map +1 -0
  219. package/dist/src/config/legacy.js +23 -0
  220. package/dist/src/config/resolve.d.ts +13 -0
  221. package/dist/src/config/resolve.d.ts.map +1 -0
  222. package/dist/src/config/resolve.js +174 -0
  223. package/dist/src/config/resolved.d.ts +77 -0
  224. package/dist/src/config/resolved.d.ts.map +1 -0
  225. package/dist/src/config/resolved.js +1 -0
  226. package/dist/src/config/validate.d.ts +3 -0
  227. package/dist/src/config/validate.d.ts.map +1 -0
  228. package/dist/src/config/validate.js +6 -0
  229. package/dist/src/{execution/error.d.ts → errors/execution.d.ts} +43 -12
  230. package/dist/src/errors/execution.d.ts.map +1 -0
  231. package/dist/src/errors/execution.js +123 -0
  232. package/dist/src/errors/index.d.ts +6 -4
  233. package/dist/src/errors/index.d.ts.map +1 -1
  234. package/dist/src/errors/index.js +7 -6
  235. package/dist/src/index.d.ts +14 -83
  236. package/dist/src/index.d.ts.map +1 -1
  237. package/dist/src/index.js +9 -290
  238. package/dist/src/jwt-server/jcs.d.ts +1 -1
  239. package/dist/src/jwt-server/jcs.js +4 -2
  240. package/dist/src/modules/erc7579-abi.d.ts +4 -0
  241. package/dist/src/modules/erc7579-abi.d.ts.map +1 -0
  242. package/dist/src/modules/erc7579-abi.js +12 -0
  243. package/dist/src/modules/intent-executor.d.ts +6 -0
  244. package/dist/src/modules/intent-executor.d.ts.map +1 -0
  245. package/dist/src/modules/intent-executor.js +13 -0
  246. package/dist/src/modules/legacy-core.d.ts +29 -0
  247. package/dist/src/modules/legacy-core.d.ts.map +1 -0
  248. package/dist/src/modules/legacy-core.js +80 -0
  249. package/dist/src/modules/normalize.d.ts +4 -0
  250. package/dist/src/modules/normalize.d.ts.map +1 -0
  251. package/dist/src/modules/normalize.js +15 -0
  252. package/dist/src/modules/plan.d.ts +16 -0
  253. package/dist/src/modules/plan.d.ts.map +1 -0
  254. package/dist/src/modules/plan.js +51 -0
  255. package/dist/src/modules/read-core.d.ts +39 -0
  256. package/dist/src/modules/read-core.d.ts.map +1 -0
  257. package/dist/src/modules/read-core.js +149 -0
  258. package/dist/src/modules/types.d.ts +46 -0
  259. package/dist/src/modules/types.d.ts.map +1 -0
  260. package/dist/src/modules/types.js +1 -0
  261. package/dist/src/modules/validators/capabilities.d.ts +4 -0
  262. package/dist/src/modules/validators/capabilities.d.ts.map +1 -0
  263. package/dist/src/modules/validators/capabilities.js +58 -0
  264. package/dist/src/modules/validators/contribution.d.ts +4 -0
  265. package/dist/src/modules/validators/contribution.d.ts.map +1 -0
  266. package/dist/src/modules/validators/contribution.js +64 -0
  267. package/dist/src/modules/validators/definition.d.ts +3 -0
  268. package/dist/src/modules/validators/definition.d.ts.map +1 -0
  269. package/dist/src/modules/validators/definition.js +68 -0
  270. package/dist/src/modules/validators/ens.d.ts +5 -0
  271. package/dist/src/modules/validators/ens.d.ts.map +1 -0
  272. package/dist/src/modules/validators/ens.js +34 -0
  273. package/dist/src/modules/validators/k1.d.ts +2 -0
  274. package/dist/src/modules/validators/k1.d.ts.map +1 -0
  275. package/dist/src/modules/validators/k1.js +1 -0
  276. package/dist/src/modules/validators/multi-factor.d.ts +18 -0
  277. package/dist/src/modules/validators/multi-factor.d.ts.map +1 -0
  278. package/dist/src/modules/validators/multi-factor.js +79 -0
  279. package/dist/src/modules/validators/ownable.d.ts +26 -0
  280. package/dist/src/modules/validators/ownable.d.ts.map +1 -0
  281. package/dist/src/modules/validators/ownable.js +84 -0
  282. package/dist/src/modules/validators/permissions.d.ts +2 -1
  283. package/dist/src/modules/validators/permissions.d.ts.map +1 -1
  284. package/dist/src/modules/validators/permissions.js +192 -18
  285. package/dist/src/modules/validators/policies/claim/arbiters.d.ts +19 -0
  286. package/dist/src/modules/validators/policies/claim/arbiters.d.ts.map +1 -0
  287. package/dist/src/modules/validators/policies/claim/arbiters.js +82 -0
  288. package/dist/src/modules/validators/resolve.d.ts +5 -0
  289. package/dist/src/modules/validators/resolve.d.ts.map +1 -0
  290. package/dist/src/modules/validators/resolve.js +22 -0
  291. package/dist/src/modules/validators/signer-id.d.ts +5 -0
  292. package/dist/src/modules/validators/signer-id.d.ts.map +1 -0
  293. package/dist/src/modules/validators/signer-id.js +8 -0
  294. package/dist/src/modules/validators/smart-session-signature-types.d.ts +35 -0
  295. package/dist/src/modules/validators/smart-session-signature-types.d.ts.map +1 -0
  296. package/dist/src/modules/validators/smart-session-signature-types.js +1 -0
  297. package/dist/src/modules/validators/smart-sessions/authorization.d.ts +99 -0
  298. package/dist/src/modules/validators/smart-sessions/authorization.d.ts.map +1 -0
  299. package/dist/src/modules/validators/smart-sessions/authorization.js +101 -0
  300. package/dist/src/modules/validators/smart-sessions/calls.d.ts +19 -0
  301. package/dist/src/modules/validators/smart-sessions/calls.d.ts.map +1 -0
  302. package/dist/src/modules/validators/smart-sessions/calls.js +85 -0
  303. package/dist/src/modules/validators/smart-sessions/cross-chain-permits.d.ts +4 -0
  304. package/dist/src/modules/validators/smart-sessions/cross-chain-permits.d.ts.map +1 -0
  305. package/dist/src/modules/validators/smart-sessions/cross-chain-permits.js +77 -0
  306. package/dist/src/modules/validators/smart-sessions/digest.d.ts +5 -0
  307. package/dist/src/modules/validators/smart-sessions/digest.d.ts.map +1 -0
  308. package/dist/src/modules/validators/smart-sessions/digest.js +30 -0
  309. package/dist/src/modules/validators/smart-sessions/mock-signature.d.ts +10 -0
  310. package/dist/src/modules/validators/smart-sessions/mock-signature.d.ts.map +1 -0
  311. package/dist/src/modules/validators/smart-sessions/mock-signature.js +31 -0
  312. package/dist/src/modules/validators/smart-sessions/module.d.ts +11 -0
  313. package/dist/src/modules/validators/smart-sessions/module.d.ts.map +1 -0
  314. package/dist/src/modules/validators/smart-sessions/module.js +18 -0
  315. package/dist/src/modules/validators/smart-sessions/policies/addresses.d.ts +23 -0
  316. package/dist/src/modules/validators/smart-sessions/policies/addresses.d.ts.map +1 -0
  317. package/dist/src/modules/validators/smart-sessions/policies/addresses.js +29 -0
  318. package/dist/src/modules/validators/smart-sessions/policies/claim.d.ts +10 -0
  319. package/dist/src/modules/validators/smart-sessions/policies/claim.d.ts.map +1 -0
  320. package/dist/src/modules/validators/smart-sessions/policies/claim.js +106 -0
  321. package/dist/src/modules/validators/smart-sessions/policies/encode.d.ts +4 -0
  322. package/dist/src/modules/validators/smart-sessions/policies/encode.d.ts.map +1 -0
  323. package/dist/src/modules/validators/smart-sessions/policies/encode.js +197 -0
  324. package/dist/src/modules/validators/smart-sessions/resolve.d.ts +16 -0
  325. package/dist/src/modules/validators/smart-sessions/resolve.d.ts.map +1 -0
  326. package/dist/src/modules/validators/smart-sessions/resolve.js +120 -0
  327. package/dist/src/modules/validators/smart-sessions/signature.d.ts +14 -0
  328. package/dist/src/modules/validators/smart-sessions/signature.d.ts.map +1 -0
  329. package/dist/src/modules/validators/smart-sessions/signature.js +167 -0
  330. package/dist/src/modules/validators/smart-sessions/state.d.ts +19 -0
  331. package/dist/src/modules/validators/smart-sessions/state.d.ts.map +1 -0
  332. package/dist/src/modules/validators/smart-sessions/state.js +42 -0
  333. package/dist/src/modules/validators/smart-sessions/types.d.ts +227 -0
  334. package/dist/src/modules/validators/smart-sessions/types.d.ts.map +1 -0
  335. package/dist/src/modules/validators/smart-sessions/types.js +1 -0
  336. package/dist/src/modules/validators/types.d.ts +143 -0
  337. package/dist/src/modules/validators/types.d.ts.map +1 -0
  338. package/dist/src/modules/validators/types.js +1 -0
  339. package/dist/src/modules/validators/webauthn.d.ts +54 -0
  340. package/dist/src/modules/validators/webauthn.d.ts.map +1 -0
  341. package/dist/src/modules/validators/webauthn.js +159 -0
  342. package/dist/src/signing/context.d.ts +25 -0
  343. package/dist/src/signing/context.d.ts.map +1 -0
  344. package/dist/src/signing/context.js +163 -0
  345. package/dist/src/signing/contribution.d.ts +13 -0
  346. package/dist/src/signing/contribution.d.ts.map +1 -0
  347. package/dist/src/signing/contribution.js +83 -0
  348. package/dist/src/signing/eip7702.d.ts +41 -0
  349. package/dist/src/signing/eip7702.d.ts.map +1 -0
  350. package/dist/src/signing/eip7702.js +215 -0
  351. package/dist/src/signing/error.d.ts +27 -0
  352. package/dist/src/signing/error.d.ts.map +1 -0
  353. package/dist/src/signing/error.js +25 -0
  354. package/dist/src/signing/execute.d.ts +17 -0
  355. package/dist/src/signing/execute.d.ts.map +1 -0
  356. package/dist/src/signing/execute.js +138 -0
  357. package/dist/src/signing/intent-plans/assemble.d.ts +15 -0
  358. package/dist/src/signing/intent-plans/assemble.d.ts.map +1 -0
  359. package/dist/src/signing/intent-plans/assemble.js +96 -0
  360. package/dist/src/signing/intent-plans/independent.d.ts +48 -0
  361. package/dist/src/signing/intent-plans/independent.d.ts.map +1 -0
  362. package/dist/src/signing/intent-plans/independent.js +150 -0
  363. package/dist/src/signing/intent-plans/plan.d.ts +14 -0
  364. package/dist/src/signing/intent-plans/plan.d.ts.map +1 -0
  365. package/dist/src/signing/intent-plans/plan.js +187 -0
  366. package/dist/src/signing/intent-plans/types.d.ts +63 -0
  367. package/dist/src/signing/intent-plans/types.d.ts.map +1 -0
  368. package/dist/src/signing/intent-plans/types.js +1 -0
  369. package/dist/src/signing/message.d.ts +28 -0
  370. package/dist/src/signing/message.d.ts.map +1 -0
  371. package/dist/src/signing/message.js +90 -0
  372. package/dist/src/signing/passkeys.d.ts +28 -0
  373. package/dist/src/signing/passkeys.d.ts.map +1 -0
  374. package/dist/src/signing/passkeys.js +17 -0
  375. package/dist/src/signing/plan.d.ts +35 -0
  376. package/dist/src/signing/plan.d.ts.map +1 -0
  377. package/dist/src/signing/plan.js +377 -0
  378. package/dist/src/signing/protocols/erc6492.d.ts +11 -0
  379. package/dist/src/signing/protocols/erc6492.d.ts.map +1 -0
  380. package/dist/src/signing/protocols/erc6492.js +24 -0
  381. package/dist/src/signing/protocols/erc7739.d.ts +17 -0
  382. package/dist/src/signing/protocols/erc7739.d.ts.map +1 -0
  383. package/dist/src/signing/protocols/erc7739.js +84 -0
  384. package/dist/src/signing/session-enable.d.ts +35 -0
  385. package/dist/src/signing/session-enable.d.ts.map +1 -0
  386. package/dist/src/signing/session-enable.js +62 -0
  387. package/dist/src/signing/signers/compatibility.d.ts +4 -0
  388. package/dist/src/signing/signers/compatibility.d.ts.map +1 -0
  389. package/dist/src/signing/signers/compatibility.js +51 -0
  390. package/dist/src/signing/signers/ecdsa.d.ts +14 -0
  391. package/dist/src/signing/signers/ecdsa.d.ts.map +1 -0
  392. package/dist/src/signing/signers/ecdsa.js +54 -0
  393. package/dist/src/signing/signers/registry.d.ts +7 -0
  394. package/dist/src/signing/signers/registry.d.ts.map +1 -0
  395. package/dist/src/signing/signers/registry.js +33 -0
  396. package/dist/src/signing/signers/types.d.ts +16 -0
  397. package/dist/src/signing/signers/types.d.ts.map +1 -0
  398. package/dist/src/signing/signers/types.js +1 -0
  399. package/dist/src/signing/signers/wallet-chain.d.ts +9 -0
  400. package/dist/src/signing/signers/wallet-chain.d.ts.map +1 -0
  401. package/dist/src/signing/signers/wallet-chain.js +15 -0
  402. package/dist/src/signing/signers/webauthn.d.ts +11 -0
  403. package/dist/src/signing/signers/webauthn.d.ts.map +1 -0
  404. package/dist/src/signing/signers/webauthn.js +14 -0
  405. package/dist/src/signing/typed-data.d.ts +39 -0
  406. package/dist/src/signing/typed-data.d.ts.map +1 -0
  407. package/dist/src/signing/typed-data.js +135 -0
  408. package/dist/src/signing/types.d.ts +346 -0
  409. package/dist/src/signing/types.d.ts.map +1 -0
  410. package/dist/src/signing/types.js +1 -0
  411. package/dist/src/signing/user-operation.d.ts +23 -0
  412. package/dist/src/signing/user-operation.d.ts.map +1 -0
  413. package/dist/src/signing/user-operation.js +61 -0
  414. package/dist/src/smart-sessions/index.d.ts +16 -0
  415. package/dist/src/smart-sessions/index.d.ts.map +1 -0
  416. package/dist/src/smart-sessions/index.js +45 -0
  417. package/dist/src/transactions/intents/account.d.ts +15 -0
  418. package/dist/src/transactions/intents/account.d.ts.map +1 -0
  419. package/dist/src/transactions/intents/account.js +48 -0
  420. package/dist/src/transactions/intents/compatibility.d.ts +4 -0
  421. package/dist/src/transactions/intents/compatibility.d.ts.map +1 -0
  422. package/dist/src/transactions/intents/compatibility.js +19 -0
  423. package/dist/src/transactions/intents/normalize.d.ts +5 -0
  424. package/dist/src/transactions/intents/normalize.d.ts.map +1 -0
  425. package/dist/src/transactions/intents/normalize.js +48 -0
  426. package/dist/src/transactions/intents/prepare.d.ts +7 -0
  427. package/dist/src/transactions/intents/prepare.d.ts.map +1 -0
  428. package/dist/src/transactions/intents/prepare.js +249 -0
  429. package/dist/src/transactions/intents/quotes.d.ts +3 -0
  430. package/dist/src/transactions/intents/quotes.d.ts.map +1 -0
  431. package/dist/src/transactions/intents/quotes.js +11 -0
  432. package/dist/src/transactions/intents/request.d.ts +11 -0
  433. package/dist/src/transactions/intents/request.d.ts.map +1 -0
  434. package/dist/src/transactions/intents/request.js +55 -0
  435. package/dist/src/transactions/intents/send.d.ts +3 -0
  436. package/dist/src/transactions/intents/send.d.ts.map +1 -0
  437. package/dist/src/transactions/intents/send.js +22 -0
  438. package/dist/src/transactions/intents/session-signing.d.ts +7 -0
  439. package/dist/src/transactions/intents/session-signing.d.ts.map +1 -0
  440. package/dist/src/transactions/intents/session-signing.js +363 -0
  441. package/dist/src/transactions/intents/sessions.d.ts +17 -0
  442. package/dist/src/transactions/intents/sessions.d.ts.map +1 -0
  443. package/dist/src/transactions/intents/sessions.js +85 -0
  444. package/dist/src/transactions/intents/sign-transaction.d.ts +10 -0
  445. package/dist/src/transactions/intents/sign-transaction.d.ts.map +1 -0
  446. package/dist/src/transactions/intents/sign-transaction.js +386 -0
  447. package/dist/src/transactions/intents/split.d.ts +13 -0
  448. package/dist/src/transactions/intents/split.d.ts.map +1 -0
  449. package/dist/src/transactions/intents/split.js +3 -0
  450. package/dist/src/transactions/intents/status-policy.d.ts +13 -0
  451. package/dist/src/transactions/intents/status-policy.d.ts.map +1 -0
  452. package/dist/src/transactions/intents/status-policy.js +39 -0
  453. package/dist/src/transactions/intents/status.d.ts +4 -0
  454. package/dist/src/transactions/intents/status.d.ts.map +1 -0
  455. package/dist/src/transactions/intents/status.js +50 -0
  456. package/dist/src/transactions/intents/submit.d.ts +3 -0
  457. package/dist/src/transactions/intents/submit.d.ts.map +1 -0
  458. package/dist/src/transactions/intents/submit.js +32 -0
  459. package/dist/src/transactions/intents/types.d.ts +136 -0
  460. package/dist/src/transactions/intents/types.d.ts.map +1 -0
  461. package/dist/src/transactions/intents/types.js +1 -0
  462. package/dist/src/transactions/user-operations/hash.d.ts +5 -0
  463. package/dist/src/transactions/user-operations/hash.d.ts.map +1 -0
  464. package/dist/src/transactions/user-operations/hash.js +9 -0
  465. package/dist/src/transactions/user-operations/nonce.d.ts +18 -0
  466. package/dist/src/transactions/user-operations/nonce.d.ts.map +1 -0
  467. package/dist/src/transactions/user-operations/nonce.js +43 -0
  468. package/dist/src/transactions/user-operations/prepare.d.ts +12 -0
  469. package/dist/src/transactions/user-operations/prepare.d.ts.map +1 -0
  470. package/dist/src/transactions/user-operations/prepare.js +136 -0
  471. package/dist/src/transactions/user-operations/reconstruct.d.ts +28 -0
  472. package/dist/src/transactions/user-operations/reconstruct.d.ts.map +1 -0
  473. package/dist/src/transactions/user-operations/reconstruct.js +52 -0
  474. package/dist/src/transactions/user-operations/send.d.ts +3 -0
  475. package/dist/src/transactions/user-operations/send.d.ts.map +1 -0
  476. package/dist/src/transactions/user-operations/send.js +8 -0
  477. package/dist/src/transactions/user-operations/sign.d.ts +3 -0
  478. package/dist/src/transactions/user-operations/sign.d.ts.map +1 -0
  479. package/dist/src/transactions/user-operations/sign.js +14 -0
  480. package/dist/src/transactions/user-operations/status.d.ts +4 -0
  481. package/dist/src/transactions/user-operations/status.d.ts.map +1 -0
  482. package/dist/src/transactions/user-operations/status.js +37 -0
  483. package/dist/src/transactions/user-operations/submit.d.ts +3 -0
  484. package/dist/src/transactions/user-operations/submit.d.ts.map +1 -0
  485. package/dist/src/transactions/user-operations/submit.js +8 -0
  486. package/dist/src/transactions/user-operations/types.d.ts +68 -0
  487. package/dist/src/transactions/user-operations/types.d.ts.map +1 -0
  488. package/dist/src/transactions/user-operations/types.js +1 -0
  489. package/dist/src/transactions/user-operations/validator-account.d.ts +5 -0
  490. package/dist/src/transactions/user-operations/validator-account.d.ts.map +1 -0
  491. package/dist/src/transactions/user-operations/validator-account.js +26 -0
  492. package/dist/src/utils/index.d.ts +68 -4
  493. package/dist/src/utils/index.d.ts.map +1 -1
  494. package/dist/src/utils/index.js +113 -51
  495. package/package.json +6 -11
  496. package/dist/src/accounts/index.d.ts +0 -51
  497. package/dist/src/accounts/index.d.ts.map +0 -1
  498. package/dist/src/accounts/index.js +0 -589
  499. package/dist/src/accounts/json-rpc/index.d.ts +0 -5
  500. package/dist/src/accounts/json-rpc/index.d.ts.map +0 -1
  501. package/dist/src/accounts/json-rpc/index.js +0 -19
  502. package/dist/src/accounts/json-rpc/providers.d.ts +0 -5
  503. package/dist/src/accounts/json-rpc/providers.d.ts.map +0 -1
  504. package/dist/src/accounts/json-rpc/providers.js +0 -16
  505. package/dist/src/accounts/kernel.d.ts +0 -27
  506. package/dist/src/accounts/kernel.d.ts.map +0 -1
  507. package/dist/src/accounts/kernel.js +0 -272
  508. package/dist/src/accounts/nexus.d.ts +0 -33
  509. package/dist/src/accounts/nexus.d.ts.map +0 -1
  510. package/dist/src/accounts/nexus.js +0 -444
  511. package/dist/src/accounts/safe.d.ts +0 -33
  512. package/dist/src/accounts/safe.d.ts.map +0 -1
  513. package/dist/src/accounts/safe.js +0 -343
  514. package/dist/src/accounts/signing/common.d.ts +0 -32
  515. package/dist/src/accounts/signing/common.d.ts.map +0 -1
  516. package/dist/src/accounts/signing/common.js +0 -184
  517. package/dist/src/accounts/signing/message.d.ts +0 -7
  518. package/dist/src/accounts/signing/message.d.ts.map +0 -1
  519. package/dist/src/accounts/signing/message.js +0 -45
  520. package/dist/src/accounts/signing/passkeys.d.ts +0 -36
  521. package/dist/src/accounts/signing/passkeys.d.ts.map +0 -1
  522. package/dist/src/accounts/signing/passkeys.js +0 -119
  523. package/dist/src/accounts/signing/typedData.d.ts +0 -5
  524. package/dist/src/accounts/signing/typedData.d.ts.map +0 -1
  525. package/dist/src/accounts/signing/typedData.js +0 -33
  526. package/dist/src/accounts/startale.d.ts +0 -26
  527. package/dist/src/accounts/startale.d.ts.map +0 -1
  528. package/dist/src/accounts/startale.js +0 -191
  529. package/dist/src/accounts/utils.d.ts +0 -33
  530. package/dist/src/accounts/utils.d.ts.map +0 -1
  531. package/dist/src/accounts/utils.js +0 -202
  532. package/dist/src/actions/recovery.d.ts +0 -33
  533. package/dist/src/actions/recovery.d.ts.map +0 -1
  534. package/dist/src/actions/recovery.js +0 -189
  535. package/dist/src/auth/provider.d.ts +0 -7
  536. package/dist/src/auth/provider.d.ts.map +0 -1
  537. package/dist/src/auth/provider.js +0 -38
  538. package/dist/src/execution/compact.d.ts +0 -5
  539. package/dist/src/execution/compact.d.ts.map +0 -1
  540. package/dist/src/execution/compact.js +0 -4
  541. package/dist/src/execution/error.d.ts.map +0 -1
  542. package/dist/src/execution/error.js +0 -85
  543. package/dist/src/execution/index.d.ts +0 -41
  544. package/dist/src/execution/index.d.ts.map +0 -1
  545. package/dist/src/execution/index.js +0 -202
  546. package/dist/src/execution/utils.d.ts +0 -126
  547. package/dist/src/execution/utils.d.ts.map +0 -1
  548. package/dist/src/execution/utils.js +0 -1054
  549. package/dist/src/modules/abi/smart-sessions.d.ts +0 -104
  550. package/dist/src/modules/abi/smart-sessions.d.ts.map +0 -1
  551. package/dist/src/modules/abi/smart-sessions.js +0 -128
  552. package/dist/src/modules/chain-abstraction.d.ts +0 -5
  553. package/dist/src/modules/chain-abstraction.d.ts.map +0 -1
  554. package/dist/src/modules/chain-abstraction.js +0 -3
  555. package/dist/src/modules/common.d.ts +0 -30
  556. package/dist/src/modules/common.d.ts.map +0 -1
  557. package/dist/src/modules/common.js +0 -30
  558. package/dist/src/modules/index.d.ts +0 -11
  559. package/dist/src/modules/index.d.ts.map +0 -1
  560. package/dist/src/modules/index.js +0 -90
  561. package/dist/src/modules/legacy.d.ts +0 -10
  562. package/dist/src/modules/legacy.d.ts.map +0 -1
  563. package/dist/src/modules/legacy.js +0 -62
  564. package/dist/src/modules/read.d.ts +0 -10
  565. package/dist/src/modules/read.d.ts.map +0 -1
  566. package/dist/src/modules/read.js +0 -171
  567. package/dist/src/modules/validators/core.d.ts +0 -31
  568. package/dist/src/modules/validators/core.d.ts.map +0 -1
  569. package/dist/src/modules/validators/core.js +0 -266
  570. package/dist/src/modules/validators/index.d.ts +0 -4
  571. package/dist/src/modules/validators/index.d.ts.map +0 -1
  572. package/dist/src/modules/validators/index.js +0 -3
  573. package/dist/src/modules/validators/smart-sessions.d.ts +0 -196
  574. package/dist/src/modules/validators/smart-sessions.d.ts.map +0 -1
  575. package/dist/src/modules/validators/smart-sessions.js +0 -772
  576. package/dist/src/orchestrator/caip2.d.ts +0 -7
  577. package/dist/src/orchestrator/caip2.d.ts.map +0 -1
  578. package/dist/src/orchestrator/caip2.js +0 -17
  579. package/dist/src/orchestrator/client.d.ts +0 -29
  580. package/dist/src/orchestrator/client.d.ts.map +0 -1
  581. package/dist/src/orchestrator/client.js +0 -291
  582. package/dist/src/orchestrator/consts.d.ts +0 -6
  583. package/dist/src/orchestrator/consts.d.ts.map +0 -1
  584. package/dist/src/orchestrator/consts.js +0 -5
  585. package/dist/src/orchestrator/error.d.ts +0 -97
  586. package/dist/src/orchestrator/error.d.ts.map +0 -1
  587. package/dist/src/orchestrator/error.js +0 -173
  588. package/dist/src/orchestrator/index.d.ts +0 -11
  589. package/dist/src/orchestrator/index.d.ts.map +0 -1
  590. package/dist/src/orchestrator/index.js +0 -9
  591. package/dist/src/orchestrator/registry.d.ts +0 -16
  592. package/dist/src/orchestrator/registry.d.ts.map +0 -1
  593. package/dist/src/orchestrator/registry.js +0 -90
  594. package/dist/src/orchestrator/types.d.ts.map +0 -1
  595. package/dist/src/orchestrator/types.js +0 -15
  596. package/dist/src/orchestrator/utils.d.ts +0 -3
  597. package/dist/src/orchestrator/utils.d.ts.map +0 -1
  598. package/dist/src/orchestrator/utils.js +0 -22
  599. package/dist/src/types.d.ts +0 -446
  600. package/dist/src/types.d.ts.map +0 -1
  601. package/dist/src/utils/walletClient.d.ts +0 -34
  602. package/dist/src/utils/walletClient.d.ts.map +0 -1
  603. package/dist/src/utils/walletClient.js +0 -117
  604. /package/dist/src/{types.js → accounts/adapter.js} +0 -0
@@ -0,0 +1,150 @@
1
+ import { InsufficientOwnerSignaturesError, MismatchedOwnerSignaturesError, UnknownOwnerError, } from '../../errors/execution.js';
2
+ import { encodeValidatorContribution } from '../../modules/validators/contribution.js';
3
+ import { encodeValidatorId } from '../../modules/validators/multi-factor.js';
4
+ import { assembleIntentValidatorArtifact } from './assemble.js';
5
+ export function assembleIndependentIntentArtifact(input) {
6
+ if (input.artifact.validatorCodec.kind === 'none') {
7
+ throw new Error('Independent signing requires a validator codec');
8
+ }
9
+ if (input.artifact.validatorCodec.kind === 'smart-session-state') {
10
+ throw new Error('Smart Session state cannot be signed independently');
11
+ }
12
+ const contributions = importOwnerContributions(input);
13
+ const codec = input.artifact.validatorCodec;
14
+ if (codec.kind === 'smart-session') {
15
+ throw new Error('Smart Session state cannot be signed independently');
16
+ }
17
+ const validatorContribution = input.artifact.validatorFactors
18
+ ? encodeIndependentFactors(codec, input.artifact.validatorFactors, contributions)
19
+ : encodeAtomicContributions(codec, contributions.map(({ contribution }) => contribution));
20
+ return assembleIntentValidatorArtifact({
21
+ artifact: input.artifact,
22
+ context: input.context,
23
+ validatorContribution,
24
+ });
25
+ }
26
+ function importOwnerContributions(input) {
27
+ const seen = new Set();
28
+ return input.signatures.map((value) => {
29
+ if (value.intentId !== input.intentId) {
30
+ throw new MismatchedOwnerSignaturesError({
31
+ context: { intentIds: [input.intentId, value.intentId] },
32
+ });
33
+ }
34
+ const signature = value.kind === 'multi-factor' ? value.signature : value;
35
+ if (signature.origin.length !== input.originCount) {
36
+ throw new MismatchedOwnerSignaturesError({
37
+ context: { expectedOriginCount: input.originCount },
38
+ });
39
+ }
40
+ const identity = signature.kind === 'ecdsa'
41
+ ? signature.signer.toLowerCase()
42
+ : signature.publicKey.toLowerCase();
43
+ const owner = input.owners.find((candidate) => candidate.identity.toLowerCase() === identity &&
44
+ (value.kind === 'multi-factor'
45
+ ? candidate.factorPublicId !== undefined &&
46
+ sameValidatorId(candidate.factorPublicId, value.validatorId)
47
+ : candidate.factorId === undefined));
48
+ if (!owner) {
49
+ const matchingIdentity = input.owners.filter((candidate) => candidate.identity.toLowerCase() === identity);
50
+ if (matchingIdentity.length > 0 &&
51
+ (value.kind === 'multi-factor' ||
52
+ matchingIdentity.some(({ factorId }) => factorId !== undefined))) {
53
+ throw new MismatchedOwnerSignaturesError({
54
+ context: value.kind === 'multi-factor'
55
+ ? { validatorId: value.validatorId }
56
+ : { expectedKind: 'multi-factor' },
57
+ });
58
+ }
59
+ throw new UnknownOwnerError({
60
+ context: signature.kind === 'passkey'
61
+ ? { publicKey: signature.publicKey }
62
+ : { signer: signature.signer },
63
+ });
64
+ }
65
+ const contributionKey = `${owner.factorId ?? 'root'}:${identity}`;
66
+ if (seen.has(contributionKey))
67
+ throw new MismatchedOwnerSignaturesError({
68
+ context: { duplicateOwner: identity },
69
+ });
70
+ seen.add(contributionKey);
71
+ if ((signature.kind === 'ecdsa' && owner.kind !== 'ecdsa') ||
72
+ (signature.kind === 'passkey' && owner.kind !== 'webauthn')) {
73
+ throw new MismatchedOwnerSignaturesError({
74
+ context: { owner: identity },
75
+ });
76
+ }
77
+ const contribution = signature.kind === 'ecdsa'
78
+ ? {
79
+ kind: 'ecdsa',
80
+ ownerId: owner.ownerId,
81
+ signature: signature.origin[input.originIndex],
82
+ encoding: 'validator-contribution',
83
+ }
84
+ : {
85
+ kind: 'webauthn',
86
+ ownerId: owner.ownerId,
87
+ publicKey: signature.publicKey,
88
+ signature: signature.origin[input.originIndex].signature,
89
+ authenticatorData: signature.origin[input.originIndex].webauthn.authenticatorData,
90
+ clientDataJSON: signature.origin[input.originIndex].webauthn.clientDataJSON,
91
+ challengeIndex: signature.origin[input.originIndex].webauthn.challengeIndex ?? 0,
92
+ typeIndex: signature.origin[input.originIndex].webauthn.typeIndex ?? 0,
93
+ userVerificationRequired: signature.origin[input.originIndex].webauthn
94
+ .userVerificationRequired ?? false,
95
+ };
96
+ return {
97
+ ...(owner.factorId ? { factorId: owner.factorId } : {}),
98
+ contribution,
99
+ };
100
+ });
101
+ }
102
+ function sameValidatorId(left, right) {
103
+ try {
104
+ return (encodeValidatorId(left).toLowerCase() ===
105
+ encodeValidatorId(right).toLowerCase());
106
+ }
107
+ catch {
108
+ return false;
109
+ }
110
+ }
111
+ function encodeIndependentFactors(codec, factors, contributions) {
112
+ const factorContributions = factors.flatMap((factor) => {
113
+ const selected = contributions.flatMap((entry) => entry.factorId === factor.id ? [entry.contribution] : []);
114
+ if (selected.length === 0)
115
+ return [];
116
+ if (selected.length < factor.codec.threshold) {
117
+ throw new InsufficientOwnerSignaturesError({
118
+ required: factor.codec.threshold,
119
+ provided: selected.length,
120
+ validatorId: factor.publicId,
121
+ });
122
+ }
123
+ return [
124
+ {
125
+ kind: 'factor',
126
+ factorId: factor.id,
127
+ publicId: factor.publicId,
128
+ validator: factor.validator,
129
+ contribution: encodeValidatorContribution(factor.codec, selected),
130
+ },
131
+ ];
132
+ });
133
+ if (factorContributions.length < codec.threshold) {
134
+ throw new InsufficientOwnerSignaturesError({
135
+ required: codec.threshold,
136
+ provided: factorContributions.length,
137
+ });
138
+ }
139
+ return encodeValidatorContribution(codec, factorContributions);
140
+ }
141
+ function encodeAtomicContributions(codec, contributions) {
142
+ if (codec.kind === 'ordered-threshold' &&
143
+ contributions.length < codec.threshold) {
144
+ throw new InsufficientOwnerSignaturesError({
145
+ required: codec.threshold,
146
+ provided: contributions.length,
147
+ });
148
+ }
149
+ return encodeValidatorContribution(codec, contributions);
150
+ }
@@ -0,0 +1,14 @@
1
+ import type { SigningContext } from '../context.js';
2
+ import type { SigningCheckpointPort, SigningPlan, SigningTranscript } from '../types.js';
3
+ import type { IndependentSigningProjection, IntentSigningPlanCreationInput } from './types.js';
4
+ export declare function createIntentSigningPlan(input: IntentSigningPlanCreationInput): SigningPlan;
5
+ export declare function projectIndependentSigning(plan: SigningPlan, signerIds: readonly string[], ownerIds?: readonly string[]): {
6
+ readonly plan: SigningPlan;
7
+ readonly projection: IndependentSigningProjection;
8
+ };
9
+ export declare function executeIntentSigning(input: {
10
+ readonly planInput: IntentSigningPlanCreationInput;
11
+ readonly context: SigningContext;
12
+ readonly checkpoints: SigningCheckpointPort;
13
+ }): Promise<SigningTranscript>;
14
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../signing/intent-plans/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAEjB,OAAO,KAAK,EACV,4BAA4B,EAC5B,8BAA8B,EAC/B,MAAM,SAAS,CAAA;AAEhB,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,8BAA8B,GACpC,WAAW,CAoEb;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAC3B;IACD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAA;CAClD,CA8DA;AAoFD,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAA;IAClD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;CAC5C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAS7B"}
@@ -0,0 +1,187 @@
1
+ import { executeSigningPlan } from '../execute.js';
2
+ import { assembleIntentStage } from './assemble.js';
3
+ export function createIntentSigningPlan(input) {
4
+ const targetArtifact = input.intent.target
5
+ ? requireSingleArtifact(input.intent.artifacts.filter(({ usage, payloadId }) => usage === 'intent-target' && payloadId === input.intent.target?.id), 'target')
6
+ : undefined;
7
+ const plan = {
8
+ version: 1,
9
+ kind: 'intent-full',
10
+ payload: { kind: 'intent', id: input.intent.id },
11
+ configuredTopology: input.intent.configuredTopology,
12
+ effectiveSelection: input.intent.effectiveSelection,
13
+ preparedIntent: {
14
+ signatureMode: input.intent.preparedSignatureMode,
15
+ artifacts: input.intent.artifacts.map(({ id, usage, payloadId, cardinality, shape }) => ({
16
+ id,
17
+ usage,
18
+ payloadId,
19
+ cardinality,
20
+ shape,
21
+ })),
22
+ ...(input.intent.destination
23
+ ? {
24
+ destination: input.intent.destination.mode === 'sign'
25
+ ? {
26
+ mode: 'sign',
27
+ artifactId: input.intent.destination.artifactId,
28
+ payloadId: input.intent.destination.payload.id,
29
+ }
30
+ : input.intent.destination,
31
+ }
32
+ : {}),
33
+ ...(targetArtifact
34
+ ? {
35
+ target: {
36
+ artifactId: targetArtifact.id,
37
+ payloadId: targetArtifact.payloadId,
38
+ },
39
+ }
40
+ : {}),
41
+ },
42
+ stages: input.stages.map((stage) => ({
43
+ id: stage.id,
44
+ checkpoint: stage.checkpoint,
45
+ priorOutputs: stage.priorOutputs,
46
+ taskTemplates: stage.tasks,
47
+ schedule: stage.schedule,
48
+ artifacts: stage.artifacts.map((artifact) => ({
49
+ ...artifact,
50
+ stageId: stage.id,
51
+ })),
52
+ })),
53
+ publicOutputs: input.intent.artifacts.map((artifact) => ({
54
+ id: artifact.id,
55
+ source: { kind: 'artifact', artifactId: artifact.id },
56
+ exposedForIndependentSigning: artifact.exposedForIndependentSigning,
57
+ })),
58
+ };
59
+ assertPreparedMode(input);
60
+ assertIntentRoutes(input, plan);
61
+ return plan;
62
+ }
63
+ export function projectIndependentSigning(plan, signerIds, ownerIds) {
64
+ if (plan.kind !== 'intent-full') {
65
+ throw new Error('Independent signing requires a full intent plan');
66
+ }
67
+ const selected = new Set(signerIds);
68
+ const selectedOwners = ownerIds ? new Set(ownerIds) : undefined;
69
+ if (selected.size !== signerIds.length) {
70
+ throw new Error('Independent signer selection contains duplicates');
71
+ }
72
+ for (const signerId of selected) {
73
+ if (!plan.effectiveSelection.signerIds.includes(signerId)) {
74
+ throw new Error(`Independent signer ${signerId} is not in the plan`);
75
+ }
76
+ }
77
+ const stages = plan.stages.map((stage) => {
78
+ const taskTemplates = stage.taskTemplates.filter((task) => selected.has(task.signer.id) &&
79
+ (!selectedOwners ||
80
+ [...selectedOwners].some((ownerId) => task.id.includes(ownerId))));
81
+ const taskIds = new Set(taskTemplates.map(({ id }) => id));
82
+ return {
83
+ ...stage,
84
+ priorOutputs: [],
85
+ taskTemplates,
86
+ schedule: stage.schedule
87
+ .map((batch) => ({
88
+ ...batch,
89
+ taskIds: batch.taskIds.filter((taskId) => taskIds.has(taskId)),
90
+ }))
91
+ .filter(({ taskIds: ids }) => ids.length > 0),
92
+ artifacts: [],
93
+ };
94
+ });
95
+ const projected = {
96
+ ...plan,
97
+ kind: 'intent-independent',
98
+ effectiveSelection: {
99
+ ...plan.effectiveSelection,
100
+ signerIds: plan.effectiveSelection.signerIds.filter((id) => selected.has(id)),
101
+ },
102
+ stages,
103
+ publicOutputs: stages.flatMap((stage) => stage.taskTemplates.map((task) => ({
104
+ id: `${task.id}-contribution`,
105
+ source: { kind: 'task-result', taskId: task.id },
106
+ exposedForIndependentSigning: true,
107
+ }))),
108
+ };
109
+ return {
110
+ plan: projected,
111
+ projection: {
112
+ planKind: 'intent-independent',
113
+ sourceIntentId: plan.payload.id,
114
+ exposedArtifactIds: projected.publicOutputs.map(({ id }) => id),
115
+ selectedSignerIds: [...signerIds],
116
+ },
117
+ };
118
+ }
119
+ function assertIntentRoutes(input, plan) {
120
+ const artifacts = plan.stages.flatMap((stage) => stage.artifacts);
121
+ const requirements = new Map(input.intent.artifacts.map((artifact) => [artifact.id, artifact]));
122
+ if (requirements.size !== input.intent.artifacts.length) {
123
+ throw new Error('Intent artifact requirements contain duplicate ids');
124
+ }
125
+ for (const requirement of input.intent.artifacts) {
126
+ if (!artifacts.some(({ id }) => id === requirement.id)) {
127
+ throw new Error(`Intent artifact ${requirement.id} has no assembly route`);
128
+ }
129
+ }
130
+ const destination = input.intent.destination;
131
+ if (!destination)
132
+ return;
133
+ const requirement = requirements.get(destination.artifactId);
134
+ if (!requirement || requirement.usage !== 'intent-destination') {
135
+ throw new Error('Intent destination artifact requirement is missing');
136
+ }
137
+ const route = artifacts.find(({ id }) => id === destination.artifactId);
138
+ if (!route)
139
+ throw new Error('Intent destination assembly route is missing');
140
+ if (destination.mode === 'sign') {
141
+ if (requirement.payloadId !== destination.payload.id ||
142
+ route.input.kind !== 'task-results') {
143
+ throw new Error('Intent destination signing route is incompatible');
144
+ }
145
+ return;
146
+ }
147
+ if (route.input.kind !== 'reuse-artifact' ||
148
+ route.input.artifactId !== destination.originArtifactId ||
149
+ route.input.selection !== destination.selection) {
150
+ throw new Error('Intent destination reuse route is incompatible');
151
+ }
152
+ }
153
+ function requireSingleArtifact(artifacts, role) {
154
+ if (artifacts.length !== 1) {
155
+ throw new Error(`Intent ${role} requires exactly one artifact`);
156
+ }
157
+ return artifacts[0];
158
+ }
159
+ function assertPreparedMode(input) {
160
+ const originArtifacts = input.intent.artifacts.filter(({ usage }) => usage === 'intent-origin' ||
161
+ usage === 'intent-pre-claim' ||
162
+ usage === 'intent-notarized-claim');
163
+ const expectedPerOrigin = 1;
164
+ const expected = input.intent.origins.length * expectedPerOrigin;
165
+ if (originArtifacts.length !== expected) {
166
+ throw new Error(`Prepared signature mode requires ${expected} origin artifacts, received ${originArtifacts.length}`);
167
+ }
168
+ const invalidShape = originArtifacts.some(({ shape }) => input.intent.preparedSignatureMode === 'default'
169
+ ? shape !== 'hex'
170
+ : !['hex', 'session-claims'].includes(shape));
171
+ if (invalidShape) {
172
+ const expectedShape = input.intent.preparedSignatureMode === 'default'
173
+ ? 'hex'
174
+ : 'hex or session-claims';
175
+ throw new Error(`Prepared signature mode requires ${expectedShape} origin artifacts`);
176
+ }
177
+ }
178
+ export async function executeIntentSigning(input) {
179
+ const plan = createIntentSigningPlan(input.planInput);
180
+ return executeSigningPlan({
181
+ plan,
182
+ payloads: input.planInput.payloads,
183
+ signerInvoker: input.context.signerInvoker,
184
+ checkpoints: input.checkpoints,
185
+ assembleStage: (stage) => assembleIntentStage(stage, input.context),
186
+ });
187
+ }
@@ -0,0 +1,63 @@
1
+ import type { Hex, TypedDataDefinition } from 'viem';
2
+ import type { EvmChainReference } from '../../chains/types.js';
3
+ import type { ArtifactAssemblyPlan, ConfiguredValidatorTopology, EffectiveSignerSelection, SignatureUsage, SigningBatch, SigningPayloadRegistry, SigningReadCheckpoint, SigningTaskTemplate } from '../types.js';
4
+ export type PreparedIntentSignatureMode = 'default' | 'session' | 'session-with-execution-verification';
5
+ export interface IntentSigningPayload {
6
+ readonly id: Hex;
7
+ readonly chain: EvmChainReference;
8
+ readonly role: 'origin' | 'destination' | 'target';
9
+ readonly typedData: TypedDataDefinition;
10
+ readonly usage: SignatureUsage;
11
+ }
12
+ export type DestinationSigningRequirement = {
13
+ readonly mode: 'sign';
14
+ readonly payload: IntentSigningPayload;
15
+ readonly artifactId: string;
16
+ } | {
17
+ readonly mode: 'reuse-origin';
18
+ readonly artifactId: string;
19
+ readonly originArtifactId: string;
20
+ readonly selection: 'whole' | 'pre-claim';
21
+ };
22
+ export interface IntentArtifactRequirement {
23
+ readonly id: string;
24
+ readonly usage: SignatureUsage;
25
+ readonly payloadId: Hex;
26
+ readonly cardinality: 'one' | 'per-origin';
27
+ readonly shape: 'hex' | 'session-claims';
28
+ readonly exposedForIndependentSigning: boolean;
29
+ }
30
+ export interface IntentSigningInput {
31
+ readonly id: Hex;
32
+ readonly preparedSignatureMode: PreparedIntentSignatureMode;
33
+ readonly configuredTopology: ConfiguredValidatorTopology;
34
+ readonly effectiveSelection: EffectiveSignerSelection;
35
+ readonly origins: readonly IntentSigningPayload[];
36
+ readonly destination?: DestinationSigningRequirement;
37
+ readonly target?: IntentSigningPayload;
38
+ readonly artifacts: readonly IntentArtifactRequirement[];
39
+ }
40
+ export interface IndependentSigningProjection {
41
+ readonly planKind: 'intent-independent';
42
+ readonly sourceIntentId: Hex;
43
+ readonly exposedArtifactIds: readonly string[];
44
+ readonly selectedSignerIds: readonly string[];
45
+ }
46
+ export interface IntentSigningStageInput {
47
+ readonly id: string;
48
+ readonly checkpoint: SigningReadCheckpoint;
49
+ readonly priorOutputs: readonly {
50
+ readonly stageId: string;
51
+ readonly outputId: string;
52
+ readonly selection: 'whole' | 'pre-claim';
53
+ }[];
54
+ readonly tasks: readonly SigningTaskTemplate[];
55
+ readonly schedule: readonly SigningBatch[];
56
+ readonly artifacts: readonly Omit<ArtifactAssemblyPlan, 'stageId'>[];
57
+ }
58
+ export interface IntentSigningPlanCreationInput {
59
+ readonly intent: IntentSigningInput;
60
+ readonly stages: readonly IntentSigningStageInput[];
61
+ readonly payloads: SigningPayloadRegistry;
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../signing/intent-plans/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,UAAU,CAAA;AAEjB,MAAM,MAAM,2BAA2B,GACnC,SAAS,GACT,SAAS,GACT,qCAAqC,CAAA;AAEzC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAA;IAChB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,QAAQ,CAAA;IAClD,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,MAAM,6BAA6B,GACrC;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAAA;CAC1C,CAAA;AAEL,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,YAAY,CAAA;IAC1C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAAA;IACxC,QAAQ,CAAC,4BAA4B,EAAE,OAAO,CAAA;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAA;IAChB,QAAQ,CAAC,qBAAqB,EAAE,2BAA2B,CAAA;IAC3D,QAAQ,CAAC,kBAAkB,EAAE,2BAA2B,CAAA;IACxD,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAA;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,6BAA6B,CAAA;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,yBAAyB,EAAE,CAAA;CACzD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAA;IACvC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAA;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAA;IAC1C,QAAQ,CAAC,YAAY,EAAE,SAAS;QAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAAA;KAC1C,EAAE,CAAA;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAA;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAA;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAAE,CAAA;CACrE;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,uBAAuB,EAAE,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;CAC1C"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ import { type Hex, type SignableMessage } from 'viem';
2
+ import type { EvmChainReference } from '../chains/types.js';
3
+ import type { SigningContext } from './context.js';
4
+ import type { ArtifactAssemblyPlan, ConfiguredValidatorTopology, EffectiveSignerSelection, PayloadSigningTask, SigningCheckpointPort, SigningPayloadMaterial, SigningPlan, SigningTranscript } from './types.js';
5
+ export interface MessageSigningPlanInput {
6
+ readonly message: SignableMessage;
7
+ readonly signingMaterial?: Extract<SigningPayloadMaterial, {
8
+ readonly kind: 'message';
9
+ }>;
10
+ readonly chain: EvmChainReference;
11
+ readonly configuredTopology: ConfiguredValidatorTopology;
12
+ readonly effectiveSelection: EffectiveSignerSelection;
13
+ readonly tasks: readonly PayloadSigningTask[];
14
+ readonly route: Omit<ArtifactAssemblyPlan, 'id' | 'stageId' | 'input' | 'usage'>;
15
+ readonly checkpoint?: Extract<import('./types.js').SigningReadCheckpoint, {
16
+ readonly kind: 'account-deployment';
17
+ }>;
18
+ }
19
+ export declare function createMessageSigningPlan(input: MessageSigningPlanInput): SigningPlan;
20
+ export declare function signAccountMessage(input: {
21
+ readonly planInput: MessageSigningPlanInput;
22
+ readonly context: SigningContext;
23
+ readonly checkpoints: SigningCheckpointPort;
24
+ }): Promise<{
25
+ readonly signature: Hex;
26
+ readonly transcript: SigningTranscript;
27
+ }>;
28
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../signing/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAe,KAAK,eAAe,EAAE,MAAM,MAAM,CAAA;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAM/C,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAChC,sBAAsB,EACtB;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAC7B,CAAA;IACD,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;IACjC,QAAQ,CAAC,kBAAkB,EAAE,2BAA2B,CAAA;IACxD,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAA;IACrD,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,IAAI,CAClB,oBAAoB,EACpB,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CACrC,CAAA;IACD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAC3B,OAAO,SAAS,EAAE,qBAAqB,EACvC;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;KAAE,CACxC,CAAA;CACF;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,GAC7B,WAAW,CAkBb;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;CAC5C,GAAG,OAAO,CAAC;IACV,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;CACvC,CAAC,CAqBD"}
@@ -0,0 +1,90 @@
1
+ import { hashMessage } from 'viem';
2
+ import { EoaSigningNotSupportedError } from '../accounts/error.js';
3
+ import { encodePlannedValidatorContribution } from './contribution.js';
4
+ import { runSigningStep } from './error.js';
5
+ import { executeSigningPlan } from './execute.js';
6
+ import { createSingleStageSigningPlan } from './plan.js';
7
+ import { wrapErc6492Signature } from './protocols/erc6492.js';
8
+ export function createMessageSigningPlan(input) {
9
+ return createSingleStageSigningPlan({
10
+ kind: 'account-message',
11
+ payload: { kind: 'message', id: hashMessage(input.message) },
12
+ configuredTopology: input.configuredTopology,
13
+ effectiveSelection: input.effectiveSelection,
14
+ stageId: 'message',
15
+ ...(input.checkpoint ? { checkpoint: input.checkpoint } : {}),
16
+ chain: input.chain,
17
+ tasks: input.tasks,
18
+ artifacts: [
19
+ {
20
+ id: 'message-signature',
21
+ usage: 'erc1271',
22
+ ...input.route,
23
+ },
24
+ ],
25
+ });
26
+ }
27
+ export async function signAccountMessage(input) {
28
+ if (input.context.account.definition.kind === 'eoa') {
29
+ throw new EoaSigningNotSupportedError('packed signatures');
30
+ }
31
+ const plan = createMessageSigningPlan(input.planInput);
32
+ const transcript = await executeSigningPlan({
33
+ plan,
34
+ payloads: {
35
+ [plan.payload.id]: {
36
+ kind: 'message',
37
+ message: input.planInput.signingMaterial?.message ??
38
+ { raw: plan.payload.id },
39
+ },
40
+ },
41
+ checkpoints: input.checkpoints,
42
+ signerInvoker: input.context.signerInvoker,
43
+ assembleStage: (stage) => assembleMessageStage(stage, input.context),
44
+ });
45
+ const signature = transcript.stages[0].outputs['message-signature'];
46
+ return { signature, transcript };
47
+ }
48
+ function assembleMessageStage(input, context) {
49
+ const artifact = input.stagePlan.artifacts[0];
50
+ if (!artifact)
51
+ throw new Error('Message plan has no artifact');
52
+ if (artifact.erc7739.kind !== 'none') {
53
+ throw new Error('ERC-7739 is not a message-signing operation');
54
+ }
55
+ const step = (failureStage, operation) => runSigningStep({
56
+ plan: input.plan,
57
+ failureStage,
58
+ stageId: input.stage.stageId,
59
+ artifactId: artifact.id,
60
+ usage: artifact.usage,
61
+ operation,
62
+ });
63
+ const contribution = step('validator-encode', () => encodePlannedValidatorContribution({
64
+ artifact,
65
+ stage: input.stage,
66
+ results: input.results,
67
+ }));
68
+ const accountSignature = artifact.accountEnvelope.kind === 'none'
69
+ ? contribution
70
+ : step('account-envelope', () => context.accountAdapter.encodeSignatureEnvelope({
71
+ account: context.account,
72
+ envelope: artifact.accountEnvelope,
73
+ validatorContribution: contribution,
74
+ purpose: 'erc1271',
75
+ }));
76
+ const erc6492 = artifact.erc6492;
77
+ if (erc6492.kind === 'none') {
78
+ return { [artifact.id]: accountSignature };
79
+ }
80
+ const deployed = input.stage.facts.find((fact) => fact.kind === 'account-deployed');
81
+ return {
82
+ [artifact.id]: deployed?.kind === 'account-deployed' && deployed.deployed
83
+ ? accountSignature
84
+ : step('protocol-operation', () => wrapErc6492Signature({
85
+ factory: erc6492.factory,
86
+ factoryData: erc6492.factoryData,
87
+ signature: accountSignature,
88
+ })),
89
+ };
90
+ }
@@ -0,0 +1,28 @@
1
+ import type { Address, Hex } from 'viem';
2
+ import { type WebAuthnSignature } from '../modules/validators/webauthn.js';
3
+ export declare function parsePublicKey(publicKey: Hex | Uint8Array): {
4
+ x: bigint;
5
+ y: bigint;
6
+ };
7
+ export declare function parseSignature(signature: Hex | Uint8Array): {
8
+ r: bigint;
9
+ s: bigint;
10
+ };
11
+ export declare function generateCredentialId(pubKeyX: bigint, pubKeyY: bigint, account: Address): `0x${string}`;
12
+ export declare function packSignature(credIds: Hex[], usePrecompile: boolean, webAuthns: {
13
+ authenticatorData: Hex;
14
+ clientDataJSON: string;
15
+ challengeIndex: bigint;
16
+ typeIndex: bigint;
17
+ r: bigint;
18
+ s: bigint;
19
+ }[]): Hex;
20
+ export declare function packSignatureV0(webauthn: {
21
+ authenticatorData: Hex;
22
+ clientDataJSON: string;
23
+ typeIndex: number | bigint;
24
+ r: bigint;
25
+ s: bigint;
26
+ }, usePrecompiled: boolean): `0x${string}`;
27
+ export type { WebAuthnSignature };
28
+ //# sourceMappingURL=passkeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkeys.d.ts","sourceRoot":"","sources":["../../../signing/passkeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,gCAAgC,CAAA;AAEvC,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,UAAU,GAAG;IAC3D,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAGA;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,UAAU,GAAG;IAC3D,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAEA;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,KAAK,MAAM,EAAE,CAEf;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,GAAG,EAAE,EACd,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE;IACT,iBAAiB,EAAE,GAAG,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,EAAE,GACF,GAAG,CAEL;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE;IACR,iBAAiB,EAAE,GAAG,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,EACD,cAAc,EAAE,OAAO,GACtB,KAAK,MAAM,EAAE,CAKf;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { encodeWebauthnSignatures, encodeWebauthnSignatureV0, generateWebauthnCredentialId, parseWebauthnPublicKey, parseWebauthnSignature, } from '../modules/validators/webauthn.js';
2
+ export function parsePublicKey(publicKey) {
3
+ const { x, y } = parseWebauthnPublicKey(publicKey);
4
+ return { x, y };
5
+ }
6
+ export function parseSignature(signature) {
7
+ return parseWebauthnSignature(signature);
8
+ }
9
+ export function generateCredentialId(pubKeyX, pubKeyY, account) {
10
+ return generateWebauthnCredentialId(pubKeyX, pubKeyY, account);
11
+ }
12
+ export function packSignature(credIds, usePrecompile, webAuthns) {
13
+ return encodeWebauthnSignatures(credIds, usePrecompile, webAuthns);
14
+ }
15
+ export function packSignatureV0(webauthn, usePrecompiled) {
16
+ return encodeWebauthnSignatureV0({ ...webauthn, typeIndex: BigInt(webauthn.typeIndex) }, usePrecompiled);
17
+ }
@@ -0,0 +1,35 @@
1
+ import type { ResolvedValidatorDefinition } from '../modules/validators/types.js';
2
+ import type { ArtifactAssemblyPlan, ConfiguredValidatorTopology, EffectiveSignerSelection, MaterializedSigningStage, PayloadSigningTask, SigningArtifact, SigningPayloadIdentity, SigningPayloadRegistry, SigningPlan, SigningPlanKind, SigningReadCheckpoint, SigningRuntimeFact, SigningStagePlan } from './types.js';
3
+ export declare function validateSigningPlan(plan: SigningPlan): void;
4
+ export declare function materializeSigningStage(input: {
5
+ readonly plan: SigningPlan;
6
+ readonly stage: SigningStagePlan;
7
+ readonly payloads: SigningPayloadRegistry;
8
+ readonly facts: readonly SigningRuntimeFact[];
9
+ readonly priorOutputs: Readonly<Record<string, SigningArtifact>>;
10
+ }): MaterializedSigningStage;
11
+ export declare function createSingleStageSigningPlan(input: {
12
+ readonly kind: SigningPlanKind;
13
+ readonly payload: SigningPayloadIdentity;
14
+ readonly configuredTopology: ConfiguredValidatorTopology;
15
+ readonly effectiveSelection: EffectiveSignerSelection;
16
+ readonly stageId: string;
17
+ readonly checkpoint?: SigningReadCheckpoint;
18
+ readonly chain?: import('../chains/types.js').EvmChainReference;
19
+ readonly tasks: readonly PayloadSigningTask[];
20
+ readonly artifacts: readonly Omit<ArtifactAssemblyPlan, 'stageId' | 'input'>[];
21
+ }): SigningPlan;
22
+ export declare function createValidatorSigningTasks(input: {
23
+ readonly validator: ResolvedValidatorDefinition;
24
+ readonly signerReferences: Readonly<Record<string, import('./types.js').SignerReference>>;
25
+ readonly taskPrefix: string;
26
+ readonly ecdsaInvocation: 'ecdsa-sign-message' | 'ecdsa-sign-typed-data';
27
+ readonly webauthnInvocation: 'webauthn-sign-hash' | 'webauthn-sign-typed-data';
28
+ readonly role?: import('./types.js').SigningTaskRole;
29
+ readonly selectedSignerIds?: readonly string[];
30
+ }): readonly PayloadSigningTask[];
31
+ export declare function signingTopology(validator: ResolvedValidatorDefinition, selectedSignerIds?: readonly string[]): {
32
+ readonly configuredTopology: ConfiguredValidatorTopology;
33
+ readonly effectiveSelection: EffectiveSignerSelection;
34
+ };
35
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../signing/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAE9E,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EAEtB,sBAAsB,EACtB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAGjB,MAAM,SAAS,CAAA;AAEhB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAiO3D;AAUD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAC7C,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;CACjE,GAAG,wBAAwB,CAmB3B;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;IACxC,QAAQ,CAAC,kBAAkB,EAAE,2BAA2B,CAAA;IACxD,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAA;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,iBAAiB,EAAE,iBAAiB,CAAA;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAC7C,QAAQ,CAAC,SAAS,EAAE,SAAS,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;CAC/E,GAAG,WAAW,CAiDd;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,QAAQ,CAAC,SAAS,EAAE,2BAA2B,CAAA;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CACjC,MAAM,CAAC,MAAM,EAAE,OAAO,SAAS,EAAE,eAAe,CAAC,CAClD,CAAA;IACD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,oBAAoB,GAAG,uBAAuB,CAAA;IACxE,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,GAAG,0BAA0B,CAAA;IAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,SAAS,EAAE,eAAe,CAAA;IACjD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/C,GAAG,SAAS,kBAAkB,EAAE,CAqDhC;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,2BAA2B,EACtC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GACpC;IACD,QAAQ,CAAC,kBAAkB,EAAE,2BAA2B,CAAA;IACxD,QAAQ,CAAC,kBAAkB,EAAE,wBAAwB,CAAA;CACtD,CA8BA"}