@coinbase/cdp-sdk 1.11.0 → 1.12.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.
Files changed (89) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +117 -0
  3. package/_cjs/accounts/evm/toEvmServerAccount.js +14 -0
  4. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  5. package/_cjs/actions/evm/swap/createSwapQuote.js +126 -0
  6. package/_cjs/actions/evm/swap/createSwapQuote.js.map +1 -0
  7. package/_cjs/actions/evm/swap/getSwapPrice.js +86 -0
  8. package/_cjs/actions/evm/swap/getSwapPrice.js.map +1 -0
  9. package/_cjs/actions/evm/swap/sendSwapTransaction.js +141 -0
  10. package/_cjs/actions/evm/swap/sendSwapTransaction.js.map +1 -0
  11. package/_cjs/actions/evm/swap/types.js +3 -0
  12. package/_cjs/actions/evm/swap/types.js.map +1 -0
  13. package/_cjs/client/evm/evm.js +46 -1
  14. package/_cjs/client/evm/evm.js.map +1 -1
  15. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +6 -1
  16. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  17. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.js +26 -0
  18. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.js.map +1 -0
  19. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.msw.js +179 -0
  20. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.msw.js.map +1 -0
  21. package/_cjs/openapi-client/generated/index.msw.js +5 -4
  22. package/_cjs/openapi-client/generated/index.msw.js.map +1 -1
  23. package/_cjs/openapi-client/index.js +4 -0
  24. package/_cjs/openapi-client/index.js.map +1 -1
  25. package/_cjs/version.js +1 -1
  26. package/_esm/accounts/evm/toEvmServerAccount.js +14 -0
  27. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  28. package/_esm/actions/evm/swap/createSwapQuote.js +123 -0
  29. package/_esm/actions/evm/swap/createSwapQuote.js.map +1 -0
  30. package/_esm/actions/evm/swap/getSwapPrice.js +83 -0
  31. package/_esm/actions/evm/swap/getSwapPrice.js.map +1 -0
  32. package/_esm/actions/evm/swap/sendSwapTransaction.js +138 -0
  33. package/_esm/actions/evm/swap/sendSwapTransaction.js.map +1 -0
  34. package/_esm/actions/evm/swap/types.js +2 -0
  35. package/_esm/actions/evm/swap/types.js.map +1 -0
  36. package/_esm/client/evm/evm.js +46 -1
  37. package/_esm/client/evm/evm.js.map +1 -1
  38. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +5 -0
  39. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  40. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.js +21 -0
  41. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.js.map +1 -0
  42. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.msw.js +167 -0
  43. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.msw.js.map +1 -0
  44. package/_esm/openapi-client/generated/index.msw.js +5 -4
  45. package/_esm/openapi-client/generated/index.msw.js.map +1 -1
  46. package/_esm/openapi-client/index.js +4 -0
  47. package/_esm/openapi-client/index.js.map +1 -1
  48. package/_esm/version.js +1 -1
  49. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
  50. package/_types/actions/evm/swap/createSwapQuote.d.ts +23 -0
  51. package/_types/actions/evm/swap/createSwapQuote.d.ts.map +1 -0
  52. package/_types/actions/evm/swap/getSwapPrice.d.ts +23 -0
  53. package/_types/actions/evm/swap/getSwapPrice.d.ts.map +1 -0
  54. package/_types/actions/evm/swap/sendSwapTransaction.d.ts +64 -0
  55. package/_types/actions/evm/swap/sendSwapTransaction.d.ts.map +1 -0
  56. package/_types/actions/evm/swap/types.d.ts +80 -0
  57. package/_types/actions/evm/swap/types.d.ts.map +1 -0
  58. package/_types/actions/evm/types.d.ts +86 -0
  59. package/_types/actions/evm/types.d.ts.map +1 -1
  60. package/_types/client/evm/evm.d.ts +39 -1
  61. package/_types/client/evm/evm.d.ts.map +1 -1
  62. package/_types/client/evm/evm.types.d.ts +207 -3
  63. package/_types/client/evm/evm.types.d.ts.map +1 -1
  64. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +300 -3
  65. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
  66. package/_types/openapi-client/generated/evm-swaps/evm-swaps.d.ts +24 -0
  67. package/_types/openapi-client/generated/evm-swaps/evm-swaps.d.ts.map +1 -0
  68. package/_types/openapi-client/generated/evm-swaps/evm-swaps.msw.d.ts +12 -0
  69. package/_types/openapi-client/generated/evm-swaps/evm-swaps.msw.d.ts.map +1 -0
  70. package/_types/openapi-client/generated/index.msw.d.ts +5 -4
  71. package/_types/openapi-client/generated/index.msw.d.ts.map +1 -1
  72. package/_types/openapi-client/index.d.ts +5 -0
  73. package/_types/openapi-client/index.d.ts.map +1 -1
  74. package/_types/version.d.ts +1 -1
  75. package/accounts/evm/toEvmServerAccount.ts +21 -0
  76. package/actions/evm/swap/createSwapQuote.ts +148 -0
  77. package/actions/evm/swap/getSwapPrice.ts +95 -0
  78. package/actions/evm/swap/sendSwapTransaction.ts +173 -0
  79. package/actions/evm/swap/types.ts +94 -0
  80. package/actions/evm/types.ts +88 -0
  81. package/client/evm/evm.ts +58 -1
  82. package/client/evm/evm.types.ts +225 -1
  83. package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +329 -3
  84. package/openapi-client/generated/evm-swaps/evm-swaps.msw.ts +217 -0
  85. package/openapi-client/generated/evm-swaps/evm-swaps.ts +51 -0
  86. package/openapi-client/generated/index.msw.ts +5 -4
  87. package/openapi-client/index.ts +4 -0
  88. package/package.json +1 -1
  89. package/version.ts +1 -1
