@zerodev/sdk 4.1.3 → 4.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/kernel-zerodev/owner/getCustodialOwner.d.ts +1 -2
- package/dist/cjs/kernel-zerodev/owner/getCustodialOwner.js.map +1 -1
- package/dist/esm/kernel-zerodev/owner/getCustodialOwner.d.ts +1 -2
- package/dist/esm/kernel-zerodev/owner/getCustodialOwner.js +0 -1
- package/dist/esm/kernel-zerodev/owner/getCustodialOwner.js.map +1 -1
- package/dist/types/kernel-zerodev/owner/getCustodialOwner.d.ts +1 -2
- package/dist/types/kernel-zerodev/owner/getCustodialOwner.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/kernel-zerodev/owner/getCustodialOwner.ts +1 -2
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
|
-
import { TurnkeyClient } from "@turnkey/http";
|
|
3
2
|
type GetCustodialOwnerParams = {
|
|
4
3
|
apiUrl?: string;
|
|
5
|
-
turnKeyClient?:
|
|
4
|
+
turnKeyClient?: unknown;
|
|
6
5
|
privateKey?: string;
|
|
7
6
|
publicKey?: string;
|
|
8
7
|
keyId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCustodialOwner.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/owner/getCustodialOwner.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0C;AAC1C,kDAA0B;
|
|
1
|
+
{"version":3,"file":"getCustodialOwner.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/owner/getCustodialOwner.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SignTypedDataParams, SmartAccountSigner } from \"@alchemy/aa-core\";\nimport { API_URL } from \"../constants.js\";\nimport axios from \"axios\";\n\n/**\n * Params to get a custodial owner\n * Priv / pub key combo or custodial file path should be in different types\n */\ntype GetCustodialOwnerParams = {\n // ZeroDev api url\n apiUrl?: string;\n // Turnkey client (if the client want to reuse it\n turnKeyClient?: unknown;\n\n // Direct access to priv / pub key\n privateKey?: string;\n publicKey?: string;\n keyId?: string;\n\n // Or read them from the custodial file path\n custodialFilePath?: string;\n};\n\n/**\n * Returns a signer for a custodial wallet via TurnKey\n */\nexport async function getCustodialOwner(\n identifier: string,\n {\n custodialFilePath,\n privateKey,\n publicKey,\n keyId,\n apiUrl = API_URL,\n turnKeyClient,\n }: GetCustodialOwnerParams\n): Promise<SmartAccountSigner | undefined> {\n // Extract data from the custodial file path if provided\n if (custodialFilePath) {\n let fsModule;\n try {\n fsModule = require.resolve(\"fs\") && require(\"fs\");\n } catch (error) {\n console.log(\"FS module not available. Skipping FS operation...\");\n return;\n }\n const data = fsModule.readFileSync(custodialFilePath, \"utf8\");\n const values = data.split(\"\\n\");\n // Override the values, if they are provided, to the one from the custodial file\n [privateKey, publicKey, keyId] = values;\n }\n\n // Ensure we have the required values\n if (!privateKey || !publicKey || !keyId) {\n throw new Error(\n \"Must provide custodialFilePath or privateKey, publicKey, and keyId.\"\n );\n }\n\n // Get our turnkey client (build it if needed)\n if (!turnKeyClient) {\n // Try to fetch turnkey client & api key stamper\n let TurnkeyClient;\n let ApiKeyStamper;\n // TODO: Would be cleaner with something like radash and a tryit function?\n try {\n TurnkeyClient =\n require.resolve(\"@turnkey/http\") &&\n require(\"@turnkey/http\").TurnkeyClient;\n ApiKeyStamper =\n require.resolve(\"@turnkey/api-key-stamper\") &&\n require(\"@turnkey/api-key-stamper\").ApiKeyStamper;\n } catch (error) {\n console.log(\n \"@turnkey/http or @turnkey/api-key-stamper module not available. Skipping FS operation...\"\n );\n return;\n }\n\n // Build the turnkey client\n turnKeyClient = new TurnkeyClient(\n {\n baseUrl: \"https://api.turnkey.com\",\n },\n new ApiKeyStamper({\n apiPublicKey: publicKey,\n apiPrivateKey: privateKey,\n })\n );\n }\n\n // Get the wallet identifier from the API\n const response = await axios.post<any, { data: { walletId: string } }>(\n `${apiUrl}/wallets/${identifier}`,\n {\n keyId,\n }\n );\n\n // Build the turnkey viem account\n let createAccount;\n try {\n createAccount =\n require.resolve(\"@turnkey/viem\") &&\n require(\"@turnkey/viem\").createAccount;\n } catch (error) {\n console.log(\"@turnkey/viem module not available. Skipping FS operation...\");\n return;\n }\n const turnkeySigner = await createAccount({\n client: turnKeyClient,\n organizationId: keyId,\n privateKeyId: response.data.walletId,\n });\n\n // Return an alchemy AA signer from the turnkey signer\n return {\n getAddress: async () => turnkeySigner.address,\n signMessage: async (msg: Uint8Array | string) => {\n if (typeof msg === \"string\") {\n // If the msg is a string, sign it directly\n return turnkeySigner.signMessage({ message: msg });\n } else {\n // Otherwise, sign the raw data\n return turnkeySigner.signMessage({ message: { raw: msg } });\n }\n },\n signTypedData: async (params: SignTypedDataParams) =>\n turnkeySigner.signTypedData(params),\n };\n}\n"]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
|
-
import { TurnkeyClient } from "@turnkey/http";
|
|
3
2
|
type GetCustodialOwnerParams = {
|
|
4
3
|
apiUrl?: string;
|
|
5
|
-
turnKeyClient?:
|
|
4
|
+
turnKeyClient?: unknown;
|
|
6
5
|
privateKey?: string;
|
|
7
6
|
publicKey?: string;
|
|
8
7
|
keyId?: string;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { API_URL } from "../constants.js";
|
|
2
2
|
import axios from "axios";
|
|
3
|
-
import { TurnkeyClient } from "@turnkey/http";
|
|
4
3
|
export async function getCustodialOwner(identifier, { custodialFilePath, privateKey, publicKey, keyId, apiUrl = API_URL, turnKeyClient, }) {
|
|
5
4
|
if (custodialFilePath) {
|
|
6
5
|
let fsModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCustodialOwner.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/owner/getCustodialOwner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"getCustodialOwner.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/owner/getCustodialOwner.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SignTypedDataParams, SmartAccountSigner } from \"@alchemy/aa-core\";\nimport { API_URL } from \"../constants.js\";\nimport axios from \"axios\";\n\n/**\n * Params to get a custodial owner\n * Priv / pub key combo or custodial file path should be in different types\n */\ntype GetCustodialOwnerParams = {\n // ZeroDev api url\n apiUrl?: string;\n // Turnkey client (if the client want to reuse it\n turnKeyClient?: unknown;\n\n // Direct access to priv / pub key\n privateKey?: string;\n publicKey?: string;\n keyId?: string;\n\n // Or read them from the custodial file path\n custodialFilePath?: string;\n};\n\n/**\n * Returns a signer for a custodial wallet via TurnKey\n */\nexport async function getCustodialOwner(\n identifier: string,\n {\n custodialFilePath,\n privateKey,\n publicKey,\n keyId,\n apiUrl = API_URL,\n turnKeyClient,\n }: GetCustodialOwnerParams\n): Promise<SmartAccountSigner | undefined> {\n // Extract data from the custodial file path if provided\n if (custodialFilePath) {\n let fsModule;\n try {\n fsModule = require.resolve(\"fs\") && require(\"fs\");\n } catch (error) {\n console.log(\"FS module not available. Skipping FS operation...\");\n return;\n }\n const data = fsModule.readFileSync(custodialFilePath, \"utf8\");\n const values = data.split(\"\\n\");\n // Override the values, if they are provided, to the one from the custodial file\n [privateKey, publicKey, keyId] = values;\n }\n\n // Ensure we have the required values\n if (!privateKey || !publicKey || !keyId) {\n throw new Error(\n \"Must provide custodialFilePath or privateKey, publicKey, and keyId.\"\n );\n }\n\n // Get our turnkey client (build it if needed)\n if (!turnKeyClient) {\n // Try to fetch turnkey client & api key stamper\n let TurnkeyClient;\n let ApiKeyStamper;\n // TODO: Would be cleaner with something like radash and a tryit function?\n try {\n TurnkeyClient =\n require.resolve(\"@turnkey/http\") &&\n require(\"@turnkey/http\").TurnkeyClient;\n ApiKeyStamper =\n require.resolve(\"@turnkey/api-key-stamper\") &&\n require(\"@turnkey/api-key-stamper\").ApiKeyStamper;\n } catch (error) {\n console.log(\n \"@turnkey/http or @turnkey/api-key-stamper module not available. Skipping FS operation...\"\n );\n return;\n }\n\n // Build the turnkey client\n turnKeyClient = new TurnkeyClient(\n {\n baseUrl: \"https://api.turnkey.com\",\n },\n new ApiKeyStamper({\n apiPublicKey: publicKey,\n apiPrivateKey: privateKey,\n })\n );\n }\n\n // Get the wallet identifier from the API\n const response = await axios.post<any, { data: { walletId: string } }>(\n `${apiUrl}/wallets/${identifier}`,\n {\n keyId,\n }\n );\n\n // Build the turnkey viem account\n let createAccount;\n try {\n createAccount =\n require.resolve(\"@turnkey/viem\") &&\n require(\"@turnkey/viem\").createAccount;\n } catch (error) {\n console.log(\"@turnkey/viem module not available. Skipping FS operation...\");\n return;\n }\n const turnkeySigner = await createAccount({\n client: turnKeyClient,\n organizationId: keyId,\n privateKeyId: response.data.walletId,\n });\n\n // Return an alchemy AA signer from the turnkey signer\n return {\n getAddress: async () => turnkeySigner.address,\n signMessage: async (msg: Uint8Array | string) => {\n if (typeof msg === \"string\") {\n // If the msg is a string, sign it directly\n return turnkeySigner.signMessage({ message: msg });\n } else {\n // Otherwise, sign the raw data\n return turnkeySigner.signMessage({ message: { raw: msg } });\n }\n },\n signTypedData: async (params: SignTypedDataParams) =>\n turnkeySigner.signTypedData(params),\n };\n}\n"]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
|
-
import { TurnkeyClient } from "@turnkey/http";
|
|
3
2
|
type GetCustodialOwnerParams = {
|
|
4
3
|
apiUrl?: string;
|
|
5
|
-
turnKeyClient?:
|
|
4
|
+
turnKeyClient?: unknown;
|
|
6
5
|
privateKey?: string;
|
|
7
6
|
publicKey?: string;
|
|
8
7
|
keyId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCustodialOwner.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/owner/getCustodialOwner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getCustodialOwner.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/owner/getCustodialOwner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAQhF,KAAK,uBAAuB,GAAG;IAE7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAKF,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,EACE,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,KAAK,EACL,MAAgB,EAChB,aAAa,GACd,EAAE,uBAAuB,GACzB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA8FzC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { SignTypedDataParams, SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
2
|
import { API_URL } from "../constants.js";
|
|
3
3
|
import axios from "axios";
|
|
4
|
-
import { TurnkeyClient } from "@turnkey/http";
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Params to get a custodial owner
|
|
@@ -11,7 +10,7 @@ type GetCustodialOwnerParams = {
|
|
|
11
10
|
// ZeroDev api url
|
|
12
11
|
apiUrl?: string;
|
|
13
12
|
// Turnkey client (if the client want to reuse it
|
|
14
|
-
turnKeyClient?:
|
|
13
|
+
turnKeyClient?: unknown;
|
|
15
14
|
|
|
16
15
|
// Direct access to priv / pub key
|
|
17
16
|
privateKey?: string;
|