@coinbase/cdp-sdk
Version:
SDK for interacting with the Coinbase Developer Platform Wallet API
58 lines (52 loc) • 2.13 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 { ListEvmTokenBalancesNetwork } from "../coinbaseDeveloperPlatformAPIs.schemas.js";
import type { ListEvmTokenBalances200 } from "../coinbaseDeveloperPlatformAPIs.schemas.js";
export const getListEvmTokenBalancesResponseMock = (): ListEvmTokenBalances200 => ({
...{
balances: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(
() => ({
amount: {
amount: faker.helpers.fromRegExp("^[0-9]+$"),
decimals: faker.number.int({ min: undefined, max: undefined }),
},
token: {
network: faker.helpers.arrayElement(Object.values(ListEvmTokenBalancesNetwork)),
symbol: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
name: faker.helpers.arrayElement([faker.string.alpha(20), undefined]),
contractAddress: faker.helpers.fromRegExp("^0x[0-9a-fA-F]{40}$"),
},
}),
),
},
...{ nextPageToken: faker.helpers.arrayElement([faker.string.alpha(20), undefined]) },
});
export const getListEvmTokenBalancesMockHandler = (
overrideResponse?:
| ListEvmTokenBalances200
| ((
info: Parameters<Parameters<typeof http.get>[1]>[0],
) => Promise<ListEvmTokenBalances200> | ListEvmTokenBalances200),
) => {
return http.get("*/v2/evm/token-balances/:network/:address", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getListEvmTokenBalancesResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getEvmTokenBalancesMock = () => [getListEvmTokenBalancesMockHandler()];