zksync-sso 0.0.0-beta.8 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/dist/_cjs/abi/{Factory.js → AAFactory.js} +112 -63
  2. package/dist/_cjs/abi/AAFactory.js.map +1 -0
  3. package/dist/_cjs/abi/GuardianRecoveryModule.js +818 -0
  4. package/dist/_cjs/abi/GuardianRecoveryModule.js.map +1 -0
  5. package/dist/_cjs/abi/{SessionKeyModule.js → SessionKeyValidator.js} +251 -90
  6. package/dist/_cjs/abi/SessionKeyValidator.js.map +1 -0
  7. package/dist/_cjs/abi/WebAuthValidator.js +361 -0
  8. package/dist/_cjs/abi/WebAuthValidator.js.map +1 -0
  9. package/dist/_cjs/abi/index.js +9 -5
  10. package/dist/_cjs/abi/index.js.map +1 -1
  11. package/dist/_cjs/client/ecdsa/account.js +38 -0
  12. package/dist/_cjs/client/ecdsa/account.js.map +1 -0
  13. package/dist/_cjs/client/ecdsa/actions/account.js +83 -0
  14. package/dist/_cjs/client/ecdsa/actions/account.js.map +1 -0
  15. package/dist/_cjs/client/ecdsa/client.js +35 -0
  16. package/dist/_cjs/client/ecdsa/client.js.map +1 -0
  17. package/dist/_cjs/client/ecdsa/decorators/ecdsa.js +22 -0
  18. package/dist/_cjs/client/ecdsa/decorators/ecdsa.js.map +1 -0
  19. package/dist/_cjs/client/ecdsa/decorators/wallet.js +47 -0
  20. package/dist/_cjs/client/ecdsa/decorators/wallet.js.map +1 -0
  21. package/dist/_cjs/client/ecdsa/index.js +23 -0
  22. package/dist/_cjs/client/ecdsa/index.js.map +1 -0
  23. package/dist/_cjs/client/ecdsa/types.js +63 -0
  24. package/dist/_cjs/client/ecdsa/types.js.map +1 -0
  25. package/dist/_cjs/client/index.js +9 -4
  26. package/dist/_cjs/client/index.js.map +1 -1
  27. package/dist/_cjs/client/passkey/actions/account.js +35 -31
  28. package/dist/_cjs/client/passkey/actions/account.js.map +1 -1
  29. package/dist/_cjs/client/passkey/actions/passkey.js +26 -6
  30. package/dist/_cjs/client/passkey/actions/passkey.js.map +1 -1
  31. package/dist/_cjs/client/passkey/client.js +1 -1
  32. package/dist/_cjs/client/passkey/client.js.map +1 -1
  33. package/dist/_cjs/client/passkey/decorators/passkey.js +19 -0
  34. package/dist/_cjs/client/passkey/decorators/passkey.js.map +1 -1
  35. package/dist/_cjs/client/passkey/decorators/wallet.js +10 -2
  36. package/dist/_cjs/client/passkey/decorators/wallet.js.map +1 -1
  37. package/dist/_cjs/client/recovery/account.js +46 -0
  38. package/dist/_cjs/client/recovery/account.js.map +1 -0
  39. package/dist/_cjs/client/recovery/actions/recovery.js +114 -0
  40. package/dist/_cjs/client/recovery/actions/recovery.js.map +1 -0
  41. package/dist/_cjs/client/recovery/actions/sendEip712Transaction.js +45 -0
  42. package/dist/_cjs/client/recovery/actions/sendEip712Transaction.js.map +1 -0
  43. package/dist/_cjs/client/recovery/client.js +49 -0
  44. package/dist/_cjs/client/recovery/client.js.map +1 -0
  45. package/dist/_cjs/client/recovery/decorators/publicActionsRewrite.js +33 -0
  46. package/dist/_cjs/client/recovery/decorators/publicActionsRewrite.js.map +1 -0
  47. package/dist/_cjs/client/recovery/decorators/recovery.js +15 -0
  48. package/dist/_cjs/client/recovery/decorators/recovery.js.map +1 -0
  49. package/dist/_cjs/client/recovery/decorators/wallet.js +39 -0
  50. package/dist/_cjs/client/recovery/decorators/wallet.js.map +1 -0
  51. package/dist/_cjs/client/recovery/index.js +19 -0
  52. package/dist/_cjs/client/recovery/index.js.map +1 -0
  53. package/dist/_cjs/client/session/actions/session.js +8 -5
  54. package/dist/_cjs/client/session/actions/session.js.map +1 -1
  55. package/dist/_cjs/client/session/client.js +1 -0
  56. package/dist/_cjs/client/session/client.js.map +1 -1
  57. package/dist/_cjs/client/session/decorators/wallet.js +10 -2
  58. package/dist/_cjs/client/session/decorators/wallet.js.map +1 -1
  59. package/dist/_cjs/client-auth-server/Signer.js +21 -1
  60. package/dist/_cjs/client-auth-server/Signer.js.map +1 -1
  61. package/dist/_cjs/client-auth-server/WalletProvider.js +3 -1
  62. package/dist/_cjs/client-auth-server/WalletProvider.js.map +1 -1
  63. package/dist/_cjs/connector/index.js +2 -0
  64. package/dist/_cjs/connector/index.js.map +1 -1
  65. package/dist/_cjs/paymaster/handlers/general.js +13 -0
  66. package/dist/_cjs/paymaster/handlers/general.js.map +1 -0
  67. package/dist/_cjs/paymaster/handlers/index.js +19 -0
  68. package/dist/_cjs/paymaster/handlers/index.js.map +1 -0
  69. package/dist/_cjs/paymaster/handlers/zyfi.js +57 -0
  70. package/dist/_cjs/paymaster/handlers/zyfi.js.map +1 -0
  71. package/dist/_cjs/paymaster/index.js +54 -0
  72. package/dist/_cjs/paymaster/index.js.map +1 -0
  73. package/dist/_cjs/utils/encoding.js +6 -3
  74. package/dist/_cjs/utils/encoding.js.map +1 -1
  75. package/dist/_cjs/utils/passkey.js +4 -2
  76. package/dist/_cjs/utils/passkey.js.map +1 -1
  77. package/dist/_esm/abi/{Factory.js → AAFactory.js} +111 -62
  78. package/dist/_esm/abi/AAFactory.js.map +1 -0
  79. package/dist/_esm/abi/GuardianRecoveryModule.js +815 -0
  80. package/dist/_esm/abi/GuardianRecoveryModule.js.map +1 -0
  81. package/dist/_esm/abi/{SessionKeyModule.js → SessionKeyValidator.js} +250 -89
  82. package/dist/_esm/abi/SessionKeyValidator.js.map +1 -0
  83. package/dist/_esm/abi/WebAuthValidator.js +358 -0
  84. package/dist/_esm/abi/WebAuthValidator.js.map +1 -0
  85. package/dist/_esm/abi/index.js +4 -2
  86. package/dist/_esm/abi/index.js.map +1 -1
  87. package/dist/_esm/client/ecdsa/account.js +35 -0
  88. package/dist/_esm/client/ecdsa/account.js.map +1 -0
  89. package/dist/_esm/client/ecdsa/actions/account.js +81 -0
  90. package/dist/_esm/client/ecdsa/actions/account.js.map +1 -0
  91. package/dist/_esm/client/ecdsa/client.js +32 -0
  92. package/dist/_esm/client/ecdsa/client.js.map +1 -0
  93. package/dist/_esm/client/ecdsa/decorators/ecdsa.js +19 -0
  94. package/dist/_esm/client/ecdsa/decorators/ecdsa.js.map +1 -0
  95. package/dist/_esm/client/ecdsa/decorators/wallet.js +47 -0
  96. package/dist/_esm/client/ecdsa/decorators/wallet.js.map +1 -0
  97. package/dist/_esm/client/ecdsa/index.js +7 -0
  98. package/dist/_esm/client/ecdsa/index.js.map +1 -0
  99. package/dist/_esm/client/ecdsa/types.js +61 -0
  100. package/dist/_esm/client/ecdsa/types.js.map +1 -0
  101. package/dist/_esm/client/index.js +3 -0
  102. package/dist/_esm/client/index.js.map +1 -1
  103. package/dist/_esm/client/passkey/actions/account.js +37 -33
  104. package/dist/_esm/client/passkey/actions/account.js.map +1 -1
  105. package/dist/_esm/client/passkey/actions/passkey.js +29 -10
  106. package/dist/_esm/client/passkey/actions/passkey.js.map +1 -1
  107. package/dist/_esm/client/passkey/client.js +1 -1
  108. package/dist/_esm/client/passkey/client.js.map +1 -1
  109. package/dist/_esm/client/passkey/decorators/passkey.js +19 -0
  110. package/dist/_esm/client/passkey/decorators/passkey.js.map +1 -1
  111. package/dist/_esm/client/passkey/decorators/wallet.js +12 -3
  112. package/dist/_esm/client/passkey/decorators/wallet.js.map +1 -1
  113. package/dist/_esm/client/recovery/account.js +43 -0
  114. package/dist/_esm/client/recovery/account.js.map +1 -0
  115. package/dist/_esm/client/recovery/actions/recovery.js +111 -0
  116. package/dist/_esm/client/recovery/actions/recovery.js.map +1 -0
  117. package/dist/_esm/client/recovery/actions/sendEip712Transaction.js +93 -0
  118. package/dist/_esm/client/recovery/actions/sendEip712Transaction.js.map +1 -0
  119. package/dist/_esm/client/recovery/client.js +45 -0
  120. package/dist/_esm/client/recovery/client.js.map +1 -0
  121. package/dist/_esm/client/recovery/decorators/publicActionsRewrite.js +31 -0
  122. package/dist/_esm/client/recovery/decorators/publicActionsRewrite.js.map +1 -0
  123. package/dist/_esm/client/recovery/decorators/recovery.js +13 -0
  124. package/dist/_esm/client/recovery/decorators/recovery.js.map +1 -0
  125. package/dist/_esm/client/recovery/decorators/wallet.js +38 -0
  126. package/dist/_esm/client/recovery/decorators/wallet.js.map +1 -0
  127. package/dist/_esm/client/recovery/index.js +3 -0
  128. package/dist/_esm/client/recovery/index.js.map +1 -0
  129. package/dist/_esm/client/session/actions/session.js +8 -5
  130. package/dist/_esm/client/session/actions/session.js.map +1 -1
  131. package/dist/_esm/client/session/client.js +1 -0
  132. package/dist/_esm/client/session/client.js.map +1 -1
  133. package/dist/_esm/client/session/decorators/wallet.js +12 -4
  134. package/dist/_esm/client/session/decorators/wallet.js.map +1 -1
  135. package/dist/_esm/client-auth-server/Signer.js +22 -1
  136. package/dist/_esm/client-auth-server/Signer.js.map +1 -1
  137. package/dist/_esm/client-auth-server/WalletProvider.js +3 -1
  138. package/dist/_esm/client-auth-server/WalletProvider.js.map +1 -1
  139. package/dist/_esm/connector/index.js +2 -0
  140. package/dist/_esm/connector/index.js.map +1 -1
  141. package/dist/_esm/paymaster/handlers/general.js +11 -0
  142. package/dist/_esm/paymaster/handlers/general.js.map +1 -0
  143. package/dist/_esm/paymaster/handlers/index.js +3 -0
  144. package/dist/_esm/paymaster/handlers/index.js.map +1 -0
  145. package/dist/_esm/paymaster/handlers/zyfi.js +54 -0
  146. package/dist/_esm/paymaster/handlers/zyfi.js.map +1 -0
  147. package/dist/_esm/paymaster/index.js +37 -0
  148. package/dist/_esm/paymaster/index.js.map +1 -0
  149. package/dist/_esm/utils/encoding.js +7 -4
  150. package/dist/_esm/utils/encoding.js.map +1 -1
  151. package/dist/_esm/utils/passkey.js +5 -3
  152. package/dist/_esm/utils/passkey.js.map +1 -1
  153. package/dist/_types/abi/{Factory.d.ts → AAFactory.d.ts} +95 -58
  154. package/dist/_types/abi/AAFactory.d.ts.map +1 -0
  155. package/dist/_types/abi/GuardianRecoveryModule.d.ts +630 -0
  156. package/dist/_types/abi/GuardianRecoveryModule.d.ts.map +1 -0
  157. package/dist/_types/abi/{SessionKeyModule.d.ts → SessionKeyValidator.d.ts} +193 -75
  158. package/dist/_types/abi/{SessionKeyModule.d.ts.map → SessionKeyValidator.d.ts.map} +1 -1
  159. package/dist/_types/abi/WebAuthValidator.d.ts +277 -0
  160. package/dist/_types/abi/WebAuthValidator.d.ts.map +1 -0
  161. package/dist/_types/abi/index.d.ts +4 -2
  162. package/dist/_types/abi/index.d.ts.map +1 -1
  163. package/dist/_types/client/ecdsa/account.d.ts +14 -0
  164. package/dist/_types/client/ecdsa/account.d.ts.map +1 -0
  165. package/dist/_types/client/ecdsa/actions/account.d.ts +38 -0
  166. package/dist/_types/client/ecdsa/actions/account.d.ts.map +1 -0
  167. package/dist/_types/client/ecdsa/client.d.ts +25 -0
  168. package/dist/_types/client/ecdsa/client.d.ts.map +1 -0
  169. package/dist/_types/client/ecdsa/decorators/ecdsa.d.ts +16 -0
  170. package/dist/_types/client/ecdsa/decorators/ecdsa.d.ts.map +1 -0
  171. package/dist/_types/client/ecdsa/decorators/wallet.d.ts +5 -0
  172. package/dist/_types/client/ecdsa/decorators/wallet.d.ts.map +1 -0
  173. package/dist/_types/client/ecdsa/index.d.ts +7 -0
  174. package/dist/_types/client/ecdsa/index.d.ts.map +1 -0
  175. package/dist/_types/client/ecdsa/types.d.ts +10 -0
  176. package/dist/_types/client/ecdsa/types.d.ts.map +1 -0
  177. package/dist/_types/client/index.d.ts +3 -0
  178. package/dist/_types/client/index.d.ts.map +1 -1
  179. package/dist/_types/client/passkey/actions/account.d.ts +3 -1
  180. package/dist/_types/client/passkey/actions/account.d.ts.map +1 -1
  181. package/dist/_types/client/passkey/actions/passkey.d.ts +13 -4
  182. package/dist/_types/client/passkey/actions/passkey.d.ts.map +1 -1
  183. package/dist/_types/client/passkey/client.d.ts +3 -0
  184. package/dist/_types/client/passkey/client.d.ts.map +1 -1
  185. package/dist/_types/client/passkey/decorators/passkey.d.ts +4 -0
  186. package/dist/_types/client/passkey/decorators/passkey.d.ts.map +1 -1
  187. package/dist/_types/client/passkey/decorators/wallet.d.ts.map +1 -1
  188. package/dist/_types/client/recovery/account.d.ts +14 -0
  189. package/dist/_types/client/recovery/account.d.ts.map +1 -0
  190. package/dist/_types/client/recovery/actions/recovery.d.ts +50 -0
  191. package/dist/_types/client/recovery/actions/recovery.d.ts.map +1 -0
  192. package/dist/_types/client/recovery/actions/sendEip712Transaction.d.ts +60 -0
  193. package/dist/_types/client/recovery/actions/sendEip712Transaction.d.ts.map +1 -0
  194. package/dist/_types/client/recovery/client.d.ts +23 -0
  195. package/dist/_types/client/recovery/client.d.ts.map +1 -0
  196. package/dist/_types/client/recovery/decorators/publicActionsRewrite.d.ts +4 -0
  197. package/dist/_types/client/recovery/decorators/publicActionsRewrite.d.ts.map +1 -0
  198. package/dist/_types/client/recovery/decorators/recovery.d.ts +8 -0
  199. package/dist/_types/client/recovery/decorators/recovery.d.ts.map +1 -0
  200. package/dist/_types/client/recovery/decorators/wallet.d.ts +5 -0
  201. package/dist/_types/client/recovery/decorators/wallet.d.ts.map +1 -0
  202. package/dist/_types/client/recovery/index.d.ts +3 -0
  203. package/dist/_types/client/recovery/index.d.ts.map +1 -0
  204. package/dist/_types/client/session/actions/session.d.ts +3 -0
  205. package/dist/_types/client/session/actions/session.d.ts.map +1 -1
  206. package/dist/_types/client/session/client.d.ts +3 -0
  207. package/dist/_types/client/session/client.d.ts.map +1 -1
  208. package/dist/_types/client/session/decorators/wallet.d.ts.map +1 -1
  209. package/dist/_types/client-auth-server/Signer.d.ts +530 -527
  210. package/dist/_types/client-auth-server/Signer.d.ts.map +1 -1
  211. package/dist/_types/client-auth-server/WalletProvider.d.ts +529 -527
  212. package/dist/_types/client-auth-server/WalletProvider.d.ts.map +1 -1
  213. package/dist/_types/client-auth-server/interface.d.ts +1 -0
  214. package/dist/_types/client-auth-server/interface.d.ts.map +1 -1
  215. package/dist/_types/connector/index.d.ts +2 -0
  216. package/dist/_types/connector/index.d.ts.map +1 -1
  217. package/dist/_types/paymaster/handlers/general.d.ts +4 -0
  218. package/dist/_types/paymaster/handlers/general.d.ts.map +1 -0
  219. package/dist/_types/paymaster/handlers/index.d.ts +3 -0
  220. package/dist/_types/paymaster/handlers/index.d.ts.map +1 -0
  221. package/dist/_types/paymaster/handlers/zyfi.d.ts +18 -0
  222. package/dist/_types/paymaster/handlers/zyfi.d.ts.map +1 -0
  223. package/dist/_types/paymaster/index.d.ts +29 -0
  224. package/dist/_types/paymaster/index.d.ts.map +1 -0
  225. package/dist/_types/utils/encoding.d.ts +1 -0
  226. package/dist/_types/utils/encoding.d.ts.map +1 -1
  227. package/dist/_types/utils/passkey.d.ts +2 -2
  228. package/dist/_types/utils/passkey.d.ts.map +1 -1
  229. package/package.json +20 -3
  230. package/src/abi/{Factory.ts → AAFactory.ts} +110 -61
  231. package/src/abi/GuardianRecoveryModule.ts +814 -0
  232. package/src/abi/{SessionKeyModule.ts → SessionKeyValidator.ts} +249 -88
  233. package/src/abi/WebAuthValidator.ts +357 -0
  234. package/src/abi/index.ts +4 -2
  235. package/src/client/ecdsa/account.ts +56 -0
  236. package/src/client/ecdsa/actions/account.ts +145 -0
  237. package/src/client/ecdsa/client.ts +90 -0
  238. package/src/client/ecdsa/decorators/ecdsa.ts +32 -0
  239. package/src/client/ecdsa/decorators/wallet.ts +73 -0
  240. package/src/client/ecdsa/index.ts +6 -0
  241. package/src/client/ecdsa/types.ts +108 -0
  242. package/src/client/index.ts +3 -0
  243. package/src/client/passkey/actions/account.ts +43 -34
  244. package/src/client/passkey/actions/passkey.ts +46 -15
  245. package/src/client/passkey/client.ts +7 -1
  246. package/src/client/passkey/decorators/passkey.ts +26 -0
  247. package/src/client/passkey/decorators/wallet.ts +26 -5
  248. package/src/client/recovery/account.ts +61 -0
  249. package/src/client/recovery/actions/recovery.ts +176 -0
  250. package/src/client/recovery/actions/sendEip712Transaction.ts +149 -0
  251. package/src/client/recovery/client.ts +102 -0
  252. package/src/client/recovery/decorators/publicActionsRewrite.ts +38 -0
  253. package/src/client/recovery/decorators/recovery.ts +22 -0
  254. package/src/client/recovery/decorators/wallet.ts +52 -0
  255. package/src/client/recovery/index.ts +2 -0
  256. package/src/client/session/actions/session.ts +23 -5
  257. package/src/client/session/client.ts +4 -0
  258. package/src/client/session/decorators/wallet.ts +33 -7
  259. package/src/client-auth-server/Signer.ts +25 -1
  260. package/src/client-auth-server/WalletProvider.ts +5 -1
  261. package/src/client-auth-server/interface.ts +1 -0
  262. package/src/connector/index.ts +4 -0
  263. package/src/paymaster/handlers/general.ts +14 -0
  264. package/src/paymaster/handlers/index.ts +2 -0
  265. package/src/paymaster/handlers/zyfi.ts +108 -0
  266. package/src/paymaster/index.ts +76 -0
  267. package/src/utils/encoding.ts +8 -5
  268. package/src/utils/passkey.ts +6 -3
  269. package/dist/_cjs/abi/Factory.js.map +0 -1
  270. package/dist/_cjs/abi/SessionKeyModule.js.map +0 -1
  271. package/dist/_esm/abi/Factory.js.map +0 -1
  272. package/dist/_esm/abi/SessionKeyModule.js.map +0 -1
  273. package/dist/_types/abi/Factory.d.ts.map +0 -1
