@coinbase/cdp-sdk 1.8.0 → 1.10.0
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/CHANGELOG.md +16 -0
- package/README.md +190 -105
- package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_cjs/accounts/solana/toSolanaAccount.js +7 -0
- package/_cjs/accounts/solana/toSolanaAccount.js.map +1 -1
- package/_cjs/actions/evm/transfer/accountTransferStrategy.js +30 -63
- package/_cjs/actions/evm/transfer/accountTransferStrategy.js.map +1 -1
- package/_cjs/actions/evm/transfer/smartAccountTransferStrategy.js +39 -56
- package/_cjs/actions/evm/transfer/smartAccountTransferStrategy.js.map +1 -1
- package/_cjs/actions/evm/transfer/transfer.js +2 -39
- package/_cjs/actions/evm/transfer/transfer.js.map +1 -1
- package/_cjs/actions/evm/transfer/utils.js +0 -12
- package/_cjs/actions/evm/transfer/utils.js.map +1 -1
- package/_cjs/actions/solana/constants.js +9 -0
- package/_cjs/actions/solana/constants.js.map +1 -0
- package/_cjs/actions/solana/transfer.js +117 -0
- package/_cjs/actions/solana/transfer.js.map +1 -0
- package/_cjs/actions/solana/utils.js +66 -0
- package/_cjs/actions/solana/utils.js.map +1 -0
- package/_cjs/analytics.js +2 -0
- package/_cjs/analytics.js.map +1 -1
- package/_cjs/client/evm/constants.js +21 -0
- package/_cjs/client/evm/constants.js.map +1 -0
- package/_cjs/client/evm/evm.js +75 -0
- package/_cjs/client/evm/evm.js.map +1 -1
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +35 -4
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js +14 -1
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -1
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js +26 -1
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -1
- package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js +121 -36
- package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -1
- package/_cjs/policies/schema.js +60 -1
- package/_cjs/policies/schema.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_cjs/version.js.map +1 -1
- package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_esm/accounts/solana/toSolanaAccount.js +7 -0
- package/_esm/accounts/solana/toSolanaAccount.js.map +1 -1
- package/_esm/actions/evm/transfer/accountTransferStrategy.js +31 -64
- package/_esm/actions/evm/transfer/accountTransferStrategy.js.map +1 -1
- package/_esm/actions/evm/transfer/smartAccountTransferStrategy.js +39 -56
- package/_esm/actions/evm/transfer/smartAccountTransferStrategy.js.map +1 -1
- package/_esm/actions/evm/transfer/transfer.js +2 -39
- package/_esm/actions/evm/transfer/transfer.js.map +1 -1
- package/_esm/actions/evm/transfer/utils.js +0 -11
- package/_esm/actions/evm/transfer/utils.js.map +1 -1
- package/_esm/actions/solana/constants.js +6 -0
- package/_esm/actions/solana/constants.js.map +1 -0
- package/_esm/actions/solana/transfer.js +114 -0
- package/_esm/actions/solana/transfer.js.map +1 -0
- package/_esm/actions/solana/utils.js +61 -0
- package/_esm/actions/solana/utils.js.map +1 -0
- package/_esm/analytics.js +2 -0
- package/_esm/analytics.js.map +1 -1
- package/_esm/client/evm/constants.js +18 -0
- package/_esm/client/evm/constants.js.map +1 -0
- package/_esm/client/evm/evm.js +75 -0
- package/_esm/client/evm/evm.js.map +1 -1
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +34 -3
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js +12 -0
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -1
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js +23 -0
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -1
- package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js +116 -35
- package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -1
- package/_esm/policies/schema.js +59 -0
- package/_esm/policies/schema.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_esm/version.js.map +1 -1
- package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
- package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
- package/_types/accounts/solana/toSolanaAccount.d.ts.map +1 -1
- package/_types/actions/evm/transfer/accountTransferStrategy.d.ts +2 -2
- package/_types/actions/evm/transfer/accountTransferStrategy.d.ts.map +1 -1
- package/_types/actions/evm/transfer/smartAccountTransferStrategy.d.ts +2 -2
- package/_types/actions/evm/transfer/smartAccountTransferStrategy.d.ts.map +1 -1
- package/_types/actions/evm/transfer/transfer.d.ts +6 -4
- package/_types/actions/evm/transfer/transfer.d.ts.map +1 -1
- package/_types/actions/evm/transfer/types.d.ts +7 -52
- package/_types/actions/evm/transfer/types.d.ts.map +1 -1
- package/_types/actions/evm/transfer/utils.d.ts +0 -619
- package/_types/actions/evm/transfer/utils.d.ts.map +1 -1
- package/_types/actions/evm/types.d.ts +140 -68
- package/_types/actions/evm/types.d.ts.map +1 -1
- package/_types/actions/solana/constants.d.ts +6 -0
- package/_types/actions/solana/constants.d.ts.map +1 -0
- package/_types/actions/solana/transfer.d.ts +36 -0
- package/_types/actions/solana/transfer.d.ts.map +1 -0
- package/_types/actions/solana/types.d.ts +27 -0
- package/_types/actions/solana/types.d.ts.map +1 -1
- package/_types/actions/solana/utils.d.ts +34 -0
- package/_types/actions/solana/utils.d.ts.map +1 -0
- package/_types/analytics.d.ts.map +1 -1
- package/_types/client/evm/constants.d.ts +5 -0
- package/_types/client/evm/constants.d.ts.map +1 -0
- package/_types/client/evm/evm.d.ts +44 -1
- package/_types/client/evm/evm.d.ts.map +1 -1
- package/_types/client/evm/evm.types.d.ts +13 -1
- package/_types/client/evm/evm.types.d.ts.map +1 -1
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +106 -17
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts +7 -1
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts.map +1 -1
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts +2 -0
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts.map +1 -1
- package/_types/openapi-client/generated/policy-engine/policy-engine.msw.d.ts +5 -1
- package/_types/openapi-client/generated/policy-engine/policy-engine.msw.d.ts.map +1 -1
- package/_types/openapi-client/index.d.ts +2 -0
- package/_types/openapi-client/index.d.ts.map +1 -1
- package/_types/policies/schema.d.ts +630 -0
- package/_types/policies/schema.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/_types/version.d.ts.map +1 -1
- package/accounts/evm/toEvmServerAccount.ts +7 -6
- package/accounts/evm/toEvmSmartAccount.ts +1 -2
- package/accounts/solana/toSolanaAccount.ts +7 -0
- package/actions/evm/transfer/accountTransferStrategy.ts +38 -78
- package/actions/evm/transfer/smartAccountTransferStrategy.ts +43 -63
- package/actions/evm/transfer/transfer.ts +10 -51
- package/actions/evm/transfer/types.ts +8 -66
- package/actions/evm/transfer/utils.ts +0 -13
- package/actions/evm/types.ts +143 -78
- package/actions/solana/constants.ts +6 -0
- package/actions/solana/transfer.ts +219 -0
- package/actions/solana/types.ts +28 -0
- package/actions/solana/utils.ts +79 -0
- package/analytics.ts +2 -0
- package/client/evm/constants.ts +17 -0
- package/client/evm/evm.ts +90 -0
- package/client/evm/evm.types.ts +14 -0
- package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +146 -18
- package/openapi-client/generated/evm-accounts/evm-accounts.msw.ts +41 -0
- package/openapi-client/generated/evm-accounts/evm-accounts.ts +20 -0
- package/openapi-client/generated/policy-engine/policy-engine.msw.ts +199 -56
- package/package.json +2 -1
- package/policies/schema.ts +83 -0
- package/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/accountTransferStrategy.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"accountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/accountTransferStrategy.ts"],"names":[],"mappings":";;;AAAA,+BAAoD;AAEpD,yCAA6C;AAC7C,oFAAqF;AAMxE,QAAA,uBAAuB,GAA0C;IAC5E,eAAe,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACxE,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChD,WAAW,EAAE,IAAA,qDAA2B,EAAC;oBACvC,KAAK;oBACL,EAAE;iBACH,CAAC;gBACF,OAAO;aACR,CAA+B,CAAC;QACnC,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAErD,MAAM,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;YAC/C,WAAW,EAAE,IAAA,qDAA2B,EAAC;gBACvC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,IAAA,yBAAkB,EAAC;oBACvB,GAAG,EAAE,eAAQ;oBACb,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;iBAClB,CAAC;aACH,CAAC;YACF,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;YAChD,WAAW,EAAE,IAAA,qDAA2B,EAAC;gBACvC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,IAAA,yBAAkB,EAAC;oBACvB,GAAG,EAAE,eAAQ;oBACb,YAAY,EAAE,UAAU;oBACxB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;iBAClB,CAAC;aACH,CAAC;YACF,OAAO;SACR,CAA+B,CAAC;IACnC,CAAC;CACF,CAAC"}
|
|
@@ -4,66 +4,49 @@ exports.smartAccountTransferStrategy = void 0;
|
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const utils_js_1 = require("./utils.js");
|
|
6
6
|
const sendUserOperation_js_1 = require("../sendUserOperation.js");
|
|
7
|
-
const waitForUserOperation_js_1 = require("../waitForUserOperation.js");
|
|
8
7
|
exports.smartAccountTransferStrategy = {
|
|
9
8
|
executeTransfer: async ({ apiClient, from, to, value, token, network, paymasterUrl }) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return result.userOpHash;
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
const erc20Address = (0, utils_js_1.getErc20Address)(token, network);
|
|
28
|
-
const result = await (0, sendUserOperation_js_1.sendUserOperation)(apiClient, {
|
|
29
|
-
smartAccount: from,
|
|
30
|
-
paymasterUrl,
|
|
31
|
-
network,
|
|
32
|
-
calls: [
|
|
33
|
-
{
|
|
34
|
-
to: erc20Address,
|
|
35
|
-
data: (0, viem_1.encodeFunctionData)({
|
|
36
|
-
abi: viem_1.erc20Abi,
|
|
37
|
-
functionName: "approve",
|
|
38
|
-
args: [to, value],
|
|
39
|
-
}),
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
to: erc20Address,
|
|
43
|
-
data: (0, viem_1.encodeFunctionData)({
|
|
44
|
-
abi: viem_1.erc20Abi,
|
|
45
|
-
functionName: "transfer",
|
|
46
|
-
args: [to, value],
|
|
47
|
-
}),
|
|
48
|
-
},
|
|
49
|
-
],
|
|
50
|
-
});
|
|
51
|
-
return result.userOpHash;
|
|
52
|
-
}
|
|
53
|
-
})();
|
|
54
|
-
return userOpHash;
|
|
55
|
-
},
|
|
56
|
-
waitForResult: async ({ apiClient, publicClient, from, hash, waitOptions }) => {
|
|
57
|
-
const result = await (0, waitForUserOperation_js_1.waitForUserOperation)(apiClient, {
|
|
58
|
-
smartAccountAddress: from.address,
|
|
59
|
-
userOpHash: hash,
|
|
60
|
-
waitOptions,
|
|
61
|
-
});
|
|
62
|
-
if (result.status === "complete") {
|
|
63
|
-
return { status: "success", transactionHash: hash };
|
|
9
|
+
if (token === "eth") {
|
|
10
|
+
const result = await (0, sendUserOperation_js_1.sendUserOperation)(apiClient, {
|
|
11
|
+
smartAccount: from,
|
|
12
|
+
paymasterUrl,
|
|
13
|
+
network,
|
|
14
|
+
calls: [
|
|
15
|
+
{
|
|
16
|
+
to,
|
|
17
|
+
value,
|
|
18
|
+
data: "0x",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
});
|
|
22
|
+
return result;
|
|
64
23
|
}
|
|
65
24
|
else {
|
|
66
|
-
|
|
25
|
+
const erc20Address = (0, utils_js_1.getErc20Address)(token, network);
|
|
26
|
+
const result = await (0, sendUserOperation_js_1.sendUserOperation)(apiClient, {
|
|
27
|
+
smartAccount: from,
|
|
28
|
+
paymasterUrl,
|
|
29
|
+
network,
|
|
30
|
+
calls: [
|
|
31
|
+
{
|
|
32
|
+
to: erc20Address,
|
|
33
|
+
data: (0, viem_1.encodeFunctionData)({
|
|
34
|
+
abi: viem_1.erc20Abi,
|
|
35
|
+
functionName: "approve",
|
|
36
|
+
args: [to, value],
|
|
37
|
+
}),
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
to: erc20Address,
|
|
41
|
+
data: (0, viem_1.encodeFunctionData)({
|
|
42
|
+
abi: viem_1.erc20Abi,
|
|
43
|
+
functionName: "transfer",
|
|
44
|
+
args: [to, value],
|
|
45
|
+
}),
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
});
|
|
49
|
+
return result;
|
|
67
50
|
}
|
|
68
51
|
},
|
|
69
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartAccountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/smartAccountTransferStrategy.ts"],"names":[],"mappings":";;;AAAA,+BAAoD;
|
|
1
|
+
{"version":3,"file":"smartAccountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/smartAccountTransferStrategy.ts"],"names":[],"mappings":";;;AAAA,+BAAoD;AAEpD,yCAA6C;AAC7C,kEAA4D;AAK/C,QAAA,4BAA4B,GAA+C;IACtF,eAAe,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE;QACtF,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAiB,EAAC,SAAS,EAAE;gBAChD,YAAY,EAAE,IAAI;gBAClB,YAAY;gBACZ,OAAO;gBACP,KAAK,EAAE;oBACL;wBACE,EAAE;wBACF,KAAK;wBACL,IAAI,EAAE,IAAI;qBACX;iBACF;aACF,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,IAAA,0BAAe,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,MAAM,IAAA,wCAAiB,EAAC,SAAS,EAAE;gBAChD,YAAY,EAAE,IAAI;gBAClB,YAAY;gBACZ,OAAO;gBACP,KAAK,EAAE;oBACL;wBACE,EAAE,EAAE,YAAY;wBAChB,IAAI,EAAE,IAAA,yBAAkB,EAAC;4BACvB,GAAG,EAAE,eAAQ;4BACb,YAAY,EAAE,SAAS;4BACvB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;yBAClB,CAAC;qBACH;oBACD;wBACE,EAAE,EAAE,YAAY;wBAChB,IAAI,EAAE,IAAA,yBAAkB,EAAC;4BACvB,GAAG,EAAE,eAAQ;4BACb,YAAY,EAAE,UAAU;4BACxB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;yBAClB,CAAC;qBACH;iBACF;aACF,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transfer = transfer;
|
|
4
|
-
const viem_1 = require("viem");
|
|
5
|
-
const utils_js_1 = require("./utils.js");
|
|
6
4
|
/**
|
|
7
5
|
* Transfer an amount of a token from an account to another account.
|
|
8
6
|
*
|
|
@@ -13,51 +11,16 @@ const utils_js_1 = require("./utils.js");
|
|
|
13
11
|
* @returns The result of the transfer.
|
|
14
12
|
*/
|
|
15
13
|
async function transfer(apiClient, from, transferArgs, transferStrategy) {
|
|
16
|
-
const publicClient = (0, viem_1.createPublicClient)({
|
|
17
|
-
chain: (0, utils_js_1.mapNetworkToChain)(transferArgs.network),
|
|
18
|
-
transport: (0, viem_1.http)(),
|
|
19
|
-
});
|
|
20
14
|
const to = typeof transferArgs.to === "string" ? transferArgs.to : transferArgs.to.address;
|
|
21
|
-
const value = await (async () => {
|
|
22
|
-
// user supplied a bigint. otherwise, we need to convert the amount to a bigint
|
|
23
|
-
if (typeof transferArgs.amount !== "string") {
|
|
24
|
-
return transferArgs.amount;
|
|
25
|
-
}
|
|
26
|
-
const decimals = await (async () => {
|
|
27
|
-
if (transferArgs.token === "eth") {
|
|
28
|
-
return 18;
|
|
29
|
-
}
|
|
30
|
-
else if (transferArgs.token === "usdc") {
|
|
31
|
-
return 6;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
return publicClient.readContract({
|
|
35
|
-
address: transferArgs.token,
|
|
36
|
-
abi: viem_1.erc20Abi,
|
|
37
|
-
functionName: "decimals",
|
|
38
|
-
args: [],
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
})();
|
|
42
|
-
return (0, viem_1.parseUnits)(transferArgs.amount, decimals);
|
|
43
|
-
})();
|
|
44
15
|
const transfer = {
|
|
45
16
|
apiClient,
|
|
46
17
|
from,
|
|
47
18
|
to,
|
|
48
|
-
value,
|
|
19
|
+
value: transferArgs.amount,
|
|
49
20
|
token: transferArgs.token,
|
|
50
21
|
network: transferArgs.network,
|
|
51
22
|
paymasterUrl: "paymasterUrl" in transferArgs ? transferArgs.paymasterUrl : undefined,
|
|
52
23
|
};
|
|
53
|
-
|
|
54
|
-
const result = await transferStrategy.waitForResult({
|
|
55
|
-
apiClient,
|
|
56
|
-
publicClient,
|
|
57
|
-
from,
|
|
58
|
-
hash,
|
|
59
|
-
waitOptions: transferArgs.waitOptions,
|
|
60
|
-
});
|
|
61
|
-
return result;
|
|
24
|
+
return transferStrategy.executeTransfer(transfer);
|
|
62
25
|
}
|
|
63
26
|
//# sourceMappingURL=transfer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/transfer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/transfer.ts"],"names":[],"mappings":";;AAoBA,4BAoBC;AA7BD;;;;;;;;GAQG;AACI,KAAK,UAAU,QAAQ,CAC5B,SAA+B,EAC/B,IAAO,EACP,YAAuF,EACvF,gBAA8C;IAE9C,MAAM,EAAE,GACN,OAAO,YAAY,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,YAAY,CAAC,EAAE,CAAC,OAAmB,CAAC;IAE/F,MAAM,QAAQ,GAAG;QACf,SAAS;QACT,IAAI;QACJ,EAAE;QACF,KAAK,EAAE,YAAY,CAAC,MAAM;QAC1B,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,YAAY,EAAE,cAAc,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KACrF,CAAC;IAEF,OAAO,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getErc20Address = getErc20Address;
|
|
4
|
-
exports.mapNetworkToChain = mapNetworkToChain;
|
|
5
|
-
const chains_1 = require("viem/chains");
|
|
6
4
|
/**
|
|
7
5
|
* The address of an ERC20 token for a given network.
|
|
8
6
|
*/
|
|
@@ -26,14 +24,4 @@ const addressMap = {
|
|
|
26
24
|
function getErc20Address(token, network) {
|
|
27
25
|
return addressMap[network][token] ?? token;
|
|
28
26
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Map a network to a viem chain.
|
|
31
|
-
* TODO: Add more networks (or dynamically map viem chains).
|
|
32
|
-
*
|
|
33
|
-
* @param network - The network to map to a chain.
|
|
34
|
-
* @returns The chain for the given network.
|
|
35
|
-
*/
|
|
36
|
-
function mapNetworkToChain(network) {
|
|
37
|
-
return network === "base" ? chains_1.base : chains_1.baseSepolia;
|
|
38
|
-
}
|
|
39
27
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/utils.ts"],"names":[],"mappings":";;AAuBA,0CAEC;AAvBD;;GAEG;AACH,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,4CAA4C;KACnD;IACD,cAAc,EAAE;QACd,IAAI,EAAE,4CAA4C;KACnD;CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,KAAa,EAAE,OAAgB;IAC7D,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.USDC_DEVNET_MINT_ADDRESS = exports.USDC_MAINNET_MINT_ADDRESS = exports.GENESIS_HASH_TESTNET = exports.GENESIS_HASH_DEVNET = exports.GENESIS_HASH_MAINNET = void 0;
|
|
4
|
+
exports.GENESIS_HASH_MAINNET = "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d";
|
|
5
|
+
exports.GENESIS_HASH_DEVNET = "EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG";
|
|
6
|
+
exports.GENESIS_HASH_TESTNET = "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY";
|
|
7
|
+
exports.USDC_MAINNET_MINT_ADDRESS = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
|
|
8
|
+
exports.USDC_DEVNET_MINT_ADDRESS = "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU";
|
|
9
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../actions/solana/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,8CAA8C,CAAC;AACtE,QAAA,mBAAmB,GAAG,8CAA8C,CAAC;AACrE,QAAA,oBAAoB,GAAG,8CAA8C,CAAC;AAEtE,QAAA,yBAAyB,GAAG,8CAA8C,CAAC;AAC3E,QAAA,wBAAwB,GAAG,8CAA8C,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transfer = transfer;
|
|
4
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
5
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
+
const utils_js_1 = require("./utils.js");
|
|
7
|
+
/**
|
|
8
|
+
* Transfers SOL or SPL tokens between accounts
|
|
9
|
+
*
|
|
10
|
+
* @param apiClient - The API client to use
|
|
11
|
+
* @param options - The transfer options
|
|
12
|
+
*
|
|
13
|
+
* @returns The transfer result
|
|
14
|
+
*/
|
|
15
|
+
async function transfer(apiClient, options) {
|
|
16
|
+
const connection = (0, utils_js_1.getOrCreateConnection)({ networkOrConnection: options.network });
|
|
17
|
+
const tx = options.token === "sol"
|
|
18
|
+
? await getNativeTransfer({
|
|
19
|
+
connection,
|
|
20
|
+
from: options.from,
|
|
21
|
+
to: options.to,
|
|
22
|
+
amount: options.amount,
|
|
23
|
+
})
|
|
24
|
+
: await getSplTransfer({
|
|
25
|
+
connection,
|
|
26
|
+
from: options.from,
|
|
27
|
+
to: options.to,
|
|
28
|
+
mintAddress: options.token === "usdc"
|
|
29
|
+
? (0, utils_js_1.getUsdcMintAddress)(await (0, utils_js_1.getConnectedNetwork)(connection))
|
|
30
|
+
: options.token,
|
|
31
|
+
amount: options.amount,
|
|
32
|
+
});
|
|
33
|
+
const serializedTx = Buffer.from(tx.serialize()).toString("base64");
|
|
34
|
+
const signedTxResponse = await apiClient.signSolanaTransaction(options.from, {
|
|
35
|
+
transaction: serializedTx,
|
|
36
|
+
});
|
|
37
|
+
const decodedSignedTx = Buffer.from(signedTxResponse.signedTransaction, "base64");
|
|
38
|
+
const signature = await connection.sendRawTransaction(decodedSignedTx, {
|
|
39
|
+
skipPreflight: false,
|
|
40
|
+
maxRetries: 3,
|
|
41
|
+
});
|
|
42
|
+
return { signature };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Gets the instructions for a native SOL transfer
|
|
46
|
+
*
|
|
47
|
+
* @param options - The options for the native SOL transfer
|
|
48
|
+
*
|
|
49
|
+
* @param options.connection - The Solana connection
|
|
50
|
+
* @param options.from - The source address
|
|
51
|
+
* @param options.to - The destination address
|
|
52
|
+
* @param options.amount - The amount to transfer
|
|
53
|
+
*
|
|
54
|
+
* @returns The native SOL transfer transaction
|
|
55
|
+
*/
|
|
56
|
+
async function getNativeTransfer({ connection, from, to, amount, }) {
|
|
57
|
+
const { blockhash } = await connection.getLatestBlockhash();
|
|
58
|
+
const instructions = [
|
|
59
|
+
web3_js_1.SystemProgram.transfer({
|
|
60
|
+
fromPubkey: new web3_js_1.PublicKey(from),
|
|
61
|
+
toPubkey: new web3_js_1.PublicKey(to),
|
|
62
|
+
lamports: amount,
|
|
63
|
+
}),
|
|
64
|
+
];
|
|
65
|
+
const messageV0 = new web3_js_1.TransactionMessage({
|
|
66
|
+
payerKey: new web3_js_1.PublicKey(from),
|
|
67
|
+
recentBlockhash: blockhash,
|
|
68
|
+
instructions,
|
|
69
|
+
}).compileToV0Message();
|
|
70
|
+
return new web3_js_1.VersionedTransaction(messageV0);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Gets the instructions for a SPL token transfer
|
|
74
|
+
*
|
|
75
|
+
* @param options - The options for the SPL token transfer
|
|
76
|
+
*
|
|
77
|
+
* @param options.connection - The Solana connection
|
|
78
|
+
* @param options.from - The source address
|
|
79
|
+
* @param options.to - The destination address
|
|
80
|
+
* @param options.mintAddress - The mint address of the token
|
|
81
|
+
* @param options.amount - The amount to transfer
|
|
82
|
+
*
|
|
83
|
+
* @returns The SPL token transfer transaction
|
|
84
|
+
*/
|
|
85
|
+
async function getSplTransfer({ connection, from, to, mintAddress, amount, }) {
|
|
86
|
+
const fromPubkey = new web3_js_1.PublicKey(from);
|
|
87
|
+
const toPubkey = new web3_js_1.PublicKey(to);
|
|
88
|
+
const mintPubkey = new web3_js_1.PublicKey(mintAddress);
|
|
89
|
+
let mintInfo;
|
|
90
|
+
try {
|
|
91
|
+
mintInfo = await (0, spl_token_1.getMint)(connection, mintPubkey);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
throw new Error(`Failed to fetch mint info for mint address ${mintAddress}. Error: ${error}`);
|
|
95
|
+
}
|
|
96
|
+
const sourceAta = await (0, spl_token_1.getAssociatedTokenAddress)(mintPubkey, fromPubkey);
|
|
97
|
+
const destinationAta = await (0, spl_token_1.getAssociatedTokenAddress)(mintPubkey, toPubkey);
|
|
98
|
+
const instructions = [];
|
|
99
|
+
const sourceAccount = await (0, spl_token_1.getAccount)(connection, sourceAta);
|
|
100
|
+
if (sourceAccount.amount < amount) {
|
|
101
|
+
throw new Error(`Insufficient token balance. Have ${sourceAccount.amount}, need ${amount}`);
|
|
102
|
+
}
|
|
103
|
+
// Check if destination account exists, if not create it
|
|
104
|
+
try {
|
|
105
|
+
await (0, spl_token_1.getAccount)(connection, destinationAta);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
instructions.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(fromPubkey, destinationAta, toPubkey, mintPubkey));
|
|
109
|
+
}
|
|
110
|
+
instructions.push((0, spl_token_1.createTransferCheckedInstruction)(sourceAta, mintPubkey, destinationAta, fromPubkey, amount, mintInfo.decimals));
|
|
111
|
+
return new web3_js_1.VersionedTransaction(web3_js_1.MessageV0.compile({
|
|
112
|
+
payerKey: fromPubkey,
|
|
113
|
+
instructions: instructions,
|
|
114
|
+
recentBlockhash: (await connection.getLatestBlockhash()).blockhash,
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../actions/solana/transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrCreateConnection = getOrCreateConnection;
|
|
4
|
+
exports.getConnectedNetwork = getConnectedNetwork;
|
|
5
|
+
exports.getUsdcMintAddress = getUsdcMintAddress;
|
|
6
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
7
|
+
const constants_js_1 = require("./constants.js");
|
|
8
|
+
/**
|
|
9
|
+
* Get a connection to the Solana network
|
|
10
|
+
*
|
|
11
|
+
* @param options - The options for the connection
|
|
12
|
+
*
|
|
13
|
+
* @param options.networkOrConnection - The network to use or a connection
|
|
14
|
+
*
|
|
15
|
+
* @returns The connection
|
|
16
|
+
*/
|
|
17
|
+
function getOrCreateConnection({ networkOrConnection, }) {
|
|
18
|
+
if (typeof networkOrConnection !== "string") {
|
|
19
|
+
return networkOrConnection;
|
|
20
|
+
}
|
|
21
|
+
return new web3_js_1.Connection(networkOrConnection === "mainnet"
|
|
22
|
+
? "https://api.mainnet-beta.solana.com"
|
|
23
|
+
: networkOrConnection === "devnet"
|
|
24
|
+
? "https://api.devnet.solana.com"
|
|
25
|
+
: "https://api.testnet.solana.com");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the network of the connected Solana node
|
|
29
|
+
*
|
|
30
|
+
* @param connection - The connection to the Solana network
|
|
31
|
+
* @throws {Error} If the network is not mainnet, devnet, or testnet
|
|
32
|
+
*
|
|
33
|
+
* @returns The network of the connected Solana node
|
|
34
|
+
*/
|
|
35
|
+
async function getConnectedNetwork(connection) {
|
|
36
|
+
const genesisHash = await connection.getGenesisHash();
|
|
37
|
+
if (genesisHash === constants_js_1.GENESIS_HASH_MAINNET) {
|
|
38
|
+
return "mainnet";
|
|
39
|
+
}
|
|
40
|
+
else if (genesisHash === constants_js_1.GENESIS_HASH_DEVNET) {
|
|
41
|
+
return "devnet";
|
|
42
|
+
}
|
|
43
|
+
else if (genesisHash === constants_js_1.GENESIS_HASH_TESTNET) {
|
|
44
|
+
return "testnet";
|
|
45
|
+
}
|
|
46
|
+
throw new Error("Unknown network");
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get the USDC mint address for the given connection
|
|
50
|
+
*
|
|
51
|
+
* @param network - The network to use
|
|
52
|
+
*
|
|
53
|
+
* @returns The USDC mint address
|
|
54
|
+
*/
|
|
55
|
+
function getUsdcMintAddress(network) {
|
|
56
|
+
if (network === "mainnet") {
|
|
57
|
+
return constants_js_1.USDC_MAINNET_MINT_ADDRESS;
|
|
58
|
+
}
|
|
59
|
+
else if (network === "devnet") {
|
|
60
|
+
return constants_js_1.USDC_DEVNET_MINT_ADDRESS;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
throw new Error("Testnet is not supported for USDC");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../actions/solana/utils.ts"],"names":[],"mappings":";;AAyBA,sDAcC;AAUD,kDAYC;AASD,gDAQC;AA9ED,6CAA6C;AAE7C,iDAMwB;AAQxB;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,EACpC,mBAAmB,GACU;IAC7B,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,oBAAU,CACnB,mBAAmB,KAAK,SAAS;QAC/B,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,mBAAmB,KAAK,QAAQ;YAChC,CAAC,CAAC,+BAA+B;YACjC,CAAC,CAAC,gCAAgC,CACvC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,mBAAmB,CAAC,UAAsB;IAC9D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC;IAEtD,IAAI,WAAW,KAAK,mCAAoB,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,IAAI,WAAW,KAAK,kCAAmB,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,IAAI,WAAW,KAAK,mCAAoB,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,wCAAyB,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,uCAAwB,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
|
package/_cjs/analytics.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Analytics = void 0;
|
|
7
7
|
const md5_1 = __importDefault(require("md5"));
|
|
8
8
|
const errors_js_1 = require("./openapi-client/errors.js");
|
|
9
|
+
const version_js_1 = require("./version.js");
|
|
9
10
|
// This is a public client id for the analytics service
|
|
10
11
|
const publicClientId = "54f2ee2fb3d2b901a829940d70fbfc13";
|
|
11
12
|
exports.Analytics = {
|
|
@@ -33,6 +34,7 @@ async function sendEvent(event) {
|
|
|
33
34
|
event_properties: {
|
|
34
35
|
project_name: "cdp-sdk",
|
|
35
36
|
cdp_sdk_language: "typescript",
|
|
37
|
+
version: version_js_1.version,
|
|
36
38
|
...event,
|
|
37
39
|
},
|
|
38
40
|
};
|
package/_cjs/analytics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../analytics.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAEtB,0DAAsD;
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImportEvmAccountPublicRSAKey = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The public RSA key used to encrypt the private key when importing an EVM account.
|
|
6
|
+
*/
|
|
7
|
+
exports.ImportEvmAccountPublicRSAKey = `-----BEGIN PUBLIC KEY-----
|
|
8
|
+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2Fxydgm/ryYk0IexQIuL
|
|
9
|
+
9DKyiIk2WmS36AZ83a9Z0QX53qdveg08b05g1Qr+o+COoYOT/FDi8anRGAs7rIyS
|
|
10
|
+
uigrjHR6VrmFjnGrrTr3MINwC9cYQFHwET8YVGRq+BB3iFTB1kIb9XJ/vT2sk1xP
|
|
11
|
+
hJ6JihEwSl4DgbeVjqw59wYqrNg355oa8EdFqkmfGU2tpbM56F8iv1F+shwkGo3y
|
|
12
|
+
GhW/UOQ5OLauXvsqo8ranwsK+lqFblLEMlNtn1VSJeO2vMxryeKFrY2ob8VqGchC
|
|
13
|
+
ftPJiLWs2Du6juw4C1rOWwSMlXzZ6cNMHkxdTcEHMr3C2TEHgzjZY41whMwNTB8q
|
|
14
|
+
/pxXnIbH77caaviRs4R/POe8cSsznalXj85LULvFWOIHp0w+jEYSii9Rp9XtHWAH
|
|
15
|
+
nrK/O/SVDtT1ohp2F+Zg1mojTgKfLOyGdOUXTi95naDTuG770rSjHdL80tJBz1Fd
|
|
16
|
+
+1pzGTGXGHLZQLX5YZm5iuy2cebWfF09VjIoCIlDB2++tr4M+O0Z1X1ZE0J5Ackq
|
|
17
|
+
rOluAFalaKynyH3KMyRg+NuLmibu5OmcMjCLK3D4X1YLiN2OK8/bbpEL8JYroDwb
|
|
18
|
+
EXIUW5mGS06YxfSUsxHzL9Tj00+GMm/Gvl0+4/+Vn8IXVHjQOSPNEy3EnqCiH/OW
|
|
19
|
+
8v0IMC32CeGrX7mGbU+MzlsCAwEAAQ==
|
|
20
|
+
-----END PUBLIC KEY-----`;
|
|
21
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../client/evm/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,4BAA4B,GAAG;;;;;;;;;;;;;yBAanB,CAAC"}
|
package/_cjs/client/evm/evm.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EvmClient = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const constants_js_1 = require("./constants.js");
|
|
4
6
|
const toEvmServerAccount_js_1 = require("../../accounts/evm/toEvmServerAccount.js");
|
|
5
7
|
const toEvmSmartAccount_js_1 = require("../../accounts/evm/toEvmSmartAccount.js");
|
|
6
8
|
const getUserOperation_js_1 = require("../../actions/evm/getUserOperation.js");
|
|
@@ -60,6 +62,79 @@ class EvmClient {
|
|
|
60
62
|
analytics_js_1.Analytics.wrapObjectMethodsWithErrorTracking(account);
|
|
61
63
|
return account;
|
|
62
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Imports a CDP EVM account from an external source.
|
|
67
|
+
*
|
|
68
|
+
* @param {ImportServerAccountOptions} options - Parameters for importing the account.
|
|
69
|
+
* @param {string} options.privateKey - The private key of the account to import.
|
|
70
|
+
* @param {string} [options.name] - A name for the account to import.
|
|
71
|
+
* @param {string} [options.idempotencyKey] - An idempotency key.
|
|
72
|
+
*
|
|
73
|
+
* @returns A promise that resolves to the imported account.
|
|
74
|
+
*
|
|
75
|
+
* @example **Without arguments**
|
|
76
|
+
* ```ts
|
|
77
|
+
* const account = await cdp.evm.importAccount({
|
|
78
|
+
* privateKey: "0x123456"
|
|
79
|
+
* });
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* @example **With a name**
|
|
83
|
+
* ```ts
|
|
84
|
+
* const account = await cdp.evm.importAccount({
|
|
85
|
+
* privateKey: "0x123456",
|
|
86
|
+
* name: "MyAccount"
|
|
87
|
+
* });
|
|
88
|
+
* ```
|
|
89
|
+
*
|
|
90
|
+
* @example **With an idempotency key**
|
|
91
|
+
* ```ts
|
|
92
|
+
* const idempotencyKey = uuidv4();
|
|
93
|
+
*
|
|
94
|
+
* // First call
|
|
95
|
+
* await cdp.evm.importAccount({
|
|
96
|
+
* privateKey: "0x123456",
|
|
97
|
+
* idempotencyKey,
|
|
98
|
+
* });
|
|
99
|
+
*
|
|
100
|
+
* // Second call with the same idempotency key will return the same account
|
|
101
|
+
* await cdp.evm.importAccount({
|
|
102
|
+
* privateKey: "0x123456"
|
|
103
|
+
* idempotencyKey,
|
|
104
|
+
* });
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
async importAccount(options) {
|
|
108
|
+
const privateKeyHex = options.privateKey.startsWith("0x")
|
|
109
|
+
? options.privateKey.slice(2)
|
|
110
|
+
: options.privateKey;
|
|
111
|
+
if (!/^[0-9a-fA-F]+$/.test(privateKeyHex)) {
|
|
112
|
+
throw new Error("Private key must be a valid hexadecimal string");
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const privateKeyBytes = Buffer.from(privateKeyHex, "hex");
|
|
116
|
+
const encryptedPrivateKey = (0, crypto_1.publicEncrypt)({
|
|
117
|
+
key: constants_js_1.ImportEvmAccountPublicRSAKey,
|
|
118
|
+
padding: crypto_1.constants.RSA_PKCS1_OAEP_PADDING,
|
|
119
|
+
oaepHash: "sha256",
|
|
120
|
+
}, privateKeyBytes);
|
|
121
|
+
const openApiAccount = await index_js_1.CdpOpenApiClient.importEvmAccount({
|
|
122
|
+
name: options.name,
|
|
123
|
+
encryptedPrivateKey: encryptedPrivateKey.toString("base64"),
|
|
124
|
+
}, options.idempotencyKey);
|
|
125
|
+
const account = (0, toEvmServerAccount_js_1.toEvmServerAccount)(index_js_1.CdpOpenApiClient, {
|
|
126
|
+
account: openApiAccount,
|
|
127
|
+
});
|
|
128
|
+
analytics_js_1.Analytics.wrapObjectMethodsWithErrorTracking(account);
|
|
129
|
+
return account;
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (error instanceof errors_js_1.APIError) {
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
throw new Error(`Failed to import account: ${String(error)}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
63
138
|
/**
|
|
64
139
|
* Creates a new CDP EVM smart account.
|
|
65
140
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../client/evm/evm.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../client/evm/evm.ts"],"names":[],"mappings":";;;AAAA,mCAAkD;AAIlD,iDAA8D;AA0B9D,oFAA8E;AAC9E,kFAA4E;AAC5E,+EAAyE;AACzE,iFAIgD;AAChD,yEAI4C;AAC5C,6EAAuE;AACvE,iFAIgD;AAChD,uFAGmD;AACnD,qDAA+C;AAC/C,8DAA0D;AAC1D,4DAAiE;AAQjE;;GAEG;AACH,MAAa,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,aAAa,CAAC,UAAsC,EAAE;QAC1D,MAAM,cAAc,GAAG,MAAM,2BAAgB,CAAC,gBAAgB,CAC5D;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,0CAAkB,EAAC,2BAAgB,EAAE;YACnD,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,wBAAS,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,KAAK,CAAC,aAAa,CAAC,OAAmC;QACrD,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;YACvD,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAEvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAE1D,MAAM,mBAAmB,GAAG,IAAA,sBAAa,EACvC;gBACE,GAAG,EAAE,2CAA4B;gBACjC,OAAO,EAAE,kBAAS,CAAC,sBAAsB;gBACzC,QAAQ,EAAE,QAAQ;aACnB,EACD,eAAe,CAChB,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,2BAAgB,CAAC,gBAAgB,CAC5D;gBACE,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,mBAAmB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC5D,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAA,0CAAkB,EAAC,2BAAgB,EAAE;gBACnD,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;YAEH,wBAAS,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;YAEtD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,oBAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAkC;QACzD,MAAM,mBAAmB,GAAG,MAAM,2BAAgB,CAAC,qBAAqB,CACtE;YACE,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;SAChC,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,MAAM,YAAY,GAAG,IAAA,wCAAiB,EAAC,2BAAgB,EAAE;YACvD,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,wBAAS,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;QAE3D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,UAAU,CAAC,OAAgC;QAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,EAAE;YACjC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,2BAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,2BAAgB,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,OAAO,GAAG,IAAA,0CAAkB,EAAC,2BAAgB,EAAE;YACnD,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,wBAAS,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,eAAe,CAAC,OAA+B;QACnD,MAAM,mBAAmB,GAAG,MAAM,2BAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvF,MAAM,YAAY,GAAG,IAAA,wCAAiB,EAAC,2BAAgB,EAAE;YACvD,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,wBAAS,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;QAE3D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAwC;QAC/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4DAA4D;YAC5D,MAAM,mBAAmB,GAAG,KAAK,YAAY,oBAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC;YAClF,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAClD,OAAO,OAAO,CAAC;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,kEAAkE;oBAClE,MAAM,uBAAuB,GAAG,KAAK,YAAY,oBAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC;oBACtF,IAAI,uBAAuB,EAAE,CAAC;wBAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC/C,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAgC;QACrD,OAAO,IAAA,sCAAgB,EAAC,2BAAgB,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,YAAY,CAAC,UAAqC,EAAE;QACxD,MAAM,WAAW,GAAG,MAAM,2BAAgB,CAAC,eAAe,CAAC;YACzD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC3C,MAAM,UAAU,GAAG,IAAA,0CAAkB,EAAC,2BAAgB,EAAE;oBACtD,OAAO;iBACR,CAAC,CAAC;gBAEH,wBAAS,CAAC,kCAAkC,CAAC,UAAU,CAAC,CAAC;gBAEzD,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;YACF,aAAa,EAAE,WAAW,CAAC,aAAa;SACzC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAiC;QACvD,OAAO,IAAA,wCAAiB,EAAC,2BAAgB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAoC,EAAE;QAC5D,MAAM,aAAa,GAAG,MAAM,2BAAgB,CAAC,oBAAoB,CAAC;YAChE,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,OAAO,CAAC,OAAkB;gBACnC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAY,CAAC;gBACtC,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;YACH,aAAa,EAAE,aAAa,CAAC,aAAa;SAC3C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAoC;QAC7D,MAAM,MAAM,GAAG,MAAM,2BAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE;YACvF,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChC,EAAE,EAAE,IAAI,CAAC,EAAa;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,IAAW;aACvB,CAAC,CAAC;YACH,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAiB;YACpC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,EAAE,EAAE,IAAI,CAAC,EAAa;gBACtB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAW;aACvB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,OAAO,IAAA,gCAAa,EAAC,2BAAgB,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,KAAK,CAAC,eAAe,CAAC,OAA+B;QACnD,OAAO,IAAA,oCAAe,EAAC,2BAAgB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,iBAAiB,CACrB,OAA4C;QAE5C,OAAO,IAAA,wCAAiB,EAAC,2BAAgB,EAAE;YACzC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,MAAM,SAAS,GAAG,MAAM,2BAAgB,CAAC,WAAW,CAClD,OAAO,CAAC,OAAO,EACf;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAgB;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,MAAM,SAAS,GAAG,MAAM,2BAAgB,CAAC,cAAc,CACrD,OAAO,CAAC,OAAO,EACf;YACE,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAgB;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,MAAM,SAAS,GAAG,MAAM,2BAAgB,CAAC,gBAAgB,CACvD,OAAO,CAAC,OAAO,EACf;YACE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAgB;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,eAAe,CAAC,OAA+B;QACnD,MAAM,SAAS,GAAG,MAAM,2BAAgB,CAAC,kBAAkB,CACzD,OAAO,CAAC,OAAO,EACf;YACE,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,iBAAwB;SAC9C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,KAAK,CAAC,aAAa,CAAC,OAAgC;QAClD,MAAM,cAAc,GAAG,MAAM,2BAAgB,CAAC,gBAAgB,CAC5D,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,0CAAkB,EAAC,2BAAgB,EAAE;YACnD,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,wBAAS,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAoC;QAEpC,OAAO,IAAA,8CAAoB,EAAC,2BAAgB,EAAE;YAC5C,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAl4BD,8BAk4BC"}
|