@coinbase/cdp-sdk
Version:
SDK for interacting with the Coinbase Developer Platform Wallet API
218 lines (205 loc) • 7.37 kB
text/typescript
/**
* Generated by orval v7.6.0 🍺
* Do not edit manually.
* Coinbase Developer Platform APIs
* The Coinbase Developer Platform APIs - leading the world's transition onchain.
* OpenAPI spec version: 2.0.0
*/
import { faker } from "@faker-js/faker";
import { HttpResponse, delay, http } from "msw";
import type {
CreateSwapQuoteResponse,
CreateSwapQuoteResponseWrapper,
GetSwapPriceResponse,
GetSwapPriceResponseWrapper,
SwapUnavailableResponse,
} from "../coinbaseDeveloperPlatformAPIs.schemas.js";
export const getGetEvmSwapPriceResponseGetSwapPriceResponseMock = (
overrideResponse: Partial<GetSwapPriceResponse> = {},
): GetSwapPriceResponse => ({
...{
...{
blockNumber: faker.helpers.fromRegExp("^[1-9]\d*$"),
toAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
toToken: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
fees: {
gasFee: {
...{
amount: faker.helpers.fromRegExp("^\d+$"),
token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
},
},
protocolFee: {
...{
amount: faker.helpers.fromRegExp("^\d+$"),
token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
},
},
},
issues: {
allowance: {
currentAllowance: faker.helpers.fromRegExp("^\d+$"),
spender: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
},
balance: {
token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
currentBalance: faker.helpers.fromRegExp("^\d+$"),
requiredBalance: faker.helpers.fromRegExp("^\d+$"),
},
simulationIncomplete: faker.datatype.boolean(),
},
liquidityAvailable: faker.datatype.boolean(),
minToAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
fromAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
fromToken: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
},
...{
gas: faker.helpers.arrayElement([faker.helpers.fromRegExp("^\d+$"), null]),
gasPrice: faker.helpers.fromRegExp("^\d+$"),
},
},
...overrideResponse,
});
export const getGetEvmSwapPriceResponseSwapUnavailableResponseMock = (
overrideResponse: Partial<SwapUnavailableResponse> = {},
): SwapUnavailableResponse => ({
...{ liquidityAvailable: faker.datatype.boolean() },
...overrideResponse,
});
export const getGetEvmSwapPriceResponseMock = (): GetSwapPriceResponseWrapper =>
faker.helpers.arrayElement([
{ ...getGetEvmSwapPriceResponseGetSwapPriceResponseMock() },
{ ...getGetEvmSwapPriceResponseSwapUnavailableResponseMock() },
]);
export const getCreateEvmSwapQuoteResponseCreateSwapQuoteResponseMock = (
overrideResponse: Partial<CreateSwapQuoteResponse> = {},
): CreateSwapQuoteResponse => ({
...{
...{
permit2: {
hash: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{64}$"),
eip712: {
domain: {
name: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
version: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
chainId: faker.helpers.arrayElement([
faker.number.int({ min: undefined, max: undefined }),
undefined,
]),
verifyingContract: faker.helpers.arrayElement([
faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
undefined,
]),
salt: faker.helpers.arrayElement([
faker.helpers.fromRegExp("^0x[a-fA-F0-9]{64}$"),
undefined,
]),
},
types: {},
primaryType: faker.string.alpha(20),
message: {},
},
},
transaction: {
to: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
data: faker.string.alpha(20),
gas: faker.helpers.fromRegExp("^\d+$"),
gasPrice: faker.helpers.fromRegExp("^\d+$"),
value: faker.helpers.fromRegExp("^\d+$"),
},
},
...{
blockNumber: faker.helpers.fromRegExp("^[1-9]\d*$"),
toAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
toToken: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
fees: {
gasFee: {
...{
amount: faker.helpers.fromRegExp("^\d+$"),
token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
},
},
protocolFee: {
...{
amount: faker.helpers.fromRegExp("^\d+$"),
token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
},
},
},
issues: {
allowance: {
currentAllowance: faker.helpers.fromRegExp("^\d+$"),
spender: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
},
balance: {
token: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
currentBalance: faker.helpers.fromRegExp("^\d+$"),
requiredBalance: faker.helpers.fromRegExp("^\d+$"),
},
simulationIncomplete: faker.datatype.boolean(),
},
liquidityAvailable: faker.datatype.boolean(),
minToAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
fromAmount: faker.helpers.fromRegExp("^(0|[1-9]\d*)$"),
fromToken: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}$"),
},
},
...overrideResponse,
});
export const getCreateEvmSwapQuoteResponseSwapUnavailableResponseMock = (
overrideResponse: Partial<SwapUnavailableResponse> = {},
): SwapUnavailableResponse => ({
...{ liquidityAvailable: faker.datatype.boolean() },
...overrideResponse,
});
export const getCreateEvmSwapQuoteResponseMock = (): CreateSwapQuoteResponseWrapper =>
faker.helpers.arrayElement([
{ ...getCreateEvmSwapQuoteResponseCreateSwapQuoteResponseMock() },
{ ...getCreateEvmSwapQuoteResponseSwapUnavailableResponseMock() },
]);
export const getGetEvmSwapPriceMockHandler = (
overrideResponse?:
| GetSwapPriceResponseWrapper
| ((
info: Parameters<Parameters<typeof http.get>[1]>[0],
) => Promise<GetSwapPriceResponseWrapper> | GetSwapPriceResponseWrapper),
) => {
return http.get("*/v2/evm/swaps/quote", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getGetEvmSwapPriceResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getCreateEvmSwapQuoteMockHandler = (
overrideResponse?:
| CreateSwapQuoteResponseWrapper
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<CreateSwapQuoteResponseWrapper> | CreateSwapQuoteResponseWrapper),
) => {
return http.post("*/v2/evm/swaps", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getCreateEvmSwapQuoteResponseMock(),
),
{ status: 201, headers: { "Content-Type": "application/json" } },
);
});
};
export const getEvmSwapsMock = () => [
getGetEvmSwapPriceMockHandler(),
getCreateEvmSwapQuoteMockHandler(),
];