@@ -0,0 +1,61 @@
1
+ import { createWalletClient, custom, hashTypedData } from "viem";
2
+ import { toAccount } from "viem/accounts";
3
+ import { signTypedData } from "viem/actions";
4
+ import { getAction } from "viem/utils";
5
+ import { serializeTransaction } from "viem/zksync";
6
+ import { getEip712Domain } from "../utils/getEip712Domain.js";
7
+ export async function toOwner({ owner, address, }) {
8
+ if ("type" in owner && owner.type === "local") {
9
+ return owner;
10
+ }
11
+ let walletClient = undefined;
12
+ if ("request" in owner) {
13
+ if (!address) {
14
+ try {
15
+ [address] = await owner.request({
16
+ method: "eth_requestAccounts",
17
+ });
18
+ }
19
+ catch {
20
+ [address] = await owner.request({
21
+ method: "eth_accounts",
22
+ });
23
+ }
24
+ }
25
+ if (!address) {
26
+ // For TS to be happy
27
+ throw new Error("address is required");
28
+ }
29
+ walletClient = createWalletClient({
30
+ account: address,
31
+ transport: custom(owner),
32
+ });
33
+ }
34
+ if (!walletClient) {
35
+ walletClient = owner;
36
+ }
37
+ return toAccount({
38
+ address: walletClient.account.address,
39
+ async signMessage({ message }) {
40
+ return walletClient.signMessage({ message });
41
+ },
42
+ async signTransaction(transaction) {
43
+ const signableTransaction = {
44
+ ...transaction,
45
+ from: this.address,
46
+ type: "eip712",
47
+ };
48
+ const eip712DomainAndMessage = getEip712Domain(signableTransaction);
49
+ const digest = hashTypedData(eip712DomainAndMessage);
50
+ const signedMessage = await walletClient.signMessage({ message: digest });
51
+ return serializeTransaction({
52
+ ...signableTransaction,
53
+ customSignature: signedMessage,
54
+ });
55
+ },
56
+ async signTypedData(typedData) {
57
+ return getAction(walletClient, signTypedData, "signTypedData")(typedData);
58
+ },
59
+ });
60
+ }
61
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/client/ecdsa/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EAAE,MAAM,EAE1B,aAAa,EAIM,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAA4C,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAY9D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAoC,EAC/D,KAAK,EACL,OAAO,GAQR;IACC,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,KAAqB,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY,GAEA,SAAS,CAAC;IAE1B,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,CAAC,OAAO,CAAC,GAAG,MAAO,KAA0B,CAAC,OAAO,CAAC;oBACpD,MAAM,EAAE,qBAAqB;iBAC9B,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,CAAC,OAAO,CAAC,GAAG,MAAO,KAA0B,CAAC,OAAO,CAAC;oBACpD,MAAM,EAAE,cAAc;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,qBAAqB;YACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QACD,YAAY,GAAG,kBAAkB,CAAC;YAChC,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM,CAAC,KAAyB,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,KAId,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;QACf,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO;QACrC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YAC3B,OAAO,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,WAAW;YAC/B,MAAM,mBAAmB,GAAG;gBAC1B,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,CAAC,OAAQ;gBACnB,IAAI,EAAE,QAAQ;aACwB,CAAC;YAEzC,MAAM,sBAAsB,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAE1E,OAAO,oBAAoB,CAAC;gBAC1B,GAAG,mBAAmB;gBACtB,eAAe,EAAE,aAAa;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,SAAS;YAC3B,OAAO,SAAS,CACd,YAAY,EACZ,aAAa,EACb,eAAe,CAChB,CAAC,SAAgB,CAAC,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,6 @@
1
+ export { deployAccount as deployEcdsaAccount, fetchAccount as fetchEcdsaAccount } from "./ecdsa/actions/account.js";
1
2
  export { deployAccount, fetchAccount } from "./passkey/actions/account.js";