@@ -0,0 +1,217 @@
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
+ CreateSwapQuoteResponse,
14
+ CreateSwapQuoteResponseWrapper,
15
+ GetSwapPriceResponse,
16
+ GetSwapPriceResponseWrapper,
17
+ SwapUnavailableResponse,
18
+ } from "../coinbaseDeveloperPlatformAPIs.schemas.js";
19
+
20
+ export const getGetEvmSwapPriceResponseGetSwapPriceResponseMock = (
21
+ overrideResponse: Partial<GetSwapPriceResponse> = {},
22
+ ): GetSwapPriceResponse => ({
23
+ ...{
24
+ ...{
25
+ blockNumber: faker.helpers.fromRegExp("^[1-9]\d*$"),
26
+ toAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
27
+ toToken: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
28
+ fees: {
29
+ gasFee: {
30
+ ...{
31
+ amount: faker.helpers.fromRegExp("^\d+$"),
32
+ token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
33
+ },
34
+ },
35
+ protocolFee: {
36
+ ...{
37
+ amount: faker.helpers.fromRegExp("^\d+$"),
38
+ token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
39
+ },
40
+ },
41
+ },
42
+ issues: {
43
+ allowance: {
44
+ currentAllowance: faker.helpers.fromRegExp("^\d+$"),
45
+ spender: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
46
+ },
47
+ balance: {
48
+ token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
49
+ currentBalance: faker.helpers.fromRegExp("^\d+$"),
50
+ requiredBalance: faker.helpers.fromRegExp("^\d+$"),
51
+ },
52
+ simulationIncomplete: faker.datatype.boolean(),
53
+ },
54
+ liquidityAvailable: faker.datatype.boolean(),
55
+ minToAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
56
+ fromAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
57
+ fromToken: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
58
+ },
59
+ ...{
60
+ gas: faker.helpers.arrayElement([faker.helpers.fromRegExp("^\d+$"), null]),
61
+ gasPrice: faker.helpers.fromRegExp("^\d+$"),
62
+ },
63
+ },
64
+ ...overrideResponse,
65
+ });
66
+
67
+ export const getGetEvmSwapPriceResponseSwapUnavailableResponseMock = (
68
+ overrideResponse: Partial<SwapUnavailableResponse> = {},
69
+ ): SwapUnavailableResponse => ({
70
+ ...{ liquidityAvailable: faker.datatype.boolean() },
71
+ ...overrideResponse,
72
+ });
73
+
74
+ export const getGetEvmSwapPriceResponseMock = (): GetSwapPriceResponseWrapper =>
75
+ faker.helpers.arrayElement([
76
+ { ...getGetEvmSwapPriceResponseGetSwapPriceResponseMock() },
77
+ { ...getGetEvmSwapPriceResponseSwapUnavailableResponseMock() },
78
+ ]);
79
+
80
+ export const getCreateEvmSwapQuoteResponseCreateSwapQuoteResponseMock = (
81
+ overrideResponse: Partial<CreateSwapQuoteResponse> = {},
82
+ ): CreateSwapQuoteResponse => ({
83
+ ...{
84
+ ...{
85
+ permit2: {
86
+ hash: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{64}$"),
87
+ eip712: {
88
+ domain: {
89
+ name: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
90
+ version: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
91
+ chainId: faker.helpers.arrayElement([
92
+ faker.number.int({ min: undefined, max: undefined }),
93
+ undefined,
94
+ ]),
95
+ verifyingContract: faker.helpers.arrayElement([
96
+ faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
97
+ undefined,
98
+ ]),
99
+ salt: faker.helpers.arrayElement([
100
+ faker.helpers.fromRegExp("^0x[a-fA-F0-9]{64}$"),
101
+ undefined,
102
+ ]),
103
+ },
104
+ types: {},
105
+ primaryType: faker.string.alpha(20),
106
+ message: {},
107
+ },
108
+ },
109
+ transaction: {
110
+ to: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
111
+ data: faker.string.alpha(20),
112
+ gas: faker.helpers.fromRegExp("^\d+$"),
113
+ gasPrice: faker.helpers.fromRegExp("^\d+$"),
114
+ value: faker.helpers.fromRegExp("^\d+$"),
115
+ },
116
+ },
117
+ ...{
118
+ blockNumber: faker.helpers.fromRegExp("^[1-9]\d*$"),
119
+ toAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
120
+ toToken: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
121
+ fees: {
122
+ gasFee: {
123
+ ...{
124
+ amount: faker.helpers.fromRegExp("^\d+$"),
125
+ token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
126
+ },
127
+ },
128
+ protocolFee: {
129
+ ...{
130
+ amount: faker.helpers.fromRegExp("^\d+$"),
131
+ token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
132
+ },
133
+ },
134
+ },
135
+ issues: {
136
+ allowance: {
137
+ currentAllowance: faker.helpers.fromRegExp("^\d+$"),
138
+ spender: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
139
+ },
140
+ balance: {
141
+ token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
142
+ currentBalance: faker.helpers.fromRegExp("^\d+$"),
143
+ requiredBalance: faker.helpers.fromRegExp("^\d+$"),
144
+ },
145
+ simulationIncomplete: faker.datatype.boolean(),
146
+ },
147
+ liquidityAvailable: faker.datatype.boolean(),
148
+ minToAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
149
+ fromAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
150
+ fromToken: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
151
+ },
152
+ },
153
+ ...overrideResponse,
154
+ });
155
+
156
+ export const getCreateEvmSwapQuoteResponseSwapUnavailableResponseMock = (
157
+ overrideResponse: Partial<SwapUnavailableResponse> = {},
158
+ ): SwapUnavailableResponse => ({
159
+ ...{ liquidityAvailable: faker.datatype.boolean() },
160
+ ...overrideResponse,
161
+ });
162
+
163
+ export const getCreateEvmSwapQuoteResponseMock = (): CreateSwapQuoteResponseWrapper =>
164
+ faker.helpers.arrayElement([
165
+ { ...getCreateEvmSwapQuoteResponseCreateSwapQuoteResponseMock() },
166
+ { ...getCreateEvmSwapQuoteResponseSwapUnavailableResponseMock() },
167
+ ]);
168
+
169
+ export const getGetEvmSwapPriceMockHandler = (
170
+ overrideResponse?:
171
+ | GetSwapPriceResponseWrapper
172
+ | ((
173
+ info: Parameters<Parameters<typeof http.get>[1]>[0],
174
+ ) => Promise<GetSwapPriceResponseWrapper> | GetSwapPriceResponseWrapper),
175
+ ) => {
176
+ return http.get("*/v2/evm/swaps/quote", async info => {
177
+ await delay(0);
178
+
179
+ return new HttpResponse(
180
+ JSON.stringify(
181
+ overrideResponse !== undefined
182
+ ? typeof overrideResponse === "function"
183
+ ? await overrideResponse(info)
184
+ : overrideResponse
185
+ : getGetEvmSwapPriceResponseMock(),
186
+ ),
187
+ { status: 200, headers: { "Content-Type": "application/json" } },
188
+ );
189
+ });
190
+ };
191
+
192
+ export const getCreateEvmSwapQuoteMockHandler = (
193
+ overrideResponse?:
194
+ | CreateSwapQuoteResponseWrapper
195
+ | ((
196
+ info: Parameters<Parameters<typeof http.post>[1]>[0],
197
+ ) => Promise<CreateSwapQuoteResponseWrapper> | CreateSwapQuoteResponseWrapper),
198
+ ) => {
199
+ return http.post("*/v2/evm/swaps", async info => {
200
+ await delay(0);
201
+
202
+ return new HttpResponse(
203
+ JSON.stringify(
204
+ overrideResponse !== undefined
205
+ ? typeof overrideResponse === "function"
206
+ ? await overrideResponse(info)
207
+ : overrideResponse
208
+ : getCreateEvmSwapQuoteResponseMock(),
209
+ ),
210
+ { status: 201, headers: { "Content-Type": "application/json" } },
211
+ );
212
+ });
213
+ };
214
+ export const getEvmSwapsMock = () => [
215
+ getGetEvmSwapPriceMockHandler(),
216
+ getCreateEvmSwapQuoteMockHandler(),
217
+ ];
@@ -0,0 +1,51 @@
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
+ CreateEvmSwapQuoteBody,
10
+ CreateSwapQuoteResponseWrapper,
11
+ GetEvmSwapPriceParams,
12
+ GetSwapPriceResponseWrapper,
13
+ } from "../coinbaseDeveloperPlatformAPIs.schemas.js";
14
+
15
+ import { cdpApiClient } from "../../cdpApiClient.js";
16
+
17
+ type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
18
+
19
+ /**
20
+ * Get a price estimate for a swap between two tokens on an EVM network.
21
+ * @summary Get a price estimate for a swap
22
+ */
23
+ export const getEvmSwapPrice = (
24
+ params: GetEvmSwapPriceParams,
25
+ options?: SecondParameter<typeof cdpApiClient>,
26
+ ) => {
27
+ return cdpApiClient<GetSwapPriceResponseWrapper>(
28
+ { url: `/v2/evm/swaps/quote`, method: "GET", params },
29
+ options,
30
+ );
31
+ };
32
+ /**
33
+ * Create a swap quote, which includes the payload to sign as well as the transaction data needed to execute the swap. The developer is responsible for signing the payload and submitting the transaction to the network in order to execute the swap.
34
+ * @summary Create a swap quote
35
+ */
36
+ export const createEvmSwapQuote = (
37
+ createEvmSwapQuoteBody: CreateEvmSwapQuoteBody,
38
+ options?: SecondParameter<typeof cdpApiClient>,
39
+ ) => {
40
+ return cdpApiClient<CreateSwapQuoteResponseWrapper>(
41
+ {
42
+ url: `/v2/evm/swaps`,
43
+ method: "POST",
44
+ headers: { "Content-Type": "application/json" },
45
+ data: createEvmSwapQuoteBody,
46
+ },
47
+ options,
48
+ );
49
+ };
50
+ export type GetEvmSwapPriceResult = NonNullable<Awaited<ReturnType<typeof getEvmSwapPrice>>>;
51
+ export type CreateEvmSwapQuoteResult = NonNullable<Awaited<ReturnType<typeof createEvmSwapQuote>>>;
@@ -1,7 +1,8 @@
1
- export * from "./evm-token-balances/evm-token-balances.msw.js";
2
- export * from "./evm-accounts/evm-accounts.msw.js";
3
- export * from "./faucets/faucets.msw.js";
4
- export * from "./solana-accounts/solana-accounts.msw.js";
5
1
  export * from "./payments-alpha/payments-alpha.msw.js";
