@coinbase/cdp-sdk 1.10.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 (159) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +137 -0
  3. package/_cjs/accounts/evm/toEvmServerAccount.js +32 -0
  4. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  5. package/_cjs/accounts/evm/toEvmSmartAccount.js +18 -0
  6. package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
  7. package/_cjs/actions/evm/fund/Quote.js +63 -0
  8. package/_cjs/actions/evm/fund/Quote.js.map +1 -0
  9. package/_cjs/actions/evm/fund/fund.js +49 -0
  10. package/_cjs/actions/evm/fund/fund.js.map +1 -0
  11. package/_cjs/actions/evm/fund/quoteFund.js +46 -0
  12. package/_cjs/actions/evm/fund/quoteFund.js.map +1 -0
  13. package/_cjs/actions/evm/fund/types.js +3 -0
  14. package/_cjs/actions/evm/fund/types.js.map +1 -0
  15. package/_cjs/actions/evm/fund/waitForFundOperationReceipt.js +64 -0
  16. package/_cjs/actions/evm/fund/waitForFundOperationReceipt.js.map +1 -0
  17. package/_cjs/actions/evm/swap/createSwapQuote.js +126 -0
  18. package/_cjs/actions/evm/swap/createSwapQuote.js.map +1 -0
  19. package/_cjs/actions/evm/swap/getSwapPrice.js +86 -0
  20. package/_cjs/actions/evm/swap/getSwapPrice.js.map +1 -0
  21. package/_cjs/actions/evm/swap/sendSwapTransaction.js +141 -0
  22. package/_cjs/actions/evm/swap/sendSwapTransaction.js.map +1 -0
  23. package/_cjs/actions/evm/swap/types.js +3 -0
  24. package/_cjs/actions/evm/swap/types.js.map +1 -0
  25. package/_cjs/client/evm/evm.js +47 -1
  26. package/_cjs/client/evm/evm.js.map +1 -1
  27. package/_cjs/client/solana/solana.js +4 -1
  28. package/_cjs/client/solana/solana.js.map +1 -1
  29. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +45 -1
  30. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  31. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.js +26 -0
  32. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.js.map +1 -0
  33. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.msw.js +179 -0
  34. package/_cjs/openapi-client/generated/evm-swaps/evm-swaps.msw.js.map +1 -0
  35. package/_cjs/openapi-client/generated/index.msw.js +5 -3
  36. package/_cjs/openapi-client/generated/index.msw.js.map +1 -1
  37. package/_cjs/openapi-client/generated/payments-alpha/payments-alpha.js +50 -0
  38. package/_cjs/openapi-client/generated/payments-alpha/payments-alpha.js.map +1 -0
  39. package/_cjs/openapi-client/generated/payments-alpha/payments-alpha.msw.js +270 -0
  40. package/_cjs/openapi-client/generated/payments-alpha/payments-alpha.msw.js.map +1 -0
  41. package/_cjs/openapi-client/index.js +7 -0
  42. package/_cjs/openapi-client/index.js.map +1 -1
  43. package/_cjs/version.js +1 -1
  44. package/_esm/accounts/evm/toEvmServerAccount.js +32 -0
  45. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  46. package/_esm/accounts/evm/toEvmSmartAccount.js +18 -0
  47. package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
  48. package/_esm/actions/evm/fund/Quote.js +59 -0
  49. package/_esm/actions/evm/fund/Quote.js.map +1 -0
  50. package/_esm/actions/evm/fund/fund.js +46 -0
  51. package/_esm/actions/evm/fund/fund.js.map +1 -0
  52. package/_esm/actions/evm/fund/quoteFund.js +43 -0
  53. package/_esm/actions/evm/fund/quoteFund.js.map +1 -0
  54. package/_esm/actions/evm/fund/types.js +2 -0
  55. package/_esm/actions/evm/fund/types.js.map +1 -0
  56. package/_esm/actions/evm/fund/waitForFundOperationReceipt.js +61 -0
  57. package/_esm/actions/evm/fund/waitForFundOperationReceipt.js.map +1 -0
  58. package/_esm/actions/evm/swap/createSwapQuote.js +123 -0
  59. package/_esm/actions/evm/swap/createSwapQuote.js.map +1 -0
  60. package/_esm/actions/evm/swap/getSwapPrice.js +83 -0
  61. package/_esm/actions/evm/swap/getSwapPrice.js.map +1 -0
  62. package/_esm/actions/evm/swap/sendSwapTransaction.js +138 -0
  63. package/_esm/actions/evm/swap/sendSwapTransaction.js.map +1 -0
  64. package/_esm/actions/evm/swap/types.js +2 -0
  65. package/_esm/actions/evm/swap/types.js.map +1 -0
  66. package/_esm/client/evm/evm.js +47 -1
  67. package/_esm/client/evm/evm.js.map +1 -1
  68. package/_esm/client/solana/solana.js +4 -1
  69. package/_esm/client/solana/solana.js.map +1 -1
  70. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +44 -0
  71. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  72. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.js +21 -0
  73. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.js.map +1 -0
  74. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.msw.js +167 -0
  75. package/_esm/openapi-client/generated/evm-swaps/evm-swaps.msw.js.map +1 -0
  76. package/_esm/openapi-client/generated/index.msw.js +5 -3
  77. package/_esm/openapi-client/generated/index.msw.js.map +1 -1
  78. package/_esm/openapi-client/generated/payments-alpha/payments-alpha.js +42 -0
  79. package/_esm/openapi-client/generated/payments-alpha/payments-alpha.js.map +1 -0
  80. package/_esm/openapi-client/generated/payments-alpha/payments-alpha.msw.js +250 -0
  81. package/_esm/openapi-client/generated/payments-alpha/payments-alpha.msw.js.map +1 -0
  82. package/_esm/openapi-client/index.js +7 -0
  83. package/_esm/openapi-client/index.js.map +1 -1
  84. package/_esm/version.js +1 -1
  85. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
  86. package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
  87. package/_types/accounts/evm/types.d.ts +1 -2
  88. package/_types/accounts/evm/types.d.ts.map +1 -1
  89. package/_types/actions/evm/fund/Quote.d.ts +51 -0
  90. package/_types/actions/evm/fund/Quote.d.ts.map +1 -0
  91. package/_types/actions/evm/fund/fund.d.ts +25 -0
  92. package/_types/actions/evm/fund/fund.d.ts.map +1 -0
  93. package/_types/actions/evm/fund/quoteFund.d.ts +25 -0
  94. package/_types/actions/evm/fund/quoteFund.d.ts.map +1 -0
  95. package/_types/actions/evm/fund/types.d.ts +16 -0
  96. package/_types/actions/evm/fund/types.d.ts.map +1 -0
  97. package/_types/actions/evm/fund/waitForFundOperationReceipt.d.ts +68 -0
  98. package/_types/actions/evm/fund/waitForFundOperationReceipt.d.ts.map +1 -0
  99. package/_types/actions/evm/swap/createSwapQuote.d.ts +23 -0
  100. package/_types/actions/evm/swap/createSwapQuote.d.ts.map +1 -0
  101. package/_types/actions/evm/swap/getSwapPrice.d.ts +23 -0
  102. package/_types/actions/evm/swap/getSwapPrice.d.ts.map +1 -0
  103. package/_types/actions/evm/swap/sendSwapTransaction.d.ts +64 -0
  104. package/_types/actions/evm/swap/sendSwapTransaction.d.ts.map +1 -0
  105. package/_types/actions/evm/swap/types.d.ts +80 -0
  106. package/_types/actions/evm/swap/types.d.ts.map +1 -0
  107. package/_types/actions/evm/types.d.ts +151 -0
  108. package/_types/actions/evm/types.d.ts.map +1 -1
  109. package/_types/client/evm/evm.d.ts +39 -1
  110. package/_types/client/evm/evm.d.ts.map +1 -1
  111. package/_types/client/evm/evm.types.d.ts +209 -3
  112. package/_types/client/evm/evm.types.d.ts.map +1 -1
  113. package/_types/client/solana/solana.d.ts.map +1 -1
  114. package/_types/client/solana/solana.types.d.ts +2 -0
  115. package/_types/client/solana/solana.types.d.ts.map +1 -1
  116. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +547 -3
  117. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
  118. package/_types/openapi-client/generated/evm-swaps/evm-swaps.d.ts +24 -0
  119. package/_types/openapi-client/generated/evm-swaps/evm-swaps.d.ts.map +1 -0
  120. package/_types/openapi-client/generated/evm-swaps/evm-swaps.msw.d.ts +12 -0
  121. package/_types/openapi-client/generated/evm-swaps/evm-swaps.msw.d.ts.map +1 -0
  122. package/_types/openapi-client/generated/index.msw.d.ts +5 -3
  123. package/_types/openapi-client/generated/index.msw.d.ts.map +1 -1
  124. package/_types/openapi-client/generated/payments-alpha/payments-alpha.d.ts +42 -0
  125. package/_types/openapi-client/generated/payments-alpha/payments-alpha.d.ts.map +1 -0
  126. package/_types/openapi-client/generated/payments-alpha/payments-alpha.msw.d.ts +20 -0
  127. package/_types/openapi-client/generated/payments-alpha/payments-alpha.msw.d.ts.map +1 -0
  128. package/_types/openapi-client/index.d.ts +11 -0
  129. package/_types/openapi-client/index.d.ts.map +1 -1
  130. package/_types/types/misc.d.ts +2 -2
  131. package/_types/types/misc.d.ts.map +1 -1
  132. package/_types/version.d.ts +1 -1
  133. package/accounts/evm/toEvmServerAccount.ts +47 -0
  134. package/accounts/evm/toEvmSmartAccount.ts +26 -0
  135. package/accounts/evm/types.ts +1 -2
  136. package/actions/evm/fund/Quote.ts +83 -0
  137. package/actions/evm/fund/fund.ts +76 -0
  138. package/actions/evm/fund/quoteFund.ts +81 -0
  139. package/actions/evm/fund/types.ts +16 -0
  140. package/actions/evm/fund/waitForFundOperationReceipt.ts +118 -0
  141. package/actions/evm/swap/createSwapQuote.ts +148 -0
  142. package/actions/evm/swap/getSwapPrice.ts +95 -0
  143. package/actions/evm/swap/sendSwapTransaction.ts +173 -0
  144. package/actions/evm/swap/types.ts +94 -0
  145. package/actions/evm/types.ts +161 -0
  146. package/client/evm/evm.ts +59 -1
  147. package/client/evm/evm.types.ts +227 -1
  148. package/client/solana/solana.ts +4 -1
  149. package/client/solana/solana.types.ts +2 -0
  150. package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +617 -3
  151. package/openapi-client/generated/evm-swaps/evm-swaps.msw.ts +217 -0
  152. package/openapi-client/generated/evm-swaps/evm-swaps.ts +51 -0
  153. package/openapi-client/generated/index.msw.ts +5 -3
  154. package/openapi-client/generated/payments-alpha/payments-alpha.msw.ts +369 -0
  155. package/openapi-client/generated/payments-alpha/payments-alpha.ts +96 -0
  156. package/openapi-client/index.ts +7 -0
  157. package/package.json +1 -1
  158. package/types/misc.ts +2 -2
  159. 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,6 +1,8 @@