3
+ export * from "./recovery/actions/recovery.js";
4
+ export * from "./recovery/client.js";
2
5
  export * from "./session/client.js";
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC3E,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC3E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC"}
@@ -1,16 +1,14 @@
1
- import { getAddress, parseAbi, toHex } from "viem";
1
+ import { getAddress, keccak256, parseEventLogs, toHex } from "viem";
2
2
  import { readContract, waitForTransactionReceipt, writeContract } from "viem/actions";
3
3
  import { getGeneralPaymasterInput } from "viem/zksync";
4
- import { FactoryAbi } from "../../../abi/Factory.js";
4
+ import { AAFactoryAbi } from "../../../abi/AAFactory.js";
5
+ import { WebAuthValidatorAbi } from "../../../abi/WebAuthValidator.js";
5
6
  import { encodeModuleData, encodePasskeyModuleParameters, encodeSession } from "../../../utils/encoding.js";
6
7
  import { noThrow } from "../../../utils/helpers.js";
7
- import { getPasskeySignatureFromPublicKeyBytes, getPublicKeyBytesFromPasskeySignature } from "../../../utils/passkey.js";
8
+ import { base64UrlToUint8Array, getPasskeySignatureFromPublicKeyBytes, getPublicKeyBytesFromPasskeySignature } from "../../../utils/passkey.js";
8
9
  const NULL_ADDRESS = "0x0000000000000000000000000000000000000000";
