@coinbase/cdp-sdk 1.1.2 → 1.3.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 +91 -0
- package/LICENSE +21 -0
- package/README.md +88 -1
- package/{dist → _cjs}/accounts/evm/toEvmServerAccount.js +1 -0
- package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -0
- package/{dist → _cjs}/accounts/evm/toEvmSmartAccount.js +1 -0
- package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -0
- package/{dist → _cjs}/accounts/types.js +1 -0
- package/_cjs/accounts/types.js.map +1 -0
- package/{dist → _cjs}/actions/evm/sendUserOperation.js +1 -0
- package/_cjs/actions/evm/sendUserOperation.js.map +1 -0
- package/{dist → _cjs}/actions/evm/waitForUserOperation.js +10 -9
- package/_cjs/actions/evm/waitForUserOperation.js.map +1 -0
- package/{dist → _cjs}/analytics.js +32 -12
- package/_cjs/analytics.js.map +1 -0
- package/{dist → _cjs}/auth/errors.js +1 -0
- package/_cjs/auth/errors.js.map +1 -0
- package/{dist → _cjs}/auth/hooks/axios/index.js +2 -1
- package/_cjs/auth/hooks/axios/index.js.map +1 -0
- package/{dist → _cjs}/auth/hooks/axios/withAuth.js +4 -2
- package/_cjs/auth/hooks/axios/withAuth.js.map +1 -0
- package/{dist → _cjs}/auth/index.js +4 -3
- package/_cjs/auth/index.js.map +1 -0
- package/{dist → _cjs}/auth/utils/http.js +6 -5
- package/_cjs/auth/utils/http.js.map +1 -0
- package/{dist → _cjs}/auth/utils/index.js +3 -2
- package/_cjs/auth/utils/index.js.map +1 -0
- package/{dist → _cjs}/auth/utils/jwt.js +4 -3
- package/_cjs/auth/utils/jwt.js.map +1 -0
- package/_cjs/client/cdp.js +101 -0
- package/_cjs/client/cdp.js.map +1 -0
- package/_cjs/client/evm/evm.js +641 -0
- package/_cjs/client/evm/evm.js.map +1 -0
- package/{dist → _cjs}/client/evm/evm.types.js +1 -0
- package/_cjs/client/evm/evm.types.js.map +1 -0
- package/{dist → _cjs}/client/solana/index.js +3 -2
- package/_cjs/client/solana/index.js.map +1 -0
- package/{dist → _cjs}/client/solana/solana.js +9 -8
- package/_cjs/client/solana/solana.js.map +1 -0
- package/{dist → _cjs}/client/solana/solana.types.js +1 -0
- package/_cjs/client/solana/solana.types.js.map +1 -0
- package/{dist → _cjs}/constants.js +1 -0
- package/_cjs/constants.js.map +1 -0
- package/{dist → _cjs}/errors.js +1 -0
- package/_cjs/errors.js.map +1 -0
- package/{dist → _cjs}/index.js +4 -3
- package/_cjs/index.js.map +1 -0
- package/_cjs/openapi-client/cdpApiClient.js +116 -0
- package/_cjs/openapi-client/cdpApiClient.js.map +1 -0
- package/{dist → _cjs}/openapi-client/errors.js +44 -3
- package/_cjs/openapi-client/errors.js.map +1 -0
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +66 -0
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -0
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js +125 -0
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -0
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js +160 -0
- package/_cjs/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -0
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +70 -0
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -0
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +188 -0
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -0
- package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js +15 -0
- package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -0
- package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.msw.js +45 -0
- package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.msw.js.map +1 -0
- package/{dist → _cjs}/openapi-client/generated/faucets/faucets.js +20 -14
- package/_cjs/openapi-client/generated/faucets/faucets.js.map +1 -0
- package/{dist → _cjs}/openapi-client/generated/faucets/faucets.msw.js +16 -12
- package/_cjs/openapi-client/generated/faucets/faucets.msw.js.map +1 -0
- package/{dist → _cjs}/openapi-client/generated/index.msw.js +6 -4
- package/_cjs/openapi-client/generated/index.msw.js.map +1 -0
- package/{dist → _cjs}/openapi-client/generated/solana-accounts/solana-accounts.js +38 -35
- package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -0
- package/{dist → _cjs}/openapi-client/generated/solana-accounts/solana-accounts.msw.js +68 -35
- package/_cjs/openapi-client/generated/solana-accounts/solana-accounts.msw.js.map +1 -0
- package/{dist → _cjs}/openapi-client/index.js +16 -11
- package/_cjs/openapi-client/index.js.map +1 -0
- package/_cjs/package.json +1 -0
- package/{dist → _cjs}/types/calls.js +1 -0
- package/_cjs/types/calls.js.map +1 -0
- package/{dist → _cjs}/types/contract.js +1 -0
- package/_cjs/types/contract.js.map +1 -0
- package/{dist → _cjs}/types/misc.js +1 -0
- package/_cjs/types/misc.js.map +1 -0
- package/{dist → _cjs}/types/multicall.js +1 -0
- package/_cjs/types/multicall.js.map +1 -0
- package/{dist → _cjs}/types/utils.js +1 -0
- package/_cjs/types/utils.js.map +1 -0
- package/{dist → _cjs}/utils/wait.js +3 -2
- package/_cjs/utils/wait.js.map +1 -0
- package/_cjs/version.js +5 -0
- package/_cjs/version.js.map +1 -0
- package/_esm/accounts/evm/toEvmServerAccount.js +40 -0
- package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -0
- package/_esm/accounts/evm/toEvmSmartAccount.js +22 -0
- package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -0
- package/_esm/accounts/types.js +2 -0
- package/_esm/accounts/types.js.map +1 -0
- package/_esm/actions/evm/sendUserOperation.js +85 -0
- package/_esm/actions/evm/sendUserOperation.js.map +1 -0
- package/_esm/actions/evm/waitForUserOperation.js +58 -0
- package/_esm/actions/evm/waitForUserOperation.js.map +1 -0
- package/_esm/analytics.js +101 -0
- package/_esm/analytics.js.map +1 -0
- package/_esm/auth/errors.js +57 -0
- package/_esm/auth/errors.js.map +1 -0
- package/_esm/auth/hooks/axios/index.js +2 -0
- package/_esm/auth/hooks/axios/index.js.map +1 -0
- package/_esm/auth/hooks/axios/withAuth.js +72 -0
- package/_esm/auth/hooks/axios/withAuth.js.map +1 -0
- package/_esm/auth/index.js +5 -0
- package/_esm/auth/index.js.map +1 -0
- package/_esm/auth/utils/http.js +70 -0
- package/_esm/auth/utils/http.js.map +1 -0
- package/_esm/auth/utils/index.js +3 -0
- package/_esm/auth/utils/index.js.map +1 -0
- package/_esm/auth/utils/jwt.js +199 -0
- package/_esm/auth/utils/jwt.js.map +1 -0
- package/{dist → _esm}/client/cdp.js +16 -13
- package/_esm/client/cdp.js.map +1 -0
- package/{dist → _esm}/client/evm/evm.js +146 -30
- package/_esm/client/evm/evm.js.map +1 -0
- package/_esm/client/evm/evm.types.js +2 -0
- package/_esm/client/evm/evm.types.js.map +1 -0
- package/_esm/client/solana/index.js +2 -0
- package/_esm/client/solana/index.js.map +1 -0
- package/_esm/client/solana/solana.js +204 -0
- package/_esm/client/solana/solana.js.map +1 -0
- package/_esm/client/solana/solana.types.js +2 -0
- package/_esm/client/solana/solana.types.js.map +1 -0
- package/_esm/constants.js +5 -0
- package/_esm/constants.js.map +1 -0
- package/_esm/errors.js +18 -0
- package/_esm/errors.js.map +1 -0
- package/_esm/index.js +3 -0
- package/_esm/index.js.map +1 -0
- package/_esm/openapi-client/cdpApiClient.js +108 -0
- package/_esm/openapi-client/cdpApiClient.js.map +1 -0
- package/_esm/openapi-client/errors.js +104 -0
- package/_esm/openapi-client/errors.js.map +1 -0
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +63 -0
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -0
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js +114 -0
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.js.map +1 -0
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js +140 -0
- package/_esm/openapi-client/generated/evm-accounts/evm-accounts.msw.js.map +1 -0
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +61 -0
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js.map +1 -0
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +172 -0
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -0
- package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js +11 -0
- package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -0
- package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.msw.js +39 -0
- package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.msw.js.map +1 -0
- package/_esm/openapi-client/generated/faucets/faucets.js +52 -0
- package/_esm/openapi-client/generated/faucets/faucets.js.map +1 -0
- package/_esm/openapi-client/generated/faucets/faucets.msw.js +39 -0
- package/_esm/openapi-client/generated/faucets/faucets.msw.js.map +1 -0
- package/_esm/openapi-client/generated/index.msw.js +6 -0
- package/_esm/openapi-client/generated/index.msw.js.map +1 -0
- package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js +73 -0
- package/_esm/openapi-client/generated/solana-accounts/solana-accounts.js.map +1 -0
- package/_esm/openapi-client/generated/solana-accounts/solana-accounts.msw.js +116 -0
- package/_esm/openapi-client/generated/solana-accounts/solana-accounts.msw.js.map +1 -0
- package/_esm/openapi-client/index.js +31 -0
- package/_esm/openapi-client/index.js.map +1 -0
- package/_esm/package.json +1 -0
- package/_esm/types/calls.js +4 -0
- package/_esm/types/calls.js.map +1 -0
- package/_esm/types/contract.js +4 -0
- package/_esm/types/contract.js.map +1 -0
- package/_esm/types/misc.js +3 -0
- package/_esm/types/misc.js.map +1 -0
- package/_esm/types/multicall.js +2 -0
- package/_esm/types/multicall.js.map +1 -0
- package/_esm/types/utils.js +4 -0
- package/_esm/types/utils.js.map +1 -0
- package/_esm/utils/wait.js +32 -0
- package/_esm/utils/wait.js.map +1 -0
- package/_esm/version.js +2 -0
- package/_esm/version.js.map +1 -0
- package/{dist → _types}/accounts/evm/toEvmServerAccount.d.ts +3 -2
- package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -0
- package/{dist → _types}/accounts/evm/toEvmSmartAccount.d.ts +3 -2
- package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -0
- package/{dist → _types}/accounts/types.d.ts +3 -2
- package/_types/accounts/types.d.ts.map +1 -0
- package/{dist → _types}/actions/evm/sendUserOperation.d.ts +5 -5
- package/_types/actions/evm/sendUserOperation.d.ts.map +1 -0
- package/{dist → _types}/actions/evm/waitForUserOperation.d.ts +4 -3
- package/_types/actions/evm/waitForUserOperation.d.ts.map +1 -0
- package/{dist → _types}/analytics.d.ts +16 -0
- package/_types/analytics.d.ts.map +1 -0
- package/{dist → _types}/auth/errors.d.ts +1 -0
- package/_types/auth/errors.d.ts.map +1 -0
- package/_types/auth/hooks/axios/index.d.ts +2 -0
- package/_types/auth/hooks/axios/index.d.ts.map +1 -0
- package/{dist → _types}/auth/hooks/axios/withAuth.d.ts +1 -0
- package/_types/auth/hooks/axios/withAuth.d.ts.map +1 -0
- package/_types/auth/index.d.ts +5 -0
- package/_types/auth/index.d.ts.map +1 -0
- package/{dist → _types}/auth/utils/http.d.ts +1 -0
- package/_types/auth/utils/http.d.ts.map +1 -0
- package/_types/auth/utils/index.d.ts +3 -0
- package/_types/auth/utils/index.d.ts.map +1 -0
- package/{dist → _types}/auth/utils/jwt.d.ts +1 -0
- package/_types/auth/utils/jwt.d.ts.map +1 -0
- package/{dist → _types}/client/cdp.d.ts +3 -2
- package/_types/client/cdp.d.ts.map +1 -0
- package/{dist → _types}/client/evm/evm.d.ts +86 -3
- package/_types/client/evm/evm.d.ts.map +1 -0
- package/{dist → _types}/client/evm/evm.types.d.ts +104 -7
- package/_types/client/evm/evm.types.d.ts.map +1 -0
- package/_types/client/solana/index.d.ts +2 -0
- package/_types/client/solana/index.d.ts.map +1 -0
- package/{dist → _types}/client/solana/solana.d.ts +2 -1
- package/_types/client/solana/solana.d.ts.map +1 -0
- package/{dist → _types}/client/solana/solana.types.d.ts +2 -1
- package/_types/client/solana/solana.types.d.ts.map +1 -0
- package/{dist → _types}/constants.d.ts +1 -0
- package/_types/constants.d.ts.map +1 -0
- package/{dist → _types}/errors.d.ts +1 -0
- package/_types/errors.d.ts.map +1 -0
- package/_types/index.d.ts +4 -0
- package/_types/index.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/cdpApiClient.d.ts +1 -0
- package/_types/openapi-client/cdpApiClient.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/errors.d.ts +30 -2
- package/_types/openapi-client/errors.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +100 -14
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -0
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts +91 -0
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts +5 -2
- package/_types/openapi-client/generated/evm-accounts/evm-accounts.msw.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts +22 -20
- package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.d.ts +3 -2
- package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.d.ts.map +1 -0
- package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts +20 -0
- package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts.map +1 -0
- package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.msw.d.ts +6 -0
- package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.msw.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/generated/faucets/faucets.d.ts +11 -9
- package/_types/openapi-client/generated/faucets/faucets.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/generated/faucets/faucets.msw.d.ts +3 -2
- package/_types/openapi-client/generated/faucets/faucets.msw.d.ts.map +1 -0
- package/_types/openapi-client/generated/index.msw.d.ts +6 -0
- package/_types/openapi-client/generated/index.msw.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/generated/solana-accounts/solana-accounts.d.ts +21 -20
- package/_types/openapi-client/generated/solana-accounts/solana-accounts.d.ts.map +1 -0
- package/{dist → _types}/openapi-client/generated/solana-accounts/solana-accounts.msw.d.ts +3 -2
- package/_types/openapi-client/generated/solana-accounts/solana-accounts.msw.d.ts.map +1 -0
- package/_types/openapi-client/index.d.ts +61 -0
- package/_types/openapi-client/index.d.ts.map +1 -0
- package/{dist → _types}/types/calls.d.ts +4 -3
- package/_types/types/calls.d.ts.map +1 -0
- package/{dist → _types}/types/contract.d.ts +3 -2
- package/_types/types/contract.d.ts.map +1 -0
- package/_types/types/misc.d.ts +41 -0
- package/_types/types/misc.d.ts.map +1 -0
- package/{dist → _types}/types/multicall.d.ts +2 -1
- package/_types/types/multicall.d.ts.map +1 -0
- package/{dist → _types}/types/utils.d.ts +1 -0
- package/_types/types/utils.d.ts.map +1 -0
- package/{dist → _types}/utils/wait.d.ts +1 -0
- package/_types/utils/wait.d.ts.map +1 -0
- package/_types/version.d.ts +2 -0
- package/_types/version.d.ts.map +1 -0
- package/accounts/evm/toEvmServerAccount.ts +60 -0
- package/accounts/evm/toEvmSmartAccount.ts +37 -0
- package/accounts/types.ts +53 -0
- package/actions/evm/sendUserOperation.ts +163 -0
- package/actions/evm/waitForUserOperation.ts +115 -0
- package/analytics.ts +142 -0
- package/auth/README.md +145 -0
- package/auth/errors.ts +59 -0
- package/auth/hooks/axios/index.ts +1 -0
- package/auth/hooks/axios/withAuth.ts +121 -0
- package/auth/index.ts +5 -0
- package/auth/utils/http.ts +146 -0
- package/auth/utils/index.ts +2 -0
- package/auth/utils/jwt.ts +324 -0
- package/client/cdp.ts +116 -0
- package/client/evm/evm.ts +739 -0
- package/client/evm/evm.types.ts +408 -0
- package/client/solana/index.ts +1 -0
- package/client/solana/solana.ts +237 -0
- package/client/solana/solana.types.ts +114 -0
- package/constants.ts +4 -0
- package/errors.ts +17 -0
- package/index.ts +4 -0
- package/openapi-client/cdpApiClient.ts +221 -0
- package/openapi-client/errors.ts +132 -0
- package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +512 -0
- package/openapi-client/generated/evm-accounts/evm-accounts.msw.ts +271 -0
- package/openapi-client/generated/evm-accounts/evm-accounts.ts +194 -0
- package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.ts +283 -0
- package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.ts +132 -0
- package/openapi-client/generated/evm-token-balances/evm-token-balances.msw.ts +57 -0
- package/openapi-client/generated/evm-token-balances/evm-token-balances.ts +37 -0
- package/openapi-client/generated/faucets/faucets.msw.ts +76 -0
- package/openapi-client/generated/faucets/faucets.ts +84 -0
- package/openapi-client/generated/index.msw.ts +5 -0
- package/openapi-client/generated/solana-accounts/solana-accounts.msw.ts +219 -0
- package/openapi-client/generated/solana-accounts/solana-accounts.ts +143 -0
- package/openapi-client/index.ts +36 -0
- package/package.json +31 -66
- package/types/calls.ts +40 -0
- package/types/contract.ts +126 -0
- package/types/misc.ts +44 -0
- package/types/multicall.ts +29 -0
- package/types/utils.ts +288 -0
- package/utils/wait.ts +52 -0
- package/version.ts +1 -0
- package/dist/auth/hooks/axios/index.d.ts +0 -1
- package/dist/auth/index.d.ts +0 -4
- package/dist/auth/utils/index.d.ts +0 -2
- package/dist/client/evm/index.d.ts +0 -1
- package/dist/client/evm/index.js +0 -5
- package/dist/client/solana/index.d.ts +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/openapi-client/cdpApiClient.js +0 -146
- package/dist/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +0 -54
- package/dist/openapi-client/generated/evm-accounts/evm-accounts.d.ts +0 -62
- package/dist/openapi-client/generated/evm-accounts/evm-accounts.js +0 -85
- package/dist/openapi-client/generated/evm-accounts/evm-accounts.msw.js +0 -113
- package/dist/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.js +0 -66
- package/dist/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +0 -99
- package/dist/openapi-client/generated/index.msw.d.ts +0 -4
- package/dist/openapi-client/index.d.ts +0 -55
- package/dist/types/misc.d.ts +0 -3
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import * as crypto from "crypto";
|
|
2
|
+
import { createPrivateKey } from "crypto";
|
|
3
|
+
import { SignJWT, importPKCS8, importJWK } from "jose";
|
|
4
|
+
import { InvalidWalletSecretFormatError, UndefinedWalletSecretError } from "../errors.js";
|
|
5
|
+
/**
|
|
6
|
+
* Generates a JWT (also known as a Bearer token) for authenticating with Coinbase's REST APIs.
|
|
7
|
+
* Supports both EC (ES256) and Ed25519 (EdDSA) keys.
|
|
8
|
+
*
|
|
9
|
+
* @param options - The configuration options for generating the JWT
|
|
10
|
+
* @returns The generated JWT (Bearer token) string
|
|
11
|
+
* @throws {Error} If required parameters are missing, invalid, or if JWT signing fails
|
|
12
|
+
*/
|
|
13
|
+
export async function generateJwt(options) {
|
|
14
|
+
// Validate required parameters
|
|
15
|
+
if (!options.apiKeyId) {
|
|
16
|
+
throw new Error("Key name is required");
|
|
17
|
+
}
|
|
18
|
+
if (!options.apiKeySecret) {
|
|
19
|
+
throw new Error("Private key is required");
|
|
20
|
+
}
|
|
21
|
+
if (!options.requestMethod || !options.requestHost || !options.requestPath) {
|
|
22
|
+
throw new Error("Request details (method, host, path) are required");
|
|
23
|
+
}
|
|
24
|
+
const now = Math.floor(Date.now() / 1000);
|
|
25
|
+
const expiresIn = options.expiresIn || 120; // Default to 120 seconds if not specified
|
|
26
|
+
const uri = `${options.requestMethod} ${options.requestHost}${options.requestPath}`;
|
|
27
|
+
// Prepare the JWT payload
|
|
28
|
+
const claims = {
|
|
29
|
+
sub: options.apiKeyId,
|
|
30
|
+
iss: "cdp",
|
|
31
|
+
aud: ["cdp_service"],
|
|
32
|
+
uris: [uri],
|
|
33
|
+
};
|
|
34
|
+
// Generate random nonce for the header
|
|
35
|
+
const randomNonce = nonce();
|
|
36
|
+
// Determine if we're using EC or Edwards key based on the key format
|
|
37
|
+
if (isValidECKey(options.apiKeySecret)) {
|
|
38
|
+
return await buildECJWT(options.apiKeySecret, options.apiKeyId, claims, now, expiresIn, randomNonce);
|
|
39
|
+
}
|
|
40
|
+
else if (isValidEd25519Key(options.apiKeySecret)) {
|
|
41
|
+
return await buildEdwardsJWT(options.apiKeySecret, options.apiKeyId, claims, now, expiresIn, randomNonce);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
throw new Error("Invalid key format - must be either PEM EC key or base64 Ed25519 key");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Generates a wallet authentication JWT for the given API endpoint URL.
|
|
49
|
+
* Used for authenticating with specific endpoints that require wallet authentication.
|
|
50
|
+
*
|
|
51
|
+
* @param options - The configuration options for generating the JWT
|
|
52
|
+
* @returns The generated JWT (Bearer token) string
|
|
53
|
+
* @throws {UndefinedWalletSecretError} If the Wallet Secret is not defined.
|
|
54
|
+
* @throws {InvalidWalletSecretFormatError} If the private key is not in the correct format or signing fails.
|
|
55
|
+
*/
|
|
56
|
+
export async function generateWalletJwt(options) {
|
|
57
|
+
if (!options.walletSecret) {
|
|
58
|
+
throw new UndefinedWalletSecretError("Wallet Secret is not defined");
|
|
59
|
+
}
|
|
60
|
+
const uri = `${options.requestMethod} ${options.requestHost}${options.requestPath}`;
|
|
61
|
+
const now = Math.floor(Date.now() / 1000);
|
|
62
|
+
const claims = {
|
|
63
|
+
uris: [uri],
|
|
64
|
+
};
|
|
65
|
+
if (Object.keys(options.requestData).length > 0) {
|
|
66
|
+
claims.req = options.requestData;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
const ecKey = createPrivateKey({
|
|
70
|
+
key: options.walletSecret,
|
|
71
|
+
format: "der",
|
|
72
|
+
type: "pkcs8",
|
|
73
|
+
encoding: "base64",
|
|
74
|
+
});
|
|
75
|
+
return await new SignJWT(claims)
|
|
76
|
+
.setProtectedHeader({ alg: "ES256", typ: "JWT" })
|
|
77
|
+
.setIssuedAt(now)
|
|
78
|
+
.setNotBefore(now)
|
|
79
|
+
.setJti(nonce())
|
|
80
|
+
.sign(ecKey);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new InvalidWalletSecretFormatError("Could not create the EC key: " + error);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Determines if a string could be a valid Ed25519 key
|
|
88
|
+
*
|
|
89
|
+
* @param str - The string to test
|
|
90
|
+
* @returns True if the string could be a valid Ed25519 key, false otherwise
|
|
91
|
+
*/
|
|
92
|
+
function isValidEd25519Key(str) {
|
|
93
|
+
try {
|
|
94
|
+
const decoded = Buffer.from(str, "base64");
|
|
95
|
+
return decoded.length === 64;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Determines if a string is a valid EC private key in PEM format
|
|
103
|
+
*
|
|
104
|
+
* @param str - The string to test
|
|
105
|
+
* @returns True if the string is a valid EC private key in PEM format
|
|
106
|
+
*/
|
|
107
|
+
function isValidECKey(str) {
|
|
108
|
+
try {
|
|
109
|
+
// Attempt to create a private key object - will throw if invalid
|
|
110
|
+
const key = createPrivateKey(str);
|
|
111
|
+
// Check if it's an EC key by examining its asymmetric key type
|
|
112
|
+
return key.asymmetricKeyType === "ec";
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Builds a JWT using an EC key.
|
|
120
|
+
*
|
|
121
|
+
* @param privateKey - The EC private key in PEM format
|
|
122
|
+
* @param keyName - The key name/ID
|
|
123
|
+
* @param claims - The JWT claims
|
|
124
|
+
* @param now - Current timestamp in seconds
|
|
125
|
+
* @param expiresIn - Number of seconds until the token expires
|
|
126
|
+
* @param nonce - Random nonce for the JWT header
|
|
127
|
+
* @returns A JWT token signed with an EC key
|
|
128
|
+
* @throws {Error} If key conversion, import, or signing fails
|
|
129
|
+
*/
|
|
130
|
+
async function buildECJWT(privateKey, keyName, claims, now, expiresIn, nonce) {
|
|
131
|
+
try {
|
|
132
|
+
// Convert to PKCS8 format
|
|
133
|
+
const keyObj = createPrivateKey(privateKey);
|
|
134
|
+
const pkcs8Key = keyObj.export({ type: "pkcs8", format: "pem" }).toString();
|
|
135
|
+
// Import the key for signing
|
|
136
|
+
const ecKey = await importPKCS8(pkcs8Key, "ES256");
|
|
137
|
+
// Sign and return the JWT
|
|
138
|
+
return await new SignJWT(claims)
|
|
139
|
+
.setProtectedHeader({ alg: "ES256", kid: keyName, typ: "JWT", nonce })
|
|
140
|
+
.setIssuedAt(Math.floor(now))
|
|
141
|
+
.setNotBefore(Math.floor(now))
|
|
142
|
+
.setExpirationTime(Math.floor(now + expiresIn))
|
|
143
|
+
.sign(ecKey);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
throw new Error(`Failed to generate EC JWT: ${error.message}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Builds a JWT using an Ed25519 key.
|
|
151
|
+
*
|
|
152
|
+
* @param privateKey - The Ed25519 private key in base64 format
|
|
153
|
+
* @param keyName - The key name/ID
|
|
154
|
+
* @param claims - The JWT claims
|
|
155
|
+
* @param now - Current timestamp in seconds
|
|
156
|
+
* @param expiresIn - Number of seconds until the token expires
|
|
157
|
+
* @param nonce - Random nonce for the JWT header
|
|
158
|
+
* @returns A JWT token using an Ed25519 key
|
|
159
|
+
* @throws {Error} If key parsing, import, or signing fails
|
|
160
|
+
*/
|
|
161
|
+
async function buildEdwardsJWT(privateKey, keyName, claims, now, expiresIn, nonce) {
|
|
162
|
+
try {
|
|
163
|
+
// Decode the base64 key (expecting 64 bytes: 32 for seed + 32 for public key)
|
|
164
|
+
const decoded = Buffer.from(privateKey, "base64");
|
|
165
|
+
if (decoded.length !== 64) {
|
|
166
|
+
throw new Error("Invalid Ed25519 key length");
|
|
167
|
+
}
|
|
168
|
+
const seed = decoded.subarray(0, 32);
|
|
169
|
+
const publicKey = decoded.subarray(32);
|
|
170
|
+
// Create JWK from the key components
|
|
171
|
+
const jwk = {
|
|
172
|
+
kty: "OKP",
|
|
173
|
+
crv: "Ed25519",
|
|
174
|
+
d: seed.toString("base64url"),
|
|
175
|
+
x: publicKey.toString("base64url"),
|
|
176
|
+
};
|
|
177
|
+
// Import the key for signing
|
|
178
|
+
const key = await importJWK(jwk, "EdDSA");
|
|
179
|
+
// Sign and return the JWT
|
|
180
|
+
return await new SignJWT(claims)
|
|
181
|
+
.setProtectedHeader({ alg: "EdDSA", kid: keyName, typ: "JWT", nonce })
|
|
182
|
+
.setIssuedAt(Math.floor(now))
|
|
183
|
+
.setNotBefore(Math.floor(now))
|
|
184
|
+
.setExpirationTime(Math.floor(now + expiresIn))
|
|
185
|
+
.sign(key);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
throw new Error(`Failed to generate Ed25519 JWT: ${error.message}`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Generates a random nonce for the JWT.
|
|
193
|
+
*
|
|
194
|
+
* @returns {string} The generated nonce.
|
|
195
|
+
*/
|
|
196
|
+
function nonce() {
|
|
197
|
+
return crypto.randomBytes(16).toString("hex");
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=jwt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../auth/utils/jwt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const evm_1 = require("./evm");
|
|
7
|
-
const solana_1 = require("./solana");
|
|
1
|
+
import { AnalyticsConfig } from "../analytics.js";
|
|
2
|
+
import { CdpOpenApiClient } from "../openapi-client/index.js";
|
|
3
|
+
import { version } from "../version.js";
|
|
4
|
+
import { EvmClient } from "./evm/evm.js";
|
|
5
|
+
import { SolanaClient } from "./solana/solana.js";
|
|
8
6
|
/**
|
|
9
7
|
* The main client for interacting with the CDP API.
|
|
10
8
|
*/
|
|
11
|
-
class CdpClient {
|
|
9
|
+
export class CdpClient {
|
|
10
|
+
/** Namespace containing all EVM methods. */
|
|
11
|
+
evm;
|
|
12
|
+
/** Namespace containing all Solana methods. */
|
|
13
|
+
solana;
|
|
12
14
|
/**
|
|
13
15
|
* The CdpClient is the main class for interacting with the CDP API.
|
|
14
16
|
*
|
|
@@ -79,16 +81,17 @@ const cdp = new CdpClient({
|
|
|
79
81
|
For more information, see: https://github.com/coinbase/cdp-sdk/blob/main/typescript/README.md#api-keys.
|
|
80
82
|
`);
|
|
81
83
|
}
|
|
82
|
-
|
|
84
|
+
CdpOpenApiClient.configure({
|
|
83
85
|
...options,
|
|
84
86
|
apiKeyId,
|
|
85
87
|
apiKeySecret,
|
|
86
88
|
walletSecret,
|
|
87
89
|
source: "sdk",
|
|
88
|
-
sourceVersion:
|
|
90
|
+
sourceVersion: version,
|
|
89
91
|
});
|
|
90
|
-
|
|
91
|
-
this.
|
|
92
|
+
AnalyticsConfig.set(apiKeyId);
|
|
93
|
+
this.evm = new EvmClient();
|
|
94
|
+
this.solana = new SolanaClient();
|
|
92
95
|
}
|
|
93
96
|
}
|
|
94
|
-
|
|
97
|
+
//# sourceMappingURL=cdp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../client/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,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,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAelD;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,4CAA4C;IACrC,GAAG,CAAY;IAEtB,+CAA+C;IACxC,MAAM,CAAe;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const toEvmServerAccount_1 = require("../../accounts/evm/toEvmServerAccount");
|
|
8
|
-
const toEvmSmartAccount_1 = require("../../accounts/evm/toEvmSmartAccount");
|
|
1
|
+
import { serializeTransaction } from "viem";
|
|
2
|
+
import { toEvmServerAccount } from "../../accounts/evm/toEvmServerAccount.js";
|
|
3
|
+
import { toEvmSmartAccount } from "../../accounts/evm/toEvmSmartAccount.js";
|
|
4
|
+
import { sendUserOperation, } from "../../actions/evm/sendUserOperation.js";
|
|
5
|
+
import { waitForUserOperation, } from "../../actions/evm/waitForUserOperation.js";
|
|
6
|
+
import { CdpOpenApiClient } from "../../openapi-client/index.js";
|
|
9
7
|
/**
|
|
10
8
|
* The namespace containing all EVM methods.
|
|
11
9
|
*/
|
|
12
|
-
class EvmClient {
|
|
10
|
+
export class EvmClient {
|
|
13
11
|
/**
|
|
14
12
|
* Creates a new CDP EVM account.
|
|
15
13
|
*
|
|
@@ -45,10 +43,10 @@ class EvmClient {
|
|
|
45
43
|
* ```
|
|
46
44
|
*/
|
|
47
45
|
async createAccount(options = {}) {
|
|
48
|
-
const account = await
|
|
46
|
+
const account = await CdpOpenApiClient.createEvmAccount({
|
|
49
47
|
name: options.name,
|
|
50
48
|
}, options.idempotencyKey);
|
|
51
|
-
return
|
|
49
|
+
return toEvmServerAccount(CdpOpenApiClient, {
|
|
52
50
|
account,
|
|
53
51
|
});
|
|
54
52
|
}
|
|
@@ -98,10 +96,10 @@ class EvmClient {
|
|
|
98
96
|
* ```
|
|
99
97
|
*/
|
|
100
98
|
async createSmartAccount(options) {
|
|
101
|
-
const smartAccount = await
|
|
99
|
+
const smartAccount = await CdpOpenApiClient.createEvmSmartAccount({
|
|
102
100
|
owners: [options.owner.address],
|
|
103
101
|
}, options.idempotencyKey);
|
|
104
|
-
return
|
|
102
|
+
return toEvmSmartAccount({
|
|
105
103
|
smartAccount,
|
|
106
104
|
owner: options.owner,
|
|
107
105
|
});
|
|
@@ -134,14 +132,14 @@ class EvmClient {
|
|
|
134
132
|
async getAccount(options) {
|
|
135
133
|
const account = await (() => {
|
|
136
134
|
if (options.address) {
|
|
137
|
-
return
|
|
135
|
+
return CdpOpenApiClient.getEvmAccount(options.address);
|
|
138
136
|
}
|
|
139
137
|
if (options.name) {
|
|
140
|
-
return
|
|
138
|
+
return CdpOpenApiClient.getEvmAccountByName(options.name);
|
|
141
139
|
}
|
|
142
140
|
throw new Error("Either address or name must be provided");
|
|
143
141
|
})();
|
|
144
|
-
return
|
|
142
|
+
return toEvmServerAccount(CdpOpenApiClient, {
|
|
145
143
|
account,
|
|
146
144
|
});
|
|
147
145
|
}
|
|
@@ -165,8 +163,8 @@ class EvmClient {
|
|
|
165
163
|
* ```
|
|
166
164
|
*/
|
|
167
165
|
async getSmartAccount(options) {
|
|
168
|
-
const smartAccount = await
|
|
169
|
-
return
|
|
166
|
+
const smartAccount = await CdpOpenApiClient.getEvmSmartAccount(options.address);
|
|
167
|
+
return toEvmSmartAccount({
|
|
170
168
|
smartAccount,
|
|
171
169
|
owner: options.owner,
|
|
172
170
|
});
|
|
@@ -189,7 +187,7 @@ class EvmClient {
|
|
|
189
187
|
* ```
|
|
190
188
|
*/
|
|
191
189
|
async getUserOperation(options) {
|
|
192
|
-
const userOp = await
|
|
190
|
+
const userOp = await CdpOpenApiClient.getUserOperation(options.smartAccount.address, options.userOpHash);
|
|
193
191
|
return {
|
|
194
192
|
calls: userOp.calls.map(call => ({
|
|
195
193
|
to: call.to,
|
|
@@ -227,17 +225,73 @@ class EvmClient {
|
|
|
227
225
|
* ```
|
|
228
226
|
*/
|
|
229
227
|
async listAccounts(options = {}) {
|
|
230
|
-
const ethAccounts = await
|
|
228
|
+
const ethAccounts = await CdpOpenApiClient.listEvmAccounts({
|
|
231
229
|
pageSize: options.pageSize,
|
|
232
230
|
pageToken: options.pageToken,
|
|
233
231
|
});
|
|
234
232
|
return {
|
|
235
|
-
accounts: ethAccounts.accounts.map(account =>
|
|
233
|
+
accounts: ethAccounts.accounts.map(account => toEvmServerAccount(CdpOpenApiClient, {
|
|
236
234
|
account: account,
|
|
237
235
|
})),
|
|
238
236
|
nextPageToken: ethAccounts.nextPageToken,
|
|
239
237
|
};
|
|
240
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* Lists CDP EVM token balances.
|
|
241
|
+
*
|
|
242
|
+
* @param {ListTokenBalancesOptions} options - Parameters for listing the token balances.
|
|
243
|
+
* @param {number} [options.pageSize] - The number of token balances to return.
|
|
244
|
+
* @param {string} [options.pageToken] - The page token to begin listing from.
|
|
245
|
+
* This is obtained by previous calls to this method.
|
|
246
|
+
*
|
|
247
|
+
* @returns A promise that resolves to an array of token balances, and a token to paginate through the token balances.
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```ts
|
|
251
|
+
* const tokenBalances = await cdp.evm.listTokenBalances({
|
|
252
|
+
* address: "0x1234567890123456789012345678901234567890",
|
|
253
|
+
* network: "base-sepolia",
|
|
254
|
+
* });
|
|
255
|
+
* ```
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* **With pagination**
|
|
259
|
+
* ```ts
|
|
260
|
+
* let page = await cdp.evm.listTokenBalances({
|
|
261
|
+
* address: "0x1234567890123456789012345678901234567890",
|
|
262
|
+
* network: "base-sepolia",
|
|
263
|
+
* });
|
|
264
|
+
*
|
|
265
|
+
* while (page.nextPageToken) {
|
|
266
|
+
* page = await cdp.evm.listTokenBalances({
|
|
267
|
+
* address: "0x1234567890123456789012345678901234567890",
|
|
268
|
+
* network: "base-sepolia",
|
|
269
|
+
* pageToken: page.nextPageToken,
|
|
270
|
+
* });
|
|
271
|
+
* }
|
|
272
|
+
*/
|
|
273
|
+
async listTokenBalances(options) {
|
|
274
|
+
const response = await CdpOpenApiClient.listEvmTokenBalances(options.network, options.address, {
|
|
275
|
+
pageSize: options.pageSize,
|
|
276
|
+
pageToken: options.pageToken,
|
|
277
|
+
});
|
|
278
|
+
const balances = response.balances.map(balance => {
|
|
279
|
+
return {
|
|
280
|
+
token: {
|
|
281
|
+
network: balance.token.network,
|
|
282
|
+
contractAddress: balance.token.contractAddress,
|
|
283
|
+
},
|
|
284
|
+
amount: {
|
|
285
|
+
amount: BigInt(balance.amount.amount),
|
|
286
|
+
decimals: BigInt(balance.amount.decimals),
|
|
287
|
+
},
|
|
288
|
+
};
|
|
289
|
+
});
|
|
290
|
+
return {
|
|
291
|
+
balances,
|
|
292
|
+
nextPageToken: response.nextPageToken,
|
|
293
|
+
};
|
|
294
|
+
}
|
|
241
295
|
/**
|
|
242
296
|
* Lists CDP EVM smart accounts.
|
|
243
297
|
*
|
|
@@ -262,7 +316,7 @@ class EvmClient {
|
|
|
262
316
|
* }
|
|
263
317
|
*/
|
|
264
318
|
async listSmartAccounts(options = {}) {
|
|
265
|
-
const smartAccounts = await
|
|
319
|
+
const smartAccounts = await CdpOpenApiClient.listEvmSmartAccounts({
|
|
266
320
|
pageSize: options.pageSize,
|
|
267
321
|
pageToken: options.pageToken,
|
|
268
322
|
});
|
|
@@ -302,7 +356,7 @@ class EvmClient {
|
|
|
302
356
|
* ```
|
|
303
357
|
*/
|
|
304
358
|
async prepareUserOperation(options) {
|
|
305
|
-
const userOp = await
|
|
359
|
+
const userOp = await CdpOpenApiClient.prepareUserOperation(options.smartAccount.address, {
|
|
306
360
|
network: options.network,
|
|
307
361
|
calls: options.calls.map(call => ({
|
|
308
362
|
to: call.to,
|
|
@@ -343,11 +397,73 @@ class EvmClient {
|
|
|
343
397
|
* ```
|
|
344
398
|
*/
|
|
345
399
|
async requestFaucet(options) {
|
|
346
|
-
const { transactionHash } = await
|
|
400
|
+
const { transactionHash } = await CdpOpenApiClient.requestEvmFaucet({ address: options.address, network: options.network, token: options.token }, options.idempotencyKey);
|
|
347
401
|
return {
|
|
348
402
|
transactionHash: transactionHash,
|
|
349
403
|
};
|
|
350
404
|
}
|
|
405
|
+
/**
|
|
406
|
+
* Signs an EVM transaction and sends it to the specified network using the Coinbase API.
|
|
407
|
+
* This method handles nonce management and gas estimation automatically.
|
|
408
|
+
*
|
|
409
|
+
* @param {SendTransactionOptions} options - Configuration options for sending the transaction.
|
|
410
|
+
* @returns A promise that resolves to the transaction hash.
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* **Sending an RLP-encoded transaction**
|
|
414
|
+
* ```ts
|
|
415
|
+
* import { parseEther, serializeTransaction } from "viem";
|
|
416
|
+
* import { baseSepolia } from "viem/chains";
|
|
417
|
+
*
|
|
418
|
+
* const { transactionHash } = await cdp.evm.sendTransaction({
|
|
419
|
+
* address: account.address,
|
|
420
|
+
* transaction: serializeTransaction({
|
|
421
|
+
* to: "0x4252e0c9A3da5A2700e7d91cb50aEf522D0C6Fe8",
|
|
422
|
+
* value: parseEther("0.000001"),
|
|
423
|
+
* chainId: baseSepolia.id,
|
|
424
|
+
* // Fields below are optional, CDP API will populate them if omitted.
|
|
425
|
+
* // nonce
|
|
426
|
+
* // maxPriorityFeePerGas
|
|
427
|
+
* // maxFeePerGas
|
|
428
|
+
* // gas
|
|
429
|
+
* }),
|
|
430
|
+
* network: "base-sepolia",
|
|
431
|
+
* });
|
|
432
|
+
* ```
|
|
433
|
+
* @example
|
|
434
|
+
* **Sending an EIP-1559 transaction request object**
|
|
435
|
+
* ```ts
|
|
436
|
+
* const { transactionHash } = await cdp.evm.sendTransaction({
|
|
437
|
+
* address: account.address,
|
|
438
|
+
* transaction: {
|
|
439
|
+
* to: "0x4252e0c9A3da5A2700e7d91cb50aEf522D0C6Fe8",
|
|
440
|
+
* value: parseEther("0.000001"),
|
|
441
|
+
* // Fields below are optional, CDP API will populate them if omitted.
|
|
442
|
+
* // nonce
|
|
443
|
+
* // maxPriorityFeePerGas
|
|
444
|
+
* // maxFeePerGas
|
|
445
|
+
* // gas
|
|
446
|
+
* },
|
|
447
|
+
* network: "base-sepolia",
|
|
448
|
+
* });
|
|
449
|
+
* ```
|
|
450
|
+
*/
|
|
451
|
+
async sendTransaction(options) {
|
|
452
|
+
const { address, network, idempotencyKey } = options;
|
|
453
|
+
let transaction = options.transaction;
|
|
454
|
+
if (typeof transaction !== "string") {
|
|
455
|
+
transaction = serializeTransaction({
|
|
456
|
+
...transaction,
|
|
457
|
+
// chainId is ignored in favor of network
|
|
458
|
+
chainId: 1,
|
|
459
|
+
type: "eip1559",
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
const result = await CdpOpenApiClient.sendEvmTransaction(address, { transaction, network }, idempotencyKey);
|
|
463
|
+
return {
|
|
464
|
+
transactionHash: result.transactionHash,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
351
467
|
/**
|
|
352
468
|
* Sends a user operation.
|
|
353
469
|
*
|
|
@@ -377,7 +493,7 @@ class EvmClient {
|
|
|
377
493
|
* ```
|
|
378
494
|
*/
|
|
379
495
|
async sendUserOperation(options) {
|
|
380
|
-
return
|
|
496
|
+
return sendUserOperation(CdpOpenApiClient, options.smartAccount, {
|
|
381
497
|
network: options.network,
|
|
382
498
|
calls: options.calls,
|
|
383
499
|
paymasterUrl: options.paymasterUrl,
|
|
@@ -406,7 +522,7 @@ class EvmClient {
|
|
|
406
522
|
* ```
|
|
407
523
|
*/
|
|
408
524
|
async signHash(options) {
|
|
409
|
-
const signature = await
|
|
525
|
+
const signature = await CdpOpenApiClient.signEvmHash(options.address, {
|
|
410
526
|
hash: options.hash,
|
|
411
527
|
}, options.idempotencyKey);
|
|
412
528
|
return {
|
|
@@ -435,7 +551,7 @@ class EvmClient {
|
|
|
435
551
|
* ```
|
|
436
552
|
*/
|
|
437
553
|
async signMessage(options) {
|
|
438
|
-
const signature = await
|
|
554
|
+
const signature = await CdpOpenApiClient.signEvmMessage(options.address, {
|
|
439
555
|
message: options.message,
|
|
440
556
|
}, options.idempotencyKey);
|
|
441
557
|
return {
|
|
@@ -473,7 +589,7 @@ class EvmClient {
|
|
|
473
589
|
* ```
|
|
474
590
|
*/
|
|
475
591
|
async signTransaction(options) {
|
|
476
|
-
const signature = await
|
|
592
|
+
const signature = await CdpOpenApiClient.signEvmTransaction(options.address, {
|
|
477
593
|
transaction: options.transaction,
|
|
478
594
|
}, options.idempotencyKey);
|
|
479
595
|
return {
|
|
@@ -513,9 +629,9 @@ class EvmClient {
|
|
|
513
629
|
* ```
|
|
514
630
|
*/
|
|
515
631
|
async waitForUserOperation(options) {
|
|
516
|
-
return
|
|
632
|
+
return waitForUserOperation(CdpOpenApiClient, {
|
|
517
633
|
...options,
|
|
518
634
|
});
|
|
519
635
|
}
|
|
520
636
|
}
|
|
521
|
-
|
|
637
|
+
//# sourceMappingURL=evm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../client/evm/evm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evm.types.js","sourceRoot":"","sources":["../../../client/evm/evm.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../client/solana/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|