2
+ export * from "./solana-accounts/solana-accounts.msw.js";
3
+ export * from "./evm-token-balances/evm-token-balances.msw.js";
6
4
  export * from "./policy-engine/policy-engine.msw.js";
5
+ export * from "./evm-accounts/evm-accounts.msw.js";
7
6
  export * from "./evm-smart-accounts/evm-smart-accounts.msw.js";
7
+ export * from "./evm-swaps/evm-swaps.msw.js";
8
+ export * from "./faucets/faucets.msw.js";
@@ -1,6 +1,7 @@
1
1
  export * from "./generated/coinbaseDeveloperPlatformAPIs.schemas.js";
2
2
  export * from "./generated/evm-accounts/evm-accounts.js";
3
3
  export * from "./generated/evm-smart-accounts/evm-smart-accounts.js";
4
+ export * from "./generated/evm-swaps/evm-swaps.js";
4
5
  export * from "./generated/evm-token-balances/evm-token-balances.js";
5
6
  export * from "./generated/solana-accounts/solana-accounts.js";
6
7
  export * from "./generated/faucets/faucets.js";
@@ -10,6 +11,7 @@ export * from "./generated/payments-alpha/payments-alpha.js";
10
11
  import { configure } from "./cdpApiClient.js";
11
12
  import * as evm from "./generated/evm-accounts/evm-accounts.js";