9
10
  export const deployAccount = async (client, // Account deployer (any viem client)
10
11
  args) => {
11
- if (!args.salt) {
12
- args.salt = crypto.getRandomValues(new Uint8Array(32));
13
- }
14
12
  let origin = args.expectedOrigin;
15
13
  if (!origin) {
16
14
  try {
@@ -22,6 +20,7 @@ args) => {
22
20
  }
23
21
  const passkeyPublicKey = getPublicKeyBytesFromPasskeySignature(args.credentialPublicKey);
24
22
  const encodedPasskeyParameters = encodePasskeyModuleParameters({
23
+ credentialId: args.credentialId,
25
24
  passkeyPublicKey,
26
25
  expectedOrigin: origin,
27
26
  });
@@ -34,16 +33,19 @@ args) => {
34
33
  address: args.contracts.session,
35
34
  parameters: args.initialSession ? encodeSession(args.initialSession) : "0x",
36
35
  });
36
+ const encodedGuardianRecoveryModuleData = encodeModuleData({
37
+ address: args.contracts.recovery,
38
+ parameters: "0x",
39
+ });
37
40
  let deployProxyArgs = {
38
41
  account: client.account,
39
42
  chain: client.chain,
40
43
  address: args.contracts.accountFactory,
41
- abi: FactoryAbi,
44
+ abi: AAFactoryAbi,
42
45
  functionName: "deployProxySsoAccount",
43
46
  args: [
44
- toHex(args.salt),
45
- accountId,
46
- [encodedPasskeyModuleData, encodedSessionKeyModuleData],
47
+ keccak256(toHex(accountId)),
48
+ [encodedPasskeyModuleData, encodedSessionKeyModuleData, encodedGuardianRecoveryModuleData],
47
49
  [],
48
50
  ],
49
51
  };
