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.
- package/dist/_cjs/abi/SessionKeyValidator.js +729 -993
- package/dist/_cjs/abi/SessionKeyValidator.js.map +1 -1
- package/dist/_cjs/abi/{WebAuthValidator.js → WebAuthnValidator.js} +273 -306
- package/dist/_cjs/abi/WebAuthnValidator.js.map +1 -0
- package/dist/_cjs/abi/index.js +17 -15
- package/dist/_cjs/abi/index.js.map +1 -1
- package/dist/_cjs/actions/sendUserOperation.js +14 -0
- package/dist/_cjs/actions/sendUserOperation.js.map +1 -0
- package/dist/_cjs/client/actions/deploy.js +53 -0
- package/dist/_cjs/client/actions/deploy.js.map +1 -0
- package/dist/_cjs/client/actions/index.js +22 -0
- package/dist/_cjs/client/actions/index.js.map +1 -0
- package/dist/_cjs/client/actions/modules.js +42 -0
- package/dist/_cjs/client/actions/modules.js.map +1 -0
- package/dist/_cjs/client/actions/passkey.js +89 -0
- package/dist/_cjs/client/actions/passkey.js.map +1 -0
- package/dist/_cjs/client/actions/sessions.js +178 -0
- package/dist/_cjs/client/actions/sessions.js.map +1 -0
- package/dist/_cjs/client/actions/utils.js +8 -0
- package/dist/_cjs/client/actions/utils.js.map +1 -0
- package/dist/_cjs/client/common/smart-account-client-actions.js +173 -0
- package/dist/_cjs/client/common/smart-account-client-actions.js.map +1 -0
- package/dist/_cjs/client/ecdsa/account.js +75 -30
- package/dist/_cjs/client/ecdsa/account.js.map +1 -1
- package/dist/_cjs/client/ecdsa/client-actions.js +14 -0
- package/dist/_cjs/client/ecdsa/client-actions.js.map +1 -0
- package/dist/_cjs/client/ecdsa/client.js +29 -23
- package/dist/_cjs/client/ecdsa/client.js.map +1 -1
- package/dist/_cjs/client/ecdsa/index.js +5 -5
- package/dist/_cjs/client/ecdsa/index.js.map +1 -1
- package/dist/_cjs/client/index.js +7 -82
- package/dist/_cjs/client/index.js.map +1 -1
- package/dist/_cjs/client/passkey/account.js +88 -33
- package/dist/_cjs/client/passkey/account.js.map +1 -1
- package/dist/_cjs/client/passkey/client-actions.js +42 -0
- package/dist/_cjs/client/passkey/client-actions.js.map +1 -0
- package/dist/_cjs/client/passkey/client.js +32 -41
- package/dist/_cjs/client/passkey/client.js.map +1 -1
- package/dist/_cjs/client/passkey/index.js +14 -18
- package/dist/_cjs/client/passkey/index.js.map +1 -1
- package/dist/_cjs/client/passkey/webauthn.js +381 -0
- package/dist/_cjs/client/passkey/webauthn.js.map +1 -0
- package/dist/_cjs/client/session/account.js +91 -34
- package/dist/_cjs/client/session/account.js.map +1 -1
- package/dist/_cjs/client/session/client-actions.js +19 -0
- package/dist/_cjs/client/session/client-actions.js.map +1 -0
- package/dist/_cjs/client/session/client.js +29 -83
- package/dist/_cjs/client/session/client.js.map +1 -1
- package/dist/_cjs/client/session/formatSessionPreferences.js +263 -0
- package/dist/_cjs/client/session/formatSessionPreferences.js.map +1 -0
- package/dist/_cjs/client/session/index.js +5 -0
- package/dist/_cjs/client/session/index.js.map +1 -1
- package/dist/_cjs/client/session/monitor.js +138 -0
- package/dist/_cjs/client/session/monitor.js.map +1 -0
- package/dist/_cjs/client/session/types.js +83 -0
- package/dist/_cjs/client/session/types.js.map +1 -0
- package/dist/_cjs/client/session/utils.js +95 -0
- package/dist/_cjs/client/session/utils.js.map +1 -0
- package/dist/_cjs/client-auth-server/Signer.js +67 -43
- package/dist/_cjs/client-auth-server/Signer.js.map +1 -1
- package/dist/_cjs/client-auth-server/WalletProvider.js +6 -7
- package/dist/_cjs/client-auth-server/WalletProvider.js.map +1 -1
- package/dist/_cjs/client-auth-server/session/index.js +36 -21
- package/dist/_cjs/client-auth-server/session/index.js.map +1 -1
- package/dist/_cjs/client-auth-server/session/utils.js.map +1 -1
- package/dist/_cjs/client-auth-server/utils/helpers.js.map +1 -0
- package/dist/_cjs/{client/recovery → client-auth-server/utils}/index.js +2 -2
- package/dist/_cjs/client-auth-server/utils/index.js.map +1 -0
- package/dist/_cjs/client-auth-server/utils/storage.js.map +1 -0
- package/dist/_cjs/connector/index.js +92 -13
- package/dist/_cjs/connector/index.js.map +1 -1
- package/dist/_cjs/index.js +19 -3
- package/dist/_cjs/index.js.map +1 -1
- package/dist/_esm/abi/SessionKeyValidator.js +729 -993
- package/dist/_esm/abi/SessionKeyValidator.js.map +1 -1
- package/dist/_esm/abi/{WebAuthValidator.js → WebAuthnValidator.js} +272 -305
- package/dist/_esm/abi/WebAuthnValidator.js.map +1 -0
- package/dist/_esm/abi/index.js +3 -7
- package/dist/_esm/abi/index.js.map +1 -1
- package/dist/_esm/actions/sendUserOperation.js +26 -0
- package/dist/_esm/actions/sendUserOperation.js.map +1 -0
- package/dist/_esm/client/actions/deploy.js +114 -0
- package/dist/_esm/client/actions/deploy.js.map +1 -0
- package/dist/_esm/client/actions/index.js +7 -0
- package/dist/_esm/client/actions/index.js.map +1 -0
- package/dist/_esm/client/actions/modules.js +75 -0
- package/dist/_esm/client/actions/modules.js.map +1 -0
- package/dist/_esm/client/actions/passkey.js +200 -0
- package/dist/_esm/client/actions/passkey.js.map +1 -0
- package/dist/_esm/client/actions/sessions.js +279 -0
- package/dist/_esm/client/actions/sessions.js.map +1 -0
- package/dist/_esm/client/actions/utils.js +27 -0
- package/dist/_esm/client/actions/utils.js.map +1 -0
- package/dist/_esm/client/common/smart-account-client-actions.js +209 -0
- package/dist/_esm/client/common/smart-account-client-actions.js.map +1 -0
- package/dist/_esm/client/ecdsa/account.js +91 -29
- package/dist/_esm/client/ecdsa/account.js.map +1 -1
- package/dist/_esm/client/ecdsa/client-actions.js +16 -0
- package/dist/_esm/client/ecdsa/client-actions.js.map +1 -0
- package/dist/_esm/client/ecdsa/client.js +90 -23
- package/dist/_esm/client/ecdsa/client.js.map +1 -1
- package/dist/_esm/client/ecdsa/index.js +2 -5
- package/dist/_esm/client/ecdsa/index.js.map +1 -1
- package/dist/_esm/client/index.js +6 -77
- package/dist/_esm/client/index.js.map +1 -1
- package/dist/_esm/client/passkey/account.js +118 -32
- package/dist/_esm/client/passkey/account.js.map +1 -1
- package/dist/_esm/client/passkey/client-actions.js +51 -0
- package/dist/_esm/client/passkey/client-actions.js.map +1 -0
- package/dist/_esm/client/passkey/client.js +99 -42
- package/dist/_esm/client/passkey/client.js.map +1 -1
- package/dist/_esm/client/passkey/index.js +4 -4
- package/dist/_esm/client/passkey/index.js.map +1 -1
- package/dist/_esm/client/passkey/webauthn.js +493 -0
- package/dist/_esm/client/passkey/webauthn.js.map +1 -0
- package/dist/_esm/client/session/account.js +114 -33
- package/dist/_esm/client/session/account.js.map +1 -1
- package/dist/_esm/client/session/client-actions.js +20 -0
- package/dist/_esm/client/session/client-actions.js.map +1 -0
- package/dist/_esm/client/session/client.js +34 -84
- package/dist/_esm/client/session/client.js.map +1 -1
- package/dist/_esm/client/session/formatSessionPreferences.js +283 -0
- package/dist/_esm/client/session/formatSessionPreferences.js.map +1 -0
- package/dist/_esm/client/session/index.js +5 -0
- package/dist/_esm/client/session/index.js.map +1 -1
- package/dist/_esm/client/session/monitor.js +195 -0
- package/dist/_esm/client/session/monitor.js.map +1 -0
- package/dist/_esm/client/session/types.js +110 -0
- package/dist/_esm/client/session/types.js.map +1 -0
- package/dist/_esm/client/session/utils.js +115 -0
- package/dist/_esm/client/session/utils.js.map +1 -0
- package/dist/_esm/client-auth-server/Signer.js +84 -43
- package/dist/_esm/client-auth-server/Signer.js.map +1 -1
- package/dist/_esm/client-auth-server/WalletProvider.js +6 -5
- package/dist/_esm/client-auth-server/WalletProvider.js.map +1 -1
- package/dist/_esm/client-auth-server/session/index.js +2 -1
- package/dist/_esm/client-auth-server/session/index.js.map +1 -1
- package/dist/_esm/client-auth-server/session/utils.js.map +1 -1
- package/dist/_esm/client-auth-server/utils/helpers.js.map +1 -0
- package/dist/_esm/client-auth-server/utils/index.js +3 -0
- package/dist/_esm/client-auth-server/utils/index.js.map +1 -0
- package/dist/_esm/client-auth-server/utils/storage.js.map +1 -0
- package/dist/_esm/connector/index.js +105 -11
- package/dist/_esm/connector/index.js.map +1 -1
- package/dist/_esm/index.js +9 -1
- package/dist/_esm/index.js.map +1 -1
- package/dist/_types/abi/SessionKeyValidator.d.ts +612 -602
- package/dist/_types/abi/SessionKeyValidator.d.ts.map +1 -1
- package/dist/_types/abi/{WebAuthValidator.d.ts → WebAuthnValidator.d.ts} +234 -186
- package/dist/_types/abi/WebAuthnValidator.d.ts.map +1 -0
- package/dist/_types/abi/index.d.ts +3 -7
- package/dist/_types/abi/index.d.ts.map +1 -1
- package/dist/_types/actions/sendUserOperation.d.ts +49 -0
- package/dist/_types/actions/sendUserOperation.d.ts.map +1 -0
- package/dist/_types/client/actions/deploy.d.ts +108 -0
- package/dist/_types/client/actions/deploy.d.ts.map +1 -0
- package/dist/_types/client/actions/index.d.ts +10 -0
- package/dist/_types/client/actions/index.d.ts.map +1 -0
- package/dist/_types/client/actions/modules.d.ts +65 -0
- package/dist/_types/client/actions/modules.d.ts.map +1 -0
- package/dist/_types/client/actions/passkey.d.ts +192 -0
- package/dist/_types/client/actions/passkey.d.ts.map +1 -0
- package/dist/_types/client/actions/sessions.d.ts +225 -0
- package/dist/_types/client/actions/sessions.d.ts.map +1 -0
- package/dist/_types/client/actions/utils.d.ts +25 -0
- package/dist/_types/client/actions/utils.d.ts.map +1 -0
- package/dist/_types/client/common/smart-account-client-actions.d.ts +50 -0
- package/dist/_types/client/common/smart-account-client-actions.d.ts.map +1 -0
- package/dist/_types/client/ecdsa/account.d.ts +16 -11
- package/dist/_types/client/ecdsa/account.d.ts.map +1 -1
- package/dist/_types/client/ecdsa/client-actions.d.ts +25 -0
- package/dist/_types/client/ecdsa/client-actions.d.ts.map +1 -0
- package/dist/_types/client/ecdsa/client.d.ts +92 -22
- package/dist/_types/client/ecdsa/client.d.ts.map +1 -1
- package/dist/_types/client/ecdsa/index.d.ts +2 -5
- package/dist/_types/client/ecdsa/index.d.ts.map +1 -1
- package/dist/_types/client/index.d.ts +7 -31
- package/dist/_types/client/index.d.ts.map +1 -1
- package/dist/_types/client/passkey/account.d.ts +22 -15
- package/dist/_types/client/passkey/account.d.ts.map +1 -1
- package/dist/_types/client/passkey/client-actions.d.ts +54 -0
- package/dist/_types/client/passkey/client-actions.d.ts.map +1 -0
- package/dist/_types/client/passkey/client.d.ts +103 -32
- package/dist/_types/client/passkey/client.d.ts.map +1 -1
- package/dist/_types/client/passkey/index.d.ts +4 -4
- package/dist/_types/client/passkey/index.d.ts.map +1 -1
- package/dist/_types/client/passkey/webauthn.d.ts +123 -0
- package/dist/_types/client/passkey/webauthn.d.ts.map +1 -0
- package/dist/_types/client/session/account.d.ts +26 -13
- package/dist/_types/client/session/account.d.ts.map +1 -1
- package/dist/_types/client/session/client-actions.d.ts +26 -0
- package/dist/_types/client/session/client-actions.d.ts.map +1 -0
- package/dist/_types/client/session/client.d.ts +38 -36
- package/dist/_types/client/session/client.d.ts.map +1 -1
- package/dist/_types/client/session/formatSessionPreferences.d.ts +101 -0
- package/dist/_types/client/session/formatSessionPreferences.d.ts.map +1 -0
- package/dist/_types/client/session/index.d.ts +5 -0
- package/dist/_types/client/session/index.d.ts.map +1 -1
- package/dist/_types/client/session/monitor.d.ts +93 -0
- package/dist/_types/client/session/monitor.d.ts.map +1 -0
- package/dist/_types/client/session/types.d.ts +133 -0
- package/dist/_types/client/session/types.d.ts.map +1 -0
- package/dist/_types/client/session/utils.d.ts +47 -0
- package/dist/_types/client/session/utils.d.ts.map +1 -0
- package/dist/_types/client-auth-server/Signer.d.ts +241 -245
- package/dist/_types/client-auth-server/Signer.d.ts.map +1 -1
- package/dist/_types/client-auth-server/WalletProvider.d.ts +236 -241
- package/dist/_types/client-auth-server/WalletProvider.d.ts.map +1 -1
- package/dist/_types/client-auth-server/interface.d.ts +2 -2
- package/dist/_types/client-auth-server/interface.d.ts.map +1 -1
- package/dist/_types/client-auth-server/rpc.d.ts +4 -0
- package/dist/_types/client-auth-server/rpc.d.ts.map +1 -1
- package/dist/_types/client-auth-server/session/index.d.ts +5 -4
- package/dist/_types/client-auth-server/session/index.d.ts.map +1 -1
- package/dist/_types/client-auth-server/session/utils.d.ts +3 -3
- package/dist/_types/client-auth-server/session/utils.d.ts.map +1 -1
- package/dist/_types/client-auth-server/utils/helpers.d.ts.map +1 -0
- package/dist/_types/client-auth-server/utils/index.d.ts +3 -0
- package/dist/_types/client-auth-server/utils/index.d.ts.map +1 -0
- package/dist/_types/client-auth-server/utils/storage.d.ts.map +1 -0
- package/dist/_types/communicator/interface.d.ts +5 -0
- package/dist/_types/communicator/interface.d.ts.map +1 -1
- package/dist/_types/connector/index.d.ts +11 -9
- package/dist/_types/connector/index.d.ts.map +1 -1
- package/dist/_types/index.d.ts +5 -3
- package/dist/_types/index.d.ts.map +1 -1
- package/package.json +36 -55
- package/prepare-package.mjs +8 -0
- package/project.json +7 -7
- package/src/abi/SessionKeyValidator.ts +861 -1125
- package/src/abi/WebAuthnValidator.ts +324 -0
- package/src/abi/index.ts +3 -7
- package/src/actions/sendUserOperation.ts +98 -0
- package/src/client/actions/deploy.ts +225 -0
- package/src/client/actions/index.ts +39 -0
- package/src/client/actions/modules.ts +112 -0
- package/src/client/actions/passkey.ts +344 -0
- package/src/client/actions/sessions.ts +457 -0
- package/src/client/actions/utils.ts +30 -0
- package/src/client/common/smart-account-client-actions.ts +317 -0
- package/src/client/ecdsa/account.ts +146 -42
- package/src/client/ecdsa/client-actions.ts +54 -0
- package/src/client/ecdsa/client.ts +177 -75
- package/src/client/ecdsa/index.ts +9 -5
- package/src/client/index.ts +10 -122
- package/src/client/passkey/account.ts +180 -55
- package/src/client/passkey/client-actions.ts +117 -0
- package/src/client/passkey/client.ts +194 -108
- package/src/client/passkey/index.ts +21 -4
- package/src/client/passkey/webauthn.ts +638 -0
- package/src/client/session/account.ts +211 -46
- package/src/client/session/client-actions.ts +62 -0
- package/src/client/session/client.ts +121 -160
- package/src/client/session/formatSessionPreferences.ts +444 -0
- package/src/client/session/index.ts +5 -0
- package/src/client/session/monitor.ts +292 -0
- package/src/client/session/types.ts +205 -0
- package/src/client/session/utils.ts +160 -0
- package/src/client-auth-server/Signer.ts +91 -41
- package/src/client-auth-server/WalletProvider.ts +12 -11
- package/src/client-auth-server/interface.ts +2 -2
- package/src/client-auth-server/rpc.ts +4 -0
- package/src/client-auth-server/session/index.ts +6 -4
- package/src/client-auth-server/session/utils.ts +4 -4
- package/src/client-auth-server/utils/index.ts +2 -0
- package/src/communicator/interface.ts +6 -0
- package/src/connector/index.ts +137 -24
- package/src/index.ts +12 -3
- package/tsconfig.json +1 -1
- package/dist/_cjs/abi/GuardianRecoveryModule.js +0 -767
- package/dist/_cjs/abi/GuardianRecoveryModule.js.map +0 -1
- package/dist/_cjs/abi/GuardianRecoveryValidator.js +0 -813
- package/dist/_cjs/abi/GuardianRecoveryValidator.js.map +0 -1
- package/dist/_cjs/abi/OidcKeyRegistry.js +0 -492
- package/dist/_cjs/abi/OidcKeyRegistry.js.map +0 -1
- package/dist/_cjs/abi/OidcRecoveryValidator.js +0 -650
- package/dist/_cjs/abi/OidcRecoveryValidator.js.map +0 -1
- package/dist/_cjs/abi/SsoAccount.js +0 -1354
- package/dist/_cjs/abi/SsoAccount.js.map +0 -1
- package/dist/_cjs/abi/WebAuthValidator.js.map +0 -1
- package/dist/_cjs/client/ecdsa/actions/account.js +0 -83
- package/dist/_cjs/client/ecdsa/actions/account.js.map +0 -1
- package/dist/_cjs/client/ecdsa/decorators/ecdsa.js +0 -22
- package/dist/_cjs/client/ecdsa/decorators/ecdsa.js.map +0 -1
- package/dist/_cjs/client/ecdsa/decorators/wallet.js +0 -53
- package/dist/_cjs/client/ecdsa/decorators/wallet.js.map +0 -1
- package/dist/_cjs/client/ecdsa/types.js +0 -63
- package/dist/_cjs/client/ecdsa/types.js.map +0 -1
- package/dist/_cjs/client/oidc/account.js +0 -43
- package/dist/_cjs/client/oidc/account.js.map +0 -1
- package/dist/_cjs/client/oidc/actions/addNewPasskeyViaOidc.js +0 -28
- package/dist/_cjs/client/oidc/actions/addNewPasskeyViaOidc.js.map +0 -1
- package/dist/_cjs/client/oidc/actions/index.js +0 -12
- package/dist/_cjs/client/oidc/actions/index.js.map +0 -1
- package/dist/_cjs/client/oidc/client.js +0 -46
- package/dist/_cjs/client/oidc/client.js.map +0 -1
- package/dist/_cjs/client/oidc/decorators/actions.js +0 -3
- package/dist/_cjs/client/oidc/decorators/actions.js.map +0 -1
- package/dist/_cjs/client/oidc/index.js +0 -20
- package/dist/_cjs/client/oidc/index.js.map +0 -1
- package/dist/_cjs/client/oidc/serialize.js +0 -3
- package/dist/_cjs/client/oidc/serialize.js.map +0 -1
- package/dist/_cjs/client/passkey/actions/account.js +0 -169
- package/dist/_cjs/client/passkey/actions/account.js.map +0 -1
- package/dist/_cjs/client/passkey/actions/passkey.js +0 -151
- package/dist/_cjs/client/passkey/actions/passkey.js.map +0 -1
- package/dist/_cjs/client/passkey/decorators/passkey.js +0 -52
- package/dist/_cjs/client/passkey/decorators/passkey.js.map +0 -1
- package/dist/_cjs/client/passkey/decorators/wallet.js +0 -54
- package/dist/_cjs/client/passkey/decorators/wallet.js.map +0 -1
- package/dist/_cjs/client/recovery/account.js +0 -46
- package/dist/_cjs/client/recovery/account.js.map +0 -1
- package/dist/_cjs/client/recovery/actions/oidc.js +0 -69
- package/dist/_cjs/client/recovery/actions/oidc.js.map +0 -1
- package/dist/_cjs/client/recovery/actions/recovery.js +0 -114
- package/dist/_cjs/client/recovery/actions/recovery.js.map +0 -1
- package/dist/_cjs/client/recovery/actions/sendEip712Transaction.js +0 -45
- package/dist/_cjs/client/recovery/actions/sendEip712Transaction.js.map +0 -1
- package/dist/_cjs/client/recovery/client.js +0 -49
- package/dist/_cjs/client/recovery/client.js.map +0 -1
- package/dist/_cjs/client/recovery/decorators/publicActionsRewrite.js +0 -33
- package/dist/_cjs/client/recovery/decorators/publicActionsRewrite.js.map +0 -1
- package/dist/_cjs/client/recovery/decorators/recovery.js +0 -15
- package/dist/_cjs/client/recovery/decorators/recovery.js.map +0 -1
- package/dist/_cjs/client/recovery/decorators/wallet.js +0 -46
- package/dist/_cjs/client/recovery/decorators/wallet.js.map +0 -1
- package/dist/_cjs/client/recovery/index.js.map +0 -1
- package/dist/_cjs/client/session/actions/sendEip712Transaction.js +0 -45
- package/dist/_cjs/client/session/actions/sendEip712Transaction.js.map +0 -1
- package/dist/_cjs/client/session/actions/session.js +0 -116
- package/dist/_cjs/client/session/actions/session.js.map +0 -1
- package/dist/_cjs/client/session/decorators/publicActionsRewrite.js +0 -58
- package/dist/_cjs/client/session/decorators/publicActionsRewrite.js.map +0 -1
- package/dist/_cjs/client/session/decorators/wallet.js +0 -93
- package/dist/_cjs/client/session/decorators/wallet.js.map +0 -1
- package/dist/_cjs/client/utils/assertEip712Transaction.js +0 -44
- package/dist/_cjs/client/utils/assertEip712Transaction.js.map +0 -1
- package/dist/_cjs/client/utils/getEip712Domain.js +0 -57
- package/dist/_cjs/client/utils/getEip712Domain.js.map +0 -1
- package/dist/_cjs/client/utils/isEip712Transaction.js +0 -16
- package/dist/_cjs/client/utils/isEip712Transaction.js.map +0 -1
- package/dist/_cjs/paymaster/handlers/general.js +0 -13
- package/dist/_cjs/paymaster/handlers/general.js.map +0 -1
- package/dist/_cjs/paymaster/handlers/index.js +0 -19
- package/dist/_cjs/paymaster/handlers/index.js.map +0 -1
- package/dist/_cjs/paymaster/handlers/zyfi.js +0 -57
- package/dist/_cjs/paymaster/handlers/zyfi.js.map +0 -1
- package/dist/_cjs/paymaster/index.js +0 -54
- package/dist/_cjs/paymaster/index.js.map +0 -1
- package/dist/_cjs/utils/encoding.js +0 -56
- package/dist/_cjs/utils/encoding.js.map +0 -1
- package/dist/_cjs/utils/helpers.js.map +0 -1
- package/dist/_cjs/utils/index.js +0 -20
- package/dist/_cjs/utils/index.js.map +0 -1
- package/dist/_cjs/utils/passkey.js +0 -245
- package/dist/_cjs/utils/passkey.js.map +0 -1
- package/dist/_cjs/utils/session.js +0 -346
- package/dist/_cjs/utils/session.js.map +0 -1
- package/dist/_cjs/utils/storage.js.map +0 -1
- package/dist/_esm/abi/GuardianRecoveryModule.js +0 -764
- package/dist/_esm/abi/GuardianRecoveryModule.js.map +0 -1
- package/dist/_esm/abi/GuardianRecoveryValidator.js +0 -810
- package/dist/_esm/abi/GuardianRecoveryValidator.js.map +0 -1
- package/dist/_esm/abi/OidcKeyRegistry.js +0 -489
- package/dist/_esm/abi/OidcKeyRegistry.js.map +0 -1
- package/dist/_esm/abi/OidcRecoveryValidator.js +0 -647
- package/dist/_esm/abi/OidcRecoveryValidator.js.map +0 -1
- package/dist/_esm/abi/SsoAccount.js +0 -1351
- package/dist/_esm/abi/SsoAccount.js.map +0 -1
- package/dist/_esm/abi/WebAuthValidator.js.map +0 -1
- package/dist/_esm/client/ecdsa/actions/account.js +0 -82
- package/dist/_esm/client/ecdsa/actions/account.js.map +0 -1
- package/dist/_esm/client/ecdsa/decorators/ecdsa.js +0 -19
- package/dist/_esm/client/ecdsa/decorators/ecdsa.js.map +0 -1
- package/dist/_esm/client/ecdsa/decorators/wallet.js +0 -54
- package/dist/_esm/client/ecdsa/decorators/wallet.js.map +0 -1
- package/dist/_esm/client/ecdsa/types.js +0 -61
- package/dist/_esm/client/ecdsa/types.js.map +0 -1
- package/dist/_esm/client/oidc/account.js +0 -40
- package/dist/_esm/client/oidc/account.js.map +0 -1
- package/dist/_esm/client/oidc/actions/addNewPasskeyViaOidc.js +0 -26
- package/dist/_esm/client/oidc/actions/addNewPasskeyViaOidc.js.map +0 -1
- package/dist/_esm/client/oidc/actions/index.js +0 -9
- package/dist/_esm/client/oidc/actions/index.js.map +0 -1
- package/dist/_esm/client/oidc/client.js +0 -41
- package/dist/_esm/client/oidc/client.js.map +0 -1
- package/dist/_esm/client/oidc/decorators/actions.js +0 -2
- package/dist/_esm/client/oidc/decorators/actions.js.map +0 -1
- package/dist/_esm/client/oidc/index.js +0 -4
- package/dist/_esm/client/oidc/index.js.map +0 -1
- package/dist/_esm/client/oidc/serialize.js +0 -2
- package/dist/_esm/client/oidc/serialize.js.map +0 -1
- package/dist/_esm/client/passkey/actions/account.js +0 -165
- package/dist/_esm/client/passkey/actions/account.js.map +0 -1
- package/dist/_esm/client/passkey/actions/passkey.js +0 -148
- package/dist/_esm/client/passkey/actions/passkey.js.map +0 -1
- package/dist/_esm/client/passkey/decorators/passkey.js +0 -50
- package/dist/_esm/client/passkey/decorators/passkey.js.map +0 -1
- package/dist/_esm/client/passkey/decorators/wallet.js +0 -54
- package/dist/_esm/client/passkey/decorators/wallet.js.map +0 -1
- package/dist/_esm/client/recovery/account.js +0 -43
- package/dist/_esm/client/recovery/account.js.map +0 -1
- package/dist/_esm/client/recovery/actions/oidc.js +0 -69
- package/dist/_esm/client/recovery/actions/oidc.js.map +0 -1
- package/dist/_esm/client/recovery/actions/recovery.js +0 -111
- package/dist/_esm/client/recovery/actions/recovery.js.map +0 -1
- package/dist/_esm/client/recovery/actions/sendEip712Transaction.js +0 -93
- package/dist/_esm/client/recovery/actions/sendEip712Transaction.js.map +0 -1
- package/dist/_esm/client/recovery/client.js +0 -45
- package/dist/_esm/client/recovery/client.js.map +0 -1
- package/dist/_esm/client/recovery/decorators/publicActionsRewrite.js +0 -31
- package/dist/_esm/client/recovery/decorators/publicActionsRewrite.js.map +0 -1
- package/dist/_esm/client/recovery/decorators/recovery.js +0 -13
- package/dist/_esm/client/recovery/decorators/recovery.js.map +0 -1
- package/dist/_esm/client/recovery/decorators/wallet.js +0 -45
- package/dist/_esm/client/recovery/decorators/wallet.js.map +0 -1
- package/dist/_esm/client/recovery/index.js +0 -3
- package/dist/_esm/client/recovery/index.js.map +0 -1
- package/dist/_esm/client/session/actions/sendEip712Transaction.js +0 -93
- package/dist/_esm/client/session/actions/sendEip712Transaction.js.map +0 -1
- package/dist/_esm/client/session/actions/session.js +0 -119
- package/dist/_esm/client/session/actions/session.js.map +0 -1
- package/dist/_esm/client/session/decorators/publicActionsRewrite.js +0 -55
- package/dist/_esm/client/session/decorators/publicActionsRewrite.js.map +0 -1
- package/dist/_esm/client/session/decorators/wallet.js +0 -100
- package/dist/_esm/client/session/decorators/wallet.js.map +0 -1
- package/dist/_esm/client/utils/assertEip712Transaction.js +0 -39
- package/dist/_esm/client/utils/assertEip712Transaction.js.map +0 -1
- package/dist/_esm/client/utils/getEip712Domain.js +0 -57
- package/dist/_esm/client/utils/getEip712Domain.js.map +0 -1
- package/dist/_esm/client/utils/isEip712Transaction.js +0 -13
- package/dist/_esm/client/utils/isEip712Transaction.js.map +0 -1
- package/dist/_esm/paymaster/handlers/general.js +0 -11
- package/dist/_esm/paymaster/handlers/general.js.map +0 -1
- package/dist/_esm/paymaster/handlers/index.js +0 -3
- package/dist/_esm/paymaster/handlers/index.js.map +0 -1
- package/dist/_esm/paymaster/handlers/zyfi.js +0 -54
- package/dist/_esm/paymaster/handlers/zyfi.js.map +0 -1
- package/dist/_esm/paymaster/index.js +0 -37
- package/dist/_esm/paymaster/index.js.map +0 -1
- package/dist/_esm/utils/encoding.js +0 -49
- package/dist/_esm/utils/encoding.js.map +0 -1
- package/dist/_esm/utils/helpers.js.map +0 -1
- package/dist/_esm/utils/index.js +0 -4
- package/dist/_esm/utils/index.js.map +0 -1
- package/dist/_esm/utils/passkey.js +0 -296
- package/dist/_esm/utils/passkey.js.map +0 -1
- package/dist/_esm/utils/session.js +0 -358
- package/dist/_esm/utils/session.js.map +0 -1
- package/dist/_esm/utils/storage.js.map +0 -1
- package/dist/_types/abi/GuardianRecoveryModule.d.ts +0 -590
- package/dist/_types/abi/GuardianRecoveryModule.d.ts.map +0 -1
- package/dist/_types/abi/GuardianRecoveryValidator.d.ts +0 -626
- package/dist/_types/abi/GuardianRecoveryValidator.d.ts.map +0 -1
- package/dist/_types/abi/OidcKeyRegistry.d.ts +0 -375
- package/dist/_types/abi/OidcKeyRegistry.d.ts.map +0 -1
- package/dist/_types/abi/OidcRecoveryValidator.d.ts +0 -501
- package/dist/_types/abi/OidcRecoveryValidator.d.ts.map +0 -1
- package/dist/_types/abi/SsoAccount.d.ts +0 -1044
- package/dist/_types/abi/SsoAccount.d.ts.map +0 -1
- package/dist/_types/abi/WebAuthValidator.d.ts.map +0 -1
- package/dist/_types/client/ecdsa/actions/account.d.ts +0 -38
- package/dist/_types/client/ecdsa/actions/account.d.ts.map +0 -1
- package/dist/_types/client/ecdsa/decorators/ecdsa.d.ts +0 -16
- package/dist/_types/client/ecdsa/decorators/ecdsa.d.ts.map +0 -1
- package/dist/_types/client/ecdsa/decorators/wallet.d.ts +0 -5
- package/dist/_types/client/ecdsa/decorators/wallet.d.ts.map +0 -1
- package/dist/_types/client/ecdsa/types.d.ts +0 -10
- package/dist/_types/client/ecdsa/types.d.ts.map +0 -1
- package/dist/_types/client/oidc/account.d.ts +0 -13
- package/dist/_types/client/oidc/account.d.ts.map +0 -1
- package/dist/_types/client/oidc/actions/addNewPasskeyViaOidc.d.ts +0 -12
- package/dist/_types/client/oidc/actions/addNewPasskeyViaOidc.d.ts.map +0 -1
- package/dist/_types/client/oidc/actions/index.d.ts +0 -5
- package/dist/_types/client/oidc/actions/index.d.ts.map +0 -1
- package/dist/_types/client/oidc/client.d.ts +0 -24
- package/dist/_types/client/oidc/client.d.ts.map +0 -1
- package/dist/_types/client/oidc/decorators/actions.d.ts +0 -5
- package/dist/_types/client/oidc/decorators/actions.d.ts.map +0 -1
- package/dist/_types/client/oidc/index.d.ts +0 -4
- package/dist/_types/client/oidc/index.d.ts.map +0 -1
- package/dist/_types/client/oidc/serialize.d.ts +0 -10
- package/dist/_types/client/oidc/serialize.d.ts.map +0 -1
- package/dist/_types/client/passkey/actions/account.d.ts +0 -48
- package/dist/_types/client/passkey/actions/account.d.ts.map +0 -1
- package/dist/_types/client/passkey/actions/passkey.d.ts +0 -55
- package/dist/_types/client/passkey/actions/passkey.d.ts.map +0 -1
- package/dist/_types/client/passkey/decorators/passkey.d.ts +0 -16
- package/dist/_types/client/passkey/decorators/passkey.d.ts.map +0 -1
- package/dist/_types/client/passkey/decorators/wallet.d.ts +0 -5
- package/dist/_types/client/passkey/decorators/wallet.d.ts.map +0 -1
- package/dist/_types/client/recovery/account.d.ts +0 -14
- package/dist/_types/client/recovery/account.d.ts.map +0 -1
- package/dist/_types/client/recovery/actions/oidc.d.ts +0 -24
- package/dist/_types/client/recovery/actions/oidc.d.ts.map +0 -1
- package/dist/_types/client/recovery/actions/recovery.d.ts +0 -50
- package/dist/_types/client/recovery/actions/recovery.d.ts.map +0 -1
- package/dist/_types/client/recovery/actions/sendEip712Transaction.d.ts +0 -60
- package/dist/_types/client/recovery/actions/sendEip712Transaction.d.ts.map +0 -1
- package/dist/_types/client/recovery/client.d.ts +0 -23
- package/dist/_types/client/recovery/client.d.ts.map +0 -1
- package/dist/_types/client/recovery/decorators/publicActionsRewrite.d.ts +0 -4
- package/dist/_types/client/recovery/decorators/publicActionsRewrite.d.ts.map +0 -1
- package/dist/_types/client/recovery/decorators/recovery.d.ts +0 -8
- package/dist/_types/client/recovery/decorators/recovery.d.ts.map +0 -1
- package/dist/_types/client/recovery/decorators/wallet.d.ts +0 -5
- package/dist/_types/client/recovery/decorators/wallet.d.ts.map +0 -1
- package/dist/_types/client/recovery/index.d.ts +0 -3
- package/dist/_types/client/recovery/index.d.ts.map +0 -1
- package/dist/_types/client/session/actions/sendEip712Transaction.d.ts +0 -60
- package/dist/_types/client/session/actions/sendEip712Transaction.d.ts.map +0 -1
- package/dist/_types/client/session/actions/session.d.ts +0 -61
- package/dist/_types/client/session/actions/session.d.ts.map +0 -1
- package/dist/_types/client/session/decorators/publicActionsRewrite.d.ts +0 -4
- package/dist/_types/client/session/decorators/publicActionsRewrite.d.ts.map +0 -1
- package/dist/_types/client/session/decorators/wallet.d.ts +0 -5
- package/dist/_types/client/session/decorators/wallet.d.ts.map +0 -1
- package/dist/_types/client/utils/assertEip712Transaction.d.ts +0 -11
- package/dist/_types/client/utils/assertEip712Transaction.d.ts.map +0 -1
- package/dist/_types/client/utils/getEip712Domain.d.ts +0 -3
- package/dist/_types/client/utils/getEip712Domain.d.ts.map +0 -1
- package/dist/_types/client/utils/isEip712Transaction.d.ts +0 -4
- package/dist/_types/client/utils/isEip712Transaction.d.ts.map +0 -1
- package/dist/_types/paymaster/handlers/general.d.ts +0 -4
- package/dist/_types/paymaster/handlers/general.d.ts.map +0 -1
- package/dist/_types/paymaster/handlers/index.d.ts +0 -3
- package/dist/_types/paymaster/handlers/index.d.ts.map +0 -1
- package/dist/_types/paymaster/handlers/zyfi.d.ts +0 -18
- package/dist/_types/paymaster/handlers/zyfi.d.ts.map +0 -1
- package/dist/_types/paymaster/index.d.ts +0 -29
- package/dist/_types/paymaster/index.d.ts.map +0 -1
- package/dist/_types/utils/encoding.d.ts +0 -19
- package/dist/_types/utils/encoding.d.ts.map +0 -1
- package/dist/_types/utils/helpers.d.ts.map +0 -1
- package/dist/_types/utils/index.d.ts +0 -4
- package/dist/_types/utils/index.d.ts.map +0 -1
- package/dist/_types/utils/passkey.d.ts +0 -47
- package/dist/_types/utils/passkey.d.ts.map +0 -1
- package/dist/_types/utils/session.d.ts +0 -179
- package/dist/_types/utils/session.d.ts.map +0 -1
- package/dist/_types/utils/storage.d.ts.map +0 -1
- package/src/abi/GuardianRecoveryModule.ts +0 -763
- package/src/abi/GuardianRecoveryValidator.ts +0 -809
- package/src/abi/OidcKeyRegistry.ts +0 -488
- package/src/abi/OidcRecoveryValidator.ts +0 -646
- package/src/abi/SsoAccount.ts +0 -1350
- package/src/abi/WebAuthValidator.ts +0 -357
- package/src/client/ecdsa/actions/account.ts +0 -146
- package/src/client/ecdsa/decorators/ecdsa.ts +0 -32
- package/src/client/ecdsa/decorators/wallet.ts +0 -80
- package/src/client/ecdsa/types.ts +0 -108
- package/src/client/oidc/account.ts +0 -65
- package/src/client/oidc/actions/addNewPasskeyViaOidc.ts +0 -54
- package/src/client/oidc/actions/index.ts +0 -16
- package/src/client/oidc/client.ts +0 -122
- package/src/client/oidc/decorators/actions.ts +0 -5
- package/src/client/oidc/index.ts +0 -3
- package/src/client/oidc/serialize.ts +0 -10
- package/src/client/passkey/actions/account.ts +0 -241
- package/src/client/passkey/actions/passkey.ts +0 -208
- package/src/client/passkey/decorators/passkey.ts +0 -77
- package/src/client/passkey/decorators/wallet.ts +0 -79
- package/src/client/recovery/account.ts +0 -61
- package/src/client/recovery/actions/oidc.ts +0 -119
- package/src/client/recovery/actions/recovery.ts +0 -176
- package/src/client/recovery/actions/sendEip712Transaction.ts +0 -149
- package/src/client/recovery/client.ts +0 -102
- package/src/client/recovery/decorators/publicActionsRewrite.ts +0 -38
- package/src/client/recovery/decorators/recovery.ts +0 -22
- package/src/client/recovery/decorators/wallet.ts +0 -59
- package/src/client/recovery/index.ts +0 -2
- package/src/client/session/actions/sendEip712Transaction.ts +0 -149
- package/src/client/session/actions/session.ts +0 -204
- package/src/client/session/decorators/publicActionsRewrite.ts +0 -63
- package/src/client/session/decorators/wallet.ts +0 -143
- package/src/client/utils/assertEip712Transaction.ts +0 -49
- package/src/client/utils/getEip712Domain.ts +0 -84
- package/src/client/utils/isEip712Transaction.ts +0 -18
- package/src/paymaster/handlers/general.ts +0 -14
- package/src/paymaster/handlers/index.ts +0 -2
- package/src/paymaster/handlers/zyfi.ts +0 -108
- package/src/paymaster/index.ts +0 -76
- package/src/types/index.d.ts +0 -9
- package/src/utils/encoding.ts +0 -70
- package/src/utils/index.ts +0 -3
- package/src/utils/passkey.ts +0 -347
- package/src/utils/session.ts +0 -524
- /package/dist/_cjs/{utils → client-auth-server/utils}/helpers.js +0 -0
- /package/dist/_cjs/{utils → client-auth-server/utils}/storage.js +0 -0
- /package/dist/_esm/{utils → client-auth-server/utils}/helpers.js +0 -0
- /package/dist/_esm/{utils → client-auth-server/utils}/storage.js +0 -0
- /package/dist/_types/{utils → client-auth-server/utils}/helpers.d.ts +0 -0
- /package/dist/_types/{utils → client-auth-server/utils}/storage.d.ts +0 -0
- /package/src/{utils → client-auth-server/utils}/helpers.ts +0 -0
- /package/src/{utils → client-auth-server/utils}/storage.ts +0 -0
|
@@ -1,59 +1,224 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import {
|
|
2
|
+
type Address,
|
|
3
|
+
type Chain,
|
|
4
|
+
type Hash,
|
|
5
|
+
type Hex,
|
|
6
|
+
type PublicClient,
|
|
7
|
+
type Transport,
|
|
8
|
+
} from "viem";
|
|
9
|
+
import {
|
|
10
|
+
entryPoint08Abi,
|
|
11
|
+
entryPoint08Address,
|
|
12
|
+
getUserOperationHash,
|
|
13
|
+
toSmartAccount,
|
|
14
|
+
type ToSmartAccountReturnType,
|
|
15
|
+
} from "viem/account-abstraction";
|
|
16
|
+
import {
|
|
17
|
+
decode_nonce_result,
|
|
18
|
+
encode_get_nonce_call_data,
|
|
19
|
+
encode_session_execute_call_data,
|
|
20
|
+
generate_session_stub_signature_wasm,
|
|
21
|
+
keyed_nonce_decimal,
|
|
22
|
+
session_signature_no_validation_wasm,
|
|
23
|
+
} from "zksync-sso-web-sdk/bundler";
|
|
5
24
|
|
|
6
|
-
import {
|
|
25
|
+
import type { SessionSpec } from "./types.js";
|
|
26
|
+
import { sessionSpecToJSON } from "./utils.js";
|
|
7
27
|
|
|
8
|
-
export type
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
signTransaction: (parameters: { hash: Hash; to: Address; callData?: Hash }) => Promise<Hex>;
|
|
28
|
+
export type SessionRequiredContracts = {
|
|
29
|
+
/** Session validator contract address (required for signature generation). */
|
|
30
|
+
sessionValidator: Address;
|
|
12
31
|
};
|
|
13
32
|
|
|
14
|
-
export type
|
|
15
|
-
|
|
33
|
+
export type ToSessionSmartAccountParams<
|
|
34
|
+
TTransport extends Transport = Transport,
|
|
35
|
+
TChain extends Chain = Chain,
|
|
36
|
+
> = {
|
|
37
|
+
/** Public client used internally by the smart account implementation (must have chain). */
|
|
38
|
+
client: PublicClient<TTransport, TChain>;
|
|
39
|
+
/** Session key private key (used to sign user operations within policy limits). */
|
|
40
|
+
sessionKeyPrivateKey: Hash;
|
|
41
|
+
/** Smart account address (required - no counterfactual support). */
|
|
42
|
+
address: Address;
|
|
43
|
+
/** Session specification defining policies and limits. */
|
|
44
|
+
sessionSpec: SessionSpec;
|
|
45
|
+
/** Optional timestamp override (for testing or special timestamp handling). */
|
|
46
|
+
currentTimestamp?: bigint;
|
|
47
|
+
/** Session required contracts. */
|
|
48
|
+
contracts: SessionRequiredContracts;
|
|
49
|
+
/** Optional override for EntryPoint address (defaults to viem's entryPoint08Address). */
|
|
50
|
+
entryPointAddress?: Address;
|
|
16
51
|
};
|
|
17
52
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Builds a SSO SmartAccount instance which uses a session key for signing within policy limits.
|
|
55
|
+
* This allows delegated transaction signing with enforced limits on gas fees, transfer values, and call parameters.
|
|
56
|
+
*/
|
|
57
|
+
export async function toSessionSmartAccount<
|
|
58
|
+
TTransport extends Transport = Transport,
|
|
59
|
+
TChain extends Chain = Chain,
|
|
60
|
+
>({
|
|
61
|
+
client,
|
|
62
|
+
sessionKeyPrivateKey,
|
|
63
|
+
address,
|
|
64
|
+
contracts,
|
|
65
|
+
sessionSpec,
|
|
66
|
+
currentTimestamp,
|
|
67
|
+
entryPointAddress,
|
|
68
|
+
}: ToSessionSmartAccountParams<TTransport, TChain>): Promise<ToSmartAccountReturnType> {
|
|
69
|
+
// Precompute session spec JSON once
|
|
70
|
+
const sessionSpecJSON = sessionSpecToJSON(sessionSpec);
|
|
71
|
+
const epAddress = entryPointAddress ?? entryPoint08Address;
|
|
72
|
+
|
|
73
|
+
return toSmartAccount({
|
|
74
|
+
client,
|
|
75
|
+
entryPoint: {
|
|
76
|
+
abi: entryPoint08Abi,
|
|
77
|
+
address: epAddress,
|
|
78
|
+
version: "0.8",
|
|
79
|
+
},
|
|
80
|
+
async getNonce() {
|
|
81
|
+
const sender = await this.getAddress();
|
|
82
|
+
|
|
83
|
+
// Get the nonce key for this session signer
|
|
84
|
+
const nonceKeyDecimal = keyed_nonce_decimal(sessionSpec.signer);
|
|
85
|
+
|
|
86
|
+
// Encode the getNonce call with the session's nonce key
|
|
87
|
+
const calldata = encode_get_nonce_call_data(sender, nonceKeyDecimal) as Hex;
|
|
88
|
+
|
|
89
|
+
const result = await client.request({
|
|
90
|
+
method: "eth_call",
|
|
91
|
+
params: [{
|
|
92
|
+
from: sender,
|
|
93
|
+
to: epAddress,
|
|
94
|
+
data: calldata,
|
|
95
|
+
}],
|
|
42
96
|
});
|
|
97
|
+
|
|
98
|
+
const nonceStr = decode_nonce_result(result);
|
|
99
|
+
return BigInt(nonceStr as string);
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
// --- Calls encoding (session execute only - batch not supported yet) ---
|
|
103
|
+
async encodeCalls(calls) {
|
|
104
|
+
// Only support single calls (no batch operations)
|
|
105
|
+
if (calls.length !== 1) {
|
|
106
|
+
throw new Error(
|
|
107
|
+
"Batch transactions are not supported for session accounts. Only single execute() calls are allowed.",
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const call = calls[0];
|
|
112
|
+
|
|
113
|
+
// Use Rust SDK for encoding session execute
|
|
114
|
+
const valueStr = (call.value ?? 0n).toString();
|
|
115
|
+
|
|
116
|
+
const encoded = encode_session_execute_call_data(
|
|
117
|
+
call.to,
|
|
118
|
+
valueStr,
|
|
119
|
+
call.data ?? "0x",
|
|
120
|
+
) as Hex;
|
|
121
|
+
|
|
122
|
+
return encoded;
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
async decodeCalls() {
|
|
126
|
+
throw new Error("decodeCalls is not supported yet for session accounts.");
|
|
43
127
|
},
|
|
44
|
-
|
|
45
|
-
|
|
128
|
+
|
|
129
|
+
// --- Address & factory args ---
|
|
130
|
+
async getAddress() {
|
|
131
|
+
// Return the provided address (no counterfactual support yet)
|
|
132
|
+
return address;
|
|
46
133
|
},
|
|
47
|
-
|
|
48
|
-
|
|
134
|
+
async getFactoryArgs() {
|
|
135
|
+
// No counterfactual deployment support yet
|
|
136
|
+
throw new Error(
|
|
137
|
+
"getFactoryArgs is not supported for session accounts. Deploy the account first and provide the address.",
|
|
138
|
+
);
|
|
49
139
|
},
|
|
50
|
-
|
|
51
|
-
|
|
140
|
+
|
|
141
|
+
// --- Stubs & signing ---
|
|
142
|
+
async getStubSignature() {
|
|
143
|
+
// Generate session stub signature for gas estimation
|
|
144
|
+
const timestampStr = currentTimestamp?.toString();
|
|
145
|
+
return generate_session_stub_signature_wasm(
|
|
146
|
+
contracts.sessionValidator,
|
|
147
|
+
sessionSpecJSON,
|
|
148
|
+
timestampStr,
|
|
149
|
+
) as Hex;
|
|
52
150
|
},
|
|
53
|
-
|
|
151
|
+
async signMessage({ message }) {
|
|
152
|
+
throw new Error(
|
|
153
|
+
`signMessage is not supported for session accounts. Message: ${String(message)}`,
|
|
154
|
+
);
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
async signTypedData() {
|
|
158
|
+
throw new Error("signTypedData is not supported for session accounts");
|
|
159
|
+
},
|
|
160
|
+
async signUserOperation(params) {
|
|
161
|
+
const sender = await this.getAddress();
|
|
162
|
+
|
|
163
|
+
// Default undefined fields to 0n to avoid runtime errors during early signing.
|
|
164
|
+
const nonce = params.nonce ?? 0n;
|
|
165
|
+
const callGasLimit = params.callGasLimit ?? 0n;
|
|
166
|
+
const verificationGasLimit = params.verificationGasLimit ?? 0n;
|
|
167
|
+
const preVerificationGas = params.preVerificationGas ?? 0n;
|
|
168
|
+
const maxFeePerGas = params.maxFeePerGas ?? 0n;
|
|
169
|
+
const maxPriorityFeePerGas = params.maxPriorityFeePerGas ?? 0n;
|
|
170
|
+
const paymasterAndData = (params.paymasterAndData ?? "0x") as Hex;
|
|
54
171
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
172
|
+
// Debug: Log effective gas & nonce passed into signing to diagnose zero-gas AA23 issues
|
|
173
|
+
console.debug(
|
|
174
|
+
"[toSessionSmartAccount] signUserOperation params:",
|
|
175
|
+
{
|
|
176
|
+
nonce: nonce.toString(),
|
|
177
|
+
callGasLimit: callGasLimit.toString(),
|
|
178
|
+
verificationGasLimit: verificationGasLimit.toString(),
|
|
179
|
+
preVerificationGas: preVerificationGas.toString(),
|
|
180
|
+
maxFeePerGas: maxFeePerGas.toString(),
|
|
181
|
+
maxPriorityFeePerGas: maxPriorityFeePerGas.toString(),
|
|
182
|
+
},
|
|
183
|
+
);
|
|
184
|
+
|
|
185
|
+
// Compute user operation hash locally using viem helper (includes paymasterAndData)
|
|
186
|
+
const userOpHash = getUserOperationHash({
|
|
187
|
+
chainId: Number(client.chain!.id),
|
|
188
|
+
entryPointAddress: this.entryPoint.address,
|
|
189
|
+
entryPointVersion: "0.8",
|
|
190
|
+
userOperation: {
|
|
191
|
+
sender,
|
|
192
|
+
nonce,
|
|
193
|
+
initCode: (params.initCode ?? "0x") as Hex,
|
|
194
|
+
callData: (params.callData ?? "0x") as Hex,
|
|
195
|
+
callGasLimit,
|
|
196
|
+
verificationGasLimit,
|
|
197
|
+
preVerificationGas,
|
|
198
|
+
maxFeePerGas,
|
|
199
|
+
maxPriorityFeePerGas,
|
|
200
|
+
paymasterAndData,
|
|
201
|
+
signature: "0x",
|
|
202
|
+
},
|
|
203
|
+
} as any) as Hex;
|
|
204
|
+
|
|
205
|
+
// Parse target and selector from callData for validation
|
|
206
|
+
// The callData is already encoded by encodeCalls, so we need to extract execute() params
|
|
207
|
+
// For now, we'll trust that the session policies are validated at contract level
|
|
208
|
+
// In a full implementation, you'd decode the execute call to validate against session spec
|
|
209
|
+
|
|
210
|
+
const timestampStr = currentTimestamp?.toString();
|
|
211
|
+
|
|
212
|
+
// Sign using session key with no validation (contract will validate)
|
|
213
|
+
const signature = session_signature_no_validation_wasm(
|
|
214
|
+
sessionKeyPrivateKey,
|
|
215
|
+
contracts.sessionValidator,
|
|
216
|
+
sessionSpecJSON,
|
|
217
|
+
userOpHash,
|
|
218
|
+
timestampStr,
|
|
219
|
+
) as Hex;
|
|
220
|
+
|
|
221
|
+
return signature;
|
|
222
|
+
},
|
|
223
|
+
});
|
|
59
224
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Account,
|
|
3
|
+
Address,
|
|
4
|
+
Chain,
|
|
5
|
+
Client,
|
|
6
|
+
Transport,
|
|
7
|
+
} from "viem";
|
|
8
|
+
import type { BundlerClient } from "viem/account-abstraction";
|
|
9
|
+
|
|
10
|
+
import type { PaymasterConfig } from "../../actions/sendUserOperation.js";
|
|
11
|
+
import {
|
|
12
|
+
type SmartAccountClientActions,
|
|
13
|
+
smartAccountClientActions,
|
|
14
|
+
} from "../common/smart-account-client-actions.js";
|
|
15
|
+
import { toSessionSmartAccount, type ToSessionSmartAccountParams } from "./account.js";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Extended client data needed for session smart account wrapper
|
|
19
|
+
*/
|
|
20
|
+
export type SessionClientData<
|
|
21
|
+
TTransport extends Transport = Transport,
|
|
22
|
+
TChain extends Chain = Chain,
|
|
23
|
+
> = {
|
|
24
|
+
bundler: BundlerClient;
|
|
25
|
+
sessionAccount: ToSessionSmartAccountParams<TTransport, TChain>;
|
|
26
|
+
accountAddress: Address;
|
|
27
|
+
paymaster?: PaymasterConfig;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Session client actions extend generic smart account actions but:
|
|
32
|
+
* - Remove addPasskey (not applicable for pure session key accounts)
|
|
33
|
+
*/
|
|
34
|
+
export type SessionClientActions<
|
|
35
|
+
TChain extends Chain = Chain,
|
|
36
|
+
TAccount extends Account = Account,
|
|
37
|
+
> = Omit<SmartAccountClientActions<TChain, TAccount>, "addPasskey">;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Decorator providing session-specific client actions
|
|
41
|
+
*/
|
|
42
|
+
export function sessionClientActions<
|
|
43
|
+
TTransport extends Transport,
|
|
44
|
+
TChain extends Chain,
|
|
45
|
+
TAccount extends Account | undefined = undefined,
|
|
46
|
+
>(
|
|
47
|
+
config: SessionClientData<TTransport, TChain> & { client: Client<TTransport, TChain, TAccount> },
|
|
48
|
+
): SessionClientActions<TChain, TAccount extends Account ? TAccount : Account> {
|
|
49
|
+
const base = smartAccountClientActions<TTransport, TChain, TAccount>({
|
|
50
|
+
bundler: config.bundler,
|
|
51
|
+
accountFactory: () => toSessionSmartAccount(config.sessionAccount),
|
|
52
|
+
client: config.client,
|
|
53
|
+
accountAddress: config.accountAddress,
|
|
54
|
+
paymaster: config.paymaster,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
return {
|
|
58
|
+
...base,
|
|
59
|
+
// Remove addPasskey (not valid for session-only signing)
|
|
60
|
+
addPasskey: undefined as never,
|
|
61
|
+
} as SessionClientActions<TChain, TAccount extends Account ? TAccount : Account>;
|
|
62
|
+
}
|
|
@@ -1,173 +1,134 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import {
|
|
2
|
+
type Address,
|
|
3
|
+
type Chain,
|
|
4
|
+
type Client,
|
|
5
|
+
createClient,
|
|
6
|
+
createPublicClient,
|
|
7
|
+
type Hash,
|
|
8
|
+
type Prettify,
|
|
9
|
+
type PublicActions,
|
|
10
|
+
publicActions,
|
|
11
|
+
type PublicRpcSchema,
|
|
12
|
+
type RpcSchema,
|
|
13
|
+
type Transport,
|
|
14
|
+
walletActions,
|
|
15
|
+
type WalletRpcSchema,
|
|
16
|
+
} from "viem";
|
|
17
|
+
import type { BundlerClient } from "viem/account-abstraction";
|
|
4
18
|
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
7
|
-
import type
|
|
8
|
-
import {
|
|
9
|
-
import { getSessionState, sessionStateNotify } from "./actions/session.js";
|
|
10
|
-
import { publicActionsRewrite } from "./decorators/publicActionsRewrite.js";
|
|
11
|
-
import { type ZksyncSsoWalletActions, zksyncSsoWalletActions } from "./decorators/wallet.js";
|
|
19
|
+
import type { PaymasterConfig } from "../../actions/sendUserOperation.js";
|
|
20
|
+
import type { SessionRequiredContracts, ToSessionSmartAccountParams } from "./account.js";
|
|
21
|
+
import { type SessionClientActions, sessionClientActions } from "./client-actions.js";
|
|
22
|
+
import type { SessionSpec } from "./types.js";
|
|
12
23
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
/** Parameters for creating a Session smart account client */
|
|
25
|
+
export type CreateSessionClientParams<
|
|
26
|
+
TTransport extends Transport = Transport,
|
|
27
|
+
TChain extends Chain = Chain,
|
|
28
|
+
> = {
|
|
29
|
+
/** Smart account address (already deployed) */
|
|
30
|
+
address: Address;
|
|
31
|
+
/** Session key private key */
|
|
32
|
+
sessionKeyPrivateKey: Hash;
|
|
33
|
+
/** Session specification governing allowed actions */
|
|
34
|
+
sessionSpec: SessionSpec;
|
|
35
|
+
/** Session required contracts */
|
|
36
|
+
contracts: SessionRequiredContracts;
|
|
37
|
+
/** Bundler client instance */
|
|
38
|
+
bundlerClient: BundlerClient;
|
|
39
|
+
/** Chain config */
|
|
40
|
+
chain: TChain;
|
|
41
|
+
/** Transport for public RPC */
|
|
42
|
+
transport: TTransport;
|
|
43
|
+
/** Optional paymaster configuration for sponsoring transactions */
|
|
44
|
+
paymaster?: PaymasterConfig;
|
|
45
|
+
/** Optional timestamp override for signature generation */
|
|
46
|
+
currentTimestamp?: bigint;
|
|
47
|
+
/** Optional override for EntryPoint address used by the account implementation. */
|
|
48
|
+
entryPointAddress?: Address;
|
|
49
|
+
/** Optional client metadata */
|
|
50
|
+
key?: string;
|
|
51
|
+
name?: string;
|
|
38
52
|
};
|
|
39
53
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
/** Session client type with actions */
|
|
55
|
+
export type SessionClient<
|
|
56
|
+
TTransport extends Transport = Transport,
|
|
57
|
+
TChain extends Chain = Chain,
|
|
58
|
+
TRpcSchema extends RpcSchema | undefined = undefined,
|
|
59
|
+
> = Prettify<
|
|
60
|
+
Client<
|
|
61
|
+
TTransport,
|
|
62
|
+
TChain,
|
|
63
|
+
undefined,
|
|
64
|
+
TRpcSchema extends RpcSchema
|
|
65
|
+
? [...PublicRpcSchema, ...WalletRpcSchema, ...TRpcSchema]
|
|
66
|
+
: [...PublicRpcSchema, ...WalletRpcSchema]
|
|
67
|
+
> &
|
|
68
|
+
PublicActions<TTransport, TChain> &
|
|
69
|
+
SessionClientActions & {
|
|
70
|
+
bundler: BundlerClient;
|
|
71
|
+
}
|
|
72
|
+
>;
|
|
55
73
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Create a client wrapping a session smart account. Provides wallet-like API
|
|
76
|
+
* plus helpers for session creation & state queries. Transactions sent via
|
|
77
|
+
* sendTransaction or sendSessionTransaction are encoded as session execute() calls.
|
|
78
|
+
*/
|
|
79
|
+
export function createSessionClient<
|
|
80
|
+
TTransport extends Transport = Transport,
|
|
81
|
+
TChain extends Chain = Chain,
|
|
82
|
+
TRpcSchema extends RpcSchema | undefined = undefined,
|
|
83
|
+
>(
|
|
84
|
+
params: CreateSessionClientParams<TTransport, TChain>,
|
|
85
|
+
): SessionClient<TTransport, TChain, TRpcSchema> {
|
|
86
|
+
const {
|
|
87
|
+
address,
|
|
88
|
+
contracts,
|
|
89
|
+
sessionKeyPrivateKey,
|
|
90
|
+
sessionSpec,
|
|
91
|
+
bundlerClient,
|
|
92
|
+
chain,
|
|
93
|
+
transport,
|
|
94
|
+
currentTimestamp,
|
|
95
|
+
paymaster,
|
|
96
|
+
} = params;
|
|
62
97
|
|
|
63
|
-
const
|
|
64
|
-
address: parameters.address,
|
|
65
|
-
signTransaction: async ({ hash, to, callData }) => {
|
|
66
|
-
// In Memory Node uses a different timestamp mechanism which isn't equal to actual timestamp
|
|
67
|
-
const timestamp = parameters.chain.id === zksyncInMemoryNode.id
|
|
68
|
-
? await getInMemoryNodeTimestamp()
|
|
69
|
-
: undefined;
|
|
98
|
+
const publicClient = createPublicClient({ chain, transport });
|
|
70
99
|
|
|
71
|
-
|
|
72
|
-
|
|
100
|
+
const sessionAccountParams: ToSessionSmartAccountParams = {
|
|
101
|
+
client: publicClient as ToSessionSmartAccountParams["client"],
|
|
102
|
+
address,
|
|
103
|
+
contracts,
|
|
104
|
+
sessionKeyPrivateKey,
|
|
105
|
+
sessionSpec,
|
|
106
|
+
currentTimestamp,
|
|
107
|
+
entryPointAddress: params.entryPointAddress,
|
|
108
|
+
};
|
|
73
109
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
to,
|
|
79
|
-
callData,
|
|
80
|
-
timestamp,
|
|
81
|
-
});
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
const client = createClient<transport, chain, Account, rpcSchema>({
|
|
85
|
-
...parameters,
|
|
86
|
-
account,
|
|
110
|
+
const client = createClient({
|
|
111
|
+
chain,
|
|
112
|
+
transport,
|
|
113
|
+
account: undefined,
|
|
87
114
|
type: "walletClient",
|
|
115
|
+
key: params.key || "zksync-sso-session-client",
|
|
116
|
+
name: params.name || "ZKsync SSO Session Client",
|
|
88
117
|
})
|
|
89
|
-
.extend(() => ({
|
|
90
|
-
sessionKey: parameters.sessionKey,
|
|
91
|
-
sessionConfig: parameters.sessionConfig,
|
|
92
|
-
contracts: parameters.contracts,
|
|
93
|
-
paymasterHandler: parameters.paymasterHandler,
|
|
94
|
-
onSessionStateChange: parameters.onSessionStateChange,
|
|
95
|
-
_sessionNotifyTimeout: undefined as NodeJS.Timeout | undefined,
|
|
96
|
-
}))
|
|
97
118
|
.extend(publicActions)
|
|
98
|
-
.extend(
|
|
99
|
-
.extend(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
onSessionStateChange: client.onSessionStateChange!,
|
|
112
|
-
sessionNotifyTimeout: client._sessionNotifyTimeout,
|
|
113
|
-
});
|
|
114
|
-
}).catch((error) => {
|
|
115
|
-
console.error("Failed to get session state on initialization:", error);
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return client;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export type SessionRequiredContracts = {
|
|
123
|
-
session: Address; // Session, spend limit, etc.
|
|
124
|
-
};
|
|
125
|
-
type ZksyncSsoSessionData = {
|
|
126
|
-
sessionKey: Hash;
|
|
127
|
-
sessionConfig: SessionConfig;
|
|
128
|
-
contracts: SessionRequiredContracts;
|
|
129
|
-
paymasterHandler?: CustomPaymasterHandler;
|
|
130
|
-
onSessionStateChange?: SessionStateEventCallback;
|
|
131
|
-
skipPreTransactionStateValidation?: boolean;
|
|
132
|
-
_sessionNotifyTimeout?: NodeJS.Timeout;
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
export type ClientWithZksyncSsoSessionData<
|
|
136
|
-
transport extends Transport = Transport,
|
|
137
|
-
chain extends Chain = Chain,
|
|
138
|
-
account extends Account = Account,
|
|
139
|
-
> = Client<transport, chain, account> & ZksyncSsoSessionData;
|
|
140
|
-
|
|
141
|
-
export type ZksyncSsoSessionClient<
|
|
142
|
-
transport extends Transport = Transport,
|
|
143
|
-
chain extends Chain = Chain,
|
|
144
|
-
rpcSchema extends RpcSchema | undefined = undefined,
|
|
145
|
-
account extends Account = Account,
|
|
146
|
-
> = Prettify<
|
|
147
|
-
Client<
|
|
148
|
-
transport,
|
|
149
|
-
chain,
|
|
150
|
-
account,
|
|
151
|
-
rpcSchema extends RpcSchema
|
|
152
|
-
? [...PublicRpcSchema, ...WalletRpcSchema, ...rpcSchema]
|
|
153
|
-
: [...PublicRpcSchema, ...WalletRpcSchema],
|
|
154
|
-
ZksyncSsoWalletActions<chain, account>
|
|
155
|
-
> & ZksyncSsoSessionData
|
|
156
|
-
>;
|
|
119
|
+
.extend(walletActions)
|
|
120
|
+
.extend((client) =>
|
|
121
|
+
sessionClientActions({
|
|
122
|
+
client,
|
|
123
|
+
bundler: bundlerClient,
|
|
124
|
+
sessionAccount: sessionAccountParams,
|
|
125
|
+
accountAddress: address,
|
|
126
|
+
paymaster,
|
|
127
|
+
}),
|
|
128
|
+
)
|
|
129
|
+
.extend(() => ({
|
|
130
|
+
bundler: bundlerClient,
|
|
131
|
+
}));
|
|
157
132
|
|
|
158
|
-
|
|
159
|
-
transport extends Transport = Transport,
|
|
160
|
-
chain extends Chain = Chain,
|
|
161
|
-
rpcSchema extends RpcSchema | undefined = undefined,
|
|
162
|
-
> extends Omit<WalletClientConfig<transport, chain, Account, rpcSchema>, "account"> {
|
|
163
|
-
chain: NonNullable<chain>;
|
|
164
|
-
address: Address;
|
|
165
|
-
sessionKey: Hash;
|
|
166
|
-
sessionConfig: SessionConfig;
|
|
167
|
-
contracts: SessionRequiredContracts;
|
|
168
|
-
key?: string;
|
|
169
|
-
name?: string;
|
|
170
|
-
paymasterHandler?: CustomPaymasterHandler;
|
|
171
|
-
onSessionStateChange?: SessionStateEventCallback;
|
|
172
|
-
skipPreTransactionStateValidation?: boolean; // Useful if you want to send session transactions really fast
|
|
133
|
+
return client as SessionClient<TTransport, TChain, TRpcSchema>;
|
|
173
134
|
}
|