@coinbase/cdp-sdk 1.6.0 → 1.8.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 +23 -0
- package/README.md +284 -1
- package/_cjs/accounts/evm/toEvmServerAccount.js +4 -2
- package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_cjs/accounts/evm/toEvmSmartAccount.js +7 -0
- package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_cjs/accounts/evm/types.js.map +1 -0
- package/_cjs/accounts/solana/toSolanaAccount.js +42 -0
- package/_cjs/accounts/solana/toSolanaAccount.js.map +1 -0
- package/_cjs/accounts/solana/types.js +3 -0
- package/_cjs/accounts/solana/types.js.map +1 -0
- package/_cjs/actions/evm/getUserOperation.js +36 -0
- package/_cjs/actions/evm/getUserOperation.js.map +1 -0
- package/_cjs/actions/evm/transfer/accountTransferStrategy.js +11 -7
- package/_cjs/actions/evm/transfer/accountTransferStrategy.js.map +1 -1
- package/_cjs/actions/evm/transfer/smartAccountTransferStrategy.js +9 -6
- package/_cjs/actions/evm/transfer/smartAccountTransferStrategy.js.map +1 -1
- package/_cjs/actions/evm/transfer/transfer.js +7 -3
- package/_cjs/actions/evm/transfer/transfer.js.map +1 -1
- package/_cjs/actions/solana/requestFaucet.js +29 -0
- package/_cjs/actions/solana/requestFaucet.js.map +1 -0
- package/_cjs/actions/solana/signMessage.js +29 -0
- package/_cjs/actions/solana/signMessage.js.map +1 -0
- package/_cjs/actions/solana/signTransaction.js +46 -0
- package/_cjs/actions/solana/signTransaction.js.map +1 -0
- package/_cjs/actions/solana/types.js +3 -0
- package/_cjs/actions/solana/types.js.map +1 -0
- package/_cjs/analytics.js +68 -8
- package/_cjs/analytics.js.map +1 -1
- package/_cjs/client/cdp.js +9 -3
- package/_cjs/client/cdp.js.map +1 -1
- package/_cjs/client/evm/evm.js +135 -27
- package/_cjs/client/evm/evm.js.map +1 -1
- package/_cjs/client/policies/index.js +6 -0
- package/_cjs/client/policies/index.js.map +1 -0
- package/_cjs/client/policies/policies.js +232 -0
- package/_cjs/client/policies/policies.js.map +1 -0
- package/_cjs/client/policies/policies.types.js +3 -0
- package/_cjs/client/policies/policies.types.js.map +1 -0
- package/_cjs/client/solana/solana.js +84 -22
- package/_cjs/client/solana/solana.js.map +1 -1
- package/_cjs/index.js +4 -1
- package/_cjs/index.js.map +1 -1
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +59 -1
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js +27 -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 +56 -1
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -1
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +3 -1
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -1
- package/_cjs/openapi-client/generated/index.msw.js +3 -2
- package/_cjs/openapi-client/generated/index.msw.js.map +1 -1
- package/_cjs/openapi-client/generated/policy-engine/policy-engine.js +56 -0
- package/_cjs/openapi-client/generated/policy-engine/policy-engine.js.map +1 -0
- package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js +284 -0
- package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -0
- package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.js +14 -1
- package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -1
- package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.msw.js +42 -1
- package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.msw.js.map +1 -1
- package/_cjs/openapi-client/index.js +7 -1
- package/_cjs/openapi-client/index.js.map +1 -1
- package/_cjs/policies/schema.js +186 -0
- package/_cjs/policies/schema.js.map +1 -0
- package/_cjs/policies/types.js +3 -0
- package/_cjs/{accounts → policies}/types.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/accounts/evm/toEvmServerAccount.js +4 -2
- package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_esm/accounts/evm/toEvmSmartAccount.js +7 -0
- package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_esm/accounts/evm/types.js.map +1 -0
- package/_esm/accounts/solana/toSolanaAccount.js +39 -0
- package/_esm/accounts/solana/toSolanaAccount.js.map +1 -0
- package/_esm/accounts/solana/types.js +2 -0
- package/_esm/accounts/solana/types.js.map +1 -0
- package/_esm/actions/evm/getUserOperation.js +33 -0
- package/_esm/actions/evm/getUserOperation.js.map +1 -0
- package/_esm/actions/evm/transfer/accountTransferStrategy.js +11 -7
- package/_esm/actions/evm/transfer/accountTransferStrategy.js.map +1 -1
- package/_esm/actions/evm/transfer/smartAccountTransferStrategy.js +9 -6
- package/_esm/actions/evm/transfer/smartAccountTransferStrategy.js.map +1 -1
- package/_esm/actions/evm/transfer/transfer.js +7 -3
- package/_esm/actions/evm/transfer/transfer.js.map +1 -1
- package/_esm/actions/solana/requestFaucet.js +26 -0
- package/_esm/actions/solana/requestFaucet.js.map +1 -0
- package/_esm/actions/solana/signMessage.js +26 -0
- package/_esm/actions/solana/signMessage.js.map +1 -0
- package/_esm/actions/solana/signTransaction.js +43 -0
- package/_esm/actions/solana/signTransaction.js.map +1 -0
- package/_esm/actions/solana/types.js +2 -0
- package/_esm/actions/solana/types.js.map +1 -0
- package/_esm/analytics.js +68 -7
- package/_esm/analytics.js.map +1 -1
- package/_esm/client/cdp.js +10 -4
- package/_esm/client/cdp.js.map +1 -1
- package/_esm/client/evm/evm.js +135 -27
- package/_esm/client/evm/evm.js.map +1 -1
- package/_esm/client/policies/index.js +2 -0
- package/_esm/client/policies/index.js.map +1 -0
- package/_esm/client/policies/policies.js +228 -0
- package/_esm/client/policies/policies.js.map +1 -0
- package/_esm/client/policies/policies.types.js +2 -0
- package/_esm/client/policies/policies.types.js.map +1 -0
- package/_esm/client/solana/solana.js +84 -22
- package/_esm/client/solana/solana.js.map +1 -1
- package/_esm/index.js +1 -0
- package/_esm/index.js.map +1 -1
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +58 -0
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js +24 -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 +51 -0
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -1
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +3 -1
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -1
- package/_esm/openapi-client/generated/index.msw.js +3 -2
- package/_esm/openapi-client/generated/index.msw.js.map +1 -1
- package/_esm/openapi-client/generated/policy-engine/policy-engine.js +48 -0
- package/_esm/openapi-client/generated/policy-engine/policy-engine.js.map +1 -0
- package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js +259 -0
- package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -0
- package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js +12 -0
- package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -1
- package/_esm/openapi-client/generated/solana-accounts/solana-accounts.msw.js +39 -0
- package/_esm/openapi-client/generated/solana-accounts/solana-accounts.msw.js.map +1 -1
- package/_esm/openapi-client/index.js +6 -0
- package/_esm/openapi-client/index.js.map +1 -1
- package/_esm/policies/schema.js +183 -0
- package/_esm/policies/schema.js.map +1 -0
- package/_esm/policies/types.js +2 -0
- package/_esm/{accounts → policies}/types.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/accounts/evm/toEvmServerAccount.d.ts +1 -1
- package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
- package/_types/accounts/evm/toEvmSmartAccount.d.ts +1 -1
- package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
- package/_types/accounts/{types.d.ts → evm/types.d.ts} +10 -7
- package/_types/accounts/evm/types.d.ts.map +1 -0
- package/_types/accounts/solana/toSolanaAccount.d.ts +20 -0
- package/_types/accounts/solana/toSolanaAccount.d.ts.map +1 -0
- package/_types/accounts/solana/types.d.ts +12 -0
- package/_types/accounts/solana/types.d.ts.map +1 -0
- package/_types/actions/evm/getUserOperation.d.ts +22 -0
- package/_types/actions/evm/getUserOperation.d.ts.map +1 -0
- package/_types/actions/evm/sendUserOperation.d.ts +1 -1
- package/_types/actions/evm/sendUserOperation.d.ts.map +1 -1
- package/_types/actions/evm/transfer/accountTransferStrategy.d.ts +1 -1
- package/_types/actions/evm/transfer/accountTransferStrategy.d.ts.map +1 -1
- package/_types/actions/evm/transfer/smartAccountTransferStrategy.d.ts +1 -1
- package/_types/actions/evm/transfer/smartAccountTransferStrategy.d.ts.map +1 -1
- package/_types/actions/evm/transfer/transfer.d.ts +3 -3
- package/_types/actions/evm/transfer/transfer.d.ts.map +1 -1
- package/_types/actions/evm/transfer/types.d.ts +39 -6
- package/_types/actions/evm/transfer/types.d.ts.map +1 -1
- package/_types/actions/evm/types.d.ts +28 -5
- package/_types/actions/evm/types.d.ts.map +1 -1
- package/_types/actions/solana/requestFaucet.d.ts +23 -0
- package/_types/actions/solana/requestFaucet.d.ts.map +1 -0
- package/_types/actions/solana/signMessage.d.ts +23 -0
- package/_types/actions/solana/signMessage.d.ts.map +1 -0
- package/_types/actions/solana/signTransaction.d.ts +38 -0
- package/_types/actions/solana/signTransaction.d.ts.map +1 -0
- package/_types/actions/solana/types.d.ts +80 -0
- package/_types/actions/solana/types.d.ts.map +1 -0
- package/_types/analytics.d.ts +14 -5
- package/_types/analytics.d.ts.map +1 -1
- package/_types/client/cdp.d.ts +3 -0
- package/_types/client/cdp.d.ts.map +1 -1
- package/_types/client/evm/evm.d.ts +89 -1
- package/_types/client/evm/evm.d.ts.map +1 -1
- package/_types/client/evm/evm.types.d.ts +36 -6
- package/_types/client/evm/evm.types.d.ts.map +1 -1
- package/_types/client/policies/index.d.ts +2 -0
- package/_types/client/policies/index.d.ts.map +1 -0
- package/_types/client/policies/policies.d.ts +216 -0
- package/_types/client/policies/policies.d.ts.map +1 -0
- package/_types/client/policies/policies.types.d.ts +96 -0
- package/_types/client/policies/policies.types.d.ts.map +1 -0
- package/_types/client/solana/solana.d.ts +47 -4
- package/_types/client/solana/solana.d.ts.map +1 -1
- package/_types/client/solana/solana.types.d.ts +21 -12
- package/_types/client/solana/solana.types.d.ts.map +1 -1
- package/_types/index.d.ts +3 -1
- package/_types/index.d.ts.map +1 -1
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +299 -0
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts +13 -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 +5 -1
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts.map +1 -1
- package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts +3 -1
- package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts.map +1 -1
- package/_types/openapi-client/generated/index.msw.d.ts +3 -2
- package/_types/openapi-client/generated/index.msw.d.ts.map +1 -1
- package/_types/openapi-client/generated/policy-engine/policy-engine.d.ts +43 -0
- package/_types/openapi-client/generated/policy-engine/policy-engine.d.ts.map +1 -0
- package/_types/openapi-client/generated/policy-engine/policy-engine.msw.d.ts +25 -0
- package/_types/openapi-client/generated/policy-engine/policy-engine.msw.d.ts.map +1 -0
- package/_types/openapi-client/generated/solana-accounts/solana-accounts.d.ts +7 -1
- package/_types/openapi-client/generated/solana-accounts/solana-accounts.d.ts.map +1 -1
- package/_types/openapi-client/generated/solana-accounts/solana-accounts.msw.d.ts +2 -0
- package/_types/openapi-client/generated/solana-accounts/solana-accounts.msw.d.ts.map +1 -1
- package/_types/openapi-client/index.d.ts +19 -0
- package/_types/openapi-client/index.d.ts.map +1 -1
- package/_types/policies/schema.d.ts +922 -0
- package/_types/policies/schema.d.ts.map +1 -0
- package/_types/policies/types.d.ts +19 -0
- package/_types/policies/types.d.ts.map +1 -0
- package/_types/types/misc.d.ts +39 -0
- package/_types/types/misc.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/accounts/evm/toEvmServerAccount.ts +7 -4
- package/accounts/evm/toEvmSmartAccount.ts +11 -1
- package/accounts/{types.ts → evm/types.ts} +10 -12
- package/accounts/solana/toSolanaAccount.ts +60 -0
- package/accounts/solana/types.ts +13 -0
- package/actions/evm/getUserOperation.ts +40 -0
- package/actions/evm/sendUserOperation.ts +1 -1
- package/actions/evm/transfer/accountTransferStrategy.ts +12 -8
- package/actions/evm/transfer/smartAccountTransferStrategy.ts +10 -7
- package/actions/evm/transfer/transfer.ts +17 -6
- package/actions/evm/transfer/types.ts +54 -11
- package/actions/evm/types.ts +37 -5
- package/actions/solana/requestFaucet.ts +35 -0
- package/actions/solana/signMessage.ts +36 -0
- package/actions/solana/signTransaction.ts +53 -0
- package/actions/solana/types.ts +87 -0
- package/analytics.ts +84 -11
- package/client/cdp.ts +11 -4
- package/client/evm/evm.ts +162 -33
- package/client/evm/evm.types.ts +42 -4
- package/client/policies/index.ts +1 -0
- package/client/policies/policies.ts +246 -0
- package/client/policies/policies.types.ts +109 -0
- package/client/solana/solana.ts +107 -38
- package/client/solana/solana.types.ts +25 -15
- package/index.ts +8 -1
- package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +360 -0
- package/openapi-client/generated/evm-accounts/evm-accounts.msw.ts +102 -0
- package/openapi-client/generated/evm-accounts/evm-accounts.ts +43 -0
- package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.ts +3 -1
- package/openapi-client/generated/index.msw.ts +3 -2
- package/openapi-client/generated/policy-engine/policy-engine.msw.ts +404 -0
- package/openapi-client/generated/policy-engine/policy-engine.ts +95 -0
- package/openapi-client/generated/solana-accounts/solana-accounts.msw.ts +75 -0
- package/openapi-client/generated/solana-accounts/solana-accounts.ts +23 -0
- package/openapi-client/index.ts +7 -0
- package/package.json +3 -2
- package/policies/schema.ts +266 -0
- package/policies/types.ts +19 -0
- package/types/misc.ts +41 -0
- package/version.ts +1 -1
- package/_types/accounts/types.d.ts.map +0 -1
- /package/_cjs/accounts/{types.js → evm/types.js} +0 -0
- /package/_esm/accounts/{types.js → evm/types.js} +0 -0
|
@@ -3,12 +3,13 @@ import { getErc20Address } from "./utils.js";
|
|
|
3
3
|
import { sendUserOperation } from "../sendUserOperation.js";
|
|
4
4
|
import { waitForUserOperation } from "../waitForUserOperation.js";
|
|
5
5
|
export const smartAccountTransferStrategy = {
|
|
6
|
-
executeTransfer: async ({ apiClient, from,
|
|
6
|
+
executeTransfer: async ({ apiClient, from, to, value, token, network, paymasterUrl }) => {
|
|
7
7
|
const userOpHash = await (async () => {
|
|
8
|
-
if (
|
|
8
|
+
if (token === "eth") {
|
|
9
9
|
const result = await sendUserOperation(apiClient, {
|
|
10
10
|
smartAccount: from,
|
|
11
|
-
|
|
11
|
+
paymasterUrl,
|
|
12
|
+
network,
|
|
12
13
|
calls: [
|
|
13
14
|
{
|
|
14
15
|
to,
|
|
@@ -20,10 +21,11 @@ export const smartAccountTransferStrategy = {
|
|
|
20
21
|
return result.userOpHash;
|
|
21
22
|
}
|
|
22
23
|
else {
|
|
23
|
-
const erc20Address = getErc20Address(
|
|
24
|
+
const erc20Address = getErc20Address(token, network);
|
|
24
25
|
const result = await sendUserOperation(apiClient, {
|
|
25
26
|
smartAccount: from,
|
|
26
|
-
|
|
27
|
+
paymasterUrl,
|
|
28
|
+
network,
|
|
27
29
|
calls: [
|
|
28
30
|
{
|
|
29
31
|
to: erc20Address,
|
|
@@ -48,10 +50,11 @@ export const smartAccountTransferStrategy = {
|
|
|
48
50
|
})();
|
|
49
51
|
return userOpHash;
|
|
50
52
|
},
|
|
51
|
-
waitForResult: async ({ apiClient, publicClient, from, hash }) => {
|
|
53
|
+
waitForResult: async ({ apiClient, publicClient, from, hash, waitOptions }) => {
|
|
52
54
|
const result = await waitForUserOperation(apiClient, {
|
|
53
55
|
smartAccountAddress: from.address,
|
|
54
56
|
userOpHash: hash,
|
|
57
|
+
waitOptions,
|
|
55
58
|
});
|
|
56
59
|
if (result.status === "complete") {
|
|
57
60
|
return { status: "success", transactionHash: hash };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartAccountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/smartAccountTransferStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,MAAM,4BAA4B,GAA+C;IACtF,eAAe,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"smartAccountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/smartAccountTransferStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,CAAC,MAAM,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,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE;oBAChD,YAAY,EAAE,IAAI;oBAClB,YAAY;oBACZ,OAAO;oBACP,KAAK,EAAE;wBACL;4BACE,EAAE;4BACF,KAAK;4BACL,IAAI,EAAE,IAAI;yBACX;qBACF;iBACF,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAErD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE;oBAChD,YAAY,EAAE,IAAI;oBAClB,YAAY;oBACZ,OAAO;oBACP,KAAK,EAAE;wBACL;4BACE,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,kBAAkB,CAAC;gCACvB,GAAG,EAAE,QAAQ;gCACb,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;6BAClB,CAAC;yBACH;wBACD;4BACE,EAAE,EAAE,YAAY;4BAChB,IAAI,EAAE,kBAAkB,CAAC;gCACvB,GAAG,EAAE,QAAQ;gCACb,YAAY,EAAE,UAAU;gCACxB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;6BAClB,CAAC;yBACH;qBACF;iBACF,CAAC,CAAC;gBAEH,OAAO,MAAM,CAAC,UAAU,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5E,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE;YACnD,mBAAmB,EAAE,IAAI,CAAC,OAAO;YACjC,UAAU,EAAE,IAAI;YAChB,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,8DAA8D,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,OAAO,IAAI,EAAE,CAC1H,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -38,18 +38,22 @@ export async function transfer(apiClient, from, transferArgs, transferStrategy)
|
|
|
38
38
|
})();
|
|
39
39
|
return parseUnits(transferArgs.amount, decimals);
|
|
40
40
|
})();
|
|
41
|
-
const
|
|
41
|
+
const transfer = {
|
|
42
42
|
apiClient,
|
|
43
43
|
from,
|
|
44
|
-
transferArgs,
|
|
45
44
|
to,
|
|
46
45
|
value,
|
|
47
|
-
|
|
46
|
+
token: transferArgs.token,
|
|
47
|
+
network: transferArgs.network,
|
|
48
|
+
paymasterUrl: "paymasterUrl" in transferArgs ? transferArgs.paymasterUrl : undefined,
|
|
49
|
+
};
|
|
50
|
+
const hash = await transferStrategy.executeTransfer(transfer);
|
|
48
51
|
const result = await transferStrategy.waitForResult({
|
|
49
52
|
apiClient,
|
|
50
53
|
publicClient,
|
|
51
54
|
from,
|
|
52
55
|
hash,
|
|
56
|
+
waitOptions: transferArgs.waitOptions,
|
|
53
57
|
});
|
|
54
58
|
return result;
|
|
55
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAA6B,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAA6B,MAAM,MAAM,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAW/C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAA+B,EAC/B,IAAO,EACP,YAA8F,EAC9F,gBAA8C;IAE9C,MAAM,YAAY,GAAG,kBAAkB,CAAmB;QACxD,KAAK,EAAE,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC;QAC9C,SAAS,EAAE,IAAI,EAAE;KAClB,CAAC,CAAC;IAEH,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,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAC9B,+EAA+E;QAC/E,IAAI,OAAO,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,IAAI,YAAY,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACzC,OAAO,CAAC,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,YAAY,CAAC,YAAY,CAAC;oBAC/B,OAAO,EAAE,YAAY,CAAC,KAAK;oBAC3B,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,UAAU;oBACxB,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,QAAQ,GAAG;QACf,SAAS;QACT,IAAI;QACJ,EAAE;QACF,KAAK;QACL,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,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC;QAClD,SAAS;QACT,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,WAAW,EAAE,YAAY,CAAC,WAAW;KACtC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Requests funds from a Solana faucet.
|
|
3
|
+
*
|
|
4
|
+
* @param apiClient - The API client.
|
|
5
|
+
* @param {RequestFaucetOptions} options - Parameters for requesting funds from the Solana faucet.
|
|
6
|
+
* @param {string} options.address - The address to request funds for.
|
|
7
|
+
* @param {string} options.token - The token to request funds for.
|
|
8
|
+
* @param {string} [options.idempotencyKey] - An idempotency key.
|
|
9
|
+
*
|
|
10
|
+
* @returns A promise that resolves to the transaction signature.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const signature = await requestFaucet(cdp.solana, {
|
|
15
|
+
* address: "1234567890123456789012345678901234567890",
|
|
16
|
+
* token: "sol",
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export async function requestFaucet(apiClient, options) {
|
|
21
|
+
const signature = await apiClient.requestSolanaFaucet({ address: options.address, token: options.token }, options.idempotencyKey);
|
|
22
|
+
return {
|
|
23
|
+
signature: signature.transactionSignature,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=requestFaucet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestFaucet.js","sourceRoot":"","sources":["../../../actions/solana/requestFaucet.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAA+B,EAC/B,OAA6B;IAE7B,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,mBAAmB,CACnD,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAClD,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,oBAAoB;KAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sign a message.
|
|
3
|
+
*
|
|
4
|
+
* @param apiClient - The API client.
|
|
5
|
+
* @param {SignMessageOptions} options - Parameters for signing the message.
|
|
6
|
+
* @param {string} options.address - The address to sign the message for.
|
|
7
|
+
* @param {string} options.message - The message to sign.
|
|
8
|
+
* @param {string} [options.idempotencyKey] - An idempotency key.
|
|
9
|
+
*
|
|
10
|
+
* @returns A promise that resolves to the transaction signature.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const signature = await signMessage(cdp.solana, {
|
|
15
|
+
* address: "1234567890123456789012345678901234567890",
|
|
16
|
+
* message: "Hello, world!",
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export async function signMessage(apiClient, options) {
|
|
21
|
+
const signature = await apiClient.signSolanaMessage(options.address, { message: options.message }, options.idempotencyKey);
|
|
22
|
+
return {
|
|
23
|
+
signature: signature.signature,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=signMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../actions/solana/signMessage.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAA+B,EAC/B,OAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,iBAAiB,CACjD,OAAO,CAAC,OAAO,EACf,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAC5B,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Signs a transaction.
|
|
3
|
+
*
|
|
4
|
+
* @param apiClient - The API client.
|
|
5
|
+
* @param {SignTransactionOptions} options - Parameters for signing the transaction.
|
|
6
|
+
* @param {string} options.address - The address to sign the transaction for.
|
|
7
|
+
* @param {string} options.transaction - The transaction to sign.
|
|
8
|
+
* @param {string} [options.idempotencyKey] - An idempotency key.
|
|
9
|
+
*
|
|
10
|
+
* @returns A promise that resolves to the signature.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* // Create a Solana account
|
|
15
|
+
* const account = await cdp.solana.createAccount();
|
|
16
|
+
*
|
|
17
|
+
* // Add your transaction instructions here
|
|
18
|
+
* const transaction = new Transaction()
|
|
19
|
+
*
|
|
20
|
+
* // Make sure to set requireAllSignatures to false, since signing will be done through the API
|
|
21
|
+
* const serializedTransaction = transaction.serialize({
|
|
22
|
+
* requireAllSignatures: false,
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Base64 encode the serialized transaction
|
|
26
|
+
* const transaction = Buffer.from(serializedTransaction).toString("base64");
|
|
27
|
+
*
|
|
28
|
+
* // When you want to sign a transaction, you can do so by address and base64 encoded transaction
|
|
29
|
+
* const signature = await signTransaction(cdp.solana, {
|
|
30
|
+
* address: account.address,
|
|
31
|
+
* transaction,
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export async function signTransaction(apiClient, options) {
|
|
36
|
+
const signature = await apiClient.signSolanaTransaction(options.address, {
|
|
37
|
+
transaction: options.transaction,
|
|
38
|
+
}, options.idempotencyKey);
|
|
39
|
+
return {
|
|
40
|
+
signature: signature.signedTransaction,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=signTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../actions/solana/signTransaction.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAA+B,EAC/B,OAA+B;IAE/B,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,qBAAqB,CACrD,OAAO,CAAC,OAAO,EACf;QACE,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,iBAAiB;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../actions/solana/types.ts"],"names":[],"mappings":""}
|
package/_esm/analytics.js
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import md5 from "md5";
|
|
2
|
+
import { APIError } from "./openapi-client/errors.js";
|
|
2
3
|
// This is a public client id for the analytics service
|
|
3
4
|
const publicClientId = "54f2ee2fb3d2b901a829940d70fbfc13";
|
|
5
|
+
export const Analytics = {
|
|
6
|
+
identifier: "", // set in cdp.ts
|
|
7
|
+
wrapClassWithErrorTracking,
|
|
8
|
+
wrapObjectMethodsWithErrorTracking,
|
|
9
|
+
sendEvent,
|
|
10
|
+
};
|
|
4
11
|
/**
|
|
5
12
|
* Sends an analytics event to the default endpoint
|
|
6
13
|
*
|
|
7
14
|
* @param event - The event data containing event-specific fields
|
|
8
15
|
* @returns Promise that resolves when the event is sent
|
|
9
16
|
*/
|
|
10
|
-
|
|
17
|
+
async function sendEvent(event) {
|
|
18
|
+
if (process.env.DISABLE_CDP_ERROR_REPORTING === "true") {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
11
21
|
const timestamp = Date.now();
|
|
12
22
|
const enhancedEvent = {
|
|
13
|
-
user_id:
|
|
23
|
+
user_id: Analytics.identifier,
|
|
14
24
|
event_type: event.name,
|
|
15
25
|
platform: "server",
|
|
16
26
|
timestamp,
|
|
@@ -45,10 +55,12 @@ export async function sendEvent(event) {
|
|
|
45
55
|
* Wraps all methods of a class with error tracking.
|
|
46
56
|
*
|
|
47
57
|
* @param ClassToWrap - The class whose prototype methods should be wrapped.
|
|
48
|
-
* @param apiKeyId - The API key ID to use for the error tracking.
|
|
49
58
|
*/
|
|
50
59
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
-
|
|
60
|
+
function wrapClassWithErrorTracking(ClassToWrap) {
|
|
61
|
+
if (process.env.DISABLE_CDP_ERROR_REPORTING === "true") {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
52
64
|
const methods = Object.getOwnPropertyNames(ClassToWrap.prototype).filter(name => name !== "constructor" && typeof ClassToWrap.prototype[name] === "function");
|
|
53
65
|
for (const method of methods) {
|
|
54
66
|
const originalMethod = ClassToWrap.prototype[method];
|
|
@@ -57,12 +69,11 @@ export function wrapClassWithErrorTracking(ClassToWrap, apiKeyId) {
|
|
|
57
69
|
return await originalMethod.apply(this, args);
|
|
58
70
|
}
|
|
59
71
|
catch (error) {
|
|
60
|
-
if (!(error
|
|
61
|
-
|
|
72
|
+
if (!shouldTrackError(error)) {
|
|
73
|
+
throw error;
|
|
62
74
|
}
|
|
63
75
|
const { message, stack } = error;
|
|
64
76
|
sendEvent({
|
|
65
|
-
apiKeyId,
|
|
66
77
|
method,
|
|
67
78
|
message,
|
|
68
79
|
stack,
|
|
@@ -75,4 +86,54 @@ export function wrapClassWithErrorTracking(ClassToWrap, apiKeyId) {
|
|
|
75
86
|
};
|
|
76
87
|
}
|
|
77
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Wraps all methods of an object with error tracking.
|
|
91
|
+
*
|
|
92
|
+
* @param object - The object whose methods should be wrapped.
|
|
93
|
+
*/
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
95
|
+
function wrapObjectMethodsWithErrorTracking(object) {
|
|
96
|
+
if (process.env.DISABLE_CDP_ERROR_REPORTING === "true") {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const methods = Object.getOwnPropertyNames(object).filter(name => name !== "constructor" && typeof object[name] === "function");
|
|
100
|
+
for (const method of methods) {
|
|
101
|
+
const originalMethod = object[method];
|
|
102
|
+
object[method] = async function (...args) {
|
|
103
|
+
try {
|
|
104
|
+
return await originalMethod.apply(this, args);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
if (!shouldTrackError(error)) {
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
const { message, stack } = error;
|
|
111
|
+
sendEvent({
|
|
112
|
+
method,
|
|
113
|
+
message,
|
|
114
|
+
stack,
|
|
115
|
+
name: "error",
|
|
116
|
+
}).catch(() => {
|
|
117
|
+
// ignore error
|
|
118
|
+
});
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Filters out non-errors and API errors
|
|
126
|
+
*
|
|
127
|
+
* @param error - The error to check.
|
|
128
|
+
* @returns True if the error should be tracked, false otherwise.
|
|
129
|
+
*/
|
|
130
|
+
function shouldTrackError(error) {
|
|
131
|
+
if (!(error instanceof Error)) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
if (error instanceof APIError) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
78
139
|
//# sourceMappingURL=analytics.js.map
|
package/_esm/analytics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../analytics.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../analytics.ts"],"names":[],"mappings":"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"}
|
package/_esm/client/cdp.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Analytics } from "../analytics.js";
|
|
2
2
|
import { CdpOpenApiClient } from "../openapi-client/index.js";
|
|
3
3
|
import { version } from "../version.js";
|
|
4
4
|
import { EvmClient } from "./evm/evm.js";
|
|
5
|
+
import { PoliciesClient } from "./policies/policies.js";
|
|
5
6
|
import { SolanaClient } from "./solana/solana.js";
|
|
6
7
|
/**
|
|
7
8
|
* The main client for interacting with the CDP API.
|
|
@@ -11,6 +12,8 @@ export class CdpClient {
|
|
|
11
12
|
evm;
|
|
12
13
|
/** Namespace containing all Solana methods. */
|
|
13
14
|
solana;
|
|
15
|
+
/** Namespace containing all Policies methods. */
|
|
16
|
+
policies;
|
|
14
17
|
/**
|
|
15
18
|
* The CdpClient is the main class for interacting with the CDP API.
|
|
16
19
|
*
|
|
@@ -90,12 +93,15 @@ For more information, see: https://github.com/coinbase/cdp-sdk/blob/main/typescr
|
|
|
90
93
|
sourceVersion: version,
|
|
91
94
|
});
|
|
92
95
|
if (process.env.DISABLE_CDP_ERROR_REPORTING !== "true") {
|
|
93
|
-
|
|
94
|
-
wrapClassWithErrorTracking(
|
|
95
|
-
wrapClassWithErrorTracking(
|
|
96
|
+
Analytics.identifier = apiKeyId;
|
|
97
|
+
Analytics.wrapClassWithErrorTracking(CdpClient);
|
|
98
|
+
Analytics.wrapClassWithErrorTracking(EvmClient);
|
|
99
|
+
Analytics.wrapClassWithErrorTracking(SolanaClient);
|
|
100
|
+
Analytics.wrapClassWithErrorTracking(PoliciesClient);
|
|
96
101
|
}
|
|
97
102
|
this.evm = new EvmClient();
|
|
98
103
|
this.solana = new SolanaClient();
|
|
104
|
+
this.policies = new PoliciesClient();
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
//# sourceMappingURL=cdp.js.map
|
package/_esm/client/cdp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../client/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../client/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAelD;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,4CAA4C;IACrC,GAAG,CAAY;IAEtB,+CAA+C;IACxC,MAAM,CAAe;IAE5B,iDAAiD;IAC1C,QAAQ,CAAiB;IAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,YAAY,UAA4B,EAAE;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAChG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC5E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAE3E,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrB,CAAC,CAAC;QACC,CAAC;QAED,gBAAgB,CAAC,SAAS,CAAC;YACzB,GAAG,OAAO;YACV,QAAQ;YACR,YAAY;YACZ,YAAY;YACZ,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,MAAM,EAAE,CAAC;YACvD,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC;YAChC,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YAChD,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YAChD,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;YACnD,SAAS,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IACvC,CAAC;CACF"}
|
package/_esm/client/evm/evm.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { toEvmServerAccount } from "../../accounts/evm/toEvmServerAccount.js";
|
|
2
2
|
import { toEvmSmartAccount } from "../../accounts/evm/toEvmSmartAccount.js";
|
|
3
|
+
import { getUserOperation } from "../../actions/evm/getUserOperation.js";
|
|
3
4
|
import { listTokenBalances, } from "../../actions/evm/listTokenBalances.js";
|
|
4
5
|
import { requestFaucet, } from "../../actions/evm/requestFaucet.js";
|
|
5
6
|
import { sendTransaction } from "../../actions/evm/sendTransaction.js";
|
|
6
7
|
import { sendUserOperation, } from "../../actions/evm/sendUserOperation.js";
|
|
7
8
|
import { waitForUserOperation, } from "../../actions/evm/waitForUserOperation.js";
|
|
9
|
+
import { Analytics } from "../../analytics.js";
|
|
8
10
|
import { APIError } from "../../openapi-client/errors.js";
|
|
9
11
|
import { CdpOpenApiClient } from "../../openapi-client/index.js";
|
|
10
12
|
/**
|
|
@@ -46,12 +48,14 @@ export class EvmClient {
|
|
|
46
48
|
* ```
|
|
47
49
|
*/
|
|
48
50
|
async createAccount(options = {}) {
|
|
49
|
-
const
|
|
51
|
+
const openApiAccount = await CdpOpenApiClient.createEvmAccount({
|
|
50
52
|
name: options.name,
|
|
51
53
|
}, options.idempotencyKey);
|
|
52
|
-
|
|
53
|
-
account,
|
|
54
|
+
const account = toEvmServerAccount(CdpOpenApiClient, {
|
|
55
|
+
account: openApiAccount,
|
|
54
56
|
});
|
|
57
|
+
Analytics.wrapObjectMethodsWithErrorTracking(account);
|
|
58
|
+
return account;
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
57
61
|
* Creates a new CDP EVM smart account.
|
|
@@ -99,13 +103,15 @@ export class EvmClient {
|
|
|
99
103
|
* ```
|
|
100
104
|
*/
|
|
101
105
|
async createSmartAccount(options) {
|
|
102
|
-
const
|
|
106
|
+
const openApiSmartAccount = await CdpOpenApiClient.createEvmSmartAccount({
|
|
103
107
|
owners: [options.owner.address],
|
|
104
108
|
}, options.idempotencyKey);
|
|
105
|
-
|
|
106
|
-
smartAccount,
|
|
109
|
+
const smartAccount = toEvmSmartAccount(CdpOpenApiClient, {
|
|
110
|
+
smartAccount: openApiSmartAccount,
|
|
107
111
|
owner: options.owner,
|
|
108
112
|
});
|
|
113
|
+
Analytics.wrapObjectMethodsWithErrorTracking(smartAccount);
|
|
114
|
+
return smartAccount;
|
|
109
115
|
}
|
|
110
116
|
/**
|
|
111
117
|
* Gets a CDP EVM account.
|
|
@@ -133,7 +139,7 @@ export class EvmClient {
|
|
|
133
139
|
* ```
|
|
134
140
|
*/
|
|
135
141
|
async getAccount(options) {
|
|
136
|
-
const
|
|
142
|
+
const openApiAccount = await (() => {
|
|
137
143
|
if (options.address) {
|
|
138
144
|
return CdpOpenApiClient.getEvmAccount(options.address);
|
|
139
145
|
}
|
|
@@ -142,9 +148,11 @@ export class EvmClient {
|
|
|
142
148
|
}
|
|
143
149
|
throw new Error("Either address or name must be provided");
|
|
144
150
|
})();
|
|
145
|
-
|
|
146
|
-
account,
|
|
151
|
+
const account = toEvmServerAccount(CdpOpenApiClient, {
|
|
152
|
+
account: openApiAccount,
|
|
147
153
|
});
|
|
154
|
+
Analytics.wrapObjectMethodsWithErrorTracking(account);
|
|
155
|
+
return account;
|
|
148
156
|
}
|
|
149
157
|
/**
|
|
150
158
|
* Gets a CDP EVM smart account.
|
|
@@ -166,11 +174,13 @@ export class EvmClient {
|
|
|
166
174
|
* ```
|
|
167
175
|
*/
|
|
168
176
|
async getSmartAccount(options) {
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
smartAccount,
|
|
177
|
+
const openApiSmartAccount = await CdpOpenApiClient.getEvmSmartAccount(options.address);
|
|
178
|
+
const smartAccount = toEvmSmartAccount(CdpOpenApiClient, {
|
|
179
|
+
smartAccount: openApiSmartAccount,
|
|
172
180
|
owner: options.owner,
|
|
173
181
|
});
|
|
182
|
+
Analytics.wrapObjectMethodsWithErrorTracking(smartAccount);
|
|
183
|
+
return smartAccount;
|
|
174
184
|
}
|
|
175
185
|
/**
|
|
176
186
|
* Gets a CDP EVM account, or creates one if it doesn't exist.
|
|
@@ -231,18 +241,7 @@ export class EvmClient {
|
|
|
231
241
|
* ```
|
|
232
242
|
*/
|
|
233
243
|
async getUserOperation(options) {
|
|
234
|
-
|
|
235
|
-
return {
|
|
236
|
-
calls: userOp.calls.map(call => ({
|
|
237
|
-
to: call.to,
|
|
238
|
-
value: BigInt(call.value),
|
|
239
|
-
data: call.data,
|
|
240
|
-
})),
|
|
241
|
-
network: userOp.network,
|
|
242
|
-
status: userOp.status,
|
|
243
|
-
transactionHash: userOp.transactionHash,
|
|
244
|
-
userOpHash: userOp.userOpHash,
|
|
245
|
-
};
|
|
244
|
+
return getUserOperation(CdpOpenApiClient, options);
|
|
246
245
|
}
|
|
247
246
|
/**
|
|
248
247
|
* Lists CDP EVM accounts.
|
|
@@ -274,9 +273,13 @@ export class EvmClient {
|
|
|
274
273
|
pageToken: options.pageToken,
|
|
275
274
|
});
|
|
276
275
|
return {
|
|
277
|
-
accounts: ethAccounts.accounts.map(account =>
|
|
278
|
-
|
|
279
|
-
|
|
276
|
+
accounts: ethAccounts.accounts.map(account => {
|
|
277
|
+
const evmAccount = toEvmServerAccount(CdpOpenApiClient, {
|
|
278
|
+
account,
|
|
279
|
+
});
|
|
280
|
+
Analytics.wrapObjectMethodsWithErrorTracking(evmAccount);
|
|
281
|
+
return evmAccount;
|
|
282
|
+
}),
|
|
280
283
|
nextPageToken: ethAccounts.nextPageToken,
|
|
281
284
|
};
|
|
282
285
|
}
|
|
@@ -568,6 +571,62 @@ export class EvmClient {
|
|
|
568
571
|
signature: signature.signature,
|
|
569
572
|
};
|
|
570
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* Signs an EIP-712 message.
|
|
576
|
+
*
|
|
577
|
+
* @param {SignTypedDataOptions} options - Parameters for signing the EIP-712 message.
|
|
578
|
+
* @returns A promise that resolves to the signature.
|
|
579
|
+
*
|
|
580
|
+
* @example
|
|
581
|
+
* ```ts
|
|
582
|
+
* const signature = await cdp.evm.signTypedData({
|
|
583
|
+
* address: account.address,
|
|
584
|
+
* domain: {
|
|
585
|
+
* name: "Permit2",
|
|
586
|
+
* chainId: 1,
|
|
587
|
+
* verifyingContract: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
588
|
+
* },
|
|
589
|
+
* types: {
|
|
590
|
+
* EIP712Domain: [
|
|
591
|
+
* { name: "name", type: "string" },
|
|
592
|
+
* { name: "chainId", type: "uint256" },
|
|
593
|
+
* { name: "verifyingContract", type: "address" },
|
|
594
|
+
* ],
|
|
595
|
+
* PermitTransferFrom: [
|
|
596
|
+
* { name: "permitted", type: "TokenPermissions" },
|
|
597
|
+
* { name: "spender", type: "address" },
|
|
598
|
+
* { name: "nonce", type: "uint256" },
|
|
599
|
+
* { name: "deadline", type: "uint256" },
|
|
600
|
+
* ],
|
|
601
|
+
* TokenPermissions: [
|
|
602
|
+
* { name: "token", type: "address" },
|
|
603
|
+
* { name: "amount", type: "uint256" },
|
|
604
|
+
* ],
|
|
605
|
+
* },
|
|
606
|
+
* primaryType: "PermitTransferFrom",
|
|
607
|
+
* message: {
|
|
608
|
+
* permitted: {
|
|
609
|
+
* token: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
610
|
+
* amount: "1000000",
|
|
611
|
+
* },
|
|
612
|
+
* spender: "0xFfFfFfFFfFFfFFfFFfFFFFFffFFFffffFfFFFfFf",
|
|
613
|
+
* nonce: "0",
|
|
614
|
+
* deadline: "1717123200",
|
|
615
|
+
* },
|
|
616
|
+
* });
|
|
617
|
+
* ```
|
|
618
|
+
*/
|
|
619
|
+
async signTypedData(options) {
|
|
620
|
+
const signature = await CdpOpenApiClient.signEvmTypedData(options.address, {
|
|
621
|
+
domain: options.domain,
|
|
622
|
+
types: options.types,
|
|
623
|
+
primaryType: options.primaryType,
|
|
624
|
+
message: options.message,
|
|
625
|
+
}, options.idempotencyKey);
|
|
626
|
+
return {
|
|
627
|
+
signature: signature.signature,
|
|
628
|
+
};
|
|
629
|
+
}
|
|
571
630
|
/**
|
|
572
631
|
* Signs an EVM transaction.
|
|
573
632
|
*
|
|
@@ -606,6 +665,55 @@ export class EvmClient {
|
|
|
606
665
|
signature: signature.signedTransaction,
|
|
607
666
|
};
|
|
608
667
|
}
|
|
668
|
+
/**
|
|
669
|
+
* Updates a CDP EVM account.
|
|
670
|
+
*
|
|
671
|
+
* @param {UpdateEvmAccountOptions} [options] - Optional parameters for creating the account.
|
|
672
|
+
* @param {string} options.address - The address of the account to update
|
|
673
|
+
* @param {UpdateEvmAccountBody} options.update - An object containing account fields to update.
|
|
674
|
+
* @param {string} [options.update.name] - The new name for the account.
|
|
675
|
+
* @param {string} [options.update.accountPolicy] - The ID of a Policy to apply to the account.
|
|
676
|
+
* @param {string} [options.idempotencyKey] - An idempotency key.
|
|
677
|
+
*
|
|
678
|
+
* @returns A promise that resolves to the updated account.
|
|
679
|
+
*
|
|
680
|
+
* @example **With a name**
|
|
681
|
+
* ```ts
|
|
682
|
+
* const account = await cdp.evm.updateAccount({ address: "0x...", update: { name: "New Name" } });
|
|
683
|
+
* ```
|
|
684
|
+
*
|
|
685
|
+
* @example **With an account policy**
|
|
686
|
+
* ```ts
|
|
687
|
+
* const account = await cdp.evm.updateAccount({ address: "0x...", update: { accountPolicy: "73bcaeeb-d7af-4615-b064-42b5fe83a31e" } });
|
|
688
|
+
* ```
|
|
689
|
+
*
|
|
690
|
+
* @example **With an idempotency key**
|
|
691
|
+
* ```ts
|
|
692
|
+
* const idempotencyKey = uuidv4();
|
|
693
|
+
*
|
|
694
|
+
* // First call
|
|
695
|
+
* await cdp.evm.updateAccount({
|
|
696
|
+
* address: "0x...",
|
|
697
|
+
* update: { accountPolicy: "73bcaeeb-d7af-4615-b064-42b5fe83a31e" },
|
|
698
|
+
* idempotencyKey,
|
|
699
|
+
* });
|
|
700
|
+
*
|
|
701
|
+
* // Second call with the same idempotency key will not update
|
|
702
|
+
* await cdp.evm.updateAccount({
|
|
703
|
+
* address: '0x...',
|
|
704
|
+
* update: { name: "" },
|
|
705
|
+
* idempotencyKey,
|
|
706
|
+
* });
|
|
707
|
+
* ```
|
|
708
|
+
*/
|
|
709
|
+
async updateAccount(options) {
|
|
710
|
+
const openApiAccount = await CdpOpenApiClient.updateEvmAccount(options.address, options.update, options.idempotencyKey);
|
|
711
|
+
const account = toEvmServerAccount(CdpOpenApiClient, {
|
|
712
|
+
account: openApiAccount,
|
|
713
|
+
});
|
|
714
|
+
Analytics.wrapObjectMethodsWithErrorTracking(account);
|
|
715
|
+
return account;
|
|
716
|
+
}
|
|
609
717
|
/**
|
|
610
718
|
* Waits for a user operation to complete or fail.
|
|
611
719
|
*
|