@@ -61,12 +63,21 @@ args) => {
61
63
  const transactionReceipt = await waitForTransactionReceipt(client, { hash: transactionHash });
62
64
  if (transactionReceipt.status !== "success")
63
65
  throw new Error("Account deployment transaction reverted");
64
- const proxyAccountAddress = transactionReceipt.contractAddress;
65
- if (!proxyAccountAddress) {
66
- throw new Error("No contract address in transaction receipt");
67
- }
66
+ const getAccountId = () => {
67
+ if (transactionReceipt.contractAddress) {
68
+ return transactionReceipt.contractAddress;
69
+ }
70
+ const accountCreatedEvent = parseEventLogs({ abi: AAFactoryAbi, logs: transactionReceipt.logs })
71
+ .find((log) => log && log.eventName === "AccountCreated");
72
+ if (!accountCreatedEvent) {
73
+ throw new Error("No contract address in transaction receipt");
74
+ }
75
+ const { accountAddress } = accountCreatedEvent.args;
76
+ return accountAddress;
77
+ };
78
+ const accountAddress = getAccountId();
68
79
  return {
69
- address: getAddress(proxyAccountAddress),
80
+ address: getAddress(accountAddress),
70
81
  transactionReceipt: transactionReceipt,
71
82
  };
72
83
  };
@@ -81,8 +92,6 @@ args) => {
81
92
  throw new Error("Can't identify expectedOrigin, please provide it manually");
82
93
  }
83
94
  }
84
- if (!args.contracts.accountFactory)
85
- throw new Error("Account factory address is not set");
86
95
  if (!args.contracts.passkey)
87
96
  throw new Error("Passkey module address is not set");
88
97
  let username = args.uniqueAccountId;
@@ -104,29 +113,24 @@ args) => {
104
113
  }
105
114
  if (!username)
106
115
  throw new Error("No account found");
116
+ const credentialId = toHex(base64UrlToUint8Array(username));
107
117
  const accountAddress = await readContract(client, {
108
- abi: parseAbi(["function accountMappings(string) view returns (address)"]),
109
- address: args.contracts.accountFactory,
110
- functionName: "accountMappings",
111
- args: [username],
118
+ abi: WebAuthValidatorAbi,
119
+ address: args.contracts.passkey,
120
+ functionName: "registeredAddress",
121
+ args: [origin, credentialId],
112
122
  });
113
123
  if (!accountAddress || accountAddress == NULL_ADDRESS)
114
124
  throw new Error(`No account found for username: ${username}`);
115
- const lowerKeyHalfBytes = await readContract(client, {
116
- abi: parseAbi(["function lowerKeyHalf(string,address) view returns (bytes32)"]),
117
- address: args.contracts.passkey,
118
- functionName: "lowerKeyHalf",
119
- args: [origin, accountAddress],
120
- });
121
- const upperKeyHalfBytes = await readContract(client, {
122
- abi: parseAbi(["function upperKeyHalf(string,address) view returns (bytes32)"]),
125
+ const publicKey = await readContract(client, {
126
+ abi: WebAuthValidatorAbi,
123
127
  address: args.contracts.passkey,
124
- functionName: "upperKeyHalf",
125
- args: [origin, accountAddress],
128
+ functionName: "getAccountKey",
129
+ args: [origin, credentialId, accountAddress],
126
130
  });
127
- if (!lowerKeyHalfBytes || !upperKeyHalfBytes)
131
+ if (!publicKey || !publicKey[0] || !publicKey[1])
128
132
  throw new Error(`Passkey credentials not found in on-chain module for passkey ${username}`);
129
- const passkeyPublicKey = getPasskeySignatureFromPublicKeyBytes([lowerKeyHalfBytes, upperKeyHalfBytes]);
133
+ const passkeyPublicKey = getPasskeySignatureFromPublicKeyBytes(publicKey);
130
134
  return {
131
135
  username,
132
136
  address: accountAddress,
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../../../src/client/passkey/actions/account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../../../src/client/passkey/actions/account.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import { startAuthentication, startRegistration } from "@simplewebauthn/browser";
2
2
  import { generateAuthenticationOptions, generateRegistrationOptions, verifyAuthenticationResponse, verifyRegistrationResponse } from "@simplewebauthn/server";
3
3
  import {} from "@simplewebauthn/types";
4
- import { toBytes } from "viem";
5
- import { writeContract } from "viem/actions";
4
+ import { encodeFunctionData, toBytes, toHex } from "viem";
5
+ import { waitForTransactionReceipt } from "viem/actions";
6
+ import { getGeneralPaymasterInput, sendTransaction } from "viem/zksync";
7
+ import { WebAuthValidatorAbi } from "../../../abi/WebAuthValidator.js";
8
+ import { noThrow } from "../../../utils/helpers.js";
9
+ import { base64UrlToUint8Array } from "../../../utils/passkey.js";
6
10
  const identifyPasskeyParams = () => {
7
11
  let rpName;
8
12
  let rpID;
@@ -110,14 +114,29 @@ export const requestPasskeyAuthentication = async (args) => {
110
114
  };
111
115
  };
112
116
  export const addAccountOwnerPasskey = async (client, args) => {
113
- /* TODO: Implement set owner passkey */
114
- const transactionHash = await writeContract(client, {
115
- address: args.contracts.session,
116
- args: [args.passkeyPublicKey],
117
- abi: [],
118
- functionName: "USE_ACTUAL_METHOD_HERE",
119
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
117
+ const callData = encodeFunctionData({
118
+ abi: WebAuthValidatorAbi,
119
+ functionName: "addValidationKey",
120
+ args: [toHex(base64UrlToUint8Array(args.credentialId)), args.rawPublicKey, args.origin],
120
121
  });
121
- return transactionHash;
122
+ const sendTransactionArgs = {
123
+ account: client.account,
124
+ to: args.contracts.passkey,
125
+ paymaster: args.paymaster?.address,
126
+ paymasterInput: args.paymaster?.address ? (args.paymaster?.paymasterInput || getGeneralPaymasterInput({ innerInput: "0x" })) : undefined,
127
+ data: callData,
128
+ gas: 10000000n, // TODO: Remove when gas estimation is fixed
129
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
+ };
131
+ const transactionHash = await sendTransaction(client, sendTransactionArgs);
132
+ if (args.onTransactionSent) {
133
+ noThrow(() => args.onTransactionSent?.(transactionHash));
134
+ }
135
+ const transactionReceipt = await waitForTransactionReceipt(client, { hash: transactionHash });
136
+ if (transactionReceipt.status !== "success")
137
+ throw new Error("addValidationKey transaction reverted");
138
+ return {
139
+ transactionReceipt,
140
+ };
122
141
  };
123
142
  //# sourceMappingURL=passkey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../../../../src/client/passkey/actions/passkey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../../../../src/client/passkey/actions/passkey.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export function createZksyncPasskeyClient(_parameters) {
19
19
  challenge: hash,
20
20
  credentialPublicKey: parameters.credentialPublicKey,
21
21
  });
22
- return passkeyHashSignatureResponseFormat(passkeySignature.passkeyAuthenticationResponse.response, parameters.contracts);
22
+ return passkeyHashSignatureResponseFormat(passkeySignature.passkeyAuthenticationResponse.id, passkeySignature.passkeyAuthenticationResponse.response, parameters.contracts);
23
23
  },
24
24
  });