12
13
  import * as evmSmartAccounts from "./generated/evm-smart-accounts/evm-smart-accounts.js";
14
+ import * as evmSwaps from "./generated/evm-swaps/evm-swaps.js";
13
15
  import * as evmTokenBalances from "./generated/evm-token-balances/evm-token-balances.js";
14
16
  import * as faucets from "./generated/faucets/faucets.js";
15
17
  import * as payments from "./generated/payments-alpha/payments-alpha.js";
@@ -19,6 +21,7 @@ import * as solana from "./generated/solana-accounts/solana-accounts.js";
19
21
  export const CdpOpenApiClient = {
20
22
  ...evm,
21
23
  ...evmSmartAccounts,
24
+ ...evmSwaps,
22
25
  ...evmTokenBalances,
23
26
  ...solana,
24
27
  ...faucets,
@@ -30,6 +33,7 @@ export const CdpOpenApiClient = {
30
33
  export const OpenApiEvmMethods = {
31
34
  ...evm,
32
35
  ...evmSmartAccounts,
36
+ ...evmSwaps,
33
37
  ...evmTokenBalances,
34
38
  requestEvmFaucet: faucets.requestEvmFaucet,
35
39
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cdp-sdk",
3
- "version": "1.11.0",
3
+ "version": "1.12.0",
4
4
  "description": "SDK for interacting with the Coinbase Developer Platform Wallet API",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
package/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "1.11.0";
1
+ export const version = "1.12.0";