@zerodev/wallet-core 0.0.1-alpha.3
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 +272 -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 +17 -0
- package/dist/_cjs/actions/auth/authenticateWithOAuth.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 +18 -0
- package/dist/_cjs/actions/auth/index.js.map +1 -0
- package/dist/_cjs/actions/auth/loginWithOTP.js +17 -0
- package/dist/_cjs/actions/auth/loginWithOTP.js.map +1 -0
- package/dist/_cjs/actions/auth/loginWithStamp.js +29 -0
- package/dist/_cjs/actions/auth/loginWithStamp.js.map +1 -0
- package/dist/_cjs/actions/auth/registerWithOTP.js +17 -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 +15 -0
- package/dist/_cjs/actions/index.js.map +1 -0
- package/dist/_cjs/actions/wallet/getUserWallet.js +13 -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 +26 -0
- package/dist/_cjs/actions/wallet/signRawPayload.js.map +1 -0
- package/dist/_cjs/actions/wallet/signTransaction.js +25 -0
- package/dist/_cjs/actions/wallet/signTransaction.js.map +1 -0
- package/dist/_cjs/adapters/viem.js +89 -0
- package/dist/_cjs/adapters/viem.js.map +1 -0
- package/dist/_cjs/client/createClient.js +45 -0
- package/dist/_cjs/client/createClient.js.map +1 -0
- package/dist/_cjs/client/decorators/client.js +21 -0
- package/dist/_cjs/client/decorators/client.js.map +1 -0
- package/dist/_cjs/client/index.js +9 -0
- package/dist/_cjs/client/index.js.map +1 -0
- package/dist/_cjs/client/transports/createTransport.js +29 -0
- package/dist/_cjs/client/transports/createTransport.js.map +1 -0
- package/dist/_cjs/client/transports/rest.js +86 -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 +330 -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 +31 -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 +32 -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/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 +31 -0
- package/dist/_esm/actions/auth/authenticateWithOAuth.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 +8 -0
- package/dist/_esm/actions/auth/index.js.map +1 -0
- package/dist/_esm/actions/auth/loginWithOTP.js +36 -0
- package/dist/_esm/actions/auth/loginWithOTP.js.map +1 -0
- package/dist/_esm/actions/auth/loginWithStamp.js +42 -0
- package/dist/_esm/actions/auth/loginWithStamp.js.map +1 -0
- package/dist/_esm/actions/auth/registerWithOTP.js +36 -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 +26 -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 +41 -0
- package/dist/_esm/actions/wallet/signRawPayload.js.map +1 -0
- package/dist/_esm/actions/wallet/signTransaction.js +40 -0
- package/dist/_esm/actions/wallet/signTransaction.js.map +1 -0
- package/dist/_esm/adapters/viem.js +91 -0
- package/dist/_esm/adapters/viem.js.map +1 -0
- package/dist/_esm/client/createClient.js +56 -0
- package/dist/_esm/client/createClient.js.map +1 -0
- package/dist/_esm/client/decorators/client.js +42 -0
- package/dist/_esm/client/decorators/client.js.map +1 -0
- package/dist/_esm/client/index.js +3 -0
- package/dist/_esm/client/index.js.map +1 -0
- package/dist/_esm/client/transports/createTransport.js +31 -0
- package/dist/_esm/client/transports/createTransport.js.map +1 -0
- package/dist/_esm/client/transports/rest.js +85 -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 +332 -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 +20 -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 +29 -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/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 +40 -0
- package/dist/_types/actions/auth/authenticateWithOAuth.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 +8 -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 +35 -0
- package/dist/_types/actions/auth/loginWithStamp.d.ts.map +1 -0
- package/dist/_types/actions/auth/registerWithOTP.d.ts +52 -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 +32 -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 +37 -0
- package/dist/_types/actions/wallet/signRawPayload.d.ts.map +1 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts +33 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts.map +1 -0
- package/dist/_types/adapters/viem.d.ts +9 -0
- package/dist/_types/adapters/viem.d.ts.map +1 -0
- package/dist/_types/client/createClient.d.ts +18 -0
- package/dist/_types/client/createClient.d.ts.map +1 -0
- package/dist/_types/client/decorators/client.d.ts +73 -0
- package/dist/_types/client/decorators/client.d.ts.map +1 -0
- package/dist/_types/client/index.d.ts +4 -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 +30 -0
- package/dist/_types/client/transports/rest.d.ts.map +1 -0
- package/dist/_types/client/types.d.ts +60 -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 +55 -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 +17 -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 +23 -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/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 +73 -0
- package/src/actions/auth/authenticateWithEmail.ts +52 -0
- package/src/actions/auth/authenticateWithOAuth.ts +58 -0
- package/src/actions/auth/getWhoami.ts +51 -0
- package/src/actions/auth/index.ts +40 -0
- package/src/actions/auth/loginWithOTP.ts +60 -0
- package/src/actions/auth/loginWithStamp.ts +68 -0
- package/src/actions/auth/registerWithOTP.ts +71 -0
- package/src/actions/auth/registerWithPasskey.ts +72 -0
- package/src/actions/index.ts +36 -0
- package/src/actions/wallet/getUserWallet.ts +46 -0
- package/src/actions/wallet/index.ts +17 -0
- package/src/actions/wallet/signRawPayload.ts +71 -0
- package/src/actions/wallet/signTransaction.ts +60 -0
- package/src/adapters/viem.ts +158 -0
- package/src/client/createClient.ts +95 -0
- package/src/client/decorators/client.ts +152 -0
- package/src/client/index.ts +12 -0
- package/src/client/transports/createTransport.ts +52 -0
- package/src/client/transports/rest.ts +121 -0
- package/src/client/types.ts +66 -0
- package/src/constants.ts +5 -0
- package/src/core/createZeroDevWallet.ts +477 -0
- package/src/errors/request.ts +36 -0
- package/src/index.ts +75 -0
- package/src/polyfills/window.ts +24 -0
- package/src/stampers/iframeStamper.ts +35 -0
- package/src/stampers/index.ts +8 -0
- package/src/stampers/indexedDbStamper.ts +22 -0
- package/src/stampers/types.ts +28 -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/exportWallet.ts +124 -0
- package/src/utils/utils.ts +136 -0
|
@@ -0,0 +1,41 @@
|
|
|
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, 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
|
+
body: {
|
|
25
|
+
type: 'ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2',
|
|
26
|
+
timestampMs: Date.now().toString(),
|
|
27
|
+
organizationId,
|
|
28
|
+
parameters: {
|
|
29
|
+
signWith: address,
|
|
30
|
+
payload,
|
|
31
|
+
encoding,
|
|
32
|
+
hashFunction,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
apiUrl: 'https://api.turnkey.com/public/v1/submit/sign_raw_payload',
|
|
36
|
+
},
|
|
37
|
+
stamp: true,
|
|
38
|
+
});
|
|
39
|
+
return signature;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=signRawPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signRawPayload.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signRawPayload.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAgC;IAEhC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,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;gBACJ,IAAI,EAAE,mCAAmC;gBACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;gBAClC,cAAc;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE,OAAO;oBACjB,OAAO;oBACP,QAAQ;oBACR,YAAY;iBACb;aACF;YACD,MAAM,EAAE,2DAA2D;SACpE;QACD,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IACF,OAAO,SAAgB,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
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, address, unsignedTransaction } = params;
|
|
21
|
+
const { signature } = await client.request({
|
|
22
|
+
path: `${projectId}/sign/transaction`,
|
|
23
|
+
body: {
|
|
24
|
+
body: {
|
|
25
|
+
type: 'ACTIVITY_TYPE_SIGN_TRANSACTION_V2',
|
|
26
|
+
timestampMs: Date.now().toString(),
|
|
27
|
+
organizationId,
|
|
28
|
+
parameters: {
|
|
29
|
+
signWith: address,
|
|
30
|
+
type: 'TRANSACTION_TYPE_ETHEREUM',
|
|
31
|
+
unsignedTransaction,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
apiUrl: 'https://api.turnkey.com/public/v1/submit/sign_transaction',
|
|
35
|
+
},
|
|
36
|
+
stamp: true,
|
|
37
|
+
});
|
|
38
|
+
return `0x${signature}`;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=signTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTransaction.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAA;IAE1E,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,IAAI,EAAE,mCAAmC;gBACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;gBAClC,cAAc;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,2BAA2B;oBACjC,mBAAmB;iBACpB;aACF;YACD,MAAM,EAAE,2DAA2D;SACpE;QACD,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,OAAO,KAAK,SAAS,EAAS,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
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 } = params;
|
|
6
|
+
let address = zeroAddress;
|
|
7
|
+
try {
|
|
8
|
+
const walletResponse = await client.getUserWallet({
|
|
9
|
+
organizationId,
|
|
10
|
+
projectId,
|
|
11
|
+
});
|
|
12
|
+
address = walletResponse.walletAddress;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
address = zeroAddress;
|
|
16
|
+
}
|
|
17
|
+
const signRawPayloadInternal = async (payload, encoding = 'PAYLOAD_ENCODING_HEXADECIMAL') => {
|
|
18
|
+
return await client.signRawPayload({
|
|
19
|
+
organizationId,
|
|
20
|
+
projectId,
|
|
21
|
+
address,
|
|
22
|
+
payload,
|
|
23
|
+
encoding,
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
// Modified from: https://github.com/tkhq/sdk/blob/4e439bf2973ea13b51d981d7c24a4841d4e5fd5f/packages/viem/src/index.ts#L419-L461
|
|
27
|
+
const signTransactionInternal = async (transaction, serializer) => {
|
|
28
|
+
// 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.
|
|
29
|
+
// See more: https://github.com/wevm/viem/blob/3ef19eac4963014fb20124d1e46d1715bed5509f/src/accounts/utils/signTransaction.ts#L54-L55
|
|
30
|
+
const signableTransaction = transaction.type === 'eip4844'
|
|
31
|
+
? { ...transaction, sidecars: false }
|
|
32
|
+
: transaction;
|
|
33
|
+
const serializedTx = serializer(signableTransaction);
|
|
34
|
+
const nonHexPrefixedSerializedTx = serializedTx.replace(/^0x/, '');
|
|
35
|
+
const signature = await client.signTransaction({
|
|
36
|
+
organizationId,
|
|
37
|
+
projectId,
|
|
38
|
+
address,
|
|
39
|
+
unsignedTransaction: nonHexPrefixedSerializedTx,
|
|
40
|
+
});
|
|
41
|
+
if (transaction.type === 'eip4844') {
|
|
42
|
+
// Grab components of the signature
|
|
43
|
+
const { r, s, v } = parseTransaction(signature);
|
|
44
|
+
// Recombine with the original transaction
|
|
45
|
+
return serializeTransaction(transaction, {
|
|
46
|
+
r: r,
|
|
47
|
+
s: s,
|
|
48
|
+
v: v,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return signature;
|
|
52
|
+
};
|
|
53
|
+
return toAccount({
|
|
54
|
+
address,
|
|
55
|
+
async signMessage({ message }) {
|
|
56
|
+
const hashedMessage = hashMessage(message);
|
|
57
|
+
return signRawPayloadInternal(hashedMessage);
|
|
58
|
+
},
|
|
59
|
+
signTransaction: async (transaction, options) => {
|
|
60
|
+
const serializer = options?.serializer ??
|
|
61
|
+
serializeTransaction;
|
|
62
|
+
return signTransactionInternal(transaction, serializer);
|
|
63
|
+
},
|
|
64
|
+
signTypedData: async (typedData) => {
|
|
65
|
+
const serializedTypedData = serializeTypedData(typedData);
|
|
66
|
+
return signRawPayloadInternal(serializedTypedData, 'PAYLOAD_ENCODING_EIP712');
|
|
67
|
+
},
|
|
68
|
+
async signAuthorization(parameters) {
|
|
69
|
+
const { chainId, nonce } = parameters;
|
|
70
|
+
const authAddress = parameters.contractAddress ?? parameters.address;
|
|
71
|
+
if (!authAddress) {
|
|
72
|
+
throw new Error('Unable to sign authorization: address is undefined');
|
|
73
|
+
}
|
|
74
|
+
const hashedAuthorization = hashAuthorization({
|
|
75
|
+
address: authAddress,
|
|
76
|
+
chainId,
|
|
77
|
+
nonce,
|
|
78
|
+
});
|
|
79
|
+
const signature = await signRawPayloadInternal(hashedAuthorization);
|
|
80
|
+
const parsedSignature = parseSignature(signature);
|
|
81
|
+
return {
|
|
82
|
+
address: authAddress,
|
|
83
|
+
chainId,
|
|
84
|
+
nonce,
|
|
85
|
+
...parsedSignature,
|
|
86
|
+
yParity: parsedSignature.v === BigInt(27) ? 0 : 1,
|
|
87
|
+
};
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
//# 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,56 @@
|
|
|
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, stamper, organizationId, key = 'zeroDevWallet', name = 'ZeroDev Wallet Client', } = config;
|
|
10
|
+
// Initialize the transport with stamper
|
|
11
|
+
const { config: transportConfig, request, value, } = transport({
|
|
12
|
+
stamper,
|
|
13
|
+
});
|
|
14
|
+
const transportInstance = { ...transportConfig, ...value };
|
|
15
|
+
const uid = `${key}-${++clientId}`;
|
|
16
|
+
const client = {
|
|
17
|
+
transport: transportInstance,
|
|
18
|
+
request,
|
|
19
|
+
stamper,
|
|
20
|
+
organizationId,
|
|
21
|
+
key,
|
|
22
|
+
name,
|
|
23
|
+
type: 'zeroDevWallet',
|
|
24
|
+
uid,
|
|
25
|
+
};
|
|
26
|
+
function extend(base) {
|
|
27
|
+
return (extendFn) => {
|
|
28
|
+
const extended = extendFn(base);
|
|
29
|
+
// Remove base properties from extended to avoid conflicts
|
|
30
|
+
for (const key in client) {
|
|
31
|
+
delete extended[key];
|
|
32
|
+
}
|
|
33
|
+
// Combine base client with extensions
|
|
34
|
+
const combined = { ...base, ...extended };
|
|
35
|
+
// Return new client with updated extend function
|
|
36
|
+
return Object.assign(combined, { extend: extend(combined) });
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return Object.assign(client, { extend: extend(client) });
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Creates a ZeroDev Wallet client with ZeroDev Wallet actions pre-loaded.
|
|
43
|
+
* This is equivalent to calling createBaseClient(config).extend(zeroDevWalletActions).
|
|
44
|
+
*
|
|
45
|
+
* For a client without pre-loaded actions, use createBaseClient().
|
|
46
|
+
*/
|
|
47
|
+
export function createClient(config) {
|
|
48
|
+
const { key = 'zeroDevWallet', name = 'ZeroDev Wallet Client' } = config;
|
|
49
|
+
const client = createBaseClient({
|
|
50
|
+
...config,
|
|
51
|
+
key,
|
|
52
|
+
name,
|
|
53
|
+
});
|
|
54
|
+
return client.extend(zeroDevWalletActions);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=createClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../../src/client/createClient.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAG/B,IAAI,QAAQ,GAAG,CAAC,CAAA;AAEhB;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAG9B,MAAoB;IACpB,MAAM,EACJ,SAAS,EACT,OAAO,EACP,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,OAAO;KACR,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,OAAO;QACP,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,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAQ,EAAE,CAG7D,CAAA;AACH,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA8B;IAE9B,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,CAAkC,CAAA;AAC7E,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { loginWithStamp, } from '../../actions/auth/loginWithStamp.js';
|
|
2
|
+
import { authenticateWithEmail, authenticateWithOAuth, 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
|
+
// Wallet actions
|
|
33
|
+
getUserWallet: (params) => getUserWallet(client, params),
|
|
34
|
+
signRawPayload: (params) => signRawPayload(client, params),
|
|
35
|
+
signTransaction: (params) => signTransaction(client, params),
|
|
36
|
+
registerWithPasskey: (params) => registerWithPasskey(client, params),
|
|
37
|
+
loginWithStamp: (params) => loginWithStamp(client, params),
|
|
38
|
+
registerWithOTP: (params) => registerWithOTP(client, params),
|
|
39
|
+
loginWithOTP: (params) => loginWithOTP(client, params),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# 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,EAKrB,aAAa,EACb,SAAS,EAGT,YAAY,EAKZ,eAAe,EACf,mBAAmB,EAGnB,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,eAAe,GAChB,MAAM,yCAAyC,CAAA;AA8EhD;;;;;;;;;;;;;;;;;;;;;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;QAEhD,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;KACvD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,GAEb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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 ({ stamper }) => {
|
|
9
|
+
// Create REST transport with stamper
|
|
10
|
+
const transport = rest(baseUrl, {
|
|
11
|
+
timeoutMs,
|
|
12
|
+
key,
|
|
13
|
+
name,
|
|
14
|
+
stamper,
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
config: {
|
|
18
|
+
name,
|
|
19
|
+
key,
|
|
20
|
+
url: baseUrl,
|
|
21
|
+
timeoutMs,
|
|
22
|
+
type: 'zeroDevWallet',
|
|
23
|
+
},
|
|
24
|
+
request: transport.request,
|
|
25
|
+
value: {
|
|
26
|
+
stamper,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# 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,OAAO,EAAE,EAAE,EAAE;QACrB,qCAAqC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE;YAC9B,SAAS;YACT,GAAG;YACH,IAAI;YACJ,OAAO;SACR,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,OAAO;aACR;SACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { RestRequestError, RestTimeoutError } from '../../errors/request.js';
|
|
2
|
+
export function rest(url, cfg = {}) {
|
|
3
|
+
const timeoutMs = cfg.timeoutMs ?? 10_000;
|
|
4
|
+
const key = cfg.key ?? 'rest';
|
|
5
|
+
const name = cfg.name ?? 'HTTP REST';
|
|
6
|
+
const request = async (args) => {
|
|
7
|
+
const fullUrl = `${url}/${args.path}`;
|
|
8
|
+
const controller = new AbortController();
|
|
9
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
10
|
+
try {
|
|
11
|
+
let requestBody = args.body;
|
|
12
|
+
const requestHeaders = {
|
|
13
|
+
'content-type': 'application/json',
|
|
14
|
+
...(args.headers ?? {}),
|
|
15
|
+
...(cfg.fetchOptions?.headers ?? {}),
|
|
16
|
+
};
|
|
17
|
+
// Handle stamping if requested
|
|
18
|
+
if (args.stamp && cfg.stamper) {
|
|
19
|
+
const { body, apiUrl } = args.body;
|
|
20
|
+
const bodyString = `${JSON.stringify(body ?? args.body)}\n`;
|
|
21
|
+
const stamp = await cfg.stamper.stamp(bodyString);
|
|
22
|
+
// Restructure request body to match backend expectation
|
|
23
|
+
if (body) {
|
|
24
|
+
requestBody = {
|
|
25
|
+
body: bodyString,
|
|
26
|
+
stamp: {
|
|
27
|
+
stampHeaderName: stamp.stampHeaderName,
|
|
28
|
+
stampHeaderValue: stamp.stampHeaderValue,
|
|
29
|
+
},
|
|
30
|
+
apiUrl: apiUrl,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
requestBody = {
|
|
35
|
+
...args.body,
|
|
36
|
+
stamp: {
|
|
37
|
+
stampHeaderName: stamp.stampHeaderName,
|
|
38
|
+
stampHeaderValue: stamp.stampHeaderValue,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const init = {
|
|
44
|
+
...cfg.fetchOptions,
|
|
45
|
+
method: args.method ?? 'POST',
|
|
46
|
+
headers: requestHeaders,
|
|
47
|
+
body: requestBody != null ? JSON.stringify(requestBody) : null,
|
|
48
|
+
signal: controller.signal,
|
|
49
|
+
};
|
|
50
|
+
const finalInit = (await cfg.onRequest?.(fullUrl, init)) ?? init;
|
|
51
|
+
const res = await fetch(fullUrl, finalInit);
|
|
52
|
+
await cfg.onResponse?.(res);
|
|
53
|
+
let data;
|
|
54
|
+
const ct = res.headers.get('content-type') ?? '';
|
|
55
|
+
if (ct.startsWith('application/json'))
|
|
56
|
+
data = await res.json();
|
|
57
|
+
else {
|
|
58
|
+
const text = await res.text();
|
|
59
|
+
try {
|
|
60
|
+
data = text ? JSON.parse(text) : {};
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
data = text;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!res.ok)
|
|
67
|
+
throw new RestRequestError(fullUrl, res.status, data);
|
|
68
|
+
return data;
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
if (err.name === 'AbortError')
|
|
72
|
+
throw new RestTimeoutError(fullUrl);
|
|
73
|
+
throw err;
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
clearTimeout(timer);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
config: { key, name, url, timeoutMs },
|
|
81
|
+
request,
|
|
82
|
+
value: {},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=rest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../../src/client/transports/rest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const DEFAULT_SESSION_EXPIRATION_IN_SECONDS = '900'; // default to 15 minutes
|
|
2
|
+
export const DEFAULT_IFRAME_CONTAINER_ID = 'turnkey-auth-iframe-container-id';
|
|
3
|
+
export const DEFAULT_IFRAME_ELEMENT_ID = 'turnkey-default-iframe-element-id';
|
|
4
|
+
export const DEFAULT_ORGANIZATION_ID = '6254bb1d-0d0d-4f7e-96b8-77c94fe0b0c1';
|
|
5
|
+
export const KMS_SERVER_URL = 'https://kms.dev.zerodev.app';
|
|
6
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qCAAqC,GAAG,KAAK,CAAA,CAAC,wBAAwB;AACnF,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAA;AAC7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,mCAAmC,CAAA;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,sCAAsC,CAAA;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,6BAA6B,CAAA"}
|