@zerodev/wallet-core 0.0.1-alpha.10
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 +310 -0
- package/dist/_cjs/actions/auth/authenticateWithEmail.js +17 -0
- package/dist/_cjs/actions/auth/authenticateWithEmail.js.map +1 -0
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js +13 -0
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js.map +1 -0
- package/dist/_cjs/actions/auth/getAuthProxyConfigId.js +10 -0
- package/dist/_cjs/actions/auth/getAuthProxyConfigId.js.map +1 -0
- package/dist/_cjs/actions/auth/getUserEmail.js +19 -0
- package/dist/_cjs/actions/auth/getUserEmail.js.map +1 -0
- package/dist/_cjs/actions/auth/getWhoami.js +15 -0
- package/dist/_cjs/actions/auth/getWhoami.js.map +1 -0
- package/dist/_cjs/actions/auth/index.js +22 -0
- package/dist/_cjs/actions/auth/index.js.map +1 -0
- package/dist/_cjs/actions/auth/loginWithOTP.js +15 -0
- package/dist/_cjs/actions/auth/loginWithOTP.js.map +1 -0
- package/dist/_cjs/actions/auth/loginWithStamp.js +39 -0
- package/dist/_cjs/actions/auth/loginWithStamp.js.map +1 -0
- package/dist/_cjs/actions/auth/registerWithOTP.js +16 -0
- package/dist/_cjs/actions/auth/registerWithOTP.js.map +1 -0
- package/dist/_cjs/actions/auth/registerWithPasskey.js +17 -0
- package/dist/_cjs/actions/auth/registerWithPasskey.js.map +1 -0
- package/dist/_cjs/actions/index.js +17 -0
- package/dist/_cjs/actions/index.js.map +1 -0
- package/dist/_cjs/actions/wallet/getUserWallet.js +18 -0
- package/dist/_cjs/actions/wallet/getUserWallet.js.map +1 -0
- package/dist/_cjs/actions/wallet/index.js +10 -0
- package/dist/_cjs/actions/wallet/index.js.map +1 -0
- package/dist/_cjs/actions/wallet/signRawPayload.js +27 -0
- package/dist/_cjs/actions/wallet/signRawPayload.js.map +1 -0
- package/dist/_cjs/actions/wallet/signTransaction.js +26 -0
- package/dist/_cjs/actions/wallet/signTransaction.js.map +1 -0
- package/dist/_cjs/adapters/viem.js +92 -0
- package/dist/_cjs/adapters/viem.js.map +1 -0
- package/dist/_cjs/client/authProxy.js +31 -0
- package/dist/_cjs/client/authProxy.js.map +1 -0
- package/dist/_cjs/client/createClient.js +49 -0
- package/dist/_cjs/client/createClient.js.map +1 -0
- package/dist/_cjs/client/decorators/client.js +23 -0
- package/dist/_cjs/client/decorators/client.js.map +1 -0
- package/dist/_cjs/client/index.js +11 -0
- package/dist/_cjs/client/index.js.map +1 -0
- package/dist/_cjs/client/transports/createTransport.js +31 -0
- package/dist/_cjs/client/transports/createTransport.js.map +1 -0
- package/dist/_cjs/client/transports/rest.js +104 -0
- package/dist/_cjs/client/transports/rest.js.map +1 -0
- package/dist/_cjs/client/types.js +3 -0
- package/dist/_cjs/client/types.js.map +1 -0
- package/dist/_cjs/constants.js +9 -0
- package/dist/_cjs/constants.js.map +1 -0
- package/dist/_cjs/core/createZeroDevWallet.js +302 -0
- package/dist/_cjs/core/createZeroDevWallet.js.map +1 -0
- package/dist/_cjs/errors/request.js +61 -0
- package/dist/_cjs/errors/request.js.map +1 -0
- package/dist/_cjs/index.js +35 -0
- package/dist/_cjs/index.js.map +1 -0
- package/dist/_cjs/package.json +1 -0
- package/dist/_cjs/polyfills/window.js +26 -0
- package/dist/_cjs/polyfills/window.js.map +1 -0
- package/dist/_cjs/stampers/iframeStamper.js +35 -0
- package/dist/_cjs/stampers/iframeStamper.js.map +1 -0
- package/dist/_cjs/stampers/index.js +10 -0
- package/dist/_cjs/stampers/index.js.map +1 -0
- package/dist/_cjs/stampers/indexedDbStamper.js +23 -0
- package/dist/_cjs/stampers/indexedDbStamper.js.map +1 -0
- package/dist/_cjs/stampers/types.js +3 -0
- package/dist/_cjs/stampers/types.js.map +1 -0
- package/dist/_cjs/stampers/webauthnStamper.js +17 -0
- package/dist/_cjs/stampers/webauthnStamper.js.map +1 -0
- package/dist/_cjs/storage/adapters.js +18 -0
- package/dist/_cjs/storage/adapters.js.map +1 -0
- package/dist/_cjs/storage/manager.js +108 -0
- package/dist/_cjs/storage/manager.js.map +1 -0
- package/dist/_cjs/types/session.js +9 -0
- package/dist/_cjs/types/session.js.map +1 -0
- package/dist/_cjs/utils/buildClientSignature.js +39 -0
- package/dist/_cjs/utils/buildClientSignature.js.map +1 -0
- package/dist/_cjs/utils/derToRawSignature.js +63 -0
- package/dist/_cjs/utils/derToRawSignature.js.map +1 -0
- package/dist/_cjs/utils/exportPrivateKey.js +55 -0
- package/dist/_cjs/utils/exportPrivateKey.js.map +1 -0
- package/dist/_cjs/utils/exportWallet.js +70 -0
- package/dist/_cjs/utils/exportWallet.js.map +1 -0
- package/dist/_cjs/utils/utils.js +75 -0
- package/dist/_cjs/utils/utils.js.map +1 -0
- package/dist/_esm/actions/auth/authenticateWithEmail.js +18 -0
- package/dist/_esm/actions/auth/authenticateWithEmail.js.map +1 -0
- package/dist/_esm/actions/auth/authenticateWithOAuth.js +29 -0
- package/dist/_esm/actions/auth/authenticateWithOAuth.js.map +1 -0
- package/dist/_esm/actions/auth/getAuthProxyConfigId.js +13 -0
- package/dist/_esm/actions/auth/getAuthProxyConfigId.js.map +1 -0
- package/dist/_esm/actions/auth/getUserEmail.js +33 -0
- package/dist/_esm/actions/auth/getUserEmail.js.map +1 -0
- package/dist/_esm/actions/auth/getWhoami.js +28 -0
- package/dist/_esm/actions/auth/getWhoami.js.map +1 -0
- package/dist/_esm/actions/auth/index.js +10 -0
- package/dist/_esm/actions/auth/index.js.map +1 -0
- package/dist/_esm/actions/auth/loginWithOTP.js +38 -0
- package/dist/_esm/actions/auth/loginWithOTP.js.map +1 -0
- package/dist/_esm/actions/auth/loginWithStamp.js +52 -0
- package/dist/_esm/actions/auth/loginWithStamp.js.map +1 -0
- package/dist/_esm/actions/auth/registerWithOTP.js +35 -0
- package/dist/_esm/actions/auth/registerWithOTP.js.map +1 -0
- package/dist/_esm/actions/auth/registerWithPasskey.js +36 -0
- package/dist/_esm/actions/auth/registerWithPasskey.js.map +1 -0
- package/dist/_esm/actions/index.js +5 -0
- package/dist/_esm/actions/index.js.map +1 -0
- package/dist/_esm/actions/wallet/getUserWallet.js +31 -0
- package/dist/_esm/actions/wallet/getUserWallet.js.map +1 -0
- package/dist/_esm/actions/wallet/index.js +4 -0
- package/dist/_esm/actions/wallet/index.js.map +1 -0
- package/dist/_esm/actions/wallet/signRawPayload.js +42 -0
- package/dist/_esm/actions/wallet/signRawPayload.js.map +1 -0
- package/dist/_esm/actions/wallet/signTransaction.js +41 -0
- package/dist/_esm/actions/wallet/signTransaction.js.map +1 -0
- package/dist/_esm/adapters/viem.js +94 -0
- package/dist/_esm/adapters/viem.js.map +1 -0
- package/dist/_esm/client/authProxy.js +41 -0
- package/dist/_esm/client/authProxy.js.map +1 -0
- package/dist/_esm/client/createClient.js +60 -0
- package/dist/_esm/client/createClient.js.map +1 -0
- package/dist/_esm/client/decorators/client.js +44 -0
- package/dist/_esm/client/decorators/client.js.map +1 -0
- package/dist/_esm/client/index.js +4 -0
- package/dist/_esm/client/index.js.map +1 -0
- package/dist/_esm/client/transports/createTransport.js +33 -0
- package/dist/_esm/client/transports/createTransport.js.map +1 -0
- package/dist/_esm/client/transports/rest.js +103 -0
- package/dist/_esm/client/transports/rest.js.map +1 -0
- package/dist/_esm/client/types.js +2 -0
- package/dist/_esm/client/types.js.map +1 -0
- package/dist/_esm/constants.js +6 -0
- package/dist/_esm/constants.js.map +1 -0
- package/dist/_esm/core/createZeroDevWallet.js +308 -0
- package/dist/_esm/core/createZeroDevWallet.js.map +1 -0
- package/dist/_esm/errors/request.js +60 -0
- package/dist/_esm/errors/request.js.map +1 -0
- package/dist/_esm/index.js +23 -0
- package/dist/_esm/index.js.map +1 -0
- package/dist/_esm/package.json +1 -0
- package/dist/_esm/polyfills/window.js +24 -0
- package/dist/_esm/polyfills/window.js.map +1 -0
- package/dist/_esm/stampers/iframeStamper.js +32 -0
- package/dist/_esm/stampers/iframeStamper.js.map +1 -0
- package/dist/_esm/stampers/index.js +4 -0
- package/dist/_esm/stampers/index.js.map +1 -0
- package/dist/_esm/stampers/indexedDbStamper.js +20 -0
- package/dist/_esm/stampers/indexedDbStamper.js.map +1 -0
- package/dist/_esm/stampers/types.js +2 -0
- package/dist/_esm/stampers/types.js.map +1 -0
- package/dist/_esm/stampers/webauthnStamper.js +15 -0
- package/dist/_esm/stampers/webauthnStamper.js.map +1 -0
- package/dist/_esm/storage/adapters.js +15 -0
- package/dist/_esm/storage/adapters.js.map +1 -0
- package/dist/_esm/storage/manager.js +118 -0
- package/dist/_esm/storage/manager.js.map +1 -0
- package/dist/_esm/types/session.js +6 -0
- package/dist/_esm/types/session.js.map +1 -0
- package/dist/_esm/utils/buildClientSignature.js +64 -0
- package/dist/_esm/utils/buildClientSignature.js.map +1 -0
- package/dist/_esm/utils/derToRawSignature.js +89 -0
- package/dist/_esm/utils/derToRawSignature.js.map +1 -0
- package/dist/_esm/utils/exportPrivateKey.js +83 -0
- package/dist/_esm/utils/exportPrivateKey.js.map +1 -0
- package/dist/_esm/utils/exportWallet.js +98 -0
- package/dist/_esm/utils/exportWallet.js.map +1 -0
- package/dist/_esm/utils/utils.js +105 -0
- package/dist/_esm/utils/utils.js.map +1 -0
- package/dist/_types/actions/auth/authenticateWithEmail.d.ts +33 -0
- package/dist/_types/actions/auth/authenticateWithEmail.d.ts.map +1 -0
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts +38 -0
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts.map +1 -0
- 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/getUserEmail.d.ts +32 -0
- package/dist/_types/actions/auth/getUserEmail.d.ts.map +1 -0
- package/dist/_types/actions/auth/getWhoami.d.ts +35 -0
- package/dist/_types/actions/auth/getWhoami.d.ts.map +1 -0
- package/dist/_types/actions/auth/index.d.ts +10 -0
- package/dist/_types/actions/auth/index.d.ts.map +1 -0
- package/dist/_types/actions/auth/loginWithOTP.d.ts +41 -0
- package/dist/_types/actions/auth/loginWithOTP.d.ts.map +1 -0
- package/dist/_types/actions/auth/loginWithStamp.d.ts +37 -0
- package/dist/_types/actions/auth/loginWithStamp.d.ts.map +1 -0
- package/dist/_types/actions/auth/registerWithOTP.d.ts +46 -0
- package/dist/_types/actions/auth/registerWithOTP.d.ts.map +1 -0
- package/dist/_types/actions/auth/registerWithPasskey.d.ts +53 -0
- package/dist/_types/actions/auth/registerWithPasskey.d.ts.map +1 -0
- package/dist/_types/actions/index.d.ts +3 -0
- package/dist/_types/actions/index.d.ts.map +1 -0
- package/dist/_types/actions/wallet/getUserWallet.d.ts +34 -0
- package/dist/_types/actions/wallet/getUserWallet.d.ts.map +1 -0
- package/dist/_types/actions/wallet/index.d.ts +4 -0
- package/dist/_types/actions/wallet/index.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signRawPayload.d.ts +39 -0
- package/dist/_types/actions/wallet/signRawPayload.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts +35 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts.map +1 -0
- package/dist/_types/adapters/viem.d.ts +10 -0
- package/dist/_types/adapters/viem.d.ts.map +1 -0
- package/dist/_types/client/authProxy.d.ts +36 -0
- package/dist/_types/client/authProxy.d.ts.map +1 -0
- package/dist/_types/client/createClient.d.ts +17 -0
- package/dist/_types/client/createClient.d.ts.map +1 -0
- package/dist/_types/client/decorators/client.d.ts +81 -0
- package/dist/_types/client/decorators/client.d.ts.map +1 -0
- package/dist/_types/client/index.d.ts +5 -0
- package/dist/_types/client/index.d.ts.map +1 -0
- package/dist/_types/client/transports/createTransport.d.ts +17 -0
- package/dist/_types/client/transports/createTransport.d.ts.map +1 -0
- package/dist/_types/client/transports/rest.d.ts +35 -0
- package/dist/_types/client/transports/rest.d.ts.map +1 -0
- package/dist/_types/client/types.d.ts +59 -0
- package/dist/_types/client/types.d.ts.map +1 -0
- package/dist/_types/constants.d.ts +6 -0
- package/dist/_types/constants.d.ts.map +1 -0
- package/dist/_types/core/createZeroDevWallet.d.ts +52 -0
- package/dist/_types/core/createZeroDevWallet.d.ts.map +1 -0
- package/dist/_types/errors/request.d.ts +12 -0
- package/dist/_types/errors/request.d.ts.map +1 -0
- package/dist/_types/index.d.ts +20 -0
- package/dist/_types/index.d.ts.map +1 -0
- package/dist/_types/polyfills/window.d.ts +15 -0
- package/dist/_types/polyfills/window.d.ts.map +1 -0
- package/dist/_types/stampers/iframeStamper.d.ts +7 -0
- package/dist/_types/stampers/iframeStamper.d.ts.map +1 -0
- package/dist/_types/stampers/index.d.ts +5 -0
- package/dist/_types/stampers/index.d.ts.map +1 -0
- package/dist/_types/stampers/indexedDbStamper.d.ts +3 -0
- package/dist/_types/stampers/indexedDbStamper.d.ts.map +1 -0
- package/dist/_types/stampers/types.d.ts +25 -0
- package/dist/_types/stampers/types.d.ts.map +1 -0
- package/dist/_types/stampers/webauthnStamper.d.ts +5 -0
- package/dist/_types/stampers/webauthnStamper.d.ts.map +1 -0
- package/dist/_types/storage/adapters.d.ts +3 -0
- package/dist/_types/storage/adapters.d.ts.map +1 -0
- package/dist/_types/storage/manager.d.ts +19 -0
- package/dist/_types/storage/manager.d.ts.map +1 -0
- package/dist/_types/types/session.d.ts +17 -0
- package/dist/_types/types/session.d.ts.map +1 -0
- package/dist/_types/utils/buildClientSignature.d.ts +25 -0
- package/dist/_types/utils/buildClientSignature.d.ts.map +1 -0
- package/dist/_types/utils/derToRawSignature.d.ts +11 -0
- package/dist/_types/utils/derToRawSignature.d.ts.map +1 -0
- package/dist/_types/utils/exportPrivateKey.d.ts +47 -0
- package/dist/_types/utils/exportPrivateKey.d.ts.map +1 -0
- package/dist/_types/utils/exportWallet.d.ts +44 -0
- package/dist/_types/utils/exportWallet.d.ts.map +1 -0
- package/dist/_types/utils/utils.d.ts +52 -0
- package/dist/_types/utils/utils.d.ts.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +74 -0
- package/src/actions/auth/authenticateWithEmail.ts +52 -0
- package/src/actions/auth/authenticateWithOAuth.ts +52 -0
- package/src/actions/auth/getAuthProxyConfigId.ts +20 -0
- package/src/actions/auth/getUserEmail.ts +52 -0
- package/src/actions/auth/getWhoami.ts +51 -0
- package/src/actions/auth/index.ts +47 -0
- package/src/actions/auth/loginWithOTP.ts +57 -0
- package/src/actions/auth/loginWithStamp.ts +79 -0
- package/src/actions/auth/registerWithOTP.ts +64 -0
- package/src/actions/auth/registerWithPasskey.ts +72 -0
- package/src/actions/index.ts +41 -0
- package/src/actions/wallet/getUserWallet.ts +53 -0
- package/src/actions/wallet/index.ts +17 -0
- package/src/actions/wallet/signRawPayload.ts +75 -0
- package/src/actions/wallet/signTransaction.ts +64 -0
- package/src/adapters/viem.ts +162 -0
- package/src/client/authProxy.ts +78 -0
- package/src/client/createClient.ts +90 -0
- package/src/client/decorators/client.ts +171 -0
- package/src/client/index.ts +19 -0
- package/src/client/transports/createTransport.ts +54 -0
- package/src/client/transports/rest.ts +138 -0
- package/src/client/types.ts +64 -0
- package/src/constants.ts +5 -0
- package/src/core/createZeroDevWallet.ts +447 -0
- package/src/errors/request.ts +36 -0
- package/src/index.ts +79 -0
- package/src/polyfills/window.ts +24 -0
- package/src/stampers/iframeStamper.ts +49 -0
- package/src/stampers/index.ts +8 -0
- package/src/stampers/indexedDbStamper.ts +22 -0
- package/src/stampers/types.ts +35 -0
- package/src/stampers/webauthnStamper.ts +21 -0
- package/src/storage/adapters.ts +20 -0
- package/src/storage/manager.ts +170 -0
- package/src/types/session.ts +18 -0
- package/src/utils/buildClientSignature.ts +86 -0
- package/src/utils/derToRawSignature.ts +103 -0
- package/src/utils/exportPrivateKey.ts +116 -0
- package/src/utils/exportWallet.ts +130 -0
- package/src/utils/utils.ts +136 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logs in a user with OTP (One-Time Password) authentication via the backend.
|
|
3
|
+
*
|
|
4
|
+
* The backend handles:
|
|
5
|
+
* 1. Parsing the verificationToken JWT to extract email and publicKey
|
|
6
|
+
* 2. Creating/retrieving sub-organization for (projectId, email)
|
|
7
|
+
* 3. Reconstructing the message for signature verification
|
|
8
|
+
* 4. Calling Turnkey.OtpLogin with the appropriate parameters
|
|
9
|
+
* 5. Returning the session to the SDK
|
|
10
|
+
*
|
|
11
|
+
* @param client - The ZeroDev Wallet client
|
|
12
|
+
* @param params - The parameters for OTP login
|
|
13
|
+
* @returns The login result with session token
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // After verifying OTP via Auth Proxy and building client signature
|
|
18
|
+
* const result = await loginWithOTP(client, {
|
|
19
|
+
* verificationToken: '<jwt-from-auth-proxy>',
|
|
20
|
+
* clientSignature: '<raw-signature-hex>',
|
|
21
|
+
* projectId: 'proj_456'
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* // Use result.session for authenticated requests
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export async function loginWithOTP(client, params) {
|
|
28
|
+
const { verificationToken, clientSignature, projectId } = params;
|
|
29
|
+
return await client.request({
|
|
30
|
+
path: `${projectId}/auth/login/otp`,
|
|
31
|
+
method: 'POST',
|
|
32
|
+
body: {
|
|
33
|
+
verificationToken,
|
|
34
|
+
clientSignature,
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=loginWithOTP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithOTP.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAA8B;IAE9B,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAEhE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,iBAAiB;QACnC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,iBAAiB;YACjB,eAAe;SAChB;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { canonicalizeEx } from 'json-canonicalize';
|
|
2
|
+
/**
|
|
3
|
+
* Logs in a user with a stamp
|
|
4
|
+
*
|
|
5
|
+
* @param client - The ZeroDev Wallet client
|
|
6
|
+
* @param params - The parameters for login with a stamp
|
|
7
|
+
* @returns The login result
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const result = await loginWithStamp(client, {
|
|
12
|
+
* organizationId: 'org_456',
|
|
13
|
+
* projectId: 'proj_456',
|
|
14
|
+
* targetPublicKey: 'encodedPublicKey',
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export async function loginWithStamp(client, params) {
|
|
19
|
+
const { projectId, targetPublicKey, organizationId, stampWith } = params;
|
|
20
|
+
const timestampMs = Date.now();
|
|
21
|
+
const timestampMsString = timestampMs.toString();
|
|
22
|
+
const timestampIso = new Date(timestampMs).toISOString();
|
|
23
|
+
const stampPayload = canonicalizeEx({
|
|
24
|
+
organizationId,
|
|
25
|
+
parameters: {
|
|
26
|
+
publicKey: targetPublicKey,
|
|
27
|
+
},
|
|
28
|
+
timestampMs: timestampMsString,
|
|
29
|
+
type: 'ACTIVITY_TYPE_STAMP_LOGIN',
|
|
30
|
+
});
|
|
31
|
+
let stamp;
|
|
32
|
+
if (stampWith === 'indexedDb') {
|
|
33
|
+
stamp = await client.indexedDbStamper.stamp(stampPayload);
|
|
34
|
+
}
|
|
35
|
+
else if (stampWith === 'webauthn') {
|
|
36
|
+
stamp = await client.webauthnStamper.stamp(stampPayload);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
stamp = await client.indexedDbStamper.stamp(stampPayload);
|
|
40
|
+
}
|
|
41
|
+
return client.request({
|
|
42
|
+
path: `${projectId}/auth/login/stamp`,
|
|
43
|
+
method: 'POST',
|
|
44
|
+
body: {
|
|
45
|
+
subOrganizationId: organizationId,
|
|
46
|
+
targetPublicKey,
|
|
47
|
+
timestamp: timestampIso,
|
|
48
|
+
stamp,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=loginWithStamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginWithStamp.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithStamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAyBlD;;;;;;;;;;;;;;;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,WAAW,EAAE,CAAC;QAC9B,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3D,CAAC;SAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,iBAAiB,EAAE,cAAc;YACjC,eAAe;YACf,SAAS,EAAE,YAAY;YACvB,KAAK;SACN;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initiates OTP (One-Time Password) authentication
|
|
3
|
+
* This will send an OTP code to the specified contact method
|
|
4
|
+
*
|
|
5
|
+
* @param client - The ZeroDev Wallet client
|
|
6
|
+
* @param params - The parameters for OTP initiation
|
|
7
|
+
* @returns The result including otpId needed for verification
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const result = await registerWithOTP(client, {
|
|
12
|
+
* email: 'user@example.com',
|
|
13
|
+
* contact: {
|
|
14
|
+
* type: 'email',
|
|
15
|
+
* contact: 'user@example.com'
|
|
16
|
+
* },
|
|
17
|
+
* projectId: 'proj_456'
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Use result.otpId for the verification step
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export async function registerWithOTP(client, params) {
|
|
24
|
+
const { email, contact, projectId, emailCustomization } = params;
|
|
25
|
+
return await client.request({
|
|
26
|
+
path: `${projectId}/auth/init/otp`,
|
|
27
|
+
method: 'POST',
|
|
28
|
+
body: {
|
|
29
|
+
email,
|
|
30
|
+
contact,
|
|
31
|
+
emailCustomization,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=registerWithOTP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithOTP.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAA;IAEhE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,gBAAgB;QAClC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,OAAO;YACP,kBAAkB;SACnB;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registers a passkey with the user's wallet
|
|
3
|
+
*
|
|
4
|
+
* @param client - The ZeroDev Wallet client
|
|
5
|
+
* @param params - The parameters for passkey registration
|
|
6
|
+
* @returns The passkey registration result
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const result = await registerWithPasskey(client, {
|
|
11
|
+
* email: 'user@example.com',
|
|
12
|
+
* projectId: 'proj_456',
|
|
13
|
+
* challenge: 'challenge',
|
|
14
|
+
* attestation: {
|
|
15
|
+
* attestationObject: 'attestationObject',
|
|
16
|
+
* clientDataJson: 'clientDataJson',
|
|
17
|
+
* credentialId: 'credentialId'
|
|
18
|
+
* },
|
|
19
|
+
* encodedPublicKey: 'encodedPublicKey'
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export async function registerWithPasskey(client, params) {
|
|
24
|
+
const { email, projectId, challenge, attestation, encodedPublicKey } = params;
|
|
25
|
+
return client.request({
|
|
26
|
+
path: `${projectId}/auth/register/passkey`,
|
|
27
|
+
method: 'POST',
|
|
28
|
+
body: {
|
|
29
|
+
email,
|
|
30
|
+
attestation,
|
|
31
|
+
challenge,
|
|
32
|
+
encodedPublicKey,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=registerWithPasskey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerWithPasskey.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithPasskey.ts"],"names":[],"mappings":"AAiCA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,MAAqC;IAErC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAA;IAE7E,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,wBAAwB;QAC1C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,WAAW;YACX,SAAS;YACT,gBAAgB;SACjB;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Auth actions
|
|
2
|
+
export { authenticateWithEmail, authenticateWithOAuth, getAuthProxyConfigId, getUserEmail, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, } from './auth/index.js';
|
|
3
|
+
// Wallet actions
|
|
4
|
+
export { getUserWallet, signRawPayload, signTransaction, } from './wallet/index.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAKL,qBAAqB,EACrB,qBAAqB,EAOrB,oBAAoB,EACpB,YAAY,EACZ,SAAS,EAGT,YAAY,EAMZ,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,iBAAiB;AACjB,OAAO,EAGL,aAAa,EAKb,cAAc,EACd,eAAe,GAChB,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the user's wallet information
|
|
3
|
+
*
|
|
4
|
+
* @param client - The ZeroDev Wallet client
|
|
5
|
+
* @param params - The parameters for getting wallet info
|
|
6
|
+
* @returns The wallet information
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const wallet = await getUserWallet(client, {
|
|
11
|
+
* organizationId: 'org_123',
|
|
12
|
+
* projectId: 'proj_456'
|
|
13
|
+
* });
|
|
14
|
+
* console.log(wallet.walletAddresses); // ['0x...', '0x...']
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export async function getUserWallet(client, params) {
|
|
18
|
+
const { organizationId, projectId, token } = params;
|
|
19
|
+
return await client.request({
|
|
20
|
+
path: `${projectId}/user-wallet`,
|
|
21
|
+
body: {
|
|
22
|
+
organizationId,
|
|
23
|
+
},
|
|
24
|
+
headers: {
|
|
25
|
+
Authorization: `Bearer ${token}`,
|
|
26
|
+
},
|
|
27
|
+
stamp: true,
|
|
28
|
+
stampPostion: 'headers',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=getUserWallet.js.map
|
|
@@ -0,0 +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,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEnD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,cAAc;QAChC,IAAI,EAAE;YACJ,cAAc;SACf;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +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,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Signs a raw payload 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 signRawPayload(client, {
|
|
11
|
+
* organizationId: 'org_123',
|
|
12
|
+
* projectId: 'proj_456',
|
|
13
|
+
* address: '0x123...',
|
|
14
|
+
* payload: 'abc123...',
|
|
15
|
+
* });
|
|
16
|
+
* console.log(result.signature); // '0x...'
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export async function signRawPayload(client, params) {
|
|
20
|
+
const { organizationId, projectId, token, address, payload, encoding = 'PAYLOAD_ENCODING_HEXADECIMAL', hashFunction = 'HASH_FUNCTION_NO_OP', } = params;
|
|
21
|
+
const { signature } = await client.request({
|
|
22
|
+
path: `${projectId}/sign/raw-payload`,
|
|
23
|
+
body: {
|
|
24
|
+
type: 'ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2',
|
|
25
|
+
timestampMs: Date.now().toString(),
|
|
26
|
+
organizationId,
|
|
27
|
+
parameters: {
|
|
28
|
+
signWith: address,
|
|
29
|
+
payload,
|
|
30
|
+
encoding,
|
|
31
|
+
hashFunction,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
headers: {
|
|
35
|
+
Authorization: `Bearer ${token}`,
|
|
36
|
+
},
|
|
37
|
+
stamp: true,
|
|
38
|
+
stampPostion: 'headers',
|
|
39
|
+
});
|
|
40
|
+
return signature;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=signRawPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signRawPayload.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signRawPayload.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAgC;IAEhC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,GAAG,8BAA8B,EACzC,YAAY,GAAG,qBAAqB,GACrC,GAAG,MAAM,CAAA;IAEV,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,mCAAmC;YACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO;gBACP,QAAQ;gBACR,YAAY;aACb;SACF;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;IACF,OAAO,SAAgB,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
*/
|
|
19
|
+
export async function signTransaction(client, params) {
|
|
20
|
+
const { organizationId, projectId, token, address, unsignedTransaction } = params;
|
|
21
|
+
const { signature } = await client.request({
|
|
22
|
+
path: `${projectId}/sign/transaction`,
|
|
23
|
+
body: {
|
|
24
|
+
type: 'ACTIVITY_TYPE_SIGN_TRANSACTION_V2',
|
|
25
|
+
timestampMs: Date.now().toString(),
|
|
26
|
+
organizationId,
|
|
27
|
+
parameters: {
|
|
28
|
+
signWith: address,
|
|
29
|
+
type: 'TRANSACTION_TYPE_ETHEREUM',
|
|
30
|
+
unsignedTransaction,
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
headers: {
|
|
34
|
+
Authorization: `Bearer ${token}`,
|
|
35
|
+
},
|
|
36
|
+
stamp: true,
|
|
37
|
+
stampPostion: 'headers',
|
|
38
|
+
});
|
|
39
|
+
return `0x${signature}`;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=signTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTransaction.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;GAiBG;AACH,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,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,mCAAmC;YACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,2BAA2B;gBACjC,mBAAmB;aACpB;SACF;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;IAEF,OAAO,KAAK,SAAS,EAAS,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { hashMessage, parseSignature, parseTransaction, serializeTransaction, serializeTypedData, zeroAddress, } from 'viem';
|
|
2
|
+
import { toAccount } from 'viem/accounts';
|
|
3
|
+
import { hashAuthorization } from 'viem/utils';
|
|
4
|
+
export async function toViemAccount(params) {
|
|
5
|
+
const { client, organizationId, projectId, token } = params;
|
|
6
|
+
let address = zeroAddress;
|
|
7
|
+
try {
|
|
8
|
+
const walletResponse = await client.getUserWallet({
|
|
9
|
+
organizationId,
|
|
10
|
+
projectId,
|
|
11
|
+
token,
|
|
12
|
+
});
|
|
13
|
+
address = walletResponse.walletAddresses[0];
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
address = zeroAddress;
|
|
17
|
+
}
|
|
18
|
+
const signRawPayloadInternal = async (payload, encoding = 'PAYLOAD_ENCODING_HEXADECIMAL') => {
|
|
19
|
+
return await client.signRawPayload({
|
|
20
|
+
organizationId,
|
|
21
|
+
projectId,
|
|
22
|
+
token,
|
|
23
|
+
address,
|
|
24
|
+
payload,
|
|
25
|
+
encoding,
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
// Modified from: https://github.com/tkhq/sdk/blob/4e439bf2973ea13b51d981d7c24a4841d4e5fd5f/packages/viem/src/index.ts#L419-L461
|
|
29
|
+
const signTransactionInternal = async (transaction, serializer) => {
|
|
30
|
+
// Note: for Type 3 transactions, we are specifically handling parsing for payloads containing only the transaction payload body, without any wrappers around blobs, commitments, or proofs.
|
|
31
|
+
// See more: https://github.com/wevm/viem/blob/3ef19eac4963014fb20124d1e46d1715bed5509f/src/accounts/utils/signTransaction.ts#L54-L55
|
|
32
|
+
const signableTransaction = transaction.type === 'eip4844'
|
|
33
|
+
? { ...transaction, sidecars: false }
|
|
34
|
+
: transaction;
|
|
35
|
+
const serializedTx = await serializer(signableTransaction);
|
|
36
|
+
const nonHexPrefixedSerializedTx = serializedTx.replace(/^0x/, '');
|
|
37
|
+
const signature = await client.signTransaction({
|
|
38
|
+
organizationId,
|
|
39
|
+
projectId,
|
|
40
|
+
token,
|
|
41
|
+
address,
|
|
42
|
+
unsignedTransaction: nonHexPrefixedSerializedTx,
|
|
43
|
+
});
|
|
44
|
+
if (transaction.type === 'eip4844') {
|
|
45
|
+
// Grab components of the signature
|
|
46
|
+
const { r, s, v } = parseTransaction(signature);
|
|
47
|
+
// Recombine with the original transaction
|
|
48
|
+
return serializeTransaction(transaction, {
|
|
49
|
+
r: r,
|
|
50
|
+
s: s,
|
|
51
|
+
v: v,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return signature;
|
|
55
|
+
};
|
|
56
|
+
return toAccount({
|
|
57
|
+
address,
|
|
58
|
+
async signMessage({ message }) {
|
|
59
|
+
const hashedMessage = hashMessage(message);
|
|
60
|
+
return signRawPayloadInternal(hashedMessage);
|
|
61
|
+
},
|
|
62
|
+
signTransaction: async (transaction, options) => {
|
|
63
|
+
const serializer = options?.serializer ??
|
|
64
|
+
serializeTransaction;
|
|
65
|
+
return signTransactionInternal(transaction, serializer);
|
|
66
|
+
},
|
|
67
|
+
signTypedData: async (typedData) => {
|
|
68
|
+
const serializedTypedData = serializeTypedData(typedData);
|
|
69
|
+
return signRawPayloadInternal(serializedTypedData, 'PAYLOAD_ENCODING_EIP712');
|
|
70
|
+
},
|
|
71
|
+
async signAuthorization(parameters) {
|
|
72
|
+
const { chainId, nonce } = parameters;
|
|
73
|
+
const authAddress = parameters.contractAddress ?? parameters.address;
|
|
74
|
+
if (!authAddress) {
|
|
75
|
+
throw new Error('Unable to sign authorization: address is undefined');
|
|
76
|
+
}
|
|
77
|
+
const hashedAuthorization = hashAuthorization({
|
|
78
|
+
address: authAddress,
|
|
79
|
+
chainId,
|
|
80
|
+
nonce,
|
|
81
|
+
});
|
|
82
|
+
const signature = await signRawPayloadInternal(hashedAuthorization);
|
|
83
|
+
const parsedSignature = parseSignature(signature);
|
|
84
|
+
return {
|
|
85
|
+
address: authAddress,
|
|
86
|
+
chainId,
|
|
87
|
+
nonce,
|
|
88
|
+
...parsedSignature,
|
|
89
|
+
yParity: parsedSignature.v === BigInt(27) ? 0 : 1,
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=viem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viem.js","sourceRoot":"","sources":["../../../src/adapters/viem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const AUTH_PROXY_BASE_URL = 'https://authproxy.turnkey.com';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an Auth Proxy client for making requests to Turnkey's Auth Proxy
|
|
4
|
+
*
|
|
5
|
+
* Note: This client only handles OTP verification. The actual OTP login
|
|
6
|
+
* is handled by the backend (/auth/login/otp) which manages sub-organization
|
|
7
|
+
* creation and session handling.
|
|
8
|
+
*/
|
|
9
|
+
export function createAuthProxyClient(config) {
|
|
10
|
+
const { authProxyConfigId, baseUrl = AUTH_PROXY_BASE_URL } = config;
|
|
11
|
+
async function request(path, body, method = 'POST') {
|
|
12
|
+
const fetchOptions = {
|
|
13
|
+
method,
|
|
14
|
+
headers: {
|
|
15
|
+
'Content-Type': 'application/json',
|
|
16
|
+
'X-Auth-Proxy-Config-Id': authProxyConfigId,
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
if (method !== 'GET') {
|
|
20
|
+
fetchOptions.body = JSON.stringify(body);
|
|
21
|
+
}
|
|
22
|
+
const response = await fetch(`${baseUrl}${path}`, fetchOptions);
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
const errorText = await response.text();
|
|
25
|
+
throw new Error(`Auth Proxy request failed: ${response.status} ${response.statusText} - ${errorText}`);
|
|
26
|
+
}
|
|
27
|
+
return response.json();
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
/**
|
|
31
|
+
* Verifies an OTP code with Turnkey's Auth Proxy
|
|
32
|
+
*
|
|
33
|
+
* Returns a verificationToken that should be passed to the backend's
|
|
34
|
+
* /auth/login/otp endpoint along with a client signature.
|
|
35
|
+
*/
|
|
36
|
+
async verifyOtp(params) {
|
|
37
|
+
return request('/v1/otp_verify', params);
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=authProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authProxy.js","sourceRoot":"","sources":["../../../src/client/authProxy.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,+BAA+B,CAAA;AAuB3D;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,mBAAmB,EAAE,GAAG,MAAM,CAAA;IAEnE,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,IAAa,EACb,SAAyB,MAAM;QAE/B,MAAM,YAAY,GAAgB;YAChC,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,wBAAwB,EAAE,iBAAiB;aAC5C;SACF,CAAA;QAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE,YAAY,CAAC,CAAA;QAE/D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACvC,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CACtF,CAAA;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,OAAO;QACL;;;;;WAKG;QACH,KAAK,CAAC,SAAS,CACb,MAAiC;YAEjC,OAAO,OAAO,CAA6B,gBAAgB,EAAE,MAAM,CAAC,CAAA;QACtE,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { zeroDevWalletActions, } from './decorators/client.js';
|
|
2
|
+
let clientId = 0;
|
|
3
|
+
/**
|
|
4
|
+
* Creates a base ZeroDev Wallet client.
|
|
5
|
+
* This is the foundation client without any pre-loaded actions.
|
|
6
|
+
* Use createClient() for a client with ZeroDev Wallet actions pre-loaded.
|
|
7
|
+
*/
|
|
8
|
+
export function createBaseClient(config) {
|
|
9
|
+
const { transport, indexedDbStamper, webauthnStamper, organizationId, key = 'zeroDevWallet', name = 'ZeroDev Wallet Client', } = config;
|
|
10
|
+
// Initialize the transport with stamper
|
|
11
|
+
const { config: transportConfig, request, value, } = transport({
|
|
12
|
+
indexedDbStamper,
|
|
13
|
+
webauthnStamper,
|
|
14
|
+
});
|
|
15
|
+
const transportInstance = { ...transportConfig, ...value };
|
|
16
|
+
const uid = `${key}-${++clientId}`;
|
|
17
|
+
const client = {
|
|
18
|
+
transport: transportInstance,
|
|
19
|
+
request,
|
|
20
|
+
indexedDbStamper,
|
|
21
|
+
webauthnStamper,
|
|
22
|
+
organizationId,
|
|
23
|
+
key,
|
|
24
|
+
name,
|
|
25
|
+
type: 'zeroDevWallet',
|
|
26
|
+
uid,
|
|
27
|
+
};
|
|
28
|
+
function extend(base) {
|
|
29
|
+
return (extendFn) => {
|
|
30
|
+
const extended = extendFn(base);
|
|
31
|
+
// Remove base properties from extended to avoid conflicts
|
|
32
|
+
for (const key in client) {
|
|
33
|
+
delete extended[key];
|
|
34
|
+
}
|
|
35
|
+
// Combine base client with extensions
|
|
36
|
+
const combined = { ...base, ...extended };
|
|
37
|
+
// Return new client with updated extend function
|
|
38
|
+
return Object.assign(combined, { extend: extend(combined) });
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return Object.assign(client, {
|
|
42
|
+
extend: extend(client),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Creates a ZeroDev Wallet client with ZeroDev Wallet actions pre-loaded.
|
|
47
|
+
* This is equivalent to calling createBaseClient(config).extend(zeroDevWalletActions).
|
|
48
|
+
*
|
|
49
|
+
* For a client without pre-loaded actions, use createBaseClient().
|
|
50
|
+
*/
|
|
51
|
+
export function createClient(config) {
|
|
52
|
+
const { key = 'zeroDevWallet', name = 'ZeroDev Wallet Client' } = config;
|
|
53
|
+
const client = createBaseClient({
|
|
54
|
+
...config,
|
|
55
|
+
key,
|
|
56
|
+
name,
|
|
57
|
+
});
|
|
58
|
+
return client.extend(zeroDevWalletActions);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=createClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAG/B,IAAI,QAAQ,GAAG,CAAC,CAAA;AAEhB;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAE9B,MAAoB;IACpB,MAAM,EACJ,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,GAAG,GAAG,eAAe,EACrB,IAAI,GAAG,uBAAuB,GAC/B,GAAG,MAAM,CAAA;IAEV,wCAAwC;IACxC,MAAM,EACJ,MAAM,EAAE,eAAe,EACvB,OAAO,EACP,KAAK,GACN,GAAG,SAAS,CAAC;QACZ,gBAAgB;QAChB,eAAe;KAChB,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,EAAE,CAAA;IAE1D,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAA;IAElC,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,iBAAiB;QAC5B,OAAO;QACP,gBAAgB;QAChB,eAAe;QACf,cAAc;QACd,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,eAAe;QACrB,GAAG;KACK,CAAA;IAEV,SAAS,MAAM,CAAC,IAAmB;QAEjC,OAAO,CAAC,QAAkB,EAAE,EAAE;YAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAA4B,CAAA;YAE1D,0DAA0D;YAC1D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC;YAED,sCAAsC;YACtC,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAA;YAEzC,iDAAiD;YACjD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAe,CAAC,EAAE,CAAC,CAAA;QACrE,CAAC,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAQ;KAC9B,CAAqB,CAAA;AACxB,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,IAAI,GAAG,uBAAuB,EAAE,GAAG,MAAM,CAAA;IACxE,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,GAAG,MAAM;QACT,GAAG;QACH,IAAI;KACL,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAwB,CAAA;AACnE,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { loginWithStamp, } from '../../actions/auth/loginWithStamp.js';
|
|
2
|
+
import { authenticateWithEmail, authenticateWithOAuth, getAuthProxyConfigId, getUserEmail, getUserWallet, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, signRawPayload, } from '../../actions/index.js';
|
|
3
|
+
import { signTransaction, } from '../../actions/wallet/signTransaction.js';
|
|
4
|
+
/**
|
|
5
|
+
* Decorator function that adds ZeroDev Wallet client actions to a client
|
|
6
|
+
*
|
|
7
|
+
* @param client - The base client to extend
|
|
8
|
+
* @returns An object containing all ZeroDev Wallet client actions bound to the client
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { createClient, zeroDevWalletTransport, zeroDevWalletActions } from '@zerodev/wallet-core';
|
|
13
|
+
*
|
|
14
|
+
* const client = createClient({
|
|
15
|
+
* transport: zeroDevWalletTransport({ baseUrl: 'https://api.example.com' }),
|
|
16
|
+
* stamper: myStamper,
|
|
17
|
+
* }).extend(zeroDevWalletActions);
|
|
18
|
+
*
|
|
19
|
+
* // Now you can use actions directly on the client
|
|
20
|
+
* const userInfo = await client.getWhoami({
|
|
21
|
+
* organizationId: 'org_123',
|
|
22
|
+
* projectId: 'proj_456'
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function zeroDevWalletActions(client) {
|
|
27
|
+
return {
|
|
28
|
+
// Auth actions
|
|
29
|
+
authenticateWithEmail: (params) => authenticateWithEmail(client, params),
|
|
30
|
+
authenticateWithOAuth: (params) => authenticateWithOAuth(client, params),
|
|
31
|
+
getWhoami: (params) => getWhoami(client, params),
|
|
32
|
+
getUserEmail: (params) => getUserEmail(client, params),
|
|
33
|
+
// Wallet actions
|
|
34
|
+
getUserWallet: (params) => getUserWallet(client, params),
|
|
35
|
+
signRawPayload: (params) => signRawPayload(client, params),
|
|
36
|
+
signTransaction: (params) => signTransaction(client, params),
|
|
37
|
+
registerWithPasskey: (params) => registerWithPasskey(client, params),
|
|
38
|
+
loginWithStamp: (params) => loginWithStamp(client, params),
|
|
39
|
+
registerWithOTP: (params) => registerWithOTP(client, params),
|
|
40
|
+
loginWithOTP: (params) => loginWithOTP(client, params),
|
|
41
|
+
getAuthProxyConfigId: () => getAuthProxyConfigId(client),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/decorators/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,GACf,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAKL,qBAAqB,EACrB,qBAAqB,EAQrB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,SAAS,EAGT,YAAY,EAKZ,eAAe,EACf,mBAAmB,EAGnB,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,eAAe,GAChB,MAAM,yCAAyC,CAAA;AA0FhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO;QACL,eAAe;QACf,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACxE,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACxE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;QAChD,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QAEtD,iBAAiB;QACjB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;QACxD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1D,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5D,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;QACpE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1D,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5D,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QACtD,oBAAoB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC;KACzD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,qBAAqB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,YAAY,GAEb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { rest } from './rest.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a transport for the ZeroDev Wallet client.
|
|
4
|
+
* Requires a stamper for authenticated requests.
|
|
5
|
+
*/
|
|
6
|
+
export function zeroDevWalletTransport(options) {
|
|
7
|
+
const { baseUrl, timeoutMs = 10_000, key = 'zeroDevWallet', name = 'ZeroDev Wallet Transport', } = options;
|
|
8
|
+
return ({ indexedDbStamper, webauthnStamper }) => {
|
|
9
|
+
// Create REST transport with stamper
|
|
10
|
+
const transport = rest(baseUrl, {
|
|
11
|
+
timeoutMs,
|
|
12
|
+
key,
|
|
13
|
+
name,
|
|
14
|
+
indexedDbStamper,
|
|
15
|
+
webauthnStamper,
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
config: {
|
|
19
|
+
name,
|
|
20
|
+
key,
|
|
21
|
+
url: baseUrl,
|
|
22
|
+
timeoutMs,
|
|
23
|
+
type: 'zeroDevWallet',
|
|
24
|
+
},
|
|
25
|
+
request: transport.request,
|
|
26
|
+
value: {
|
|
27
|
+
indexedDbStamper,
|
|
28
|
+
webauthnStamper,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=createTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTransport.js","sourceRoot":"","sources":["../../../../src/client/transports/createTransport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAahC;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAA+B;IAE/B,MAAM,EACJ,OAAO,EACP,SAAS,GAAG,MAAM,EAClB,GAAG,GAAG,eAAe,EACrB,IAAI,GAAG,0BAA0B,GAClC,GAAG,OAAO,CAAA;IAEX,OAAO,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAAE,EAAE;QAC/C,qCAAqC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE;YAC9B,SAAS;YACT,GAAG;YACH,IAAI;YACJ,gBAAgB;YAChB,eAAe;SAChB,CAAC,CAAA;QAEF,OAAO;YACL,MAAM,EAAE;gBACN,IAAI;gBACJ,GAAG;gBACH,GAAG,EAAE,OAAO;gBACZ,SAAS;gBACT,IAAI,EAAE,eAAe;aACtB;YACD,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,KAAK,EAAE;gBACL,gBAAgB;gBAChB,eAAe;aAChB;SACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
|