1
- export * from "./evm-accounts/evm-accounts.msw.js";
1
+ export * from "./payments-alpha/payments-alpha.msw.js";
2
+ export * from "./solana-accounts/solana-accounts.msw.js";
2
3
  export * from "./evm-token-balances/evm-token-balances.msw.js";
4
+ export * from "./policy-engine/policy-engine.msw.js";
5
+ export * from "./evm-accounts/evm-accounts.msw.js";
3
6
  export * from "./evm-smart-accounts/evm-smart-accounts.msw.js";
7
+ export * from "./evm-swaps/evm-swaps.msw.js";
4
8
  export * from "./faucets/faucets.msw.js";
5
- export * from "./policy-engine/policy-engine.msw.js";
6
- export * from "./solana-accounts/solana-accounts.msw.js";
@@ -0,0 +1,369 @@
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 { PaymentRailAction } from "../coinbaseDeveloperPlatformAPIs.schemas.js";
13
+ import type {
14
+ CreatePaymentTransferQuote201,
15
+ CryptoRail,
16
+ CryptoRailAddress,
17
+ PaymentMethod,
18
+ PaymentMethodRequest,
19
+ Transfer,
20
+ } from "../coinbaseDeveloperPlatformAPIs.schemas.js";
21
+
22
+ export const getGetPaymentMethodsResponseMock = (): PaymentMethod[] =>
23
+ Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => ({
24
+ id: faker.helpers.fromRegExp(
25
+ "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
26
+ ),
27
+ type: faker.helpers.arrayElement(["card", "fiat_account"] as const),
28
+ currency: faker.string.alpha(20),
29
+ actions: faker.helpers.arrayElements(Object.values(PaymentRailAction)),
30
+ limits: faker.helpers.arrayElement([
31
+ {
32
+ sourceLimit: faker.helpers.arrayElement([
33
+ {
34
+ amount: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
35
+ currency: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
36
+ },
37
+ undefined,
38
+ ]),
39
+ targetLimit: faker.helpers.arrayElement([
40
+ {
41
+ amount: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
42
+ currency: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
43
+ },
44
+ undefined,
45
+ ]),
46
+ },
47
+ undefined,
48
+ ]),
49
+ }));
50
+
51
+ export const getGetCryptoRailsResponseMock = (): CryptoRail[] =>
52
+ Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => ({
53
+ currency: faker.string.alpha(20),
54
+ name: faker.string.alpha(20),
55
+ networks: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(
56
+ () => ({
57
+ name: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
58
+ chainId: faker.helpers.arrayElement([
59
+ faker.number.int({ min: undefined, max: undefined }),
60
+ undefined,
61
+ ]),
62
+ contractAddress: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
63
+ }),
64
+ ),
65
+ actions: faker.helpers.arrayElements(Object.values(PaymentRailAction)),
66
+ }));
67
+
68
+ export const getCreatePaymentTransferQuoteResponsePaymentMethodRequestMock = (
69
+ overrideResponse: Partial<PaymentMethodRequest> = {},
70
+ ): PaymentMethodRequest => ({
71
+ ...{
72
+ id: faker.helpers.fromRegExp(
73
+ "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
74
+ ),
75
+ },
76
+ ...overrideResponse,
77
+ });
78
+
79
+ export const getCreatePaymentTransferQuoteResponseCryptoRailAddressMock = (
80
+ overrideResponse: Partial<CryptoRailAddress> = {},
81
+ ): CryptoRailAddress => ({
82
+ ...{
83
+ currency: faker.string.alpha(20),
84
+ network: faker.string.alpha(20),
85
+ address: faker.string.alpha(20),
86
+ },
87
+ ...overrideResponse,
88
+ });
89
+
90
+ export const getCreatePaymentTransferQuoteResponseMock = (
91
+ overrideResponse: Partial<CreatePaymentTransferQuote201> = {},
92
+ ): CreatePaymentTransferQuote201 => ({
93
+ transfer: {
94
+ id: faker.helpers.fromRegExp(
95
+ "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
96
+ ),
97
+ sourceType: faker.helpers.arrayElement(["payment_method"] as const),
98
+ source: faker.helpers.arrayElement([
99
+ { ...getCreatePaymentTransferQuoteResponsePaymentMethodRequestMock() },
100
+ ]),
101
+ targetType: faker.helpers.arrayElement(["crypto_rail"] as const),
102
+ target: faker.helpers.arrayElement([
103
+ { ...getCreatePaymentTransferQuoteResponseCryptoRailAddressMock() },
104
+ ]),
105
+ sourceAmount: faker.string.alpha(20),
106
+ sourceCurrency: faker.string.alpha(20),
107
+ targetAmount: faker.string.alpha(20),
108
+ targetCurrency: faker.string.alpha(20),
109
+ userAmount: faker.string.alpha(20),
110
+ userCurrency: faker.string.alpha(20),
111
+ fees: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(
112
+ () => ({
113
+ type: faker.helpers.arrayElement(["exchange_fee", "network_fee"] as const),
114
+ amount: faker.string.alpha(20),
115
+ currency: faker.string.alpha(20),
116
+ description: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
117
+ }),
118
+ ),
119
+ status: faker.helpers.arrayElement([
120
+ "created",
121
+ "pending",
122
+ "started",
123
+ "completed",
124
+ "failed",
125
+ ] as const),
126
+ createdAt: faker.string.alpha(20),
127
+ updatedAt: faker.string.alpha(20),
128
+ transactionHash: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
129
+ },
130
+ ...overrideResponse,
131
+ });
132
+
133
+ export const getExecutePaymentTransferQuoteResponsePaymentMethodRequestMock = (
134
+ overrideResponse: Partial<PaymentMethodRequest> = {},
135
+ ): PaymentMethodRequest => ({
136
+ ...{
137
+ id: faker.helpers.fromRegExp(
138
+ "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
139
+ ),
140
+ },
141
+ ...overrideResponse,
142
+ });
143
+
144
+ export const getExecutePaymentTransferQuoteResponseCryptoRailAddressMock = (
145
+ overrideResponse: Partial<CryptoRailAddress> = {},
146
+ ): CryptoRailAddress => ({
147
+ ...{
148
+ currency: faker.string.alpha(20),
149
+ network: faker.string.alpha(20),
150
+ address: faker.string.alpha(20),
151
+ },
152
+ ...overrideResponse,
153
+ });
154
+
155
+ export const getExecutePaymentTransferQuoteResponseMock = (
156
+ overrideResponse: Partial<Transfer> = {},
157
+ ): Transfer => ({
158
+ id: faker.helpers.fromRegExp(
159
+ "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
160
+ ),
161
+ sourceType: faker.helpers.arrayElement(["payment_method"] as const),
162
+ source: faker.helpers.arrayElement([
163
+ { ...getExecutePaymentTransferQuoteResponsePaymentMethodRequestMock() },
164
+ ]),
165
+ targetType: faker.helpers.arrayElement(["crypto_rail"] as const),
166
+ target: faker.helpers.arrayElement([
167
+ { ...getExecutePaymentTransferQuoteResponseCryptoRailAddressMock() },
168
+ ]),
169
+ sourceAmount: faker.string.alpha(20),
170
+ sourceCurrency: faker.string.alpha(20),
171
+ targetAmount: faker.string.alpha(20),
172
+ targetCurrency: faker.string.alpha(20),
173
+ userAmount: faker.string.alpha(20),
174
+ userCurrency: faker.string.alpha(20),
175
+ fees: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => ({
176
+ type: faker.helpers.arrayElement(["exchange_fee", "network_fee"] as const),
177
+ amount: faker.string.alpha(20),
178
+ currency: faker.string.alpha(20),
179
+ description: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
180
+ })),
181
+ status: faker.helpers.arrayElement([
182
+ "created",
183
+ "pending",
184
+ "started",
185
+ "completed",
186
+ "failed",
187
+ ] as const),
188
+ createdAt: faker.string.alpha(20),
189
+ updatedAt: faker.string.alpha(20),
190
+ transactionHash: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
191
+ ...overrideResponse,
192
+ });
193
+
194
+ export const getGetPaymentTransferResponsePaymentMethodRequestMock = (
195
+ overrideResponse: Partial<PaymentMethodRequest> = {},
196
+ ): PaymentMethodRequest => ({
197
+ ...{
198
+ id: faker.helpers.fromRegExp(
199
+ "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
200
+ ),
201
+ },
202
+ ...overrideResponse,
203
+ });
204
+
205
+ export const getGetPaymentTransferResponseCryptoRailAddressMock = (
206
+ overrideResponse: Partial<CryptoRailAddress> = {},
207
+ ): CryptoRailAddress => ({
208
+ ...{
209
+ currency: faker.string.alpha(20),
210
+ network: faker.string.alpha(20),
211
+ address: faker.string.alpha(20),
212
+ },
213
+ ...overrideResponse,
214
+ });
215
+
216
+ export const getGetPaymentTransferResponseMock = (
217
+ overrideResponse: Partial<Transfer> = {},
218
+ ): Transfer => ({
219
+ id: faker.helpers.fromRegExp(
220
+ "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
221
+ ),
222
+ sourceType: faker.helpers.arrayElement(["payment_method"] as const),
223
+ source: faker.helpers.arrayElement([
224
+ { ...getGetPaymentTransferResponsePaymentMethodRequestMock() },
225
+ ]),
226
+ targetType: faker.helpers.arrayElement(["crypto_rail"] as const),
227
+ target: faker.helpers.arrayElement([{ ...getGetPaymentTransferResponseCryptoRailAddressMock() }]),
228
+ sourceAmount: faker.string.alpha(20),
229
+ sourceCurrency: faker.string.alpha(20),
230
+ targetAmount: faker.string.alpha(20),
231
+ targetCurrency: faker.string.alpha(20),
232
+ userAmount: faker.string.alpha(20),
233
+ userCurrency: faker.string.alpha(20),
234
+ fees: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => ({
235
+ type: faker.helpers.arrayElement(["exchange_fee", "network_fee"] as const),
236
+ amount: faker.string.alpha(20),
237
+ currency: faker.string.alpha(20),
238
+ description: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
239
+ })),
240
+ status: faker.helpers.arrayElement([
241
+ "created",
242
+ "pending",
243
+ "started",
244
+ "completed",
245
+ "failed",
246
+ ] as const),
247
+ createdAt: faker.string.alpha(20),
248
+ updatedAt: faker.string.alpha(20),
249
+ transactionHash: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
250
+ ...overrideResponse,
251
+ });
252
+
253
+ export const getGetPaymentMethodsMockHandler = (
254
+ overrideResponse?:
255
+ | PaymentMethod[]
256
+ | ((
257
+ info: Parameters<Parameters<typeof http.get>[1]>[0],
258
+ ) => Promise<PaymentMethod[]> | PaymentMethod[]),
259
+ ) => {
260
+ return http.get("*/v2/payments/rails/payment-methods", async info => {
261
+ await delay(0);
262
+
263
+ return new HttpResponse(
264
+ JSON.stringify(
265
+ overrideResponse !== undefined
266
+ ? typeof overrideResponse === "function"
267
+ ? await overrideResponse(info)
268
+ : overrideResponse
269
+ : getGetPaymentMethodsResponseMock(),
270
+ ),
271
+ { status: 200, headers: { "Content-Type": "application/json" } },
272
+ );
273
+ });
274
+ };
275
+
276
+ export const getGetCryptoRailsMockHandler = (
277
+ overrideResponse?:
278
+ | CryptoRail[]
279
+ | ((
280
+ info: Parameters<Parameters<typeof http.get>[1]>[0],
281
+ ) => Promise<CryptoRail[]> | CryptoRail[]),
282
+ ) => {
283
+ return http.get("*/v2/payments/rails/crypto", async info => {
284
+ await delay(0);
285
+
286
+ return new HttpResponse(
287
+ JSON.stringify(
288
+ overrideResponse !== undefined
289
+ ? typeof overrideResponse === "function"
290
+ ? await overrideResponse(info)
291
+ : overrideResponse
292
+ : getGetCryptoRailsResponseMock(),
293
+ ),
294
+ { status: 200, headers: { "Content-Type": "application/json" } },
295
+ );
296
+ });
297
+ };
298
+
299
+ export const getCreatePaymentTransferQuoteMockHandler = (
300
+ overrideResponse?:
301
+ | CreatePaymentTransferQuote201
302
+ | ((
303
+ info: Parameters<Parameters<typeof http.post>[1]>[0],
304
+ ) => Promise<CreatePaymentTransferQuote201> | CreatePaymentTransferQuote201),
305
+ ) => {
306
+ return http.post("*/v2/payments/transfers", async info => {
307
+ await delay(0);
308
+
309
+ return new HttpResponse(
310
+ JSON.stringify(
311
+ overrideResponse !== undefined
312
+ ? typeof overrideResponse === "function"
313
+ ? await overrideResponse(info)
314
+ : overrideResponse
315
+ : getCreatePaymentTransferQuoteResponseMock(),
316
+ ),
317
+ { status: 201, headers: { "Content-Type": "application/json" } },
318
+ );
319
+ });
320
+ };
321
+
322
+ export const getExecutePaymentTransferQuoteMockHandler = (
323
+ overrideResponse?:
324
+ | Transfer
325
+ | ((info: Parameters<Parameters<typeof http.post>[1]>[0]) => Promise<Transfer> | Transfer),
326
+ ) => {
327
+ return http.post("*/v2/payments/transfers/:transferId/execute", async info => {
328
+ await delay(0);
329
+
330
+ return new HttpResponse(
331
+ JSON.stringify(
332
+ overrideResponse !== undefined
333
+ ? typeof overrideResponse === "function"
334
+ ? await overrideResponse(info)
335
+ : overrideResponse
336
+ : getExecutePaymentTransferQuoteResponseMock(),
337
+ ),
338
+ { status: 200, headers: { "Content-Type": "application/json" } },
339
+ );
340
+ });
341
+ };
342
+
343
+ export const getGetPaymentTransferMockHandler = (
344
+ overrideResponse?:
345
+ | Transfer
346
+ | ((info: Parameters<Parameters<typeof http.get>[1]>[0]) => Promise<Transfer> | Transfer),
347
+ ) => {
348
+ return http.get("*/v2/payments/transfers/:transferId", async info => {
349
+ await delay(0);
350
+
351
+ return new HttpResponse(
352
+ JSON.stringify(
353
+ overrideResponse !== undefined
354
+ ? typeof overrideResponse === "function"
355
+ ? await overrideResponse(info)
356
+ : overrideResponse
357
+ : getGetPaymentTransferResponseMock(),
358
+ ),
359
+ { status: 200, headers: { "Content-Type": "application/json" } },
360
+ );
361
+ });
362
+ };
363
+ export const getPaymentsAlphaMock = () => [
364
+ getGetPaymentMethodsMockHandler(),
365
+ getGetCryptoRailsMockHandler(),
366
+ getCreatePaymentTransferQuoteMockHandler(),
367
+ getExecutePaymentTransferQuoteMockHandler(),
368
+ getGetPaymentTransferMockHandler(),
369
+ ];