@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,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by orval v7.6.0 🍺
|
|
3
|
+
* Do not edit manually.
|
|
4
|
+
* Coinbase Developer Platform APIs
|
|
5
|
+
* The Coinbase Developer Platform APIs - leading the world's transition onchain.
|
|
6
|
+
* OpenAPI spec version: 2.0.0
|
|
7
|
+
*/
|
|
8
|
+
import { faker } from "@faker-js/faker";
|
|
9
|
+
|
|
10
|
+
import { HttpResponse, delay, http } from "msw";
|
|
11
|
+
|
|
12
|
+
import type {
|
|
13
|
+
ListSolanaAccounts200,
|
|
14
|
+
SignSolanaMessage200,
|
|
15
|
+
SignSolanaTransaction200,
|
|
16
|
+
SolanaAccount,
|
|
17
|
+
} from "../coinbaseDeveloperPlatformAPIs.schemas.js";
|
|
18
|
+
|
|
19
|
+
export const getListSolanaAccountsResponseMock = (): ListSolanaAccounts200 => ({
|
|
20
|
+
...{
|
|
21
|
+
accounts: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(
|
|
22
|
+
() => ({
|
|
23
|
+
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
|
|
24
|
+
name: faker.helpers.arrayElement([
|
|
25
|
+
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
|
|
26
|
+
undefined,
|
|
27
|
+
]),
|
|
28
|
+
}),
|
|
29
|
+
),
|
|
30
|
+
},
|
|
31
|
+
...{ nextPageToken: faker.helpers.arrayElement([faker.string.alpha(20), undefined]) },
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
export const getCreateSolanaAccountResponseMock = (
|
|
35
|
+
overrideResponse: Partial<SolanaAccount> = {},
|
|
36
|
+
): SolanaAccount => ({
|
|
37
|
+
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
|
|
38
|
+
name: faker.helpers.arrayElement([
|
|
39
|
+
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
|
|
40
|
+
undefined,
|
|
41
|
+
]),
|
|
42
|
+
...overrideResponse,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
export const getGetSolanaAccountResponseMock = (
|
|
46
|
+
overrideResponse: Partial<SolanaAccount> = {},
|
|
47
|
+
): SolanaAccount => ({
|
|
48
|
+
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
|
|
49
|
+
name: faker.helpers.arrayElement([
|
|
50
|
+
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
|
|
51
|
+
undefined,
|
|
52
|
+
]),
|
|
53
|
+
...overrideResponse,
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export const getGetSolanaAccountByNameResponseMock = (
|
|
57
|
+
overrideResponse: Partial<SolanaAccount> = {},
|
|
58
|
+
): SolanaAccount => ({
|
|
59
|
+
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
|
|
60
|
+
name: faker.helpers.arrayElement([
|
|
61
|
+
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
|
|
62
|
+
undefined,
|
|
63
|
+
]),
|
|
64
|
+
...overrideResponse,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
export const getSignSolanaTransactionResponseMock = (
|
|
68
|
+
overrideResponse: Partial<SignSolanaTransaction200> = {},
|
|
69
|
+
): SignSolanaTransaction200 => ({ signedTransaction: faker.string.alpha(20), ...overrideResponse });
|
|
70
|
+
|
|
71
|
+
export const getSignSolanaMessageResponseMock = (
|
|
72
|
+
overrideResponse: Partial<SignSolanaMessage200> = {},
|
|
73
|
+
): SignSolanaMessage200 => ({ signature: faker.string.alpha(20), ...overrideResponse });
|
|
74
|
+
|
|
75
|
+
export const getListSolanaAccountsMockHandler = (
|
|
76
|
+
overrideResponse?:
|
|
77
|
+
| ListSolanaAccounts200
|
|
78
|
+
| ((
|
|
79
|
+
info: Parameters<Parameters<typeof http.get>[1]>[0],
|
|
80
|
+
) => Promise<ListSolanaAccounts200> | ListSolanaAccounts200),
|
|
81
|
+
) => {
|
|
82
|
+
return http.get("*/v2/solana/accounts", async info => {
|
|
83
|
+
await delay(0);
|
|
84
|
+
|
|
85
|
+
return new HttpResponse(
|
|
86
|
+
JSON.stringify(
|
|
87
|
+
overrideResponse !== undefined
|
|
88
|
+
? typeof overrideResponse === "function"
|
|
89
|
+
? await overrideResponse(info)
|
|
90
|
+
: overrideResponse
|
|
91
|
+
: getListSolanaAccountsResponseMock(),
|
|
92
|
+
),
|
|
93
|
+
{ status: 200, headers: { "Content-Type": "application/json" } },
|
|
94
|
+
);
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export const getCreateSolanaAccountMockHandler = (
|
|
99
|
+
overrideResponse?:
|
|
100
|
+
| SolanaAccount
|
|
101
|
+
| ((
|
|
102
|
+
info: Parameters<Parameters<typeof http.post>[1]>[0],
|
|
103
|
+
) => Promise<SolanaAccount> | SolanaAccount),
|
|
104
|
+
) => {
|
|
105
|
+
return http.post("*/v2/solana/accounts", async info => {
|
|
106
|
+
await delay(0);
|
|
107
|
+
|
|
108
|
+
return new HttpResponse(
|
|
109
|
+
JSON.stringify(
|
|
110
|
+
overrideResponse !== undefined
|
|
111
|
+
? typeof overrideResponse === "function"
|
|
112
|
+
? await overrideResponse(info)
|
|
113
|
+
: overrideResponse
|
|
114
|
+
: getCreateSolanaAccountResponseMock(),
|
|
115
|
+
),
|
|
116
|
+
{ status: 201, headers: { "Content-Type": "application/json" } },
|
|
117
|
+
);
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
export const getGetSolanaAccountMockHandler = (
|
|
122
|
+
overrideResponse?:
|
|
123
|
+
| SolanaAccount
|
|
124
|
+
| ((
|
|
125
|
+
info: Parameters<Parameters<typeof http.get>[1]>[0],
|
|
126
|
+
) => Promise<SolanaAccount> | SolanaAccount),
|
|
127
|
+
) => {
|
|
128
|
+
return http.get("*/v2/solana/accounts/:address", async info => {
|
|
129
|
+
await delay(0);
|
|
130
|
+
|
|
131
|
+
return new HttpResponse(
|
|
132
|
+
JSON.stringify(
|
|
133
|
+
overrideResponse !== undefined
|
|
134
|
+
? typeof overrideResponse === "function"
|
|
135
|
+
? await overrideResponse(info)
|
|
136
|
+
: overrideResponse
|
|
137
|
+
: getGetSolanaAccountResponseMock(),
|
|
138
|
+
),
|
|
139
|
+
{ status: 200, headers: { "Content-Type": "application/json" } },
|
|
140
|
+
);
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
export const getGetSolanaAccountByNameMockHandler = (
|
|
145
|
+
overrideResponse?:
|
|
146
|
+
| SolanaAccount
|
|
147
|
+
| ((
|
|
148
|
+
info: Parameters<Parameters<typeof http.get>[1]>[0],
|
|
149
|
+
) => Promise<SolanaAccount> | SolanaAccount),
|
|
150
|
+
) => {
|
|
151
|
+
return http.get("*/v2/solana/accounts/by-name/:name", async info => {
|
|
152
|
+
await delay(0);
|
|
153
|
+
|
|
154
|
+
return new HttpResponse(
|
|
155
|
+
JSON.stringify(
|
|
156
|
+
overrideResponse !== undefined
|
|
157
|
+
? typeof overrideResponse === "function"
|
|
158
|
+
? await overrideResponse(info)
|
|
159
|
+
: overrideResponse
|
|
160
|
+
: getGetSolanaAccountByNameResponseMock(),
|
|
161
|
+
),
|
|
162
|
+
{ status: 200, headers: { "Content-Type": "application/json" } },
|
|
163
|
+
);
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export const getSignSolanaTransactionMockHandler = (
|
|
168
|
+
overrideResponse?:
|
|
169
|
+
| SignSolanaTransaction200
|
|
170
|
+
| ((
|
|
171
|
+
info: Parameters<Parameters<typeof http.post>[1]>[0],
|
|
172
|
+
) => Promise<SignSolanaTransaction200> | SignSolanaTransaction200),
|
|
173
|
+
) => {
|
|
174
|
+
return http.post("*/v2/solana/accounts/:address/sign/transaction", async info => {
|
|
175
|
+
await delay(0);
|
|
176
|
+
|
|
177
|
+
return new HttpResponse(
|
|
178
|
+
JSON.stringify(
|
|
179
|
+
overrideResponse !== undefined
|
|
180
|
+
? typeof overrideResponse === "function"
|
|
181
|
+
? await overrideResponse(info)
|
|
182
|
+
: overrideResponse
|
|
183
|
+
: getSignSolanaTransactionResponseMock(),
|
|
184
|
+
),
|
|
185
|
+
{ status: 200, headers: { "Content-Type": "application/json" } },
|
|
186
|
+
);
|
|
187
|
+
});
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
export const getSignSolanaMessageMockHandler = (
|
|
191
|
+
overrideResponse?:
|
|
192
|
+
| SignSolanaMessage200
|
|
193
|
+
| ((
|
|
194
|
+
info: Parameters<Parameters<typeof http.post>[1]>[0],
|
|
195
|
+
) => Promise<SignSolanaMessage200> | SignSolanaMessage200),
|
|
196
|
+
) => {
|
|
197
|
+
return http.post("*/v2/solana/accounts/:address/sign/message", async info => {
|
|
198
|
+
await delay(0);
|
|
199
|
+
|
|
200
|
+
return new HttpResponse(
|
|
201
|
+
JSON.stringify(
|
|
202
|
+
overrideResponse !== undefined
|
|
203
|
+
? typeof overrideResponse === "function"
|
|
204
|
+
? await overrideResponse(info)
|
|
205
|
+
: overrideResponse
|
|
206
|
+
: getSignSolanaMessageResponseMock(),
|
|
207
|
+
),
|
|
208
|
+
{ status: 200, headers: { "Content-Type": "application/json" } },
|
|
209
|
+
);
|
|
210
|
+
});
|
|
211
|
+
};
|
|
212
|
+
export const getSolanaAccountsMock = () => [
|
|
213
|
+
getListSolanaAccountsMockHandler(),
|
|
214
|
+
getCreateSolanaAccountMockHandler(),
|
|
215
|
+
getGetSolanaAccountMockHandler(),
|
|
216
|
+
getGetSolanaAccountByNameMockHandler(),
|
|
217
|
+
getSignSolanaTransactionMockHandler(),
|
|
218
|
+
getSignSolanaMessageMockHandler(),
|
|
219
|
+
];
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by orval v7.6.0 🍺
|
|
3
|
+
* Do not edit manually.
|
|
4
|
+
* Coinbase Developer Platform APIs
|
|
5
|
+
* The Coinbase Developer Platform APIs - leading the world's transition onchain.
|
|
6
|
+
* OpenAPI spec version: 2.0.0
|
|
7
|
+
*/
|
|
8
|
+
import type {
|
|
9
|
+
CreateSolanaAccountBody,
|
|
10
|
+
ListSolanaAccounts200,
|
|
11
|
+
ListSolanaAccountsParams,
|
|
12
|
+
SignSolanaMessage200,
|
|
13
|
+
SignSolanaMessageBody,
|
|
14
|
+
SignSolanaTransaction200,
|
|
15
|
+
SignSolanaTransactionBody,
|
|
16
|
+
SolanaAccount,
|
|
17
|
+
} from "../coinbaseDeveloperPlatformAPIs.schemas.js";
|
|
18
|
+
|
|
19
|
+
import { cdpApiClient } from "../../cdpApiClient.js";
|
|
20
|
+
|
|
21
|
+
type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Lists the Solana accounts belonging to the developer.
|
|
25
|
+
The response is paginated, and by default, returns 20 accounts per page.
|
|
26
|
+
|
|
27
|
+
If a name is provided, the response will contain only the account with that name.
|
|
28
|
+
* @summary List Solana accounts or get account by name
|
|
29
|
+
*/
|
|
30
|
+
export const listSolanaAccounts = (
|
|
31
|
+
params?: ListSolanaAccountsParams,
|
|
32
|
+
options?: SecondParameter<typeof cdpApiClient>,
|
|
33
|
+
) => {
|
|
34
|
+
return cdpApiClient<ListSolanaAccounts200>(
|
|
35
|
+
{ url: `/v2/solana/accounts`, method: "GET", params },
|
|
36
|
+
options,
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new Solana account.
|
|
41
|
+
* @summary Create a Solana account
|
|
42
|
+
*/
|
|
43
|
+
export const createSolanaAccount = (
|
|
44
|
+
createSolanaAccountBody?: CreateSolanaAccountBody,
|
|
45
|
+
options?: SecondParameter<typeof cdpApiClient>,
|
|
46
|
+
) => {
|
|
47
|
+
return cdpApiClient<SolanaAccount>(
|
|
48
|
+
{
|
|
49
|
+
url: `/v2/solana/accounts`,
|
|
50
|
+
method: "POST",
|
|
51
|
+
headers: { "Content-Type": "application/json" },
|
|
52
|
+
data: createSolanaAccountBody,
|
|
53
|
+
},
|
|
54
|
+
options,
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Gets a Solana account by its address.
|
|
59
|
+
* @summary Get a Solana account by address
|
|
60
|
+
*/
|
|
61
|
+
export const getSolanaAccount = (
|
|
62
|
+
address: string,
|
|
63
|
+
options?: SecondParameter<typeof cdpApiClient>,
|
|
64
|
+
) => {
|
|
65
|
+
return cdpApiClient<SolanaAccount>(
|
|
66
|
+
{ url: `/v2/solana/accounts/${address}`, method: "GET" },
|
|
67
|
+
options,
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Gets a Solana account by its name.
|
|
72
|
+
* @summary Get a Solana account by name
|
|
73
|
+
*/
|
|
74
|
+
export const getSolanaAccountByName = (
|
|
75
|
+
name: string,
|
|
76
|
+
options?: SecondParameter<typeof cdpApiClient>,
|
|
77
|
+
) => {
|
|
78
|
+
return cdpApiClient<SolanaAccount>(
|
|
79
|
+
{ url: `/v2/solana/accounts/by-name/${name}`, method: "GET" },
|
|
80
|
+
options,
|
|
81
|
+
);
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Signs a transaction with the given Solana account.
|
|
85
|
+
The unsigned transaction should be serialized into a byte array and then encoded as base64.
|
|
86
|
+
|
|
87
|
+
**Transaction types**
|
|
88
|
+
|
|
89
|
+
The following transaction types are supported:
|
|
90
|
+
* [Legacy transactions](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html)
|
|
91
|
+
* [Versioned transactions](https://solana-labs.github.io/solana-web3.js/classes/VersionedTransaction.html)
|
|
92
|
+
|
|
93
|
+
The developer is responsible for ensuring that the unsigned transaction is valid, as the API will not validate the transaction.
|
|
94
|
+
* @summary Sign a transaction
|
|
95
|
+
*/
|
|
96
|
+
export const signSolanaTransaction = (
|
|
97
|
+
address: string,
|
|
98
|
+
signSolanaTransactionBody: SignSolanaTransactionBody,
|
|
99
|
+
options?: SecondParameter<typeof cdpApiClient>,
|
|
100
|
+
) => {
|
|
101
|
+
return cdpApiClient<SignSolanaTransaction200>(
|
|
102
|
+
{
|
|
103
|
+
url: `/v2/solana/accounts/${address}/sign/transaction`,
|
|
104
|
+
method: "POST",
|
|
105
|
+
headers: { "Content-Type": "application/json" },
|
|
106
|
+
data: signSolanaTransactionBody,
|
|
107
|
+
},
|
|
108
|
+
options,
|
|
109
|
+
);
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Signs an arbitrary message with the given Solana account.
|
|
113
|
+
|
|
114
|
+
**WARNING:** Never sign a message that you didn't generate, as it can be an arbitrary transaction. For example, it might send all of your funds to an attacker.
|
|
115
|
+
* @summary Sign a message
|
|
116
|
+
*/
|
|
117
|
+
export const signSolanaMessage = (
|
|
118
|
+
address: string,
|
|
119
|
+
signSolanaMessageBody: SignSolanaMessageBody,
|
|
120
|
+
options?: SecondParameter<typeof cdpApiClient>,
|
|
121
|
+
) => {
|
|
122
|
+
return cdpApiClient<SignSolanaMessage200>(
|
|
123
|
+
{
|
|
124
|
+
url: `/v2/solana/accounts/${address}/sign/message`,
|
|
125
|
+
method: "POST",
|
|
126
|
+
headers: { "Content-Type": "application/json" },
|
|
127
|
+
data: signSolanaMessageBody,
|
|
128
|
+
},
|
|
129
|
+
options,
|
|
130
|
+
);
|
|
131
|
+
};
|
|
132
|
+
export type ListSolanaAccountsResult = NonNullable<Awaited<ReturnType<typeof listSolanaAccounts>>>;
|
|
133
|
+
export type CreateSolanaAccountResult = NonNullable<
|
|
134
|
+
Awaited<ReturnType<typeof createSolanaAccount>>
|
|
135
|
+
>;
|
|
136
|
+
export type GetSolanaAccountResult = NonNullable<Awaited<ReturnType<typeof getSolanaAccount>>>;
|
|
137
|
+
export type GetSolanaAccountByNameResult = NonNullable<
|
|
138
|
+
Awaited<ReturnType<typeof getSolanaAccountByName>>
|
|
139
|
+
>;
|
|
140
|
+
export type SignSolanaTransactionResult = NonNullable<
|
|
141
|
+
Awaited<ReturnType<typeof signSolanaTransaction>>
|
|
142
|
+
>;
|
|
143
|
+
export type SignSolanaMessageResult = NonNullable<Awaited<ReturnType<typeof signSolanaMessage>>>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export * from "./generated/coinbaseDeveloperPlatformAPIs.schemas.js";
|
|
2
|
+
export * from "./generated/evm-accounts/evm-accounts.js";
|
|
3
|
+
export * from "./generated/evm-smart-accounts/evm-smart-accounts.js";
|
|
4
|
+
export * from "./generated/evm-token-balances/evm-token-balances.js";
|
|
5
|
+
export * from "./generated/solana-accounts/solana-accounts.js";
|
|
6
|
+
export * from "./generated/faucets/faucets.js";
|
|
7
|
+
|
|
8
|
+
import { configure } from "./cdpApiClient.js";
|
|
9
|
+
import * as evm from "./generated/evm-accounts/evm-accounts.js";
|
|
10
|
+
import * as evmSmartAccounts from "./generated/evm-smart-accounts/evm-smart-accounts.js";
|
|
11
|
+
import * as evmTokenBalances from "./generated/evm-token-balances/evm-token-balances.js";
|
|
12
|
+
import * as faucets from "./generated/faucets/faucets.js";
|
|
13
|
+
import * as solana from "./generated/solana-accounts/solana-accounts.js";
|
|
14
|
+
|
|
15
|
+
export const CdpOpenApiClient = {
|
|
16
|
+
...evm,
|
|
17
|
+
...evmSmartAccounts,
|
|
18
|
+
...evmTokenBalances,
|
|
19
|
+
...solana,
|
|
20
|
+
...faucets,
|
|
21
|
+
configure,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const OpenApiEvmMethods = {
|
|
25
|
+
...evm,
|
|
26
|
+
...evmSmartAccounts,
|
|
27
|
+
...evmTokenBalances,
|
|
28
|
+
requestEvmFaucet: faucets.requestEvmFaucet,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const OpenApiSolanaMethods = {
|
|
32
|
+
...solana,
|
|
33
|
+
requestSolanaFaucet: faucets.requestSolanaFaucet,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export type CdpOpenApiClientType = typeof CdpOpenApiClient;
|
package/package.json
CHANGED
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cdp-sdk",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
5
|
-
"main": "
|
|
6
|
-
"
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "SDK for interacting with the Coinbase Developer Platform Wallet API",
|
|
5
|
+
"main": "./_cjs/index.js",
|
|
6
|
+
"module": "./_esm/index.js",
|
|
7
|
+
"types": "./_types/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./_types/index.d.ts",
|
|
11
|
+
"import": "./_esm/index.js",
|
|
12
|
+
"default": "./_cjs/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./auth": {
|
|
15
|
+
"types": "./_types/auth/index.d.ts",
|
|
16
|
+
"import": "./_esm/auth/index.js",
|
|
17
|
+
"default": "./_cjs/auth/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@solana/web3.js": "^1.98.1",
|
|
22
|
+
"abitype": "1.0.6",
|
|
23
|
+
"axios": "^1.8.2",
|
|
24
|
+
"jose": "^6.0.8",
|
|
25
|
+
"md5": "^2.3.0",
|
|
26
|
+
"viem": "^2.21.26"
|
|
27
|
+
},
|
|
28
|
+
"author": "Coinbase Inc.",
|
|
7
29
|
"repository": "https://github.com/coinbase/cdp-sdk",
|
|
30
|
+
"license": "MIT",
|
|
8
31
|
"files": [
|
|
9
|
-
"
|
|
32
|
+
"*",
|
|
33
|
+
"!**/*.test.ts",
|
|
34
|
+
"!examples"
|
|
10
35
|
],
|
|
11
36
|
"keywords": [
|
|
12
37
|
"coinbase",
|
|
@@ -15,65 +40,5 @@
|
|
|
15
40
|
"cdp sdk",
|
|
16
41
|
"sdk",
|
|
17
42
|
"api"
|
|
18
|
-
]
|
|
19
|
-
"author": "Coinbase Inc.",
|
|
20
|
-
"license": "MIT",
|
|
21
|
-
"dependencies": {
|
|
22
|
-
"@solana/web3.js": "^1.98.0",
|
|
23
|
-
"abitype": "1.0.6",
|
|
24
|
-
"axios": "^1.8.2",
|
|
25
|
-
"jose": "^6.0.8",
|
|
26
|
-
"md5": "^2.3.0",
|
|
27
|
-
"viem": "^2.21.26"
|
|
28
|
-
},
|
|
29
|
-
"devDependencies": {
|
|
30
|
-
"@changesets/changelog-github": "^0.5.1",
|
|
31
|
-
"@changesets/cli": "^2.28.1",
|
|
32
|
-
"@faker-js/faker": "^9.6.0",
|
|
33
|
-
"@types/node": "^20.12.11",
|
|
34
|
-
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
35
|
-
"@typescript-eslint/parser": "^7.18.0",
|
|
36
|
-
"@vitest/coverage-v8": "^1.4.0",
|
|
37
|
-
"bs58": "^6.0.0",
|
|
38
|
-
"dotenv": "^16.4.7",
|
|
39
|
-
"eslint": "^8.57.1",
|
|
40
|
-
"eslint-config-prettier": "^9.1.0",
|
|
41
|
-
"eslint-plugin-jsdoc": "^48.11.0",
|
|
42
|
-
"eslint-plugin-prettier": "^5.2.5",
|
|
43
|
-
"msw": "^2.7.3",
|
|
44
|
-
"orval": "^7.6.0",
|
|
45
|
-
"prettier": "^3.2.5",
|
|
46
|
-
"tsx": "^4.19.3",
|
|
47
|
-
"typedoc": "^0.27.2",
|
|
48
|
-
"typescript": "^5.4.5",
|
|
49
|
-
"uuid": "^11.1.0",
|
|
50
|
-
"vitest": "^1.4.0"
|
|
51
|
-
},
|
|
52
|
-
"exports": {
|
|
53
|
-
".": {
|
|
54
|
-
"types": "./dist/index.d.ts",
|
|
55
|
-
"default": "./dist/index.js"
|
|
56
|
-
},
|
|
57
|
-
"./auth": {
|
|
58
|
-
"types": "./dist/auth/index.d.ts",
|
|
59
|
-
"default": "./dist/auth/index.js"
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
"scripts": {
|
|
63
|
-
"changeset": "changeset",
|
|
64
|
-
"changeset:version": "changeset version",
|
|
65
|
-
"lint": "eslint -c .eslintrc.json \"src/**/*.ts\"",
|
|
66
|
-
"lint:fix": "eslint -c .eslintrc.json \"src/**/*.ts\" --fix",
|
|
67
|
-
"format": "prettier -c .prettierrc --write \"**/*.{ts,js,cjs,json,md}\"",
|
|
68
|
-
"format:check": "prettier -c .prettierrc --check \"**/*.{ts,js,cjs,json,md}\"",
|
|
69
|
-
"test": "vitest --config=./vitest.config.ts run",
|
|
70
|
-
"test:watch": "vitest --config=./vitest.config.ts",
|
|
71
|
-
"test:coverage": "vitest --config=./vitest.config.ts run --coverage",
|
|
72
|
-
"test:e2e": "pnpm build && vitest --config=./vitest.e2e.config.ts run",
|
|
73
|
-
"test:e2e:watch": "vitest --config=./vitest.e2e.config.ts",
|
|
74
|
-
"clean": "rm -rf dist/*",
|
|
75
|
-
"build": "tsc",
|
|
76
|
-
"docs": "typedoc --entryPoints ./src --entryPointStrategy expand --exclude ./src/tests/**/*.ts",
|
|
77
|
-
"orval": "make -C .. check-openapi || echo \" NOTE: THERE IS A NEW OPENAPI FILE AVAILABLE. RUN 'make update-openapi' IN THE ROOT DIRECTORY TO UPDATE IT.\"; orval --config orval.config.ts"
|
|
78
|
-
}
|
|
43
|
+
]
|
|
79
44
|
}
|
package/types/calls.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// Adapted from viem (https://github.com/wevm/viem)
|
|
3
|
+
|
|
4
|
+
import type { AbiStateMutability, Address } from "viem";
|
|
5
|
+
import type { GetMulticallContractParameters } from "./multicall.js";
|
|
6
|
+
import type { OneOf, Prettify } from "./utils.js";
|
|
7
|
+
import type { Hex } from "./misc.js";
|
|
8
|
+
|
|
9
|
+
export type Call<call = unknown, extraProperties extends Record<string, unknown> = {}> = OneOf<
|
|
10
|
+
| (extraProperties & {
|
|
11
|
+
data?: Hex | undefined;
|
|
12
|
+
to: Address;
|
|
13
|
+
value?: bigint | undefined;
|
|
14
|
+
})
|
|
15
|
+
| (extraProperties &
|
|
16
|
+
(Omit<GetMulticallContractParameters<call, AbiStateMutability>, "address"> & {
|
|
17
|
+
to: Address;
|
|
18
|
+
value?: bigint | undefined;
|
|
19
|
+
}))
|
|
20
|
+
>;
|
|
21
|
+
|
|
22
|
+
export type Calls<
|
|
23
|
+
calls extends readonly unknown[],
|
|
24
|
+
extraProperties extends Record<string, unknown> = {},
|
|
25
|
+
///
|
|
26
|
+
result extends readonly any[] = [],
|
|
27
|
+
> = calls extends readonly [] // no calls, return empty
|
|
28
|
+
? readonly []
|
|
29
|
+
: calls extends readonly [infer call] // one call left before returning `result`
|
|
30
|
+
? readonly [...result, Prettify<Call<call, extraProperties>>]
|
|
31
|
+
: calls extends readonly [infer call, ...infer rest] // grab first call and recurse through `rest`
|
|
32
|
+
? Calls<[...rest], extraProperties, [...result, Prettify<Call<call, extraProperties>>]>
|
|
33
|
+
: readonly unknown[] extends calls
|
|
34
|
+
? calls
|
|
35
|
+
: // If `calls` is *some* array but we couldn't assign `unknown[]` to it, then it must hold some known/homogenous type!
|
|
36
|
+
// use this to infer the param types in the case of Array.map() argument
|
|
37
|
+
calls extends readonly (infer call extends OneOf<Call>)[]
|
|
38
|
+
? readonly Prettify<call>[]
|
|
39
|
+
: // Fallback
|
|
40
|
+
readonly OneOf<Call>[];
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// Adapted from viem (https://github.com/wevm/viem)
|
|
3
|
+
|
|
4
|
+
import type {
|
|
5
|
+
Abi,
|
|
6
|
+
AbiFunction,
|
|
7
|
+
AbiParametersToPrimitiveTypes,
|
|
8
|
+
AbiStateMutability,
|
|
9
|
+
Address,
|
|
10
|
+
ExtractAbiFunction,
|
|
11
|
+
ExtractAbiFunctionNames,
|
|
12
|
+
ResolvedRegister,
|
|
13
|
+
} from "abitype";
|
|
14
|
+
|
|
15
|
+
import type { Hex } from "./misc.js";
|
|
16
|
+
import type { IsUnion, UnionToTuple } from "./utils.js";
|
|
17
|
+
|
|
18
|
+
export type ContractFunctionName<
|
|
19
|
+
abi extends Abi | readonly unknown[] = Abi,
|
|
20
|
+
mutability extends AbiStateMutability = AbiStateMutability,
|
|
21
|
+
> =
|
|
22
|
+
ExtractAbiFunctionNames<
|
|
23
|
+
abi extends Abi ? abi : Abi,
|
|
24
|
+
mutability
|
|
25
|
+
> extends infer functionName extends string
|
|
26
|
+
? [functionName] extends [never]
|
|
27
|
+
? string
|
|
28
|
+
: functionName
|
|
29
|
+
: string;
|
|
30
|
+
|
|
31
|
+
export type ContractFunctionArgs<
|
|
32
|
+
abi extends Abi | readonly unknown[] = Abi,
|
|
33
|
+
mutability extends AbiStateMutability = AbiStateMutability,
|
|
34
|
+
functionName extends ContractFunctionName<abi, mutability> = ContractFunctionName<
|
|
35
|
+
abi,
|
|
36
|
+
mutability
|
|
37
|
+
>,
|
|
38
|
+
> =
|
|
39
|
+
AbiParametersToPrimitiveTypes<
|
|
40
|
+
ExtractAbiFunction<abi extends Abi ? abi : Abi, functionName, mutability>["inputs"],
|
|
41
|
+
"inputs"
|
|
42
|
+
> extends infer args
|
|
43
|
+
? [args] extends [never]
|
|
44
|
+
? readonly unknown[]
|
|
45
|
+
: args
|
|
46
|
+
: readonly unknown[];
|
|
47
|
+
|
|
48
|
+
export type Widen<type> =
|
|
49
|
+
| ([unknown] extends [type] ? unknown : never)
|
|
50
|
+
| (type extends Function ? type : never)
|
|
51
|
+
| (type extends ResolvedRegister["BigIntType"] ? bigint : never)
|
|
52
|
+
| (type extends boolean ? boolean : never)
|
|
53
|
+
| (type extends ResolvedRegister["IntType"] ? number : never)
|
|
54
|
+
| (type extends string
|
|
55
|
+
? type extends ResolvedRegister["AddressType"]
|
|
56
|
+
? ResolvedRegister["AddressType"]
|
|
57
|
+
: type extends ResolvedRegister["BytesType"]["inputs"]
|
|
58
|
+
? ResolvedRegister["BytesType"]
|
|
59
|
+
: string
|
|
60
|
+
: never)
|
|
61
|
+
| (type extends readonly [] ? readonly [] : never)
|
|
62
|
+
| (type extends Record<string, unknown> ? { [K in keyof type]: Widen<type[K]> } : never)
|
|
63
|
+
| (type extends { length: number }
|
|
64
|
+
? {
|
|
65
|
+
[K in keyof type]: Widen<type[K]>;
|
|
66
|
+
} extends infer Val extends readonly unknown[]
|
|
67
|
+
? readonly [...Val]
|
|
68
|
+
: never
|
|
69
|
+
: never);
|
|
70
|
+
|
|
71
|
+
export type UnionWiden<type> = type extends any ? Widen<type> : never;
|
|
72
|
+
|
|
73
|
+
export type ExtractAbiFunctionForArgs<
|
|
74
|
+
abi extends Abi,
|
|
75
|
+
mutability extends AbiStateMutability,
|
|
76
|
+
functionName extends ContractFunctionName<abi, mutability>,
|
|
77
|
+
args extends ContractFunctionArgs<abi, mutability, functionName>,
|
|
78
|
+
> =
|
|
79
|
+
ExtractAbiFunction<abi, functionName, mutability> extends infer abiFunction extends AbiFunction
|
|
80
|
+
? IsUnion<abiFunction> extends true // narrow overloads using `args` by converting to tuple and filtering out overloads that don't match
|
|
81
|
+
? UnionToTuple<abiFunction> extends infer abiFunctions extends readonly AbiFunction[]
|
|
82
|
+
? // convert back to union (removes `never` tuple entries)
|
|
83
|
+
{ [k in keyof abiFunctions]: CheckArgs<abiFunctions[k], args> }[number]
|
|
84
|
+
: never
|
|
85
|
+
: abiFunction
|
|
86
|
+
: never;
|
|
87
|
+
type CheckArgs<
|
|
88
|
+
abiFunction extends AbiFunction,
|
|
89
|
+
args,
|
|
90
|
+
///
|
|
91
|
+
targetArgs extends AbiParametersToPrimitiveTypes<
|
|
92
|
+
abiFunction["inputs"],
|
|
93
|
+
"inputs"
|
|
94
|
+
> = AbiParametersToPrimitiveTypes<abiFunction["inputs"], "inputs">,
|
|
95
|
+
> = (readonly [] extends args ? readonly [] : args) extends targetArgs // fallback to `readonly []` if `args` has no value (e.g. `args` property not provided)
|
|
96
|
+
? abiFunction
|
|
97
|
+
: never;
|
|
98
|
+
|
|
99
|
+
export type ContractFunctionParameters<
|
|
100
|
+
abi extends Abi | readonly unknown[] = Abi,
|
|
101
|
+
mutability extends AbiStateMutability = AbiStateMutability,
|
|
102
|
+
functionName extends ContractFunctionName<abi, mutability> = ContractFunctionName<
|
|
103
|
+
abi,
|
|
104
|
+
mutability
|
|
105
|
+
>,
|
|
106
|
+
args extends ContractFunctionArgs<abi, mutability, functionName> = ContractFunctionArgs<
|
|
107
|
+
abi,
|
|
108
|
+
mutability,
|
|
109
|
+
functionName
|
|
110
|
+
>,
|
|
111
|
+
deployless extends boolean = false,
|
|
112
|
+
///
|
|
113
|
+
allFunctionNames = ContractFunctionName<abi, mutability>,
|
|
114
|
+
allArgs = ContractFunctionArgs<abi, mutability, functionName>,
|
|
115
|
+
/*
|
|
116
|
+
* when `args` is inferred to `readonly []` ("inputs": []) or `never` (`abi` declared as `Abi` or not inferrable), allow `args` to be optional.
|
|
117
|
+
* important that both branches return same structural type
|
|
118
|
+
*/
|
|
119
|
+
> = {
|
|
120
|
+
abi: abi;
|
|
121
|
+
functionName:
|
|
122
|
+
| allFunctionNames // show all options
|
|
123
|
+
| (functionName extends allFunctionNames ? functionName : never); // infer value
|
|
124
|
+
args?: (abi extends Abi ? UnionWiden<args> : never) | allArgs | undefined;
|
|
125
|
+
} & (readonly [] extends allArgs ? {} : { args: Widen<args> }) &
|
|
126
|
+
(deployless extends true ? { address?: undefined; code: Hex } : { address: Address });
|