zksync-sso 0.5.0-beta.3 → 1.0.0-beta.2

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 (595) hide show
  1. package/dist/_cjs/abi/SessionKeyValidator.js +729 -993
  2. package/dist/_cjs/abi/SessionKeyValidator.js.map +1 -1
  3. package/dist/_cjs/abi/{WebAuthValidator.js → WebAuthnValidator.js} +273 -306
  4. package/dist/_cjs/abi/WebAuthnValidator.js.map +1 -0
  5. package/dist/_cjs/abi/index.js +17 -15
  6. package/dist/_cjs/abi/index.js.map +1 -1
  7. package/dist/_cjs/actions/sendUserOperation.js +14 -0
  8. package/dist/_cjs/actions/sendUserOperation.js.map +1 -0
  9. package/dist/_cjs/client/actions/deploy.js +53 -0
  10. package/dist/_cjs/client/actions/deploy.js.map +1 -0
  11. package/dist/_cjs/client/actions/index.js +22 -0
  12. package/dist/_cjs/client/actions/index.js.map +1 -0
  13. package/dist/_cjs/client/actions/modules.js +42 -0
  14. package/dist/_cjs/client/actions/modules.js.map +1 -0
  15. package/dist/_cjs/client/actions/passkey.js +89 -0
  16. package/dist/_cjs/client/actions/passkey.js.map +1 -0
  17. package/dist/_cjs/client/actions/sessions.js +178 -0
  18. package/dist/_cjs/client/actions/sessions.js.map +1 -0
  19. package/dist/_cjs/client/actions/utils.js +8 -0
  20. package/dist/_cjs/client/actions/utils.js.map +1 -0
  21. package/dist/_cjs/client/common/smart-account-client-actions.js +173 -0
  22. package/dist/_cjs/client/common/smart-account-client-actions.js.map +1 -0
  23. package/dist/_cjs/client/ecdsa/account.js +75 -30
  24. package/dist/_cjs/client/ecdsa/account.js.map +1 -1
  25. package/dist/_cjs/client/ecdsa/client-actions.js +14 -0
  26. package/dist/_cjs/client/ecdsa/client-actions.js.map +1 -0
  27. package/dist/_cjs/client/ecdsa/client.js +29 -23
  28. package/dist/_cjs/client/ecdsa/client.js.map +1 -1
  29. package/dist/_cjs/client/ecdsa/index.js +5 -5
  30. package/dist/_cjs/client/ecdsa/index.js.map +1 -1
  31. package/dist/_cjs/client/index.js +7 -82
  32. package/dist/_cjs/client/index.js.map +1 -1
  33. package/dist/_cjs/client/passkey/account.js +88 -33
  34. package/dist/_cjs/client/passkey/account.js.map +1 -1
  35. package/dist/_cjs/client/passkey/client-actions.js +42 -0
  36. package/dist/_cjs/client/passkey/client-actions.js.map +1 -0
  37. package/dist/_cjs/client/passkey/client.js +32 -41
  38. package/dist/_cjs/client/passkey/client.js.map +1 -1
  39. package/dist/_cjs/client/passkey/index.js +14 -18
  40. package/dist/_cjs/client/passkey/index.js.map +1 -1
  41. package/dist/_cjs/client/passkey/webauthn.js +381 -0
  42. package/dist/_cjs/client/passkey/webauthn.js.map +1 -0
  43. package/dist/_cjs/client/session/account.js +91 -34
  44. package/dist/_cjs/client/session/account.js.map +1 -1
  45. package/dist/_cjs/client/session/client-actions.js +19 -0
  46. package/dist/_cjs/client/session/client-actions.js.map +1 -0
  47. package/dist/_cjs/client/session/client.js +29 -83
  48. package/dist/_cjs/client/session/client.js.map +1 -1
  49. package/dist/_cjs/client/session/formatSessionPreferences.js +263 -0
  50. package/dist/_cjs/client/session/formatSessionPreferences.js.map +1 -0
  51. package/dist/_cjs/client/session/index.js +5 -0
  52. package/dist/_cjs/client/session/index.js.map +1 -1
  53. package/dist/_cjs/client/session/monitor.js +138 -0
  54. package/dist/_cjs/client/session/monitor.js.map +1 -0
  55. package/dist/_cjs/client/session/types.js +83 -0
  56. package/dist/_cjs/client/session/types.js.map +1 -0
  57. package/dist/_cjs/client/session/utils.js +95 -0
  58. package/dist/_cjs/client/session/utils.js.map +1 -0
  59. package/dist/_cjs/client-auth-server/Signer.js +67 -43
  60. package/dist/_cjs/client-auth-server/Signer.js.map +1 -1
  61. package/dist/_cjs/client-auth-server/WalletProvider.js +6 -7
  62. package/dist/_cjs/client-auth-server/WalletProvider.js.map +1 -1
  63. package/dist/_cjs/client-auth-server/session/index.js +36 -21
  64. package/dist/_cjs/client-auth-server/session/index.js.map +1 -1
  65. package/dist/_cjs/client-auth-server/session/utils.js.map +1 -1
  66. package/dist/_cjs/client-auth-server/utils/helpers.js.map +1 -0
  67. package/dist/_cjs/{client/recovery → client-auth-server/utils}/index.js +2 -2
  68. package/dist/_cjs/client-auth-server/utils/index.js.map +1 -0
  69. package/dist/_cjs/client-auth-server/utils/storage.js.map +1 -0
  70. package/dist/_cjs/connector/index.js +92 -13
  71. package/dist/_cjs/connector/index.js.map +1 -1
  72. package/dist/_cjs/index.js +19 -3
  73. package/dist/_cjs/index.js.map +1 -1
  74. package/dist/_esm/abi/SessionKeyValidator.js +729 -993
  75. package/dist/_esm/abi/SessionKeyValidator.js.map +1 -1
  76. package/dist/_esm/abi/{WebAuthValidator.js → WebAuthnValidator.js} +272 -305
  77. package/dist/_esm/abi/WebAuthnValidator.js.map +1 -0
  78. package/dist/_esm/abi/index.js +3 -7
  79. package/dist/_esm/abi/index.js.map +1 -1
  80. package/dist/_esm/actions/sendUserOperation.js +26 -0
  81. package/dist/_esm/actions/sendUserOperation.js.map +1 -0
  82. package/dist/_esm/client/actions/deploy.js +114 -0
  83. package/dist/_esm/client/actions/deploy.js.map +1 -0
  84. package/dist/_esm/client/actions/index.js +7 -0
  85. package/dist/_esm/client/actions/index.js.map +1 -0
  86. package/dist/_esm/client/actions/modules.js +75 -0
  87. package/dist/_esm/client/actions/modules.js.map +1 -0
  88. package/dist/_esm/client/actions/passkey.js +200 -0
  89. package/dist/_esm/client/actions/passkey.js.map +1 -0
  90. package/dist/_esm/client/actions/sessions.js +279 -0
  91. package/dist/_esm/client/actions/sessions.js.map +1 -0
  92. package/dist/_esm/client/actions/utils.js +27 -0
  93. package/dist/_esm/client/actions/utils.js.map +1 -0
  94. package/dist/_esm/client/common/smart-account-client-actions.js +209 -0
  95. package/dist/_esm/client/common/smart-account-client-actions.js.map +1 -0
  96. package/dist/_esm/client/ecdsa/account.js +91 -29
  97. package/dist/_esm/client/ecdsa/account.js.map +1 -1
  98. package/dist/_esm/client/ecdsa/client-actions.js +16 -0
  99. package/dist/_esm/client/ecdsa/client-actions.js.map +1 -0
  100. package/dist/_esm/client/ecdsa/client.js +90 -23
  101. package/dist/_esm/client/ecdsa/client.js.map +1 -1
  102. package/dist/_esm/client/ecdsa/index.js +2 -5
  103. package/dist/_esm/client/ecdsa/index.js.map +1 -1
  104. package/dist/_esm/client/index.js +6 -77
  105. package/dist/_esm/client/index.js.map +1 -1
  106. package/dist/_esm/client/passkey/account.js +118 -32
  107. package/dist/_esm/client/passkey/account.js.map +1 -1
  108. package/dist/_esm/client/passkey/client-actions.js +51 -0
  109. package/dist/_esm/client/passkey/client-actions.js.map +1 -0
  110. package/dist/_esm/client/passkey/client.js +99 -42
  111. package/dist/_esm/client/passkey/client.js.map +1 -1
  112. package/dist/_esm/client/passkey/index.js +4 -4
  113. package/dist/_esm/client/passkey/index.js.map +1 -1
  114. package/dist/_esm/client/passkey/webauthn.js +493 -0
  115. package/dist/_esm/client/passkey/webauthn.js.map +1 -0
  116. package/dist/_esm/client/session/account.js +114 -33
  117. package/dist/_esm/client/session/account.js.map +1 -1
  118. package/dist/_esm/client/session/client-actions.js +20 -0
  119. package/dist/_esm/client/session/client-actions.js.map +1 -0
  120. package/dist/_esm/client/session/client.js +34 -84
  121. package/dist/_esm/client/session/client.js.map +1 -1
  122. package/dist/_esm/client/session/formatSessionPreferences.js +283 -0
  123. package/dist/_esm/client/session/formatSessionPreferences.js.map +1 -0
  124. package/dist/_esm/client/session/index.js +5 -0
  125. package/dist/_esm/client/session/index.js.map +1 -1
  126. package/dist/_esm/client/session/monitor.js +195 -0
  127. package/dist/_esm/client/session/monitor.js.map +1 -0
  128. package/dist/_esm/client/session/types.js +110 -0
  129. package/dist/_esm/client/session/types.js.map +1 -0
  130. package/dist/_esm/client/session/utils.js +115 -0
  131. package/dist/_esm/client/session/utils.js.map +1 -0
  132. package/dist/_esm/client-auth-server/Signer.js +84 -43
  133. package/dist/_esm/client-auth-server/Signer.js.map +1 -1
  134. package/dist/_esm/client-auth-server/WalletProvider.js +6 -5
  135. package/dist/_esm/client-auth-server/WalletProvider.js.map +1 -1
  136. package/dist/_esm/client-auth-server/session/index.js +2 -1
  137. package/dist/_esm/client-auth-server/session/index.js.map +1 -1
  138. package/dist/_esm/client-auth-server/session/utils.js.map +1 -1
  139. package/dist/_esm/client-auth-server/utils/helpers.js.map +1 -0
  140. package/dist/_esm/client-auth-server/utils/index.js +3 -0
  141. package/dist/_esm/client-auth-server/utils/index.js.map +1 -0
  142. package/dist/_esm/client-auth-server/utils/storage.js.map +1 -0
  143. package/dist/_esm/connector/index.js +105 -11
  144. package/dist/_esm/connector/index.js.map +1 -1
  145. package/dist/_esm/index.js +9 -1
  146. package/dist/_esm/index.js.map +1 -1
  147. package/dist/_types/abi/SessionKeyValidator.d.ts +612 -602
  148. package/dist/_types/abi/SessionKeyValidator.d.ts.map +1 -1
  149. package/dist/_types/abi/{WebAuthValidator.d.ts → WebAuthnValidator.d.ts} +234 -186
  150. package/dist/_types/abi/WebAuthnValidator.d.ts.map +1 -0
  151. package/dist/_types/abi/index.d.ts +3 -7
  152. package/dist/_types/abi/index.d.ts.map +1 -1
  153. package/dist/_types/actions/sendUserOperation.d.ts +49 -0
  154. package/dist/_types/actions/sendUserOperation.d.ts.map +1 -0
  155. package/dist/_types/client/actions/deploy.d.ts +108 -0
  156. package/dist/_types/client/actions/deploy.d.ts.map +1 -0
  157. package/dist/_types/client/actions/index.d.ts +10 -0
  158. package/dist/_types/client/actions/index.d.ts.map +1 -0
  159. package/dist/_types/client/actions/modules.d.ts +65 -0
  160. package/dist/_types/client/actions/modules.d.ts.map +1 -0
  161. package/dist/_types/client/actions/passkey.d.ts +192 -0
  162. package/dist/_types/client/actions/passkey.d.ts.map +1 -0
  163. package/dist/_types/client/actions/sessions.d.ts +225 -0
  164. package/dist/_types/client/actions/sessions.d.ts.map +1 -0
  165. package/dist/_types/client/actions/utils.d.ts +25 -0
  166. package/dist/_types/client/actions/utils.d.ts.map +1 -0
  167. package/dist/_types/client/common/smart-account-client-actions.d.ts +50 -0
  168. package/dist/_types/client/common/smart-account-client-actions.d.ts.map +1 -0
  169. package/dist/_types/client/ecdsa/account.d.ts +16 -11
  170. package/dist/_types/client/ecdsa/account.d.ts.map +1 -1
  171. package/dist/_types/client/ecdsa/client-actions.d.ts +25 -0
  172. package/dist/_types/client/ecdsa/client-actions.d.ts.map +1 -0
  173. package/dist/_types/client/ecdsa/client.d.ts +92 -22
  174. package/dist/_types/client/ecdsa/client.d.ts.map +1 -1
  175. package/dist/_types/client/ecdsa/index.d.ts +2 -5
  176. package/dist/_types/client/ecdsa/index.d.ts.map +1 -1
  177. package/dist/_types/client/index.d.ts +7 -31
  178. package/dist/_types/client/index.d.ts.map +1 -1
  179. package/dist/_types/client/passkey/account.d.ts +22 -15
  180. package/dist/_types/client/passkey/account.d.ts.map +1 -1
  181. package/dist/_types/client/passkey/client-actions.d.ts +54 -0
  182. package/dist/_types/client/passkey/client-actions.d.ts.map +1 -0
  183. package/dist/_types/client/passkey/client.d.ts +103 -32
  184. package/dist/_types/client/passkey/client.d.ts.map +1 -1
  185. package/dist/_types/client/passkey/index.d.ts +4 -4
  186. package/dist/_types/client/passkey/index.d.ts.map +1 -1
  187. package/dist/_types/client/passkey/webauthn.d.ts +123 -0
  188. package/dist/_types/client/passkey/webauthn.d.ts.map +1 -0
  189. package/dist/_types/client/session/account.d.ts +26 -13
  190. package/dist/_types/client/session/account.d.ts.map +1 -1
  191. package/dist/_types/client/session/client-actions.d.ts +26 -0
  192. package/dist/_types/client/session/client-actions.d.ts.map +1 -0
  193. package/dist/_types/client/session/client.d.ts +38 -36
  194. package/dist/_types/client/session/client.d.ts.map +1 -1
  195. package/dist/_types/client/session/formatSessionPreferences.d.ts +101 -0
  196. package/dist/_types/client/session/formatSessionPreferences.d.ts.map +1 -0
  197. package/dist/_types/client/session/index.d.ts +5 -0
  198. package/dist/_types/client/session/index.d.ts.map +1 -1
  199. package/dist/_types/client/session/monitor.d.ts +93 -0
  200. package/dist/_types/client/session/monitor.d.ts.map +1 -0
  201. package/dist/_types/client/session/types.d.ts +133 -0
  202. package/dist/_types/client/session/types.d.ts.map +1 -0
  203. package/dist/_types/client/session/utils.d.ts +47 -0
  204. package/dist/_types/client/session/utils.d.ts.map +1 -0
  205. package/dist/_types/client-auth-server/Signer.d.ts +241 -245
  206. package/dist/_types/client-auth-server/Signer.d.ts.map +1 -1
  207. package/dist/_types/client-auth-server/WalletProvider.d.ts +236 -241
  208. package/dist/_types/client-auth-server/WalletProvider.d.ts.map +1 -1
  209. package/dist/_types/client-auth-server/interface.d.ts +2 -2
  210. package/dist/_types/client-auth-server/interface.d.ts.map +1 -1
  211. package/dist/_types/client-auth-server/rpc.d.ts +4 -0
  212. package/dist/_types/client-auth-server/rpc.d.ts.map +1 -1
  213. package/dist/_types/client-auth-server/session/index.d.ts +5 -4
  214. package/dist/_types/client-auth-server/session/index.d.ts.map +1 -1
  215. package/dist/_types/client-auth-server/session/utils.d.ts +3 -3
  216. package/dist/_types/client-auth-server/session/utils.d.ts.map +1 -1
  217. package/dist/_types/client-auth-server/utils/helpers.d.ts.map +1 -0
  218. package/dist/_types/client-auth-server/utils/index.d.ts +3 -0
  219. package/dist/_types/client-auth-server/utils/index.d.ts.map +1 -0
  220. package/dist/_types/client-auth-server/utils/storage.d.ts.map +1 -0
  221. package/dist/_types/communicator/interface.d.ts +5 -0
  222. package/dist/_types/communicator/interface.d.ts.map +1 -1
  223. package/dist/_types/connector/index.d.ts +11 -9
  224. package/dist/_types/connector/index.d.ts.map +1 -1
  225. package/dist/_types/index.d.ts +5 -3
  226. package/dist/_types/index.d.ts.map +1 -1
  227. package/package.json +36 -55
  228. package/prepare-package.mjs +8 -0
  229. package/project.json +7 -7
  230. package/src/abi/SessionKeyValidator.ts +861 -1125
  231. package/src/abi/WebAuthnValidator.ts +324 -0
  232. package/src/abi/index.ts +3 -7
  233. package/src/actions/sendUserOperation.ts +98 -0
  234. package/src/client/actions/deploy.ts +225 -0
  235. package/src/client/actions/index.ts +39 -0
  236. package/src/client/actions/modules.ts +112 -0
  237. package/src/client/actions/passkey.ts +344 -0
  238. package/src/client/actions/sessions.ts +457 -0
  239. package/src/client/actions/utils.ts +30 -0
  240. package/src/client/common/smart-account-client-actions.ts +317 -0
  241. package/src/client/ecdsa/account.ts +146 -42
  242. package/src/client/ecdsa/client-actions.ts +54 -0
  243. package/src/client/ecdsa/client.ts +177 -75
  244. package/src/client/ecdsa/index.ts +9 -5
  245. package/src/client/index.ts +10 -122
  246. package/src/client/passkey/account.ts +180 -55
  247. package/src/client/passkey/client-actions.ts +117 -0
  248. package/src/client/passkey/client.ts +194 -108
  249. package/src/client/passkey/index.ts +21 -4
  250. package/src/client/passkey/webauthn.ts +638 -0
  251. package/src/client/session/account.ts +211 -46
  252. package/src/client/session/client-actions.ts +62 -0
  253. package/src/client/session/client.ts +121 -160
  254. package/src/client/session/formatSessionPreferences.ts +444 -0
  255. package/src/client/session/index.ts +5 -0
  256. package/src/client/session/monitor.ts +292 -0
  257. package/src/client/session/types.ts +205 -0
  258. package/src/client/session/utils.ts +160 -0
  259. package/src/client-auth-server/Signer.ts +91 -41
  260. package/src/client-auth-server/WalletProvider.ts +12 -11
  261. package/src/client-auth-server/interface.ts +2 -2
  262. package/src/client-auth-server/rpc.ts +4 -0
  263. package/src/client-auth-server/session/index.ts +6 -4
  264. package/src/client-auth-server/session/utils.ts +4 -4
  265. package/src/client-auth-server/utils/index.ts +2 -0
  266. package/src/communicator/interface.ts +6 -0
  267. package/src/connector/index.ts +137 -24
  268. package/src/index.ts +12 -3
  269. package/tsconfig.json +1 -1
  270. package/dist/_cjs/abi/GuardianRecoveryModule.js +0 -767
  271. package/dist/_cjs/abi/GuardianRecoveryModule.js.map +0 -1
  272. package/dist/_cjs/abi/GuardianRecoveryValidator.js +0 -813
  273. package/dist/_cjs/abi/GuardianRecoveryValidator.js.map +0 -1
  274. package/dist/_cjs/abi/OidcKeyRegistry.js +0 -492
  275. package/dist/_cjs/abi/OidcKeyRegistry.js.map +0 -1
  276. package/dist/_cjs/abi/OidcRecoveryValidator.js +0 -650
  277. package/dist/_cjs/abi/OidcRecoveryValidator.js.map +0 -1
  278. package/dist/_cjs/abi/SsoAccount.js +0 -1354
  279. package/dist/_cjs/abi/SsoAccount.js.map +0 -1
  280. package/dist/_cjs/abi/WebAuthValidator.js.map +0 -1
  281. package/dist/_cjs/client/ecdsa/actions/account.js +0 -83
  282. package/dist/_cjs/client/ecdsa/actions/account.js.map +0 -1
  283. package/dist/_cjs/client/ecdsa/decorators/ecdsa.js +0 -22
  284. package/dist/_cjs/client/ecdsa/decorators/ecdsa.js.map +0 -1
  285. package/dist/_cjs/client/ecdsa/decorators/wallet.js +0 -53
  286. package/dist/_cjs/client/ecdsa/decorators/wallet.js.map +0 -1
  287. package/dist/_cjs/client/ecdsa/types.js +0 -63
  288. package/dist/_cjs/client/ecdsa/types.js.map +0 -1
  289. package/dist/_cjs/client/oidc/account.js +0 -43
  290. package/dist/_cjs/client/oidc/account.js.map +0 -1
  291. package/dist/_cjs/client/oidc/actions/addNewPasskeyViaOidc.js +0 -28
  292. package/dist/_cjs/client/oidc/actions/addNewPasskeyViaOidc.js.map +0 -1
  293. package/dist/_cjs/client/oidc/actions/index.js +0 -12
  294. package/dist/_cjs/client/oidc/actions/index.js.map +0 -1
  295. package/dist/_cjs/client/oidc/client.js +0 -46
  296. package/dist/_cjs/client/oidc/client.js.map +0 -1
  297. package/dist/_cjs/client/oidc/decorators/actions.js +0 -3
  298. package/dist/_cjs/client/oidc/decorators/actions.js.map +0 -1
  299. package/dist/_cjs/client/oidc/index.js +0 -20
  300. package/dist/_cjs/client/oidc/index.js.map +0 -1
  301. package/dist/_cjs/client/oidc/serialize.js +0 -3
  302. package/dist/_cjs/client/oidc/serialize.js.map +0 -1
  303. package/dist/_cjs/client/passkey/actions/account.js +0 -169
  304. package/dist/_cjs/client/passkey/actions/account.js.map +0 -1
  305. package/dist/_cjs/client/passkey/actions/passkey.js +0 -151
  306. package/dist/_cjs/client/passkey/actions/passkey.js.map +0 -1
  307. package/dist/_cjs/client/passkey/decorators/passkey.js +0 -52
  308. package/dist/_cjs/client/passkey/decorators/passkey.js.map +0 -1
  309. package/dist/_cjs/client/passkey/decorators/wallet.js +0 -54
  310. package/dist/_cjs/client/passkey/decorators/wallet.js.map +0 -1
  311. package/dist/_cjs/client/recovery/account.js +0 -46
  312. package/dist/_cjs/client/recovery/account.js.map +0 -1
  313. package/dist/_cjs/client/recovery/actions/oidc.js +0 -69
  314. package/dist/_cjs/client/recovery/actions/oidc.js.map +0 -1
  315. package/dist/_cjs/client/recovery/actions/recovery.js +0 -114
  316. package/dist/_cjs/client/recovery/actions/recovery.js.map +0 -1
  317. package/dist/_cjs/client/recovery/actions/sendEip712Transaction.js +0 -45
  318. package/dist/_cjs/client/recovery/actions/sendEip712Transaction.js.map +0 -1
  319. package/dist/_cjs/client/recovery/client.js +0 -49
  320. package/dist/_cjs/client/recovery/client.js.map +0 -1
  321. package/dist/_cjs/client/recovery/decorators/publicActionsRewrite.js +0 -33
  322. package/dist/_cjs/client/recovery/decorators/publicActionsRewrite.js.map +0 -1
  323. package/dist/_cjs/client/recovery/decorators/recovery.js +0 -15
  324. package/dist/_cjs/client/recovery/decorators/recovery.js.map +0 -1
  325. package/dist/_cjs/client/recovery/decorators/wallet.js +0 -46
  326. package/dist/_cjs/client/recovery/decorators/wallet.js.map +0 -1
  327. package/dist/_cjs/client/recovery/index.js.map +0 -1
  328. package/dist/_cjs/client/session/actions/sendEip712Transaction.js +0 -45
  329. package/dist/_cjs/client/session/actions/sendEip712Transaction.js.map +0 -1
  330. package/dist/_cjs/client/session/actions/session.js +0 -116
  331. package/dist/_cjs/client/session/actions/session.js.map +0 -1
  332. package/dist/_cjs/client/session/decorators/publicActionsRewrite.js +0 -58
  333. package/dist/_cjs/client/session/decorators/publicActionsRewrite.js.map +0 -1
  334. package/dist/_cjs/client/session/decorators/wallet.js +0 -93
  335. package/dist/_cjs/client/session/decorators/wallet.js.map +0 -1
  336. package/dist/_cjs/client/utils/assertEip712Transaction.js +0 -44
  337. package/dist/_cjs/client/utils/assertEip712Transaction.js.map +0 -1
  338. package/dist/_cjs/client/utils/getEip712Domain.js +0 -57
  339. package/dist/_cjs/client/utils/getEip712Domain.js.map +0 -1
  340. package/dist/_cjs/client/utils/isEip712Transaction.js +0 -16
  341. package/dist/_cjs/client/utils/isEip712Transaction.js.map +0 -1
  342. package/dist/_cjs/paymaster/handlers/general.js +0 -13
  343. package/dist/_cjs/paymaster/handlers/general.js.map +0 -1
  344. package/dist/_cjs/paymaster/handlers/index.js +0 -19
  345. package/dist/_cjs/paymaster/handlers/index.js.map +0 -1
  346. package/dist/_cjs/paymaster/handlers/zyfi.js +0 -57
  347. package/dist/_cjs/paymaster/handlers/zyfi.js.map +0 -1
  348. package/dist/_cjs/paymaster/index.js +0 -54
  349. package/dist/_cjs/paymaster/index.js.map +0 -1
  350. package/dist/_cjs/utils/encoding.js +0 -56
  351. package/dist/_cjs/utils/encoding.js.map +0 -1
  352. package/dist/_cjs/utils/helpers.js.map +0 -1
  353. package/dist/_cjs/utils/index.js +0 -20
  354. package/dist/_cjs/utils/index.js.map +0 -1
  355. package/dist/_cjs/utils/passkey.js +0 -245
  356. package/dist/_cjs/utils/passkey.js.map +0 -1
  357. package/dist/_cjs/utils/session.js +0 -346
  358. package/dist/_cjs/utils/session.js.map +0 -1
  359. package/dist/_cjs/utils/storage.js.map +0 -1
  360. package/dist/_esm/abi/GuardianRecoveryModule.js +0 -764
  361. package/dist/_esm/abi/GuardianRecoveryModule.js.map +0 -1
  362. package/dist/_esm/abi/GuardianRecoveryValidator.js +0 -810
  363. package/dist/_esm/abi/GuardianRecoveryValidator.js.map +0 -1
  364. package/dist/_esm/abi/OidcKeyRegistry.js +0 -489
  365. package/dist/_esm/abi/OidcKeyRegistry.js.map +0 -1
  366. package/dist/_esm/abi/OidcRecoveryValidator.js +0 -647
  367. package/dist/_esm/abi/OidcRecoveryValidator.js.map +0 -1
  368. package/dist/_esm/abi/SsoAccount.js +0 -1351
  369. package/dist/_esm/abi/SsoAccount.js.map +0 -1
  370. package/dist/_esm/abi/WebAuthValidator.js.map +0 -1
  371. package/dist/_esm/client/ecdsa/actions/account.js +0 -82
  372. package/dist/_esm/client/ecdsa/actions/account.js.map +0 -1
  373. package/dist/_esm/client/ecdsa/decorators/ecdsa.js +0 -19
  374. package/dist/_esm/client/ecdsa/decorators/ecdsa.js.map +0 -1
  375. package/dist/_esm/client/ecdsa/decorators/wallet.js +0 -54
  376. package/dist/_esm/client/ecdsa/decorators/wallet.js.map +0 -1
  377. package/dist/_esm/client/ecdsa/types.js +0 -61
  378. package/dist/_esm/client/ecdsa/types.js.map +0 -1
  379. package/dist/_esm/client/oidc/account.js +0 -40
  380. package/dist/_esm/client/oidc/account.js.map +0 -1
  381. package/dist/_esm/client/oidc/actions/addNewPasskeyViaOidc.js +0 -26
  382. package/dist/_esm/client/oidc/actions/addNewPasskeyViaOidc.js.map +0 -1
  383. package/dist/_esm/client/oidc/actions/index.js +0 -9
  384. package/dist/_esm/client/oidc/actions/index.js.map +0 -1
  385. package/dist/_esm/client/oidc/client.js +0 -41
  386. package/dist/_esm/client/oidc/client.js.map +0 -1
  387. package/dist/_esm/client/oidc/decorators/actions.js +0 -2
  388. package/dist/_esm/client/oidc/decorators/actions.js.map +0 -1
  389. package/dist/_esm/client/oidc/index.js +0 -4
  390. package/dist/_esm/client/oidc/index.js.map +0 -1
  391. package/dist/_esm/client/oidc/serialize.js +0 -2
  392. package/dist/_esm/client/oidc/serialize.js.map +0 -1
  393. package/dist/_esm/client/passkey/actions/account.js +0 -165
  394. package/dist/_esm/client/passkey/actions/account.js.map +0 -1
  395. package/dist/_esm/client/passkey/actions/passkey.js +0 -148
  396. package/dist/_esm/client/passkey/actions/passkey.js.map +0 -1
  397. package/dist/_esm/client/passkey/decorators/passkey.js +0 -50
  398. package/dist/_esm/client/passkey/decorators/passkey.js.map +0 -1
  399. package/dist/_esm/client/passkey/decorators/wallet.js +0 -54
  400. package/dist/_esm/client/passkey/decorators/wallet.js.map +0 -1
  401. package/dist/_esm/client/recovery/account.js +0 -43
  402. package/dist/_esm/client/recovery/account.js.map +0 -1
  403. package/dist/_esm/client/recovery/actions/oidc.js +0 -69
  404. package/dist/_esm/client/recovery/actions/oidc.js.map +0 -1
  405. package/dist/_esm/client/recovery/actions/recovery.js +0 -111
  406. package/dist/_esm/client/recovery/actions/recovery.js.map +0 -1
  407. package/dist/_esm/client/recovery/actions/sendEip712Transaction.js +0 -93
  408. package/dist/_esm/client/recovery/actions/sendEip712Transaction.js.map +0 -1
  409. package/dist/_esm/client/recovery/client.js +0 -45
  410. package/dist/_esm/client/recovery/client.js.map +0 -1
  411. package/dist/_esm/client/recovery/decorators/publicActionsRewrite.js +0 -31
  412. package/dist/_esm/client/recovery/decorators/publicActionsRewrite.js.map +0 -1
  413. package/dist/_esm/client/recovery/decorators/recovery.js +0 -13
  414. package/dist/_esm/client/recovery/decorators/recovery.js.map +0 -1
  415. package/dist/_esm/client/recovery/decorators/wallet.js +0 -45
  416. package/dist/_esm/client/recovery/decorators/wallet.js.map +0 -1
  417. package/dist/_esm/client/recovery/index.js +0 -3
  418. package/dist/_esm/client/recovery/index.js.map +0 -1
  419. package/dist/_esm/client/session/actions/sendEip712Transaction.js +0 -93
  420. package/dist/_esm/client/session/actions/sendEip712Transaction.js.map +0 -1
  421. package/dist/_esm/client/session/actions/session.js +0 -119
  422. package/dist/_esm/client/session/actions/session.js.map +0 -1
  423. package/dist/_esm/client/session/decorators/publicActionsRewrite.js +0 -55
  424. package/dist/_esm/client/session/decorators/publicActionsRewrite.js.map +0 -1
  425. package/dist/_esm/client/session/decorators/wallet.js +0 -100
  426. package/dist/_esm/client/session/decorators/wallet.js.map +0 -1
  427. package/dist/_esm/client/utils/assertEip712Transaction.js +0 -39
  428. package/dist/_esm/client/utils/assertEip712Transaction.js.map +0 -1
  429. package/dist/_esm/client/utils/getEip712Domain.js +0 -57
  430. package/dist/_esm/client/utils/getEip712Domain.js.map +0 -1
  431. package/dist/_esm/client/utils/isEip712Transaction.js +0 -13
  432. package/dist/_esm/client/utils/isEip712Transaction.js.map +0 -1
  433. package/dist/_esm/paymaster/handlers/general.js +0 -11
  434. package/dist/_esm/paymaster/handlers/general.js.map +0 -1
  435. package/dist/_esm/paymaster/handlers/index.js +0 -3
  436. package/dist/_esm/paymaster/handlers/index.js.map +0 -1
  437. package/dist/_esm/paymaster/handlers/zyfi.js +0 -54
  438. package/dist/_esm/paymaster/handlers/zyfi.js.map +0 -1
  439. package/dist/_esm/paymaster/index.js +0 -37
  440. package/dist/_esm/paymaster/index.js.map +0 -1
  441. package/dist/_esm/utils/encoding.js +0 -49
  442. package/dist/_esm/utils/encoding.js.map +0 -1
  443. package/dist/_esm/utils/helpers.js.map +0 -1
  444. package/dist/_esm/utils/index.js +0 -4
  445. package/dist/_esm/utils/index.js.map +0 -1
  446. package/dist/_esm/utils/passkey.js +0 -296
  447. package/dist/_esm/utils/passkey.js.map +0 -1
  448. package/dist/_esm/utils/session.js +0 -358
  449. package/dist/_esm/utils/session.js.map +0 -1
  450. package/dist/_esm/utils/storage.js.map +0 -1
  451. package/dist/_types/abi/GuardianRecoveryModule.d.ts +0 -590
  452. package/dist/_types/abi/GuardianRecoveryModule.d.ts.map +0 -1
  453. package/dist/_types/abi/GuardianRecoveryValidator.d.ts +0 -626
  454. package/dist/_types/abi/GuardianRecoveryValidator.d.ts.map +0 -1
  455. package/dist/_types/abi/OidcKeyRegistry.d.ts +0 -375
  456. package/dist/_types/abi/OidcKeyRegistry.d.ts.map +0 -1
  457. package/dist/_types/abi/OidcRecoveryValidator.d.ts +0 -501
  458. package/dist/_types/abi/OidcRecoveryValidator.d.ts.map +0 -1
  459. package/dist/_types/abi/SsoAccount.d.ts +0 -1044
  460. package/dist/_types/abi/SsoAccount.d.ts.map +0 -1
  461. package/dist/_types/abi/WebAuthValidator.d.ts.map +0 -1
  462. package/dist/_types/client/ecdsa/actions/account.d.ts +0 -38
  463. package/dist/_types/client/ecdsa/actions/account.d.ts.map +0 -1
  464. package/dist/_types/client/ecdsa/decorators/ecdsa.d.ts +0 -16
  465. package/dist/_types/client/ecdsa/decorators/ecdsa.d.ts.map +0 -1
  466. package/dist/_types/client/ecdsa/decorators/wallet.d.ts +0 -5
  467. package/dist/_types/client/ecdsa/decorators/wallet.d.ts.map +0 -1
  468. package/dist/_types/client/ecdsa/types.d.ts +0 -10
  469. package/dist/_types/client/ecdsa/types.d.ts.map +0 -1
  470. package/dist/_types/client/oidc/account.d.ts +0 -13
  471. package/dist/_types/client/oidc/account.d.ts.map +0 -1
  472. package/dist/_types/client/oidc/actions/addNewPasskeyViaOidc.d.ts +0 -12
  473. package/dist/_types/client/oidc/actions/addNewPasskeyViaOidc.d.ts.map +0 -1
  474. package/dist/_types/client/oidc/actions/index.d.ts +0 -5
  475. package/dist/_types/client/oidc/actions/index.d.ts.map +0 -1
  476. package/dist/_types/client/oidc/client.d.ts +0 -24
  477. package/dist/_types/client/oidc/client.d.ts.map +0 -1
  478. package/dist/_types/client/oidc/decorators/actions.d.ts +0 -5
  479. package/dist/_types/client/oidc/decorators/actions.d.ts.map +0 -1
  480. package/dist/_types/client/oidc/index.d.ts +0 -4
  481. package/dist/_types/client/oidc/index.d.ts.map +0 -1
  482. package/dist/_types/client/oidc/serialize.d.ts +0 -10
  483. package/dist/_types/client/oidc/serialize.d.ts.map +0 -1
  484. package/dist/_types/client/passkey/actions/account.d.ts +0 -48
  485. package/dist/_types/client/passkey/actions/account.d.ts.map +0 -1
  486. package/dist/_types/client/passkey/actions/passkey.d.ts +0 -55
  487. package/dist/_types/client/passkey/actions/passkey.d.ts.map +0 -1
  488. package/dist/_types/client/passkey/decorators/passkey.d.ts +0 -16
  489. package/dist/_types/client/passkey/decorators/passkey.d.ts.map +0 -1
  490. package/dist/_types/client/passkey/decorators/wallet.d.ts +0 -5
  491. package/dist/_types/client/passkey/decorators/wallet.d.ts.map +0 -1
  492. package/dist/_types/client/recovery/account.d.ts +0 -14
  493. package/dist/_types/client/recovery/account.d.ts.map +0 -1
  494. package/dist/_types/client/recovery/actions/oidc.d.ts +0 -24
  495. package/dist/_types/client/recovery/actions/oidc.d.ts.map +0 -1
  496. package/dist/_types/client/recovery/actions/recovery.d.ts +0 -50
  497. package/dist/_types/client/recovery/actions/recovery.d.ts.map +0 -1
  498. package/dist/_types/client/recovery/actions/sendEip712Transaction.d.ts +0 -60
  499. package/dist/_types/client/recovery/actions/sendEip712Transaction.d.ts.map +0 -1
  500. package/dist/_types/client/recovery/client.d.ts +0 -23
  501. package/dist/_types/client/recovery/client.d.ts.map +0 -1
  502. package/dist/_types/client/recovery/decorators/publicActionsRewrite.d.ts +0 -4
  503. package/dist/_types/client/recovery/decorators/publicActionsRewrite.d.ts.map +0 -1
  504. package/dist/_types/client/recovery/decorators/recovery.d.ts +0 -8
  505. package/dist/_types/client/recovery/decorators/recovery.d.ts.map +0 -1
  506. package/dist/_types/client/recovery/decorators/wallet.d.ts +0 -5
  507. package/dist/_types/client/recovery/decorators/wallet.d.ts.map +0 -1
  508. package/dist/_types/client/recovery/index.d.ts +0 -3
  509. package/dist/_types/client/recovery/index.d.ts.map +0 -1
  510. package/dist/_types/client/session/actions/sendEip712Transaction.d.ts +0 -60
  511. package/dist/_types/client/session/actions/sendEip712Transaction.d.ts.map +0 -1
  512. package/dist/_types/client/session/actions/session.d.ts +0 -61
  513. package/dist/_types/client/session/actions/session.d.ts.map +0 -1
  514. package/dist/_types/client/session/decorators/publicActionsRewrite.d.ts +0 -4
  515. package/dist/_types/client/session/decorators/publicActionsRewrite.d.ts.map +0 -1
  516. package/dist/_types/client/session/decorators/wallet.d.ts +0 -5
  517. package/dist/_types/client/session/decorators/wallet.d.ts.map +0 -1
  518. package/dist/_types/client/utils/assertEip712Transaction.d.ts +0 -11
  519. package/dist/_types/client/utils/assertEip712Transaction.d.ts.map +0 -1
  520. package/dist/_types/client/utils/getEip712Domain.d.ts +0 -3
  521. package/dist/_types/client/utils/getEip712Domain.d.ts.map +0 -1
  522. package/dist/_types/client/utils/isEip712Transaction.d.ts +0 -4
  523. package/dist/_types/client/utils/isEip712Transaction.d.ts.map +0 -1
  524. package/dist/_types/paymaster/handlers/general.d.ts +0 -4
  525. package/dist/_types/paymaster/handlers/general.d.ts.map +0 -1
  526. package/dist/_types/paymaster/handlers/index.d.ts +0 -3
  527. package/dist/_types/paymaster/handlers/index.d.ts.map +0 -1
  528. package/dist/_types/paymaster/handlers/zyfi.d.ts +0 -18
  529. package/dist/_types/paymaster/handlers/zyfi.d.ts.map +0 -1
  530. package/dist/_types/paymaster/index.d.ts +0 -29
  531. package/dist/_types/paymaster/index.d.ts.map +0 -1
  532. package/dist/_types/utils/encoding.d.ts +0 -19
  533. package/dist/_types/utils/encoding.d.ts.map +0 -1
  534. package/dist/_types/utils/helpers.d.ts.map +0 -1
  535. package/dist/_types/utils/index.d.ts +0 -4
  536. package/dist/_types/utils/index.d.ts.map +0 -1
  537. package/dist/_types/utils/passkey.d.ts +0 -47
  538. package/dist/_types/utils/passkey.d.ts.map +0 -1
  539. package/dist/_types/utils/session.d.ts +0 -179
  540. package/dist/_types/utils/session.d.ts.map +0 -1
  541. package/dist/_types/utils/storage.d.ts.map +0 -1
  542. package/src/abi/GuardianRecoveryModule.ts +0 -763
  543. package/src/abi/GuardianRecoveryValidator.ts +0 -809
  544. package/src/abi/OidcKeyRegistry.ts +0 -488
  545. package/src/abi/OidcRecoveryValidator.ts +0 -646
  546. package/src/abi/SsoAccount.ts +0 -1350
  547. package/src/abi/WebAuthValidator.ts +0 -357
  548. package/src/client/ecdsa/actions/account.ts +0 -146
  549. package/src/client/ecdsa/decorators/ecdsa.ts +0 -32
  550. package/src/client/ecdsa/decorators/wallet.ts +0 -80
  551. package/src/client/ecdsa/types.ts +0 -108
  552. package/src/client/oidc/account.ts +0 -65
  553. package/src/client/oidc/actions/addNewPasskeyViaOidc.ts +0 -54
  554. package/src/client/oidc/actions/index.ts +0 -16
  555. package/src/client/oidc/client.ts +0 -122
  556. package/src/client/oidc/decorators/actions.ts +0 -5
  557. package/src/client/oidc/index.ts +0 -3
  558. package/src/client/oidc/serialize.ts +0 -10
  559. package/src/client/passkey/actions/account.ts +0 -241
  560. package/src/client/passkey/actions/passkey.ts +0 -208
  561. package/src/client/passkey/decorators/passkey.ts +0 -77
  562. package/src/client/passkey/decorators/wallet.ts +0 -79
  563. package/src/client/recovery/account.ts +0 -61
  564. package/src/client/recovery/actions/oidc.ts +0 -119
  565. package/src/client/recovery/actions/recovery.ts +0 -176
  566. package/src/client/recovery/actions/sendEip712Transaction.ts +0 -149
  567. package/src/client/recovery/client.ts +0 -102
  568. package/src/client/recovery/decorators/publicActionsRewrite.ts +0 -38
  569. package/src/client/recovery/decorators/recovery.ts +0 -22
  570. package/src/client/recovery/decorators/wallet.ts +0 -59
  571. package/src/client/recovery/index.ts +0 -2
  572. package/src/client/session/actions/sendEip712Transaction.ts +0 -149
  573. package/src/client/session/actions/session.ts +0 -204
  574. package/src/client/session/decorators/publicActionsRewrite.ts +0 -63
  575. package/src/client/session/decorators/wallet.ts +0 -143
  576. package/src/client/utils/assertEip712Transaction.ts +0 -49
  577. package/src/client/utils/getEip712Domain.ts +0 -84
  578. package/src/client/utils/isEip712Transaction.ts +0 -18
  579. package/src/paymaster/handlers/general.ts +0 -14
  580. package/src/paymaster/handlers/index.ts +0 -2
  581. package/src/paymaster/handlers/zyfi.ts +0 -108
  582. package/src/paymaster/index.ts +0 -76
  583. package/src/types/index.d.ts +0 -9
  584. package/src/utils/encoding.ts +0 -70
  585. package/src/utils/index.ts +0 -3
  586. package/src/utils/passkey.ts +0 -347
  587. package/src/utils/session.ts +0 -524
  588. /package/dist/_cjs/{utils → client-auth-server/utils}/helpers.js +0 -0
  589. /package/dist/_cjs/{utils → client-auth-server/utils}/storage.js +0 -0
  590. /package/dist/_esm/{utils → client-auth-server/utils}/helpers.js +0 -0
  591. /package/dist/_esm/{utils → client-auth-server/utils}/storage.js +0 -0
  592. /package/dist/_types/{utils → client-auth-server/utils}/helpers.d.ts +0 -0
  593. /package/dist/_types/{utils → client-auth-server/utils}/storage.d.ts +0 -0
  594. /package/src/{utils → client-auth-server/utils}/helpers.ts +0 -0
  595. /package/src/{utils → client-auth-server/utils}/storage.ts +0 -0
