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
package/src/utils/session.ts
DELETED
|
@@ -1,524 +0,0 @@
|
|
|
1
|
-
import { type Address, bytesToHex, getAddress, type Hash, type Hex, hexToBigInt, hexToBytes } from "viem";
|
|
2
|
-
|
|
3
|
-
import { calculateMaxFee, findSmallestBigInt } from "./helpers.js";
|
|
4
|
-
|
|
5
|
-
export enum LimitType {
|
|
6
|
-
Unlimited = 0,
|
|
7
|
-
Lifetime = 1,
|
|
8
|
-
Allowance = 2,
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Limit is the value tracked either for a lifetime or a period on-chain
|
|
13
|
-
* @member limitType - Used to validate limit & period values (unlimited has no limit, lifetime has no period, allowance has both!)
|
|
14
|
-
* @member limit - The limit is exceeded if the tracked value is greater than this over the provided period
|
|
15
|
-
* @member period - The block.timestamp divisor for the limit to be enforced (eg: 60 for a minute, 86400 for a day, 604800 for a week, unset for lifetime)
|
|
16
|
-
*/
|
|
17
|
-
export type Limit = {
|
|
18
|
-
limitType: LimitType;
|
|
19
|
-
limit: bigint;
|
|
20
|
-
period: bigint;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export const LimitUnlimited = {
|
|
24
|
-
limitType: LimitType.Unlimited,
|
|
25
|
-
limit: 0n,
|
|
26
|
-
period: 0n,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export const LimitZero = {
|
|
30
|
-
limitType: LimitType.Lifetime,
|
|
31
|
-
limit: 0n,
|
|
32
|
-
period: 0n,
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Common logic operators to used combine multiple constraints
|
|
37
|
-
*/
|
|
38
|
-
export enum ConstraintCondition {
|
|
39
|
-
Unconstrained = 0,
|
|
40
|
-
Equal = 1,
|
|
41
|
-
Greater = 2,
|
|
42
|
-
Less = 3,
|
|
43
|
-
GreaterEqual = 4,
|
|
44
|
-
LessEqual = 5,
|
|
45
|
-
NotEqual = 6,
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Constraint allows performing logic checks on any binary word (bytes32) in the transaction.
|
|
50
|
-
* This can let you set spend limits against functions on specific contracts
|
|
51
|
-
* @member index - The location of the start of the data in the transaction. This is not the index of the constraint within the containing array!
|
|
52
|
-
* @member condition - The kind of check to perform (None, =, >, <, >=, <=, !=)
|
|
53
|
-
* @member refValue - The value to compare against (as bytes32)
|
|
54
|
-
* @member limit - The limit to enforce on the parsed value (from index)
|
|
55
|
-
*/
|
|
56
|
-
export type Constraint = {
|
|
57
|
-
index: bigint;
|
|
58
|
-
condition: ConstraintCondition;
|
|
59
|
-
refValue: Hash;
|
|
60
|
-
limit: Limit;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* CallPolicy is a policy for a specific contract (address/function) call.
|
|
65
|
-
* @member target - Only one policy per target per session (unique mapping)
|
|
66
|
-
* @member selector - Solidity function selector (the selector directly), also unique mapping with target
|
|
67
|
-
* @member maxValuePerUse - Will reject transaction if value is set above this amount (for transfer or call)
|
|
68
|
-
* @member valueLimit - If not set, unlimited. If a number or a limit without a period, converts to a lifetime value. Also rejects transactions that have cumulative value greater than what's set here
|
|
69
|
-
* @member constraints - Array of conditions with specific limits for performing range and logic checks (e.g. 5 > x >= 30) on the transaction data (not value!)
|
|
70
|
-
*/
|
|
71
|
-
export type CallPolicy = {
|
|
72
|
-
target: Address;
|
|
73
|
-
valueLimit: Limit;
|
|
74
|
-
maxValuePerUse: bigint;
|
|
75
|
-
selector: Hash;
|
|
76
|
-
constraints: Constraint[];
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Simplified CallPolicy for transactions with less than 4 bytes of data
|
|
81
|
-
* @member target - Only one policy per target per session (unique mapping from CallPolicies)
|
|
82
|
-
* @member maxValuePerUse - Will reject transaction if value is set above this amount
|
|
83
|
-
* @member valueLimit - Validated from value
|
|
84
|
-
*/
|
|
85
|
-
export type TransferPolicy = {
|
|
86
|
-
target: Address;
|
|
87
|
-
maxValuePerUse: bigint;
|
|
88
|
-
valueLimit: Limit;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* SessionConfig is a set of policies and metadata to validate a transaction
|
|
93
|
-
* @member signer - The address that signs the transaction (session public key)
|
|
94
|
-
* @member expiresAt - The block.timestamp at which the session is no longer valid
|
|
95
|
-
* @member feeLimit - The maximum fee that can be paid for the transaction (maxFeePerGas * gasLimit)
|
|
96
|
-
* @member callPolicies - Used to validate the transaction data, has complex calldata parsing logic
|
|
97
|
-
* @member transferPolicies - Used to validate the transaction value when there's no additional data
|
|
98
|
-
*/
|
|
99
|
-
export type SessionConfig = {
|
|
100
|
-
signer: Address;
|
|
101
|
-
expiresAt: bigint;
|
|
102
|
-
feeLimit: Limit;
|
|
103
|
-
callPolicies: CallPolicy[];
|
|
104
|
-
transferPolicies: TransferPolicy[];
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
export enum SessionStatus {
|
|
108
|
-
NotInitialized = 0,
|
|
109
|
-
Active = 1,
|
|
110
|
-
Closed = 2,
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export type SessionState = {
|
|
114
|
-
status: SessionStatus;
|
|
115
|
-
feesRemaining: bigint;
|
|
116
|
-
transferValue: {
|
|
117
|
-
remaining: bigint;
|
|
118
|
-
target: Address;
|
|
119
|
-
selector: Hash;
|
|
120
|
-
index: bigint;
|
|
121
|
-
}[];
|
|
122
|
-
callValue: {
|
|
123
|
-
remaining: bigint;
|
|
124
|
-
target: Address;
|
|
125
|
-
selector: Hash;
|
|
126
|
-
index: bigint;
|
|
127
|
-
}[];
|
|
128
|
-
callParams: {
|
|
129
|
-
remaining: bigint;
|
|
130
|
-
target: Address;
|
|
131
|
-
selector: Hash;
|
|
132
|
-
index: bigint;
|
|
133
|
-
}[];
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
export const getPeriodIdsForTransaction = (args: {
|
|
137
|
-
sessionConfig: SessionConfig;
|
|
138
|
-
target: Address;
|
|
139
|
-
selector?: Hex;
|
|
140
|
-
timestamp?: bigint;
|
|
141
|
-
}) => {
|
|
142
|
-
const timestamp = args.timestamp || BigInt(Math.floor(Date.now() / 1000));
|
|
143
|
-
const target = getAddress(args.target.toLowerCase());
|
|
144
|
-
|
|
145
|
-
const getId = (limit: Limit): bigint => {
|
|
146
|
-
if (limit.limitType === LimitType.Allowance) {
|
|
147
|
-
return timestamp / limit.period;
|
|
148
|
-
}
|
|
149
|
-
return 0n;
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
const findTransferPolicy = () => {
|
|
153
|
-
return args.sessionConfig.transferPolicies.find((policy) => policy.target === target);
|
|
154
|
-
};
|
|
155
|
-
const findCallPolicy = () => {
|
|
156
|
-
return args.sessionConfig.callPolicies.find(
|
|
157
|
-
(policy) => policy.target === target && policy.selector == args.selector,
|
|
158
|
-
);
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
const isContractCall = !!args.selector;
|
|
162
|
-
const policy: TransferPolicy | CallPolicy | undefined = isContractCall ? findCallPolicy() : findTransferPolicy();
|
|
163
|
-
if (!policy) throw new Error("Transaction does not fit any policy");
|
|
164
|
-
|
|
165
|
-
const periodIds = [
|
|
166
|
-
getId(args.sessionConfig.feeLimit),
|
|
167
|
-
getId(policy.valueLimit),
|
|
168
|
-
...(isContractCall ? (policy as CallPolicy).constraints.map((constraint) => getId(constraint.limit)) : []),
|
|
169
|
-
];
|
|
170
|
-
return periodIds;
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
export enum SessionErrorType {
|
|
174
|
-
SessionInactive = "session_inactive",
|
|
175
|
-
SessionExpired = "session_expired",
|
|
176
|
-
FeeLimitExceeded = "fee_limit_exceeded",
|
|
177
|
-
NoCallPolicy = "no_call_policy",
|
|
178
|
-
NoTransferPolicy = "no_transfer_policy",
|
|
179
|
-
MaxValuePerUseExceeded = "max_value_per_use_exceeded",
|
|
180
|
-
ValueLimitExceeded = "value_limit_exceeded",
|
|
181
|
-
ConstraintIndexOutOfBounds = "constraint_index_out_of_bounds",
|
|
182
|
-
NoLimitStateFound = "no_limit_state_found",
|
|
183
|
-
ParameterLimitExceeded = "parameter_limit_exceeded",
|
|
184
|
-
ConstraintEqualViolated = "constraint_equal_violated",
|
|
185
|
-
ConstraintGreaterViolated = "constraint_greater_violated",
|
|
186
|
-
ConstraintLessViolated = "constraint_less_violated",
|
|
187
|
-
ConstraintGreaterEqualViolated = "constraint_greater_equal_violated",
|
|
188
|
-
ConstraintLessEqualViolated = "constraint_less_equal_violated",
|
|
189
|
-
ConstraintNotEqualViolated = "constraint_not_equal_violated",
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
export enum SessionEventType {
|
|
193
|
-
Expired = "session_expired",
|
|
194
|
-
Revoked = "session_revoked",
|
|
195
|
-
Inactive = "session_inactive",
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
export type SessionStateEvent = {
|
|
199
|
-
type: SessionEventType;
|
|
200
|
-
message: string;
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
export type SessionStateEventCallback = (event: SessionStateEvent) => void;
|
|
204
|
-
|
|
205
|
-
export type ValidationResult = {
|
|
206
|
-
valid: boolean;
|
|
207
|
-
error: null | {
|
|
208
|
-
type: SessionErrorType;
|
|
209
|
-
message: string;
|
|
210
|
-
};
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
export type TransactionValidationArgs = {
|
|
214
|
-
sessionState: SessionState;
|
|
215
|
-
sessionConfig: SessionConfig;
|
|
216
|
-
transaction: {
|
|
217
|
-
to: Address;
|
|
218
|
-
value?: bigint;
|
|
219
|
-
data?: Hex;
|
|
220
|
-
gas?: bigint;
|
|
221
|
-
gasPrice?: bigint;
|
|
222
|
-
maxFeePerGas?: bigint;
|
|
223
|
-
maxPriorityFeePerGas?: bigint;
|
|
224
|
-
paymaster?: Address;
|
|
225
|
-
};
|
|
226
|
-
currentTimestamp?: bigint;
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
export function validateSessionTransaction(args: TransactionValidationArgs): ValidationResult {
|
|
230
|
-
const { sessionState, sessionConfig, transaction, currentTimestamp } = args;
|
|
231
|
-
const timestamp = currentTimestamp || BigInt(Math.floor(Date.now() / 1000));
|
|
232
|
-
|
|
233
|
-
// 1. Check if session is active
|
|
234
|
-
if (sessionState.status !== SessionStatus.Active) {
|
|
235
|
-
return {
|
|
236
|
-
valid: false,
|
|
237
|
-
error: {
|
|
238
|
-
type: SessionErrorType.SessionInactive,
|
|
239
|
-
message: "Session is not active",
|
|
240
|
-
},
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// 2. Check if session hasn't expired
|
|
245
|
-
if (sessionConfig.expiresAt <= timestamp) {
|
|
246
|
-
return {
|
|
247
|
-
valid: false,
|
|
248
|
-
error: {
|
|
249
|
-
type: SessionErrorType.SessionExpired,
|
|
250
|
-
message: "Session has expired",
|
|
251
|
-
},
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// 3. Extract transaction data
|
|
256
|
-
const to = getAddress(transaction.to.toLowerCase());
|
|
257
|
-
const value = transaction.value || 0n;
|
|
258
|
-
const data = transaction.data || "0x";
|
|
259
|
-
const gas = transaction.gas || 0n;
|
|
260
|
-
const selector = data.length >= 10 ? data.slice(0, 10) as Hash : undefined;
|
|
261
|
-
|
|
262
|
-
if (!transaction.paymaster) {
|
|
263
|
-
const maxFee = calculateMaxFee({
|
|
264
|
-
gas,
|
|
265
|
-
gasPrice: transaction.gasPrice,
|
|
266
|
-
maxFeePerGas: transaction.maxFeePerGas,
|
|
267
|
-
maxPriorityFeePerGas: transaction.maxPriorityFeePerGas,
|
|
268
|
-
});
|
|
269
|
-
|
|
270
|
-
if (maxFee > sessionState.feesRemaining) {
|
|
271
|
-
return {
|
|
272
|
-
valid: false,
|
|
273
|
-
error: {
|
|
274
|
-
type: SessionErrorType.FeeLimitExceeded,
|
|
275
|
-
message: `Transaction max fee ${maxFee} exceeds remaining fee limit ${sessionState.feesRemaining}`,
|
|
276
|
-
},
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
const isContractCall = !!selector;
|
|
282
|
-
if (isContractCall) {
|
|
283
|
-
const policies = sessionConfig.callPolicies.filter(
|
|
284
|
-
(policy) => policy.target === to && policy.selector === selector,
|
|
285
|
-
);
|
|
286
|
-
|
|
287
|
-
if (!policies.length) {
|
|
288
|
-
return {
|
|
289
|
-
valid: false,
|
|
290
|
-
error: {
|
|
291
|
-
type: SessionErrorType.NoCallPolicy,
|
|
292
|
-
message: `No call policy found for target ${to} with selector ${selector}`,
|
|
293
|
-
},
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
// Verify max value per use
|
|
298
|
-
const lowestMaxValuePerUse = findSmallestBigInt(policies.map((policy) => policy.maxValuePerUse));
|
|
299
|
-
if (value > lowestMaxValuePerUse) {
|
|
300
|
-
return {
|
|
301
|
-
valid: false,
|
|
302
|
-
error: {
|
|
303
|
-
type: SessionErrorType.MaxValuePerUseExceeded,
|
|
304
|
-
message: `Transaction value ${value} exceeds max value per use ${lowestMaxValuePerUse}`,
|
|
305
|
-
},
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
// Verify remaining value limit
|
|
310
|
-
const remainingValue = findLowestRemainingValue(sessionState.callValue, to, selector);
|
|
311
|
-
if (value > remainingValue) {
|
|
312
|
-
return {
|
|
313
|
-
valid: false,
|
|
314
|
-
error: {
|
|
315
|
-
type: SessionErrorType.ValueLimitExceeded,
|
|
316
|
-
message: `Transaction value ${value} exceeds remaining value limit ${remainingValue || 0n}`,
|
|
317
|
-
},
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
for (const policy of policies) {
|
|
322
|
-
const constraintResult = validateConstraints(data, policy.constraints, sessionState.callParams);
|
|
323
|
-
if (!constraintResult.valid) return constraintResult;
|
|
324
|
-
}
|
|
325
|
-
} else {
|
|
326
|
-
// This is a simple transfer
|
|
327
|
-
const policies = sessionConfig.transferPolicies.filter((policy) => policy.target === to);
|
|
328
|
-
if (!policies.length) {
|
|
329
|
-
return {
|
|
330
|
-
valid: false,
|
|
331
|
-
error: {
|
|
332
|
-
type: SessionErrorType.NoTransferPolicy,
|
|
333
|
-
message: `No transfer policy found for target ${to}`,
|
|
334
|
-
},
|
|
335
|
-
};
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
// Verify max value per use
|
|
339
|
-
const lowestMaxValuePerUse = findSmallestBigInt(policies.map((policy) => policy.maxValuePerUse));
|
|
340
|
-
if (value > lowestMaxValuePerUse) {
|
|
341
|
-
return {
|
|
342
|
-
valid: false,
|
|
343
|
-
error: {
|
|
344
|
-
type: SessionErrorType.MaxValuePerUseExceeded,
|
|
345
|
-
message: `Transaction value ${value} exceeds max value per use ${lowestMaxValuePerUse}`,
|
|
346
|
-
},
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
// Verify remaining value limit
|
|
351
|
-
const remainingValue = findLowestRemainingValue(sessionState.transferValue, to);
|
|
352
|
-
if (value > remainingValue) {
|
|
353
|
-
return {
|
|
354
|
-
valid: false,
|
|
355
|
-
error: {
|
|
356
|
-
type: SessionErrorType.ValueLimitExceeded,
|
|
357
|
-
message: `Transaction value ${value} exceeds remaining value limit ${remainingValue || 0n}`,
|
|
358
|
-
},
|
|
359
|
-
};
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
return {
|
|
364
|
-
valid: true,
|
|
365
|
-
error: null,
|
|
366
|
-
};
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
function findLowestRemainingValue(
|
|
370
|
-
valueArray: SessionState["transferValue"] | SessionState["callValue"],
|
|
371
|
-
target: Address,
|
|
372
|
-
selector?: Hash,
|
|
373
|
-
): bigint {
|
|
374
|
-
if (selector) {
|
|
375
|
-
const filtered = valueArray
|
|
376
|
-
.filter((item) => item.target === target && item.selector === selector)
|
|
377
|
-
.map((item) => item.remaining);
|
|
378
|
-
if (!filtered.length) return 0n;
|
|
379
|
-
return findSmallestBigInt(filtered);
|
|
380
|
-
} else {
|
|
381
|
-
const filtered = valueArray
|
|
382
|
-
.filter((item) => item.target === target)
|
|
383
|
-
.map((item) => item.remaining);
|
|
384
|
-
if (!filtered.length) return 0n;
|
|
385
|
-
return findSmallestBigInt(filtered);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
function validateConstraints(
|
|
390
|
-
data: Hex,
|
|
391
|
-
constraints: Constraint[],
|
|
392
|
-
callParams: SessionState["callParams"],
|
|
393
|
-
): ValidationResult {
|
|
394
|
-
const dataBytes = hexToBytes(data);
|
|
395
|
-
|
|
396
|
-
for (const constraint of constraints) {
|
|
397
|
-
// Find proper index and extract data
|
|
398
|
-
const index = Number(constraint.index);
|
|
399
|
-
if (index + 32 > dataBytes.length) {
|
|
400
|
-
return {
|
|
401
|
-
valid: false,
|
|
402
|
-
error: {
|
|
403
|
-
type: SessionErrorType.ConstraintIndexOutOfBounds,
|
|
404
|
-
message: `Constraint index ${index} out of bounds for data length ${dataBytes.length}`,
|
|
405
|
-
},
|
|
406
|
-
};
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
const parameterBytes = dataBytes.slice(index, index + 32);
|
|
410
|
-
const parameterValue = bytesToHex(parameterBytes);
|
|
411
|
-
const refValue = constraint.refValue;
|
|
412
|
-
|
|
413
|
-
// Find remaining limit value if applicable
|
|
414
|
-
let remaining: bigint | undefined;
|
|
415
|
-
if (constraint.limit.limitType !== LimitType.Unlimited) {
|
|
416
|
-
const paramItem = callParams.find((item) => Number(item.index) === index);
|
|
417
|
-
remaining = paramItem?.remaining;
|
|
418
|
-
|
|
419
|
-
// If this is a limited constraint, but we don't have state for it, something is wrong
|
|
420
|
-
if (remaining === undefined) {
|
|
421
|
-
return {
|
|
422
|
-
valid: false,
|
|
423
|
-
error: {
|
|
424
|
-
type: SessionErrorType.NoLimitStateFound,
|
|
425
|
-
message: `No remaining limit state found for constraint at index ${index}`,
|
|
426
|
-
},
|
|
427
|
-
};
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
// Check if parameter value exceeds remaining limit
|
|
431
|
-
const parameterValueBigInt = hexToBigInt(parameterValue);
|
|
432
|
-
if (parameterValueBigInt > remaining) {
|
|
433
|
-
return {
|
|
434
|
-
valid: false,
|
|
435
|
-
error: {
|
|
436
|
-
type: SessionErrorType.ParameterLimitExceeded,
|
|
437
|
-
message: `Parameter value ${parameterValueBigInt} at index ${index} exceeds remaining limit ${remaining}`,
|
|
438
|
-
},
|
|
439
|
-
};
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
// Check condition
|
|
444
|
-
switch (constraint.condition) {
|
|
445
|
-
case ConstraintCondition.Equal:
|
|
446
|
-
if (parameterValue !== refValue) {
|
|
447
|
-
return {
|
|
448
|
-
valid: false,
|
|
449
|
-
error: {
|
|
450
|
-
type: SessionErrorType.ConstraintEqualViolated,
|
|
451
|
-
message: `Parameter value ${parameterValue} must equal ${refValue}`,
|
|
452
|
-
},
|
|
453
|
-
};
|
|
454
|
-
}
|
|
455
|
-
break;
|
|
456
|
-
case ConstraintCondition.Greater:
|
|
457
|
-
if (parameterValue <= refValue) {
|
|
458
|
-
return {
|
|
459
|
-
valid: false,
|
|
460
|
-
error: {
|
|
461
|
-
type: SessionErrorType.ConstraintGreaterViolated,
|
|
462
|
-
message: `Parameter value ${parameterValue} must be greater than ${refValue}`,
|
|
463
|
-
},
|
|
464
|
-
};
|
|
465
|
-
}
|
|
466
|
-
break;
|
|
467
|
-
case ConstraintCondition.Less:
|
|
468
|
-
if (parameterValue >= refValue) {
|
|
469
|
-
return {
|
|
470
|
-
valid: false,
|
|
471
|
-
error: {
|
|
472
|
-
type: SessionErrorType.ConstraintLessViolated,
|
|
473
|
-
message: `Parameter value ${parameterValue} must be less than ${refValue}`,
|
|
474
|
-
},
|
|
475
|
-
};
|
|
476
|
-
}
|
|
477
|
-
break;
|
|
478
|
-
case ConstraintCondition.GreaterEqual:
|
|
479
|
-
if (parameterValue < refValue) {
|
|
480
|
-
return {
|
|
481
|
-
valid: false,
|
|
482
|
-
error: {
|
|
483
|
-
type: SessionErrorType.ConstraintGreaterEqualViolated,
|
|
484
|
-
message: `Parameter value ${parameterValue} must be greater than or equal to ${refValue}`,
|
|
485
|
-
},
|
|
486
|
-
};
|
|
487
|
-
}
|
|
488
|
-
break;
|
|
489
|
-
case ConstraintCondition.LessEqual:
|
|
490
|
-
if (parameterValue > refValue) {
|
|
491
|
-
return {
|
|
492
|
-
valid: false,
|
|
493
|
-
error: {
|
|
494
|
-
type: SessionErrorType.ConstraintLessEqualViolated,
|
|
495
|
-
message: `Parameter value ${parameterValue} must be less than or equal to ${refValue}`,
|
|
496
|
-
},
|
|
497
|
-
};
|
|
498
|
-
}
|
|
499
|
-
break;
|
|
500
|
-
case ConstraintCondition.NotEqual:
|
|
501
|
-
if (parameterValue === refValue) {
|
|
502
|
-
return {
|
|
503
|
-
valid: false,
|
|
504
|
-
error: {
|
|
505
|
-
type: SessionErrorType.ConstraintNotEqualViolated,
|
|
506
|
-
message: `Parameter value ${parameterValue} must not equal ${refValue}`,
|
|
507
|
-
},
|
|
508
|
-
};
|
|
509
|
-
}
|
|
510
|
-
break;
|
|
511
|
-
case ConstraintCondition.Unconstrained:
|
|
512
|
-
// Unconstrained means no checks, so we skip
|
|
513
|
-
break;
|
|
514
|
-
default:
|
|
515
|
-
console.warn(`Unhandled constraint condition: ${constraint.condition}`);
|
|
516
|
-
break;
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
return {
|
|
521
|
-
valid: true,
|
|
522
|
-
error: null,
|
|
523
|
-
};
|
|
524
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|