25
25
  const client = createClient({
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/passkey/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,YAAY,EAAE,UAAU,EAAqC,aAAa,EAA4E,aAAa,EAAiD,MAAM,MAAM,CAAC;AAC/R,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAgC,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE,MAAM,UAAU,yBAAyB,CAIvC,WAAsE;IAEtE,MAAM,UAAU,GAGZ;QACF,GAAG,WAAW;QACd,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,2BAA2B;QACnD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,2BAA2B;KACtD,CAAC;IAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACvB,MAAM,gBAAgB,GAAG,MAAM,4BAA4B,CAAC;gBAC1D,SAAS,EAAE,IAAI;gBACf,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;aACpD,CAAC,CAAC;YAEH,OAAO,kCAAkC,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3H,CAAC;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,YAAY,CAAuC;QAChE,GAAG,UAAU;QACb,OAAO;QACP,IAAI,EAAE,cAAc;KACrB,CAAC;SACC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACb,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;QACnD,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC,CAAC;SACF,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,mBAAmB,EAAE,CAAC;SAC7B,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/passkey/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,YAAY,EAAE,UAAU,EAAqC,aAAa,EAA4E,aAAa,EAAiD,MAAM,MAAM,CAAC;AAC/R,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAgC,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE,MAAM,UAAU,yBAAyB,CAIvC,WAAsE;IAEtE,MAAM,UAAU,GAGZ;QACF,GAAG,WAAW;QACd,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,2BAA2B;QACnD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,2BAA2B;KACtD,CAAC;IAEF,MAAM,OAAO,GAAG,gBAAgB,CAAC;QAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACvB,MAAM,gBAAgB,GAAG,MAAM,4BAA4B,CAAC;gBAC1D,SAAS,EAAE,IAAI;gBACf,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;aACpD,CAAC,CAAC;YAEH,OAAO,kCAAkC,CACvC,gBAAgB,CAAC,6BAA6B,CAAC,EAAE,EACjD,gBAAgB,CAAC,6BAA6B,CAAC,QAAQ,EACvD,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,YAAY,CAAuC;QAChE,GAAG,UAAU;QACb,OAAO;QACP,IAAI,EAAE,cAAc;KACrB,CAAC;SACC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACb,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;QACnD,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC,CAAC;SACF,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,aAAa,CAAC;SACrB,MAAM,CAAC,mBAAmB,EAAE,CAAC;SAC7B,MAAM,CAAC,uBAAuB,CAAC;SAC/B,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import {} from "viem";
2
+ import { confirmGuardian, proposeGuardian, removeGuardian, } from "../../recovery/actions/recovery.js";
2
3
  import { createSession, revokeSession, } from "../../session/actions/session.js";
3
4
  export function zksyncSsoPasskeyActions(client) {
4
5
  return {
@@ -14,6 +15,24 @@ export function zksyncSsoPasskeyActions(client) {
14
15
  contracts: client.contracts,
15
16
  });
16
17
  },
18
+ proposeGuardian: async (args) => {
19
+ return await proposeGuardian(client, {
20
+ ...args,
21
+ contracts: client.contracts,
22
+ });
23
+ },
24
+ confirmGuardian: async (args) => {
25
+ return await confirmGuardian(client, {
26
+ ...args,
27
+ contracts: client.contracts,
28
+ });
29
+ },
30
+ removeGuardian: async (args) => {
31
+ return await removeGuardian(client, {
32
+ ...args,
33
+ contracts: client.contracts,
34
+ });
35
+ },
17
36
  };
18
37
  }
19
38
  //# sourceMappingURL=passkey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../../../../src/client/passkey/decorators/passkey.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,MAAM,CAAC;AAElD,OAAO,EACL,aAAa,EACb,aAAa,GACd,MAAM,kCAAkC,CAAC;AAQ1C,MAAM,UAAU,uBAAuB,CAGrC,MAAwD;IACxD,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,IAA0C,EAAE,EAAE;YAClE,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE;gBACjC,GAAG,IAAI;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,IAA0C,EAAE,EAAE;YAClE,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE;gBACjC,GAAG,IAAI;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"passkey.js","sourceRoot":"","sources":["../../../../../src/client/passkey/decorators/passkey.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,MAAM,CAAC;AAElD,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,aAAa,GACd,MAAM,kCAAkC,CAAC;AAW1C,MAAM,UAAU,uBAAuB,CAGrC,MAAwD;IACxD,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,IAA0C,EAAE,EAAE;YAClE,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE;gBACjC,GAAG,IAAI;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,IAA0C,EAAE,EAAE;YAClE,OAAO,MAAM,aAAa,CAAC,MAAM,EAAE;gBACjC,GAAG,IAAI;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,IAA4C,EAAE,EAAE;YACtE,OAAO,MAAM,eAAe,CAAC,MAAM,EAAE;gBACnC,GAAG,IAAI;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,IAA4C,EAAE,EAAE;YACtE,OAAO,MAAM,eAAe,CAAC,MAAM,EAAE;gBACnC,GAAG,IAAI;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,IAA2C,EAAE,EAAE;YACpE,OAAO,MAAM,cAAc,CAAC,MAAM,EAAE;gBAClC,GAAG,IAAI;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { bytesToHex, formatTransaction } from "viem";