@@ -0,0 +1,444 @@
1
+ import type { Hex } from "viem";
2
+ import {
3
+ type Abi,
4
+ type AbiFunction,
5
+ type AbiStateMutability,
6
+ type Address,
7
+ type ContractFunctionArgs,
8
+ type ContractFunctionName,
9
+ encodeAbiParameters,
10
+ getAddress,
11
+ toFunctionSelector,
12
+ toHex,
13
+ } from "viem";
14
+
15
+ import {
16
+ type CallPolicy,
17
+ ConstraintCondition,
18
+ LimitType,
19
+ LimitUnlimited,
20
+ LimitZero,
21
+ type SessionSpec,
22
+ type TransferPolicy,
23
+ type UsageLimit,
24
+ } from "./types.js";
25
+
26
+ // ============================================================================
27
+ // Helper Types
28
+ // ============================================================================
29
+
30
+ /**
31
+ * Partial limit type for user-friendly session configuration
32
+ * Can be simplified bigint or full object with limitType
33
+ */
34
+ export type PartialLimit =
35
+ | bigint
36
+ | {
37
+ limit: bigint;
38
+ period?: string | bigint;
39
+ }
40
+ | {
41
+ limitType: "lifetime" | LimitType.Lifetime;
42
+ limit: bigint;
43
+ }
44
+ | {
45
+ limitType: "unlimited" | LimitType.Unlimited;
46
+ }
47
+ | {
48
+ limitType: "allowance" | LimitType.Allowance;
49
+ limit: bigint;
50
+ period: string | bigint;
51
+ };
52
+
53
+ /**
54
+ * Partial call policy for user-friendly configuration
55
+ */
56
+ export type PartialCallPolicy = {
57
+ address: Address;
58
+ abi: Abi;
59
+ functionName: string;
60
+ maxValuePerUse?: bigint;
61
+ valueLimit?: PartialLimit;
62
+ constraints?: {
63
+ index: number;
64
+ value?: unknown;
65
+ condition?: keyof typeof ConstraintCondition;
66
+ limit?: PartialLimit;
67
+ }[];
68
+ };
69
+
70
+ /**
71
+ * Partial transfer policy for user-friendly configuration
72
+ */
73
+ export type PartialTransferPolicy = {
74
+ to: Address;
75
+ maxValuePerUse?: bigint;
76
+ valueLimit?: PartialLimit;
77
+ };
78
+
79
+ /**
80
+ * User-friendly session preferences
81
+ * Simplified interface that gets converted to full SessionSpec
82
+ */
83
+ export interface SessionPreferences {
84
+ expiry?: string | bigint | Date;
85
+ feeLimit?: PartialLimit;
86
+ contractCalls?: PartialCallPolicy[];
87
+ transfers?: PartialTransferPolicy[];
88
+ }
89
+
90
+ // ============================================================================
91
+ // Type Utilities
92
+ // ============================================================================
93
+
94
+ type ContractWriteMutability = Extract<AbiStateMutability, "nonpayable" | "payable">;
95
+
96
+ // Helper type to convert string indices to numeric indices
97
+ type ToNumber<S extends string> = S extends `${infer N extends number}` ? N : never;
98
+
99
+ // Extract numeric keys as strings
100
+ type NumericKeys<T extends unknown[]> = Extract<keyof T, `${number}`>;
101
+
102
+ // Updated IndexedValues type with numeric indices
103
+ export type IndexedValues<T extends unknown[]> = Array<{
104
+ [K in NumericKeys<T>]: { index: ToNumber<K>; value?: T[K] };
105
+ }[NumericKeys<T>]>;
106
+
107
+ export interface TypesafePartialCallPolicy<
108
+ abi extends Abi,
109
+ functionName extends ContractFunctionName<abi, ContractWriteMutability>,
110
+ > extends PartialCallPolicy {
111
+ abi: abi;
112
+ functionName: functionName;
113
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
114
+ // @ts-ignore
115
+ constraints?: (IndexedValues<ContractFunctionArgs<abi, ContractWriteMutability, functionName>>[number] & {
116
+ condition?: keyof typeof ConstraintCondition;
117
+ limit?: PartialLimit;
118
+ })[];
119
+ }
120
+
121
+ // Typesafety helper function
122
+ export const callPolicy = <
123
+ abi extends Abi,
124
+ functionName extends ContractFunctionName<abi, ContractWriteMutability>,
125
+ >(
126
+ policy: TypesafePartialCallPolicy<abi, functionName>,
127
+ ): PartialCallPolicy => policy as PartialCallPolicy;
128
+
129
+ // ============================================================================
130
+ // Utility Functions
131
+ // ============================================================================
132
+
133
+ /**
134
+ * Convert ms string format (e.g. "1h", "24h", "7d") to seconds as bigint
135
+ * Supports formats: ms, s, m, h, d, w, y
136
+ */
137
+ export const msStringToSeconds = (value: string): bigint => {
138
+ const units: Record<string, number> = {
139
+ ms: 0.001,
140
+ s: 1,
141
+ m: 60,
142
+ h: 3600,
143
+ d: 86400,
144
+ w: 604800,
145
+ y: 31536000,
146
+ };
147
+
148
+ const match = value.match(/^(\d+(?:\.\d+)?)(ms|s|m|h|d|w|y)$/);
149
+ if (!match) {
150
+ throw new Error(`Invalid date format: ${value}. Expected format like "1h", "24h", "7d"`);
151
+ }
152
+
153
+ const [, numStr, unit] = match;
154
+ const num = parseFloat(numStr);
155
+ const seconds = num * units[unit];
156
+
157
+ if (seconds < 0) throw new Error(`Date can't be in the past: ${value}`);
158
+ if (seconds === 0) throw new Error(`Date can't be zero: ${value}`);
159
+
160
+ return BigInt(Math.floor(seconds));
161
+ };
162
+
163
+ const DYNAMIC_ABI_INPUT_TYPES = ["bytes", "string"];
164
+
165
+ export const isDynamicInputType = (inputType: string) => {
166
+ return inputType.endsWith("[]") || DYNAMIC_ABI_INPUT_TYPES.includes(inputType);
167
+ };
168
+
169
+ type AbiParameter = {
170
+ type: string;
171
+ name?: string;
172
+ components?: readonly AbiParameter[];
173
+ };
174
+
175
+ const includesDynamicInputType = (abiParameters: readonly AbiParameter[]): boolean => {
176
+ return abiParameters.some((input) => {
177
+ const isDynamicType = isDynamicInputType(input.type);
178
+ if (isDynamicType) return true;
179
+
180
+ if (input.type.startsWith("tuple")) {
181
+ const components = input.components;
182
+ if (!components) throw new Error("Tuple without components is unsupported");
183
+ return includesDynamicInputType(components);
184
+ }
185
+ return false;
186
+ });
187
+ };
188
+
189
+ export const isFollowedByDynamicInputType = (abiFunction: AbiFunction, targetInputIndex: number) => {
190
+ if (targetInputIndex >= abiFunction.inputs.length) {
191
+ throw new Error(`Input index ${targetInputIndex} is out of bounds`);
192
+ }
193
+
194
+ return includesDynamicInputType(abiFunction.inputs.slice(0, targetInputIndex));
195
+ };
196
+
197
+ export const encodedInputToAbiChunks = (encodedInput: string) => {
198
+ if (!encodedInput.startsWith("0x")) {
199
+ throw new Error("Input is not a valid hex string");
200
+ }
201
+ return (encodedInput.slice(2).match(/.{1,64}/g) || []).map((e) => `0x${e}`) as Hex[]; // 32 bytes abi chunks
202
+ };
203
+
204
+ const getDummyBytesValue = (type: string) => {
205
+ const size = parseInt(type.slice(5)) || 32;
206
+ return toHex("", { size });
207
+ };
208
+
209
+ // Function to generate dummy values for ABI types
210
+ const getDummyValue = (type: string) => {
211
+ if (type === "address") return "0x36615Cf349d7F6344891B1e7CA7C72883F5dc049" as Address;
212
+ if (type.startsWith("uint") || type.startsWith("int")) return 0n; // BigInt for numbers
213
+ if (type.startsWith("bytes")) return getDummyBytesValue(type); // Empty bytes
214
+ if (type === "bool") return false;
215
+ if (type === "string") return ""; // Empty string
216
+ throw new Error(`Unsupported ABI type: ${type}`);
217
+ };
218
+
219
+ function getArrayComponents(
220
+ type: string,
221
+ ): [length: number | null, innerType: string] | undefined {
222
+ const matches = type.match(/^(.*)\[(\d+)?\]$/);
223
+ return matches
224
+ ? [matches[2] ? Number(matches[2]) : null, matches[1]]
225
+ : undefined;
226
+ }
227
+
228
+ // Recursive function to fill dummy values for complex types like tuples
229
+ const getDummyValues = (inputs: readonly AbiParameter[]): unknown[] => {
230
+ return inputs.map((input) => {
231
+ const arrayComponents = getArrayComponents(input.type);
232
+ if (arrayComponents) {
233
+ // Recursively fill array components
234
+ const [length, innerType] = arrayComponents;
235
+ if (!length) throw new Error("Dynamic array length is unsupported");
236
+ const arrayValue = Array.from({ length }, () => getDummyValues([{
237
+ ...input,
238
+ type: innerType,
239
+ }]));
240
+ return arrayValue;
241
+ }
242
+ if (input.type.startsWith("tuple")) {
243
+ // Recursively fill tuple components
244
+ const components = input.components;
245
+ if (!components) throw new Error("Tuple without components is unsupported");
246
+ return getDummyValues(components);
247
+ }
248
+ return getDummyValue(input.type);
249
+ });
250
+ };
251
+
252
+ export const getParameterChunkIndex = (
253
+ abiFunction: AbiFunction,
254
+ targetInputIndex: number,
255
+ ): number => {
256
+ if (targetInputIndex >= abiFunction.inputs.length) {
257
+ throw new Error(`Input index ${targetInputIndex} is out of bounds`);
258
+ }
259
+
260
+ const inputs = abiFunction.inputs.slice(0, targetInputIndex);
261
+ const dummyValues = getDummyValues(inputs);
262
+ const encoded = encodeAbiParameters(inputs, dummyValues);
263
+ const chunks = encodedInputToAbiChunks(encoded);
264
+ const chunkIndex = chunks.length;
265
+
266
+ return chunkIndex;
267
+ };
268
+
269
+ // ============================================================================
270
+ // Format Functions
271
+ // ============================================================================
272
+
273
+ /**
274
+ * Format user-friendly limit preferences to full UsageLimit
275
+ */
276
+ export const formatLimitPreferences = (limit: PartialLimit): UsageLimit => {
277
+ /* Just bigint was passed */
278
+ if (typeof limit === "bigint") {
279
+ return {
280
+ limitType: LimitType.Lifetime,
281
+ limit,
282
+ period: 0n,
283
+ };
284
+ }
285
+
286
+ /* LimitType was specified */
287
+ if ("limitType" in limit) {
288
+ if (limit.limitType === "lifetime" || limit.limitType === LimitType.Lifetime) {
289
+ return {
290
+ limitType: LimitType.Lifetime,
291
+ limit: limit.limit,
292
+ period: 0n,
293
+ };
294
+ } else if (limit.limitType === "unlimited" || limit.limitType === LimitType.Unlimited) {
295
+ return {
296
+ limitType: LimitType.Unlimited,
297
+ limit: 0n,
298
+ period: 0n,
299
+ };
300
+ } else if (limit.limitType === "allowance" || limit.limitType === LimitType.Allowance) {
301
+ return {
302
+ limitType: LimitType.Allowance,
303
+ limit: limit.limit,
304
+ period: typeof limit.period === "string" ? msStringToSeconds(limit.period) : limit.period,
305
+ };
306
+ }
307
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
308
+ throw new Error(`Invalid limit type: ${(limit as any).limitType}`);
309
+ }
310
+
311
+ /* LimitType not selected */
312
+ if (limit.period) {
313
+ return {
314
+ limitType: LimitType.Allowance,
315
+ limit: limit.limit,
316
+ period: typeof limit.period === "string" ? msStringToSeconds(limit.period) : limit.period,
317
+ };
318
+ }
319
+ return {
320
+ limitType: LimitType.Lifetime,
321
+ limit: limit.limit,
322
+ period: 0n,
323
+ };
324
+ };
325
+
326
+ /**
327
+ * Format user-friendly date preferences to bigint timestamp
328
+ */
329
+ export const formatDatePreferences = (date: string | bigint | Date): bigint => {
330
+ if (typeof date === "string") {
331
+ const now = Math.floor(new Date().getTime() / 1000);
332
+ const seconds = msStringToSeconds(date);
333
+ return BigInt(now) + seconds;
334
+ }
335
+ if (date instanceof Date) {
336
+ const seconds = Math.floor(date.getTime() / 1000);
337
+ return BigInt(seconds);
338
+ }
339
+ return date;
340
+ };
341
+
342
+ /**
343
+ * Format user-friendly session preferences to full SessionSpec (without signer)
344
+ * @param preferences - User-friendly session configuration
345
+ * @param defaults - Default values for expiry and feeLimit if not specified
346
+ * @returns SessionSpec without the signer field (to be added separately)
347
+ */
348
+ export function formatSessionPreferences(
349
+ preferences: SessionPreferences,
350
+ defaults: {
351
+ expiresAt: bigint;
352
+ feeLimit: UsageLimit;
353
+ },
354
+ ): Omit<SessionSpec, "signer"> {
355
+ return {
356
+ expiresAt: preferences.expiry ? formatDatePreferences(preferences.expiry) : defaults.expiresAt,
357
+ feeLimit: preferences.feeLimit ? formatLimitPreferences(preferences.feeLimit) : defaults.feeLimit,
358
+ callPolicies: preferences.contractCalls?.map((policy) => {
359
+ const allowedStateMutability: ContractWriteMutability[] = ["nonpayable", "payable"];
360
+ const abiFunction = (policy.abi as Abi).find((fn) => fn.type === "function" && fn.name === policy.functionName && (allowedStateMutability as AbiStateMutability[]).includes(fn.stateMutability)) as AbiFunction;
361
+ if (!abiFunction) throw new Error(`Function not found in the provided ABI: ${policy.functionName}`);
362
+
363
+ const selector = toFunctionSelector(abiFunction);
364
+ const valueLimit = policy.valueLimit ? formatLimitPreferences(policy.valueLimit) : LimitZero;
365
+
366
+ return {
367
+ target: getAddress(policy.address.toLowerCase()),
368
+ maxValuePerUse: policy.maxValuePerUse ?? valueLimit.limit,
369
+ valueLimit,
370
+ selector: selector,
371
+ constraints: policy.constraints?.map((constraint) => {
372
+ const limit = constraint.limit ? formatLimitPreferences(constraint.limit) : LimitUnlimited;
373
+ let condition = ConstraintCondition.Unconstrained;
374
+ if (constraint.condition) {
375
+ condition = ConstraintCondition[constraint.condition];
376
+ } else if (constraint.value !== undefined && constraint.value !== null) {
377
+ condition = ConstraintCondition.Equal;
378
+ }
379
+
380
+ const input = abiFunction.inputs[constraint.index];
381
+ if (!input) {
382
+ throw new Error(`Target function parameter not found in the provided ABI function. Provided at function ${policy.functionName}, index ${constraint.index}`);
383
+ }
384
+
385
+ const isDynamicType = isDynamicInputType(input.type);
386
+ if (isDynamicType) {
387
+ throw new Error(`Function parameters with dynamic types are not supported for constraint validation. Provided at function ${policy.functionName}, index ${constraint.index}`);
388
+ }
389
+
390
+ const isFollowedByDynamicType = isFollowedByDynamicInputType(abiFunction, constraint.index);
391
+ if (isFollowedByDynamicType) {
392
+ throw new Error(`Target function parameter is followed by a dynamic type parameter. Provided at function ${policy.functionName}, index ${constraint.index}`);
393
+ }
394
+
395
+ const startingAbiChunkIndex = getParameterChunkIndex(abiFunction, constraint.index);
396
+ if (constraint.value === undefined || constraint.value === null) {
397
+ return {
398
+ index: BigInt(startingAbiChunkIndex),
399
+ condition: ConstraintCondition.Unconstrained,
400
+ refValue: toHex("", { size: 32 }),
401
+ limit,
402
+ };
403
+ }
404
+
405
+ const encodedInput = encodeAbiParameters([input], [constraint.value]);
406
+ const abiBytesChunks = encodedInputToAbiChunks(encodedInput);
407
+ const ALLOWED_OVERFLOW_CONDITIONS: ConstraintCondition[] = [
408
+ ConstraintCondition.Unconstrained,
409
+ ConstraintCondition.Equal,
410
+ ConstraintCondition.NotEqual,
411
+ ];
412
+ const ALLOWED_OVERFLOW_LIMIT_TYPES: LimitType[] = [
413
+ LimitType.Unlimited,
414
+ ];
415
+
416
+ if (
417
+ abiBytesChunks.length > 1
418
+ && (
419
+ !ALLOWED_OVERFLOW_CONDITIONS.includes(condition) // Can't validate condition (e.g. < >) if value is split across multiple chunks
420
+ || !ALLOWED_OVERFLOW_LIMIT_TYPES.includes(limit.limitType) // Can't validate limit if value is split across multiple chunks
421
+ )
422
+ ) {
423
+ throw new Error(`Encoded input size of parameter at index ${constraint.index} of ${policy.functionName} exceeds the maximum size of 32 bytes: ${abiBytesChunks.length * 32} bytes`);
424
+ };
425
+
426
+ return abiBytesChunks.map((abiChunk, index) => ({
427
+ index: BigInt(startingAbiChunkIndex + index),
428
+ condition,
429
+ refValue: abiChunk,
430
+ limit,
431
+ }));
432
+ }).flat() ?? [],
433
+ } as CallPolicy;
434
+ }) ?? [],
435
+ transferPolicies: preferences.transfers?.map((policy) => {
436
+ const valueLimit = policy.valueLimit ? formatLimitPreferences(policy.valueLimit) : LimitZero;
437
+ return {
438
+ target: getAddress(policy.to.toLowerCase()),
439
+ maxValuePerUse: policy.maxValuePerUse ?? valueLimit.limit,
440
+ valueLimit,
441
+ } as TransferPolicy;
442
+ }) ?? [],
443
+ };
444
+ }
@@ -1,2 +1,7 @@
1
1
  export * from "./account.js";
2
2
  export * from "./client.js";
3
+ export * from "./client-actions.js";
4
+ export * from "./formatSessionPreferences.js";
5
+ export * from "./monitor.js";
6
+ export * from "./types.js";
7
+ export * from "./utils.js";