@zerodev/wallet-core 0.0.1-alpha.9 → 0.0.1
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/README.md +68 -18
- package/dist/_cjs/actions/auth/authenticateWithEmail.js +1 -2
- package/dist/_cjs/actions/auth/authenticateWithEmail.js.map +1 -1
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js +2 -3
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js.map +1 -1
- package/dist/_cjs/actions/auth/getAuthProxyConfigId.js +10 -0
- package/dist/_cjs/actions/auth/getAuthProxyConfigId.js.map +1 -0
- package/dist/_cjs/actions/auth/getAuthenticators.js +16 -0
- package/dist/_cjs/actions/auth/getAuthenticators.js.map +1 -0
- package/dist/_cjs/actions/auth/getOAuthLoginUrl.js +18 -0
- package/dist/_cjs/actions/auth/getOAuthLoginUrl.js.map +1 -0
- package/dist/_cjs/actions/auth/getParentOrgId.js +10 -0
- package/dist/_cjs/actions/auth/getParentOrgId.js.map +1 -0
- package/dist/_cjs/actions/auth/getWhoami.js +18 -4
- package/dist/_cjs/actions/auth/getWhoami.js.map +1 -1
- package/dist/_cjs/actions/auth/index.js +9 -3
- package/dist/_cjs/actions/auth/index.js.map +1 -1
- package/dist/_cjs/actions/auth/loginWithStamp.js +5 -6
- package/dist/_cjs/actions/auth/loginWithStamp.js.map +1 -1
- package/dist/_cjs/actions/auth/registerWithOTP.js +1 -2
- package/dist/_cjs/actions/auth/registerWithOTP.js.map +1 -1
- package/dist/_cjs/actions/auth/registerWithPasskey.js +1 -2
- package/dist/_cjs/actions/auth/registerWithPasskey.js.map +1 -1
- package/dist/_cjs/actions/index.js +9 -3
- package/dist/_cjs/actions/index.js.map +1 -1
- package/dist/_cjs/actions/wallet/getUserWallet.js +3 -5
- package/dist/_cjs/actions/wallet/getUserWallet.js.map +1 -1
- package/dist/_cjs/actions/wallet/index.js +9 -3
- package/dist/_cjs/actions/wallet/index.js.map +1 -1
- package/dist/_cjs/actions/wallet/sign7702Authorization.js +16 -0
- package/dist/_cjs/actions/wallet/sign7702Authorization.js.map +1 -0
- package/dist/_cjs/actions/wallet/signMessage.js +17 -0
- package/dist/_cjs/actions/wallet/signMessage.js.map +1 -0
- package/dist/_cjs/actions/wallet/signTransaction.js +9 -18
- package/dist/_cjs/actions/wallet/signTransaction.js.map +1 -1
- package/dist/_cjs/actions/wallet/signTypedDataV4.js +17 -0
- package/dist/_cjs/actions/wallet/signTypedDataV4.js.map +1 -0
- package/dist/_cjs/actions/wallet/signUserOperation.js +17 -0
- package/dist/_cjs/actions/wallet/signUserOperation.js.map +1 -0
- package/dist/_cjs/actions/wallet/signingUtils.js +64 -0
- package/dist/_cjs/actions/wallet/signingUtils.js.map +1 -0
- package/dist/_cjs/adapters/viem.js +60 -27
- package/dist/_cjs/adapters/viem.js.map +1 -1
- package/dist/_cjs/client/authProxy.js +1 -1
- package/dist/_cjs/client/authProxy.js.map +1 -1
- package/dist/_cjs/client/createClient.js +5 -5
- package/dist/_cjs/client/createClient.js.map +1 -1
- package/dist/_cjs/client/decorators/client.js +9 -4
- package/dist/_cjs/client/decorators/client.js.map +1 -1
- package/dist/_cjs/client/index.js.map +1 -1
- package/dist/_cjs/client/transports/createTransport.js +6 -5
- package/dist/_cjs/client/transports/createTransport.js.map +1 -1
- package/dist/_cjs/client/transports/rest.js +40 -28
- package/dist/_cjs/client/transports/rest.js.map +1 -1
- package/dist/_cjs/constants.js +4 -4
- package/dist/_cjs/constants.js.map +1 -1
- package/dist/_cjs/core/{createZeroDevWallet.js → createZeroDevWalletCore.js} +94 -86
- package/dist/_cjs/core/createZeroDevWalletCore.js.map +1 -0
- package/dist/_cjs/index.js +14 -8
- package/dist/_cjs/index.js.map +1 -1
- package/dist/_cjs/index.native.js +39 -0
- package/dist/_cjs/index.native.js.map +1 -0
- package/dist/_cjs/native/createZeroDevWallet.js +13 -0
- package/dist/_cjs/native/createZeroDevWallet.js.map +1 -0
- package/dist/_cjs/native/stampers/passkey.js +30 -0
- package/dist/_cjs/native/stampers/passkey.js.map +1 -0
- package/dist/_cjs/native/stampers/secureStore.js +112 -0
- package/dist/_cjs/native/stampers/secureStore.js.map +1 -0
- package/dist/_cjs/native/storage/asyncStorage.js +11 -0
- package/dist/_cjs/native/storage/asyncStorage.js.map +1 -0
- package/dist/_cjs/stampers/iframeStamper.js +3 -0
- package/dist/_cjs/stampers/iframeStamper.js.map +1 -1
- package/dist/_cjs/stampers/indexedDbStamper.js +20 -2
- package/dist/_cjs/stampers/indexedDbStamper.js.map +1 -1
- package/dist/_cjs/stampers/noopPasskeyStamper.js +16 -0
- package/dist/_cjs/stampers/noopPasskeyStamper.js.map +1 -0
- package/dist/_cjs/stampers/webauthnStamper.js +23 -3
- package/dist/_cjs/stampers/webauthnStamper.js.map +1 -1
- package/dist/_cjs/stubs/native-on-web.js +12 -0
- package/dist/_cjs/stubs/native-on-web.js.map +1 -0
- package/dist/_cjs/utils/encryptOtpAttempt.js +57 -0
- package/dist/_cjs/utils/encryptOtpAttempt.js.map +1 -0
- package/dist/_cjs/utils/exportPrivateKey.js +1 -1
- package/dist/_cjs/utils/exportPrivateKey.js.map +1 -1
- package/dist/_cjs/utils/exportWallet.js +52 -61
- package/dist/_cjs/utils/exportWallet.js.map +1 -1
- package/dist/_cjs/utils/hpke.js +78 -0
- package/dist/_cjs/utils/hpke.js.map +1 -0
- package/dist/_cjs/utils/platform.js +19 -0
- package/dist/_cjs/utils/platform.js.map +1 -0
- package/dist/_cjs/utils/resolveOrganizationId.js +20 -0
- package/dist/_cjs/utils/resolveOrganizationId.js.map +1 -0
- package/dist/_cjs/utils/utils.js +5 -6
- package/dist/_cjs/utils/utils.js.map +1 -1
- package/dist/_cjs/web/createZeroDevWallet.js +21 -0
- package/dist/_cjs/web/createZeroDevWallet.js.map +1 -0
- package/dist/_esm/actions/auth/authenticateWithEmail.js +1 -2
- package/dist/_esm/actions/auth/authenticateWithEmail.js.map +1 -1
- package/dist/_esm/actions/auth/authenticateWithOAuth.js +8 -7
- package/dist/_esm/actions/auth/authenticateWithOAuth.js.map +1 -1
- package/dist/_esm/actions/auth/getAuthProxyConfigId.js +13 -0
- package/dist/_esm/actions/auth/getAuthProxyConfigId.js.map +1 -0
- package/dist/_esm/actions/auth/getAuthenticators.js +36 -0
- package/dist/_esm/actions/auth/getAuthenticators.js.map +1 -0
- package/dist/_esm/actions/auth/getOAuthLoginUrl.js +23 -0
- package/dist/_esm/actions/auth/getOAuthLoginUrl.js.map +1 -0
- package/dist/_esm/actions/auth/getParentOrgId.js +17 -0
- package/dist/_esm/actions/auth/getParentOrgId.js.map +1 -0
- package/dist/_esm/actions/auth/getWhoami.js +28 -6
- package/dist/_esm/actions/auth/getWhoami.js.map +1 -1
- package/dist/_esm/actions/auth/index.js +4 -1
- package/dist/_esm/actions/auth/index.js.map +1 -1
- package/dist/_esm/actions/auth/loginWithStamp.js +9 -6
- package/dist/_esm/actions/auth/loginWithStamp.js.map +1 -1
- package/dist/_esm/actions/auth/registerWithOTP.js +5 -2
- package/dist/_esm/actions/auth/registerWithOTP.js.map +1 -1
- package/dist/_esm/actions/auth/registerWithPasskey.js +1 -3
- package/dist/_esm/actions/auth/registerWithPasskey.js.map +1 -1
- package/dist/_esm/actions/index.js +2 -2
- package/dist/_esm/actions/index.js.map +1 -1
- package/dist/_esm/actions/wallet/getUserWallet.js +5 -5
- package/dist/_esm/actions/wallet/getUserWallet.js.map +1 -1
- package/dist/_esm/actions/wallet/index.js +4 -1
- package/dist/_esm/actions/wallet/index.js.map +1 -1
- package/dist/_esm/actions/wallet/sign7702Authorization.js +13 -0
- package/dist/_esm/actions/wallet/sign7702Authorization.js.map +1 -0
- package/dist/_esm/actions/wallet/signMessage.js +14 -0
- package/dist/_esm/actions/wallet/signMessage.js.map +1 -0
- package/dist/_esm/actions/wallet/signTransaction.js +9 -36
- package/dist/_esm/actions/wallet/signTransaction.js.map +1 -1
- package/dist/_esm/actions/wallet/signTypedDataV4.js +14 -0
- package/dist/_esm/actions/wallet/signTypedDataV4.js.map +1 -0
- package/dist/_esm/actions/wallet/signUserOperation.js +14 -0
- package/dist/_esm/actions/wallet/signUserOperation.js.map +1 -0
- package/dist/_esm/actions/wallet/signingUtils.js +69 -0
- package/dist/_esm/actions/wallet/signingUtils.js.map +1 -0
- package/dist/_esm/adapters/viem.js +63 -30
- package/dist/_esm/adapters/viem.js.map +1 -1
- package/dist/_esm/client/authProxy.js +9 -4
- package/dist/_esm/client/authProxy.js.map +1 -1
- package/dist/_esm/client/createClient.js +5 -5
- package/dist/_esm/client/createClient.js.map +1 -1
- package/dist/_esm/client/decorators/client.js +9 -4
- package/dist/_esm/client/decorators/client.js.map +1 -1
- package/dist/_esm/client/index.js +1 -1
- package/dist/_esm/client/index.js.map +1 -1
- package/dist/_esm/client/transports/createTransport.js +6 -5
- package/dist/_esm/client/transports/createTransport.js.map +1 -1
- package/dist/_esm/client/transports/rest.js +44 -29
- package/dist/_esm/client/transports/rest.js.map +1 -1
- package/dist/_esm/constants.js +10 -3
- package/dist/_esm/constants.js.map +1 -1
- package/dist/_esm/core/{createZeroDevWallet.js → createZeroDevWalletCore.js} +115 -90
- package/dist/_esm/core/createZeroDevWalletCore.js.map +1 -0
- package/dist/_esm/index.js +13 -5
- package/dist/_esm/index.js.map +1 -1
- package/dist/_esm/index.native.js +19 -0
- package/dist/_esm/index.native.js.map +1 -0
- package/dist/_esm/native/createZeroDevWallet.js +10 -0
- package/dist/_esm/native/createZeroDevWallet.js.map +1 -0
- package/dist/_esm/native/stampers/passkey.js +27 -0
- package/dist/_esm/native/stampers/passkey.js.map +1 -0
- package/dist/_esm/native/stampers/secureStore.js +120 -0
- package/dist/_esm/native/stampers/secureStore.js.map +1 -0
- package/dist/_esm/native/storage/asyncStorage.js +13 -0
- package/dist/_esm/native/storage/asyncStorage.js.map +1 -0
- package/dist/_esm/stampers/iframeStamper.js +3 -0
- package/dist/_esm/stampers/iframeStamper.js.map +1 -1
- package/dist/_esm/stampers/indexedDbStamper.js +20 -2
- package/dist/_esm/stampers/indexedDbStamper.js.map +1 -1
- package/dist/_esm/stampers/noopPasskeyStamper.js +18 -0
- package/dist/_esm/stampers/noopPasskeyStamper.js.map +1 -0
- package/dist/_esm/stampers/webauthnStamper.js +23 -4
- package/dist/_esm/stampers/webauthnStamper.js.map +1 -1
- package/dist/_esm/stubs/native-on-web.js +25 -0
- package/dist/_esm/stubs/native-on-web.js.map +1 -0
- package/dist/_esm/utils/encryptOtpAttempt.js +81 -0
- package/dist/_esm/utils/encryptOtpAttempt.js.map +1 -0
- package/dist/_esm/utils/exportPrivateKey.js +1 -1
- package/dist/_esm/utils/exportPrivateKey.js.map +1 -1
- package/dist/_esm/utils/exportWallet.js +52 -61
- package/dist/_esm/utils/exportWallet.js.map +1 -1
- package/dist/_esm/utils/hpke.js +119 -0
- package/dist/_esm/utils/hpke.js.map +1 -0
- package/dist/_esm/utils/platform.js +16 -0
- package/dist/_esm/utils/platform.js.map +1 -0
- package/dist/_esm/utils/resolveOrganizationId.js +27 -0
- package/dist/_esm/utils/resolveOrganizationId.js.map +1 -0
- package/dist/_esm/utils/utils.js +5 -6
- package/dist/_esm/utils/utils.js.map +1 -1
- package/dist/_esm/web/createZeroDevWallet.js +18 -0
- package/dist/_esm/web/createZeroDevWallet.js.map +1 -0
- package/dist/_types/actions/auth/authenticateWithEmail.d.ts +0 -6
- package/dist/_types/actions/auth/authenticateWithEmail.d.ts.map +1 -1
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts +10 -4
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts.map +1 -1
- package/dist/_types/actions/auth/getAuthProxyConfigId.d.ts +12 -0
- package/dist/_types/actions/auth/getAuthProxyConfigId.d.ts.map +1 -0
- package/dist/_types/actions/auth/getAuthenticators.d.ts +65 -0
- package/dist/_types/actions/auth/getAuthenticators.d.ts.map +1 -0
- package/dist/_types/actions/auth/getOAuthLoginUrl.d.ts +30 -0
- package/dist/_types/actions/auth/getOAuthLoginUrl.d.ts.map +1 -0
- package/dist/_types/actions/auth/getParentOrgId.d.ts +17 -0
- package/dist/_types/actions/auth/getParentOrgId.d.ts.map +1 -0
- package/dist/_types/actions/auth/getWhoami.d.ts +9 -2
- package/dist/_types/actions/auth/getWhoami.d.ts.map +1 -1
- package/dist/_types/actions/auth/index.d.ts +5 -2
- package/dist/_types/actions/auth/index.d.ts.map +1 -1
- package/dist/_types/actions/auth/loginWithStamp.d.ts +2 -5
- package/dist/_types/actions/auth/loginWithStamp.d.ts.map +1 -1
- package/dist/_types/actions/auth/registerWithOTP.d.ts +10 -3
- package/dist/_types/actions/auth/registerWithOTP.d.ts.map +1 -1
- package/dist/_types/actions/auth/registerWithPasskey.d.ts +0 -7
- package/dist/_types/actions/auth/registerWithPasskey.d.ts.map +1 -1
- package/dist/_types/actions/index.d.ts +2 -2
- package/dist/_types/actions/index.d.ts.map +1 -1
- package/dist/_types/actions/wallet/index.d.ts +4 -1
- package/dist/_types/actions/wallet/index.d.ts.map +1 -1
- package/dist/_types/actions/wallet/sign7702Authorization.d.ts +19 -0
- package/dist/_types/actions/wallet/sign7702Authorization.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signMessage.d.ts +19 -0
- package/dist/_types/actions/wallet/signMessage.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts +1 -19
- package/dist/_types/actions/wallet/signTransaction.d.ts.map +1 -1
- package/dist/_types/actions/wallet/signTypedDataV4.d.ts +21 -0
- package/dist/_types/actions/wallet/signTypedDataV4.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signUserOperation.d.ts +21 -0
- package/dist/_types/actions/wallet/signUserOperation.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signingUtils.d.ts +32 -0
- package/dist/_types/actions/wallet/signingUtils.d.ts.map +1 -0
- package/dist/_types/adapters/viem.d.ts +1 -1
- package/dist/_types/adapters/viem.d.ts.map +1 -1
- package/dist/_types/client/authProxy.d.ts +13 -7
- package/dist/_types/client/authProxy.d.ts.map +1 -1
- package/dist/_types/client/decorators/client.d.ts +32 -6
- package/dist/_types/client/decorators/client.d.ts.map +1 -1
- package/dist/_types/client/index.d.ts +1 -1
- package/dist/_types/client/index.d.ts.map +1 -1
- package/dist/_types/client/transports/createTransport.d.ts +2 -0
- package/dist/_types/client/transports/createTransport.d.ts.map +1 -1
- package/dist/_types/client/transports/rest.d.ts +13 -5
- package/dist/_types/client/transports/rest.d.ts.map +1 -1
- package/dist/_types/client/types.d.ts +9 -9
- package/dist/_types/client/types.d.ts.map +1 -1
- package/dist/_types/constants.d.ts +3 -3
- package/dist/_types/constants.d.ts.map +1 -1
- package/dist/_types/core/{createZeroDevWallet.d.ts → createZeroDevWalletCore.d.ts} +30 -10
- package/dist/_types/core/createZeroDevWalletCore.d.ts.map +1 -0
- package/dist/_types/index.d.ts +7 -7
- package/dist/_types/index.d.ts.map +1 -1
- package/dist/_types/index.native.d.ts +19 -0
- package/dist/_types/index.native.d.ts.map +1 -0
- package/dist/_types/native/createZeroDevWallet.d.ts +12 -0
- package/dist/_types/native/createZeroDevWallet.d.ts.map +1 -0
- package/dist/_types/native/stampers/passkey.d.ts +5 -0
- package/dist/_types/native/stampers/passkey.d.ts.map +1 -0
- package/dist/_types/native/stampers/secureStore.d.ts +3 -0
- package/dist/_types/native/stampers/secureStore.d.ts.map +1 -0
- package/dist/_types/native/storage/asyncStorage.d.ts +3 -0
- package/dist/_types/native/storage/asyncStorage.d.ts.map +1 -0
- package/dist/_types/stampers/iframeStamper.d.ts.map +1 -1
- package/dist/_types/stampers/indexedDbStamper.d.ts +2 -2
- package/dist/_types/stampers/indexedDbStamper.d.ts.map +1 -1
- package/dist/_types/stampers/noopPasskeyStamper.d.ts +8 -0
- package/dist/_types/stampers/noopPasskeyStamper.d.ts.map +1 -0
- package/dist/_types/stampers/types.d.ts +39 -5
- package/dist/_types/stampers/types.d.ts.map +1 -1
- package/dist/_types/stampers/webauthnStamper.d.ts +2 -2
- package/dist/_types/stampers/webauthnStamper.d.ts.map +1 -1
- package/dist/_types/stubs/native-on-web.d.ts +6 -0
- package/dist/_types/stubs/native-on-web.d.ts.map +1 -0
- package/dist/_types/types/session.d.ts +2 -3
- package/dist/_types/types/session.d.ts.map +1 -1
- package/dist/_types/utils/buildClientSignature.d.ts +3 -3
- package/dist/_types/utils/buildClientSignature.d.ts.map +1 -1
- package/dist/_types/utils/encryptOtpAttempt.d.ts +40 -0
- package/dist/_types/utils/encryptOtpAttempt.d.ts.map +1 -0
- package/dist/_types/utils/exportPrivateKey.d.ts +1 -1
- package/dist/_types/utils/exportPrivateKey.d.ts.map +1 -1
- package/dist/_types/utils/exportWallet.d.ts +1 -1
- package/dist/_types/utils/exportWallet.d.ts.map +1 -1
- package/dist/_types/utils/hpke.d.ts +38 -0
- package/dist/_types/utils/hpke.d.ts.map +1 -0
- package/dist/_types/utils/platform.d.ts +2 -0
- package/dist/_types/utils/platform.d.ts.map +1 -0
- package/dist/_types/utils/resolveOrganizationId.d.ts +16 -0
- package/dist/_types/utils/resolveOrganizationId.d.ts.map +1 -0
- package/dist/_types/utils/utils.d.ts.map +1 -1
- package/dist/_types/web/createZeroDevWallet.d.ts +18 -0
- package/dist/_types/web/createZeroDevWallet.d.ts.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +100 -11
- package/src/actions/auth/authenticateWithEmail.ts +1 -9
- package/src/actions/auth/authenticateWithOAuth.ts +12 -7
- package/src/actions/auth/getAuthProxyConfigId.ts +20 -0
- package/src/actions/auth/getAuthenticators.ts +89 -0
- package/src/actions/auth/getOAuthLoginUrl.ts +48 -0
- package/src/actions/auth/getParentOrgId.ts +25 -0
- package/src/actions/auth/getWhoami.ts +33 -6
- package/src/actions/auth/index.ts +21 -5
- package/src/actions/auth/loginWithStamp.ts +11 -12
- package/src/actions/auth/registerWithOTP.ts +11 -5
- package/src/actions/auth/registerWithPasskey.ts +1 -10
- package/src/actions/index.ts +26 -7
- package/src/actions/wallet/getUserWallet.ts +5 -5
- package/src/actions/wallet/index.ts +22 -4
- package/src/actions/wallet/sign7702Authorization.ts +48 -0
- package/src/actions/wallet/signMessage.ts +47 -0
- package/src/actions/wallet/signTransaction.ts +19 -38
- package/src/actions/wallet/signTypedDataV4.ts +52 -0
- package/src/actions/wallet/signUserOperation.ts +56 -0
- package/src/actions/wallet/signingUtils.ts +110 -0
- package/src/adapters/viem.ts +75 -43
- package/src/client/authProxy.ts +14 -8
- package/src/client/createClient.ts +6 -6
- package/src/client/decorators/client.ts +78 -19
- package/src/client/index.ts +4 -1
- package/src/client/transports/createTransport.ts +8 -5
- package/src/client/transports/rest.ts +57 -34
- package/src/client/types.ts +9 -9
- package/src/constants.ts +12 -4
- package/src/core/{createZeroDevWallet.ts → createZeroDevWalletCore.ts} +147 -122
- package/src/index.native.ts +102 -0
- package/src/index.ts +49 -16
- package/src/native/createZeroDevWallet.ts +26 -0
- package/src/native/stampers/passkey.ts +39 -0
- package/src/native/stampers/secureStore.ts +139 -0
- package/src/native/storage/asyncStorage.ts +18 -0
- package/src/stampers/iframeStamper.ts +3 -0
- package/src/stampers/indexedDbStamper.ts +27 -4
- package/src/stampers/noopPasskeyStamper.ts +21 -0
- package/src/stampers/types.ts +39 -5
- package/src/stampers/webauthnStamper.ts +27 -6
- package/src/stubs/native-on-web.ts +29 -0
- package/src/types/session.ts +2 -3
- package/src/utils/buildClientSignature.ts +3 -3
- package/src/utils/encryptOtpAttempt.ts +142 -0
- package/src/utils/exportPrivateKey.ts +2 -2
- package/src/utils/exportWallet.ts +66 -75
- package/src/utils/hpke.ts +219 -0
- package/src/utils/platform.ts +21 -0
- package/src/utils/resolveOrganizationId.ts +28 -0
- package/src/utils/utils.ts +5 -6
- package/src/web/createZeroDevWallet.ts +45 -0
- package/dist/_cjs/actions/auth/getUserEmail.js +0 -19
- package/dist/_cjs/actions/auth/getUserEmail.js.map +0 -1
- package/dist/_cjs/actions/wallet/signRawPayload.js +0 -27
- package/dist/_cjs/actions/wallet/signRawPayload.js.map +0 -1
- package/dist/_cjs/core/createZeroDevWallet.js.map +0 -1
- package/dist/_cjs/stampers/index.js +0 -10
- package/dist/_cjs/stampers/index.js.map +0 -1
- package/dist/_esm/actions/auth/getUserEmail.js +0 -33
- package/dist/_esm/actions/auth/getUserEmail.js.map +0 -1
- package/dist/_esm/actions/wallet/signRawPayload.js +0 -42
- package/dist/_esm/actions/wallet/signRawPayload.js.map +0 -1
- package/dist/_esm/core/createZeroDevWallet.js.map +0 -1
- package/dist/_esm/stampers/index.js +0 -4
- package/dist/_esm/stampers/index.js.map +0 -1
- package/dist/_types/actions/auth/getUserEmail.d.ts +0 -32
- package/dist/_types/actions/auth/getUserEmail.d.ts.map +0 -1
- package/dist/_types/actions/wallet/signRawPayload.d.ts +0 -39
- package/dist/_types/actions/wallet/signRawPayload.d.ts.map +0 -1
- package/dist/_types/core/createZeroDevWallet.d.ts.map +0 -1
- package/dist/_types/stampers/index.d.ts +0 -5
- package/dist/_types/stampers/index.d.ts.map +0 -1
- package/src/actions/auth/getUserEmail.ts +0 -52
- package/src/actions/wallet/signRawPayload.ts +0 -75
- package/src/stampers/index.ts +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticateWithEmail.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithEmail.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authenticateWithEmail.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithEmail.ts"],"names":[],"mappings":"AAwBA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAAA;IAEpD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,eAAe;YACf,SAAS;SACV;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Authenticates a user with OAuth using
|
|
2
|
+
* Authenticates a user with OAuth using a server-side session ID
|
|
3
3
|
*
|
|
4
|
-
* The backend
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* The backend stores the OAuth session server-side and returns a session ID
|
|
5
|
+
* via the callback URL. The SDK extracts this session ID and sends it in
|
|
6
|
+
* the request body.
|
|
7
7
|
*
|
|
8
8
|
* @param client - The ZeroDev Wallet client
|
|
9
9
|
* @param params - The parameters for OAuth authentication
|
|
@@ -14,16 +14,17 @@
|
|
|
14
14
|
* const result = await authenticateWithOAuth(client, {
|
|
15
15
|
* provider: 'google',
|
|
16
16
|
* projectId: 'proj_456',
|
|
17
|
+
* sessionId: 'abc123',
|
|
18
|
+
* popSignature: '3045022100...',
|
|
17
19
|
* });
|
|
18
20
|
* ```
|
|
19
21
|
*/
|
|
20
22
|
export async function authenticateWithOAuth(client, params) {
|
|
21
|
-
const { projectId } = params;
|
|
23
|
+
const { projectId, sessionId, popSignature } = params;
|
|
22
24
|
return await client.request({
|
|
23
25
|
path: `${projectId}/auth/oauth`,
|
|
24
26
|
method: 'POST',
|
|
25
|
-
body:
|
|
26
|
-
credentials: 'include',
|
|
27
|
+
body: { sessionId, popSignature },
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
//# sourceMappingURL=authenticateWithOAuth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticateWithOAuth.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithOAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authenticateWithOAuth.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithOAuth.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAErD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,aAAa;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE;KAClC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches the auth proxy config ID from the backend
|
|
3
|
+
*
|
|
4
|
+
* @param client - The ZeroDev Wallet client
|
|
5
|
+
* @returns The auth proxy config ID
|
|
6
|
+
*/
|
|
7
|
+
export async function getAuthProxyConfigId(client) {
|
|
8
|
+
return await client.request({
|
|
9
|
+
path: 'server-info/auth-proxy-id',
|
|
10
|
+
method: 'GET',
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=getAuthProxyConfigId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAuthProxyConfigId.js","sourceRoot":"","sources":["../../../../src/actions/auth/getAuthProxyConfigId.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc;IAEd,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,2BAA2B;QACjC,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches all authenticators (oauths, passkeys, emailContacts, apiKeys) for
|
|
3
|
+
* the authenticated user within the given project/sub-organization.
|
|
4
|
+
*
|
|
5
|
+
* Corresponds to `POST /api/v1/{projectId}/authenticators`.
|
|
6
|
+
*
|
|
7
|
+
* @param client - The ZeroDev Wallet client
|
|
8
|
+
* @param params - The parameters for the authenticators request
|
|
9
|
+
* @returns The user's authenticators grouped by type
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const authenticators = await getAuthenticators(client, {
|
|
14
|
+
* subOrganizationId: 'suborg_123',
|
|
15
|
+
* projectId: 'proj_456',
|
|
16
|
+
* token: 'session_token_abc',
|
|
17
|
+
* });
|
|
18
|
+
* console.log(authenticators.oauths, authenticators.passkeys);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export async function getAuthenticators(client, params) {
|
|
22
|
+
const { projectId, token } = params;
|
|
23
|
+
// GET behind StampCheckUser: the backend resolves the user from the stamped
|
|
24
|
+
// credential (+ session JWT), so no body / sub-org is sent. The stamp signs
|
|
25
|
+
// the X-Timestamp value (see transport `stampPostion: 'timestamp'`).
|
|
26
|
+
return await client.request({
|
|
27
|
+
path: `${projectId}/authenticators`,
|
|
28
|
+
method: 'GET',
|
|
29
|
+
headers: {
|
|
30
|
+
Authorization: `Bearer ${token}`,
|
|
31
|
+
},
|
|
32
|
+
stamp: true,
|
|
33
|
+
stampPostion: 'timestamp',
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=getAuthenticators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAuthenticators.js","sourceRoot":"","sources":["../../../../src/actions/auth/getAuthenticators.ts"],"names":[],"mappings":"AAkDA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,MAAmC;IAEnC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnC,4EAA4E;IAC5E,4EAA4E;IAC5E,qEAAqE;IACrE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,iBAAiB;QACnC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,WAAW;KAC1B,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches the Google OAuth authorization URL from the backend.
|
|
3
|
+
*
|
|
4
|
+
* The SDK must verify the returned URL's `nonce` against
|
|
5
|
+
* `sha256(utf8(publicKey))` (and the host is `accounts.google.com`)
|
|
6
|
+
* before opening it in a popup — the backend is not a trusted party.
|
|
7
|
+
* See audit finding TOB-KMS-1.
|
|
8
|
+
*/
|
|
9
|
+
export async function getOAuthLoginUrl(client, params) {
|
|
10
|
+
if (params.provider !== 'google') {
|
|
11
|
+
throw new Error(`Unsupported OAuth provider: ${params.provider}`);
|
|
12
|
+
}
|
|
13
|
+
const query = new URLSearchParams({
|
|
14
|
+
project_id: params.projectId,
|
|
15
|
+
pub_key: params.publicKey.replace(/^0x/, '').toLowerCase(),
|
|
16
|
+
return_to: params.returnTo,
|
|
17
|
+
});
|
|
18
|
+
return await client.request({
|
|
19
|
+
path: `oauth/google/login-url?${query.toString()}`,
|
|
20
|
+
method: 'GET',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=getOAuthLoginUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOAuthLoginUrl.js","sourceRoot":"","sources":["../../../../src/actions/auth/getOAuthLoginUrl.ts"],"names":[],"mappings":"AAuBA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,MAAkC;IAElC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IACnE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC;QAChC,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;QAC1D,SAAS,EAAE,MAAM,CAAC,QAAQ;KAC3B,CAAC,CAAA;IACF,OAAO,MAAM,MAAM,CAAC,OAAO,CAAS;QAClC,IAAI,EAAE,0BAA0B,KAAK,CAAC,QAAQ,EAAE,EAAE;QAClD,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fetches the Turnkey parent (base) organization ID from the backend.
|
|
3
|
+
*
|
|
4
|
+
* Stamp-login payloads must be signed against this org — the backend relays the
|
|
5
|
+
* stamp under the parent org and derives the sub-org from the credential. The
|
|
6
|
+
* SDK fetches it (rather than hardcoding) so it works across environments
|
|
7
|
+
* (prod/staging/local) without a per-env override.
|
|
8
|
+
*
|
|
9
|
+
* Corresponds to `GET /api/v1/server-info/parent-org-id`.
|
|
10
|
+
*/
|
|
11
|
+
export async function getParentOrgId(client) {
|
|
12
|
+
return await client.request({
|
|
13
|
+
path: 'server-info/parent-org-id',
|
|
14
|
+
method: 'GET',
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=getParentOrgId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getParentOrgId.js","sourceRoot":"","sources":["../../../../src/actions/auth/getParentOrgId.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc;IAEd,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,2BAA2B;QACjC,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { canonicalizeEx } from 'json-canonicalize';
|
|
1
2
|
/**
|
|
2
|
-
* Gets the current user information
|
|
3
|
+
* Gets the current user information.
|
|
4
|
+
*
|
|
5
|
+
* The whoami endpoint requires two stamps:
|
|
6
|
+
* 1. An inner stamp over the payload (for Turnkey verification) embedded in the body
|
|
7
|
+
* 2. An outer stamp over the full body (for KMS middleware) in the X-Stamp header
|
|
3
8
|
*
|
|
4
9
|
* @param client - The ZeroDev Wallet client
|
|
5
10
|
* @param params - The parameters for the whoami request
|
|
@@ -9,20 +14,37 @@
|
|
|
9
14
|
* ```ts
|
|
10
15
|
* const userInfo = await getWhoami(client, {
|
|
11
16
|
* organizationId: 'org_123',
|
|
12
|
-
* projectId: 'proj_456'
|
|
17
|
+
* projectId: 'proj_456',
|
|
18
|
+
* token: 'session_token',
|
|
13
19
|
* });
|
|
14
20
|
* console.log(userInfo.userId); // 'user_789'
|
|
15
21
|
* ```
|
|
16
22
|
*/
|
|
17
23
|
export async function getWhoami(client, params) {
|
|
18
|
-
const { organizationId, projectId } = params;
|
|
24
|
+
const { organizationId, projectId, token } = params;
|
|
25
|
+
// Step 1: Inner stamp over the payload (for Turnkey verification)
|
|
26
|
+
const innerBody = { organizationId };
|
|
27
|
+
const innerBodyString = canonicalizeEx(innerBody);
|
|
28
|
+
const innerStamp = await client.apiKeyStamper.stamp(innerBodyString);
|
|
29
|
+
// Step 2: Build full body with inner stamp embedded
|
|
30
|
+
const fullBody = {
|
|
31
|
+
...innerBody,
|
|
32
|
+
stamp: {
|
|
33
|
+
stampHeaderName: innerStamp.stampHeaderName,
|
|
34
|
+
stampHeaderValue: innerStamp.stampHeaderValue,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
// Step 3: Outer stamp over full body (for KMS middleware)
|
|
38
|
+
const fullBodyString = canonicalizeEx(fullBody);
|
|
39
|
+
const outerStamp = await client.apiKeyStamper.stamp(fullBodyString);
|
|
19
40
|
return await client.request({
|
|
20
41
|
path: `${projectId}/whoami`,
|
|
21
42
|
method: 'POST',
|
|
22
|
-
body:
|
|
23
|
-
|
|
43
|
+
body: fullBody,
|
|
44
|
+
headers: {
|
|
45
|
+
[outerStamp.stampHeaderName]: outerStamp.stampHeaderValue,
|
|
46
|
+
...(token && { Authorization: `Bearer ${token}` }),
|
|
24
47
|
},
|
|
25
|
-
stamp: true,
|
|
26
48
|
});
|
|
27
49
|
}
|
|
28
50
|
//# sourceMappingURL=getWhoami.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWhoami.js","sourceRoot":"","sources":["../../../../src/actions/auth/getWhoami.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getWhoami.js","sourceRoot":"","sources":["../../../../src/actions/auth/getWhoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAuBlD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,MAA2B;IAE3B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnD,kEAAkE;IAClE,MAAM,SAAS,GAAG,EAAE,cAAc,EAAE,CAAA;IACpC,MAAM,eAAe,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAEpE,oDAAoD;IACpD,MAAM,QAAQ,GAAG;QACf,GAAG,SAAS;QACZ,KAAK,EAAE;YACL,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;SAC9C;KACF,CAAA;IAED,0DAA0D;IAC1D,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAEnE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,SAAS;QAC3B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,gBAAgB;YACzD,GAAG,CAAC,KAAK,IAAI,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;SACnD;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { authenticateWithEmail, } from './authenticateWithEmail.js';
|
|
2
2
|
export { authenticateWithOAuth, } from './authenticateWithOAuth.js';
|
|
3
|
-
export {
|
|
3
|
+
export { getAuthenticators, } from './getAuthenticators.js';
|
|
4
|
+
export { getAuthProxyConfigId, } from './getAuthProxyConfigId.js';
|
|
5
|
+
export { getOAuthLoginUrl, } from './getOAuthLoginUrl.js';
|
|
6
|
+
export { getParentOrgId, } from './getParentOrgId.js';
|
|
4
7
|
export { getWhoami, } from './getWhoami.js';
|
|
5
8
|
export { loginWithOTP, } from './loginWithOTP.js';
|
|
6
9
|
export { loginWithStamp, } from './loginWithStamp.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAKL,iBAAiB,GAGlB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEL,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGL,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAEL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAGL,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAIL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA"}
|
|
@@ -29,20 +29,23 @@ export async function loginWithStamp(client, params) {
|
|
|
29
29
|
type: 'ACTIVITY_TYPE_STAMP_LOGIN',
|
|
30
30
|
});
|
|
31
31
|
let stamp;
|
|
32
|
-
if (stampWith === '
|
|
33
|
-
stamp = await client.
|
|
32
|
+
if (stampWith === 'apiKey') {
|
|
33
|
+
stamp = await client.apiKeyStamper.stamp(stampPayload);
|
|
34
34
|
}
|
|
35
|
-
else if (stampWith === '
|
|
36
|
-
stamp = await client.
|
|
35
|
+
else if (stampWith === 'passkey') {
|
|
36
|
+
stamp = await client.passkeyStamper.stamp(stampPayload);
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
39
|
-
stamp = await client.
|
|
39
|
+
stamp = await client.apiKeyStamper.stamp(stampPayload);
|
|
40
40
|
}
|
|
41
41
|
return client.request({
|
|
42
42
|
path: `${projectId}/auth/login/stamp`,
|
|
43
43
|
method: 'POST',
|
|
44
|
+
// The sub-org id is intentionally not sent: the backend derives it from
|
|
45
|
+
// the stamped credential. `organizationId` (the parent org) is only
|
|
46
|
+
// signed into `stampPayload` above so the stamp matches the body the
|
|
47
|
+
// backend relays to Turnkey — it is not part of the wire request.
|
|
44
48
|
body: {
|
|
45
|
-
subOrganizationId: organizationId,
|
|
46
49
|
targetPublicKey,
|
|
47
50
|
timestamp: timestampIso,
|
|
48
51
|
stamp,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginWithStamp.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithStamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"loginWithStamp.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithStamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAqBlD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAgC;IAEhC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAExE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC9B,MAAM,iBAAiB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAA;IAExD,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,cAAc;QACd,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;SAC3B;QACD,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,2BAA2B;KAClC,CAAC,CAAA;IACF,IAAI,KAAY,CAAA;IAChB,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,kEAAkE;QAClE,IAAI,EAAE;YACJ,eAAe;YACf,SAAS,EAAE,YAAY;YACvB,KAAK;SACN;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* Initiates OTP (One-Time Password) authentication
|
|
3
3
|
* This will send an OTP code to the specified contact method
|
|
4
4
|
*
|
|
5
|
+
* OTP code length/format and, when enabled, the magic-link URL template are
|
|
6
|
+
* configured per-project on the backend (`wallet.otp_configs`). The client no
|
|
7
|
+
* longer sends customization fields — they are ignored server-side.
|
|
8
|
+
*
|
|
5
9
|
* @param client - The ZeroDev Wallet client
|
|
6
10
|
* @param params - The parameters for OTP initiation
|
|
7
11
|
* @returns The result including otpId needed for verification
|
|
@@ -21,14 +25,13 @@
|
|
|
21
25
|
* ```
|
|
22
26
|
*/
|
|
23
27
|
export async function registerWithOTP(client, params) {
|
|
24
|
-
const { email, contact, projectId
|
|
28
|
+
const { email, contact, projectId } = params;
|
|
25
29
|
return await client.request({
|
|
26
30
|
path: `${projectId}/auth/init/otp`,
|
|
27
31
|
method: 'POST',
|
|
28
32
|
body: {
|
|
29
33
|
email,
|
|
30
34
|
contact,
|
|
31
|
-
emailCustomization,
|
|
32
35
|
},
|
|
33
36
|
});
|
|
34
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithOTP.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registerWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithOTP.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5C,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,gBAAgB;QAClC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,OAAO;SACR;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
* @example
|
|
9
9
|
* ```ts
|
|
10
10
|
* const result = await registerWithPasskey(client, {
|
|
11
|
-
* email: 'user@example.com',
|
|
12
11
|
* projectId: 'proj_456',
|
|
13
12
|
* challenge: 'challenge',
|
|
14
13
|
* attestation: {
|
|
@@ -21,12 +20,11 @@
|
|
|
21
20
|
* ```
|
|
22
21
|
*/
|
|
23
22
|
export async function registerWithPasskey(client, params) {
|
|
24
|
-
const {
|
|
23
|
+
const { projectId, challenge, attestation, encodedPublicKey } = params;
|
|
25
24
|
return client.request({
|
|
26
25
|
path: `${projectId}/auth/register/passkey`,
|
|
27
26
|
method: 'POST',
|
|
28
27
|
body: {
|
|
29
|
-
email,
|
|
30
28
|
attestation,
|
|
31
29
|
challenge,
|
|
32
30
|
encodedPublicKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerWithPasskey.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithPasskey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registerWithPasskey.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithPasskey.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,MAAqC;IAErC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAA;IAEtE,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,wBAAwB;QAC1C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,WAAW;YACX,SAAS;YACT,gBAAgB;SACjB;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Auth actions
|
|
2
|
-
export { authenticateWithEmail, authenticateWithOAuth,
|
|
2
|
+
export { authenticateWithEmail, authenticateWithOAuth, getAuthenticators, getAuthProxyConfigId, getOAuthLoginUrl, getParentOrgId, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, } from './auth/index.js';
|
|
3
3
|
// Wallet actions
|
|
4
|
-
export { getUserWallet,
|
|
4
|
+
export { getUserWallet, sign7702Authorization, signMessage, signTransaction, signTypedDataV4, signUserOperation, } from './wallet/index.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAML,qBAAqB,EACrB,qBAAqB,EAUrB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,SAAS,EAGT,YAAY,EAQZ,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,iBAAiB;AACjB,OAAO,EAGL,aAAa,EAWb,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAA"}
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
17
|
export async function getUserWallet(client, params) {
|
|
18
|
-
const {
|
|
18
|
+
const { projectId, token } = params;
|
|
19
|
+
// GET behind StampCheckUser: user is resolved from the stamped credential
|
|
20
|
+
// (+ session JWT); no body sent. The stamp signs the X-Timestamp value.
|
|
19
21
|
return await client.request({
|
|
20
22
|
path: `${projectId}/user-wallet`,
|
|
21
|
-
|
|
22
|
-
organizationId,
|
|
23
|
-
},
|
|
23
|
+
method: 'GET',
|
|
24
24
|
headers: {
|
|
25
25
|
Authorization: `Bearer ${token}`,
|
|
26
26
|
},
|
|
27
27
|
stamp: true,
|
|
28
|
-
stampPostion: '
|
|
28
|
+
stampPostion: 'timestamp',
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=getUserWallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserWallet.js","sourceRoot":"","sources":["../../../../src/actions/wallet/getUserWallet.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,MAA+B;IAE/B,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"getUserWallet.js","sourceRoot":"","sources":["../../../../src/actions/wallet/getUserWallet.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,MAA+B;IAE/B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnC,0EAA0E;IAC1E,wEAAwE;IACxE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,cAAc;QAChC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,WAAW;KAC1B,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { getUserWallet, } from './getUserWallet.js';
|
|
2
|
-
export {
|
|
2
|
+
export { sign7702Authorization, } from './sign7702Authorization.js';
|
|
3
|
+
export { signMessage, } from './signMessage.js';
|
|
3
4
|
export { signTransaction, } from './signTransaction.js';
|
|
5
|
+
export { signTypedDataV4, } from './signTypedDataV4.js';
|
|
6
|
+
export { signUserOperation, } from './signUserOperation.js';
|
|
4
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,GACd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,GACd,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAGL,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAGL,iBAAiB,GAClB,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { buildTurnkeyPayload, sendSigningRequest } from './signingUtils.js';
|
|
2
|
+
export async function sign7702Authorization(client, params) {
|
|
3
|
+
const { organizationId, projectId, token, address, unsignedTransaction, hashedAuthorization, } = params;
|
|
4
|
+
const turnkeyPayload = buildTurnkeyPayload(organizationId, address, hashedAuthorization);
|
|
5
|
+
return sendSigningRequest(client, {
|
|
6
|
+
projectId,
|
|
7
|
+
token,
|
|
8
|
+
path: 'sign/7702-authorization',
|
|
9
|
+
turnkeyPayload,
|
|
10
|
+
bodyFields: { unsignedTransaction },
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sign7702Authorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign7702Authorization.js","sourceRoot":"","sources":["../../../../src/actions/wallet/sign7702Authorization.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAmB3E,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,mBAAmB,EACnB,mBAAmB,GACpB,GAAG,MAAM,CAAA;IAEV,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,mBAAmB,CACpB,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,yBAAyB;QAC/B,cAAc;QACd,UAAU,EAAE,EAAE,mBAAmB,EAAE;KACpC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { buildTurnkeyPayload, computeMessagePayloadHash, sendSigningRequest, } from './signingUtils.js';
|
|
2
|
+
export async function signMessage(client, params) {
|
|
3
|
+
const { organizationId, projectId, token, address, message, encoding } = params;
|
|
4
|
+
const payloadHash = computeMessagePayloadHash(message, encoding);
|
|
5
|
+
const turnkeyPayload = buildTurnkeyPayload(organizationId, address, payloadHash);
|
|
6
|
+
return sendSigningRequest(client, {
|
|
7
|
+
projectId,
|
|
8
|
+
token,
|
|
9
|
+
path: 'sign/message',
|
|
10
|
+
turnkeyPayload,
|
|
11
|
+
bodyFields: { message, encoding },
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=signMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAmB1B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,MAA6B;IAE7B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GACpE,MAAM,CAAA;IAER,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAChE,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,cAAc;QACpB,cAAc;QACd,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;KAClC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,41 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
* Signs a raw transaction with the user's wallet
|
|
3
|
-
*
|
|
4
|
-
* @param client - The ZeroDev Wallet client
|
|
5
|
-
* @param params - The parameters for signing
|
|
6
|
-
* @returns The signature
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```ts
|
|
10
|
-
* const result = await signTransaction(client, {
|
|
11
|
-
* organizationId: 'org_123',
|
|
12
|
-
* projectId: 'proj_456',
|
|
13
|
-
* address: '0x123...',
|
|
14
|
-
* unsignedTransaction: 'abc123...',
|
|
15
|
-
* });
|
|
16
|
-
* console.log(result.signature); // '0x...'
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
1
|
+
import { buildTurnkeyPayload, computeDataPayloadHash, sendSigningRequest, } from './signingUtils.js';
|
|
19
2
|
export async function signTransaction(client, params) {
|
|
20
3
|
const { organizationId, projectId, token, address, unsignedTransaction } = params;
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
type: 'TRANSACTION_TYPE_ETHEREUM',
|
|
30
|
-
unsignedTransaction,
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
headers: {
|
|
34
|
-
Authorization: `Bearer ${token}`,
|
|
35
|
-
},
|
|
36
|
-
stamp: true,
|
|
37
|
-
stampPostion: 'headers',
|
|
4
|
+
const payloadHash = computeDataPayloadHash(unsignedTransaction, 'hex');
|
|
5
|
+
const turnkeyPayload = buildTurnkeyPayload(organizationId, address, payloadHash);
|
|
6
|
+
return sendSigningRequest(client, {
|
|
7
|
+
projectId,
|
|
8
|
+
token,
|
|
9
|
+
path: 'sign/transaction',
|
|
10
|
+
turnkeyPayload,
|
|
11
|
+
bodyFields: { unsignedTransaction },
|
|
38
12
|
});
|
|
39
|
-
return `0x${signature}`;
|
|
40
13
|
}
|
|
41
14
|
//# sourceMappingURL=signTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTransaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAiB1B,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,GACtE,MAAM,CAAA;IAER,MAAM,WAAW,GAAG,sBAAsB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,kBAAkB;QACxB,cAAc;QACd,UAAU,EAAE,EAAE,mBAAmB,EAAE;KACpC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { buildTurnkeyPayload, sendSigningRequest } from './signingUtils.js';
|
|
2
|
+
export async function signTypedDataV4(client, params) {
|
|
3
|
+
const { organizationId, projectId, token, address, unsignedTypedDataV4, encoding, typedDataHash, } = params;
|
|
4
|
+
const payloadHash = typedDataHash;
|
|
5
|
+
const turnkeyPayload = buildTurnkeyPayload(organizationId, address, payloadHash);
|
|
6
|
+
return sendSigningRequest(client, {
|
|
7
|
+
projectId,
|
|
8
|
+
token,
|
|
9
|
+
path: 'sign/typed-data-v4',
|
|
10
|
+
turnkeyPayload,
|
|
11
|
+
bodyFields: { unsignedTypedDataV4, encoding },
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=signTypedDataV4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signTypedDataV4.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTypedDataV4.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAqB3E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,mBAAmB,EACnB,QAAQ,EACR,aAAa,GACd,GAAG,MAAM,CAAA;IAEV,MAAM,WAAW,GAAG,aAAa,CAAA;IACjC,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,oBAAoB;QAC1B,cAAc;QACd,UAAU,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE;KAC9C,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { buildTurnkeyPayload, computeDataPayloadHash, sendSigningRequest, } from './signingUtils.js';
|
|
2
|
+
export async function signUserOperation(client, params) {
|
|
3
|
+
const { organizationId, projectId, token, address, unsignedUserOperation, chainId, encoding, } = params;
|
|
4
|
+
const payloadHash = computeDataPayloadHash(unsignedUserOperation, encoding);
|
|
5
|
+
const turnkeyPayload = buildTurnkeyPayload(organizationId, address, payloadHash);
|
|
6
|
+
return sendSigningRequest(client, {
|
|
7
|
+
projectId,
|
|
8
|
+
token,
|
|
9
|
+
path: 'sign/user-operation',
|
|
10
|
+
turnkeyPayload,
|
|
11
|
+
bodyFields: { unsignedUserOperation, chainId, encoding },
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=signUserOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signUserOperation.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signUserOperation.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAqB1B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,MAAmC;IAEnC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,qBAAqB,EACrB,OAAO,EACP,QAAQ,GACT,GAAG,MAAM,CAAA;IAEV,MAAM,WAAW,GAAG,sBAAsB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAA;IAC3E,MAAM,cAAc,GAAG,mBAAmB,CACxC,cAAc,EACd,OAAO,EACP,WAAW,CACZ,CAAA;IAED,OAAO,kBAAkB,CAAC,MAAM,EAAE;QAChC,SAAS;QACT,KAAK;QACL,IAAI,EAAE,qBAAqB;QAC3B,cAAc;QACd,UAAU,EAAE,EAAE,qBAAqB,EAAE,OAAO,EAAE,QAAQ,EAAE;KACzD,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { canonicalizeEx } from 'json-canonicalize';
|
|
2
|
+
import { hashMessage, keccak256, toHex } from 'viem';
|
|
3
|
+
export function buildTurnkeyPayload(organizationId, address, payloadHash) {
|
|
4
|
+
return {
|
|
5
|
+
type: 'ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2',
|
|
6
|
+
timestampMs: Date.now().toString(),
|
|
7
|
+
organizationId,
|
|
8
|
+
parameters: {
|
|
9
|
+
signWith: address,
|
|
10
|
+
payload: payloadHash,
|
|
11
|
+
encoding: 'PAYLOAD_ENCODING_HEXADECIMAL',
|
|
12
|
+
hashFunction: 'HASH_FUNCTION_NO_OP',
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export async function sendSigningRequest(client, params) {
|
|
17
|
+
const { projectId, token, path, turnkeyPayload, bodyFields } = params;
|
|
18
|
+
// Inner stamp over the Turnkey payload (for Turnkey verification)
|
|
19
|
+
const innerBodyString = canonicalizeEx(turnkeyPayload);
|
|
20
|
+
const innerStamp = await client.apiKeyStamper.stamp(innerBodyString);
|
|
21
|
+
// Build full body with inner stamp embedded
|
|
22
|
+
const fullBody = {
|
|
23
|
+
...bodyFields,
|
|
24
|
+
turnkeyPayload,
|
|
25
|
+
stampHeader: {
|
|
26
|
+
stampHeaderName: innerStamp.stampHeaderName,
|
|
27
|
+
stampHeaderValue: innerStamp.stampHeaderValue,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
// Outer stamp over full body (for KMS middleware)
|
|
31
|
+
const fullBodyString = canonicalizeEx(fullBody);
|
|
32
|
+
const outerStamp = await client.apiKeyStamper.stamp(fullBodyString);
|
|
33
|
+
const { signature } = await client.request({
|
|
34
|
+
path: `${projectId}/${path}`,
|
|
35
|
+
method: 'POST',
|
|
36
|
+
body: fullBody,
|
|
37
|
+
headers: {
|
|
38
|
+
[outerStamp.stampHeaderName]: outerStamp.stampHeaderValue,
|
|
39
|
+
Authorization: `Bearer ${token}`,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
return (signature.startsWith('0x') ? signature : `0x${signature}`);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Compute payload hash for message signing (EIP-191).
|
|
46
|
+
* Uses viem's hashMessage directly to guarantee correct EIP-191 hashing.
|
|
47
|
+
*/
|
|
48
|
+
export function computeMessagePayloadHash(message, encoding) {
|
|
49
|
+
if (encoding === 'utf8') {
|
|
50
|
+
return hashMessage(message).slice(2);
|
|
51
|
+
}
|
|
52
|
+
const hex = message.replace(/^0x/, '');
|
|
53
|
+
return hashMessage({ raw: `0x${hex}` }).slice(2);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Compute payload hash for data signing (transaction, user operation).
|
|
57
|
+
* Hashes the raw decoded bytes: keccak256(hexDecode(hexData))
|
|
58
|
+
*/
|
|
59
|
+
export function computeDataPayloadHash(data, encoding) {
|
|
60
|
+
let hexData;
|
|
61
|
+
if (encoding === 'utf8') {
|
|
62
|
+
hexData = toHex(data).slice(2);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
hexData = data.replace(/^0x/, '');
|
|
66
|
+
}
|
|
67
|
+
return keccak256(`0x${hexData}`).slice(2);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=signingUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signingUtils.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAepD,MAAM,UAAU,mBAAmB,CACjC,cAAsB,EACtB,OAAY,EACZ,WAAmB;IAEnB,OAAO;QACL,IAAI,EAAE,mCAAmC;QACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,cAAc;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,8BAA8B;YACxC,YAAY,EAAE,qBAAqB;SACpC;KACF,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAc,EACd,MAMC;IAED,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;IAErE,kEAAkE;IAClE,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;IACtD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAEpE,4CAA4C;IAC5C,MAAM,QAAQ,GAAG;QACf,GAAG,UAAU;QACb,cAAc;QACd,WAAW,EAAE;YACX,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;SAC9C;KACF,CAAA;IAED,kDAAkD;IAClD,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAEnE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,GAAG,SAAS,IAAI,IAAI,EAAE;QAC5B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,gBAAgB;YACzD,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;KACF,CAAC,CAAA;IAEF,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAQ,CAAA;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,QAAwB;IAExB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACtC,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,EAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,QAAwB;IAExB,IAAI,OAAe,CAAA;IACnB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,OAAO,EAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClD,CAAC"}
|