2
2
  import { deployContract, getAddresses, getChainId, sendRawTransaction, signMessage, signTypedData, writeContract } from "viem/actions";
3
3
  import { signTransaction } from "viem/zksync";
4
+ import { getTransactionWithPaymasterData } from "../../../paymaster/index.js";
4
5
  import { sendEip712Transaction } from "../../session/actions/sendEip712Transaction.js";
5
6
  export function zksyncSsoPasskeyWalletActions(client) {
6
7
  return {
@@ -20,17 +21,25 @@ export function zksyncSsoPasskeyWalletActions(client) {
20
21
  unformattedTx.paymasterInput = eip712Meta.paymasterParams?.paymasterInput ? bytesToHex(new Uint8Array(eip712Meta.paymasterParams?.paymasterInput)) : undefined;
21
22
  delete unformattedTx.eip712Meta;
22
23
  }
24
+ /* eslint-disable @typescript-eslint/no-unused-vars */
25
+ const { chainId: _, ...unformattedTxWithPaymaster } = await getTransactionWithPaymasterData(client.chain.id, client.account.address, unformattedTx, client.paymasterHandler);
23
26
  const formatters = client.chain?.formatters;
24
27
  const format = formatters?.transaction?.format || formatTransaction;
25
28
  const tx = {
26
- ...format(unformattedTx),
29
+ ...format(unformattedTxWithPaymaster),
27
30
  type: "eip712",
28
31
  };
29
32
  return await sendEip712Transaction(client, tx);
30
33
  },
31
34
  signMessage: (args) => signMessage(client, args),
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
- signTransaction: (args) => signTransaction(client, args),
35
+ signTransaction: async (args) => {
36
+ /* eslint-disable @typescript-eslint/no-unused-vars */
37
+ const { chainId: _, ...unformattedTxWithPaymaster } = await getTransactionWithPaymasterData(client.chain.id, client.account.address, args, client.paymasterHandler);
38
+ return signTransaction(client, {
39
+ ...args,
40
+ unformattedTxWithPaymaster,
41
+ });
42
+ },
34
43
  signTypedData: (args) => signTypedData(client, args),
35
44
  writeContract: (args) => writeContract(client, args),
36
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../../src/client/passkey/decorators/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAc,iBAAiB,EAAsC,MAAM,MAAM,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvI,OAAO,EAAE,eAAe,EAAyB,MAAM,aAAa,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAOvF,MAAM,UAAU,6BAA6B,CAI3C,MAAwD;IACxD,OAAO;QACL,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;QACtD,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;QACxC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QACpC,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC9B,8DAA8D;YAC9D,MAAM,aAAa,GAAQ,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAEnD,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,aAAa,CAAC,UAA8B,CAAC;gBAChE,aAAa,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtG,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBACnD,aAAa,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;gBAC3D,aAAa,CAAC,SAAS,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC;gBAChE,aAAa,CAAC,cAAc,GAAG,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/J,OAAO,aAAa,CAAC,UAAU,CAAC;YAClC,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,iBAAiB,CAAC;YAEpE,MAAM,EAAE,GAAG;gBACT,GAAG,MAAM,CAAC,aAAa,CAAC;gBACxB,IAAI,EAAE,QAAQ;aACf,CAAC;YAEF,OAAO,MAAM,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;QAChD,8DAA8D;QAC9D,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAW,CAAC;QAC/D,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;QACpD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;KACrD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../../../src/client/passkey/decorators/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAiC,iBAAiB,EAA2D,MAAM,MAAM,CAAC;AAC3J,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvI,OAAO,EAAE,eAAe,EAAwD,MAAM,aAAa,CAAC;AAEpG,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAOvF,MAAM,UAAU,6BAA6B,CAI3C,MAAwD;IACxD,OAAO;QACL,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;QACtD,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;QACxC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QACpC,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC9B,8DAA8D;YAC9D,MAAM,aAAa,GAAQ,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAEnD,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,aAAa,CAAC,UAA8B,CAAC;gBAChE,aAAa,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtG,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;gBACnD,aAAa,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;gBAC3D,aAAa,CAAC,SAAS,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC;gBAChE,aAAa,CAAC,cAAc,GAAG,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/J,OAAO,aAAa,CAAC,UAAU,CAAC;YAClC,CAAC;YAED,sDAAsD;YACtD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,0BAA0B,EAAE,GAAG,MAAM,+BAA+B,CACzF,MAAM,CAAC,KAAK,CAAC,EAAE,EACf,MAAM,CAAC,OAAO,CAAC,OAAO,EACtB,aAAa,EACb,MAAM,CAAC,gBAAgB,CACxB,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,iBAAiB,CAAC;YAEpE,MAAM,EAAE,GAAG;gBACT,GAAG,MAAM,CAAC,0BAA0D,CAAC;gBACrE,IAAI,EAAE,QAAQ;aACf,CAAC;YAEF,OAAO,MAAM,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;QAEhD,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC9B,sDAAsD;YACtD,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,0BAA0B,EAAE,GAAG,MAAM,+BAA+B,CACzF,MAAM,CAAC,KAAK,CAAC,EAAE,EACf,MAAM,CAAC,OAAO,CAAC,OAAO,EACtB,IAAgC,EAChC,MAAM,CAAC,gBAAgB,CACxB,CAAC;YACF,OAAO,eAAe,CAAC,MAAM,EAAE;gBAC7B,GAAG,IAAI;gBACP,0BAA0B;aACpB,CAAC,CAAC;QACZ,CAAC;QACD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;QACpD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;KACrD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { hashMessage, hashTypedData } from "viem";
2
+ import { toAccount } from "viem/accounts";
3
+ import { serializeTransaction } from "viem/zksync";
4
+ import { getEip712Domain } from "../utils/getEip712Domain.js";
5
+ export function toRecoveryAccount(parameters) {
6
+ const { address, signTransaction } = parameters;
7
+ const account = toAccount({
8
+ address,
9
+ async signTransaction(transaction) {
10
+ const signableTransaction = {
11
+ ...transaction,
12
+ from: this.address,
13
+ type: "eip712",
14
+ };
15
+ const eip712DomainAndMessage = getEip712Domain(signableTransaction);
16
+ const digest = hashTypedData(eip712DomainAndMessage);
17
+ return serializeTransaction({
18
+ ...signableTransaction,
19
+ customSignature: await signTransaction({
20
+ hash: digest,
21
+ }),
22
+ });
23
+ },
24
+ async sign({ hash }) {
25
+ return signTransaction({ hash });
26
+ },
27
+ async signMessage({ message }) {
28
+ return signTransaction({
29
+ hash: hashMessage(message),
30
+ });
31
+ },
32
+ async signTypedData(typedData) {
33
+ return signTransaction({
34
+ hash: hashTypedData(typedData),
35
+ });
36
+ },
37
+ });
38
+ return {
39
+ ...account,
40
+ source: "ssoRecoveryAccount",
41
+ };
42
+ }
43
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../../src/client/recovery/account.ts"],"names":[],"mappings":"AACA,OAAO,EAAgC,WAAW,EAAE,aAAa,EAA+B,MAAM,MAAM,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAA4C,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAY9D,MAAM,UAAU,iBAAiB,CAC/B,UAAuC;IAEvC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;IAEhD,MAAM,OAAO,GAAG,SAAS,CAAC;QACxB,OAAO;QACP,KAAK,CAAC,eAAe,CAAC,WAAW;YAC/B,MAAM,mBAAmB,GAAG;gBAC1B,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,CAAC,OAAQ;gBACnB,IAAI,EAAE,QAAQ;aACwB,CAAC;YAEzC,MAAM,sBAAsB,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;YAErD,OAAO,oBAAoB,CAAC;gBAC1B,GAAG,mBAAmB;gBACtB,eAAe,EAAE,MAAM,eAAe,CAAC;oBACrC,IAAI,EAAE,MAAM;iBACb,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;YACjB,OAAO,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YAC3B,OAAO,eAAe,CAAC;gBACrB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,SAAS;YAC3B,OAAO,eAAe,CAAC;gBACrB,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,OAAO;QACV,MAAM,EAAE,oBAAoB;KACV,CAAC;AACvB,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { encodeFunctionData, keccak256, toHex } from "viem";
2
+ import { waitForTransactionReceipt } from "viem/actions";
3
+ import { getGeneralPaymasterInput, sendTransaction } from "viem/zksync";
4
+ import { GuardianRecoveryModuleAbi } from "../../../abi/GuardianRecoveryModule.js";
5
+ import { noThrow } from "../../../utils/helpers.js";
6
+ export const proposeGuardian = async (client, args) => {
7
+ let origin = args.origin;
8
+ if (!origin) {
9
+ try {
10
+ origin = window.location.origin;
11
+ }
12
+ catch {
13
+ throw new Error("Can't identify expectedOrigin, please provide it manually");
14
+ }
15
+ }
16
+ const callData = encodeFunctionData({
17
+ abi: GuardianRecoveryModuleAbi,
18
+ functionName: "proposeGuardian",
19
+ args: [keccak256(toHex(origin)), args.newGuardian],
20
+ });
21
+ const sendTransactionArgs = {
22
+ account: client.account,
23
+ to: args.contracts.recovery,
24
+ paymaster: args.paymaster?.address,
25
+ paymasterInput: args.paymaster?.address ? (args.paymaster?.paymasterInput || getGeneralPaymasterInput({ innerInput: "0x" })) : undefined,
26
+ data: callData,
27
+ gas: 10000000n, // TODO: Remove when gas estimation is fixed
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ };
30
+ const transactionHash = await sendTransaction(client, sendTransactionArgs);
31
+ if (args.onTransactionSent) {
32
+ noThrow(() => args.onTransactionSent?.(transactionHash));
33
+ }
34
+ const transactionReceipt = await waitForTransactionReceipt(client, { hash: transactionHash });
35
+ if (transactionReceipt.status !== "success")
36
+ throw new Error("proposeGuardian transaction reverted");
37
+ return {
38
+ transactionReceipt,
39
+ };
40
+ };
41
+ export const confirmGuardian = async (client, args) => {
42
+ let origin = args.origin;
43
+ if (!origin) {
44
+ try {
45
+ origin = window.location.origin;
46
+ }
47
+ catch {
48
+ throw new Error("Can't identify expectedOrigin, please provide it manually");
49
+ }
50
+ }
51
+ const callData = encodeFunctionData({
52
+ abi: GuardianRecoveryModuleAbi,
53
+ functionName: "addGuardian",
54
+ args: [keccak256(toHex(origin)), args.accountToGuard],
55
+ });
56
+ const sendTransactionArgs = {
57
+ account: client.account,
58
+ to: args.contracts.recovery,
59
+ paymaster: args.paymaster?.address,
60
+ paymasterInput: args.paymaster?.address ? (args.paymaster?.paymasterInput || getGeneralPaymasterInput({ innerInput: "0x" })) : undefined,
61
+ data: callData,
62
+ gas: 10000000n, // TODO: Remove when gas estimation is fixed
63
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
+ };
65
+ const transactionHash = await sendTransaction(client, sendTransactionArgs);
66
+ if (args.onTransactionSent) {
67
+ noThrow(() => args.onTransactionSent?.(transactionHash));
68
+ }
69
+ const transactionReceipt = await waitForTransactionReceipt(client, { hash: transactionHash });
70
+ if (transactionReceipt.status !== "success")
71
+ throw new Error("confirmGuardian transaction reverted");
72
+ return {
73
+ transactionReceipt,
74
+ };
75
+ };
76
+ export const removeGuardian = async (client, args) => {
77
+ let origin = args.origin;
78
+ if (!origin) {
79
+ try {
80
+ origin = window.location.origin;
81
+ }
82
+ catch {
83
+ throw new Error("Can't identify expectedOrigin, please provide it manually");
84
+ }
85
+ }
86
+ const callData = encodeFunctionData({
87
+ abi: GuardianRecoveryModuleAbi,
88
+ functionName: "removeGuardian",
89
+ args: [keccak256(toHex(origin)), args.guardian],
90
+ });
91
+ const sendTransactionArgs = {
92
+ account: client.account,
93
+ to: args.contracts.recovery,
94
+ paymaster: args.paymaster?.address,
95
+ paymasterInput: args.paymaster?.address ? (args.paymaster?.paymasterInput || getGeneralPaymasterInput({ innerInput: "0x" })) : undefined,
96
+ data: callData,
97
+ gas: 10000000n, // TODO: Remove when gas estimation is fixed
98
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
+ };
100
+ const transactionHash = await sendTransaction(client, sendTransactionArgs);
101
+ if (args.onTransactionSent) {
102
+ noThrow(() => args.onTransactionSent?.(transactionHash));
103
+ }
104
+ const transactionReceipt = await waitForTransactionReceipt(client, { hash: transactionHash });
105
+ if (transactionReceipt.status !== "success")
106
+ throw new Error("removeGuardian transaction reverted");
107
+ return {
108
+ transactionReceipt,
109
+ };
110
+ };
111
+ //# sourceMappingURL=recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../../../src/client/recovery/actions/recovery.ts"],"names":[],"mappings":"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"}