@coinbase/cdp-sdk
Version:
SDK for interacting with the Coinbase Developer Platform Wallet API
479 lines (443 loc) • 15.4 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 {
ExportSolanaAccount200,
ExportSolanaAccountByName200,
ListSolanaAccounts200,
SendSolanaTransaction200,
SignSolanaMessage200,
SignSolanaTransaction200,
SolanaAccount,
} from "../coinbaseDeveloperPlatformAPIs.schemas.js";
export const getListSolanaAccountsResponseMock = (): ListSolanaAccounts200 => ({
...{
accounts: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(
() => ({
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
name: faker.helpers.arrayElement([
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
undefined,
]),
policies: faker.helpers.arrayElement([
Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() =>
faker.helpers.fromRegExp(
"^[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}$",
),
),
undefined,
]),
createdAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
updatedAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
}),
),
},
...{ nextPageToken: faker.helpers.arrayElement([faker.string.alpha(20), undefined]) },
});
export const getCreateSolanaAccountResponseMock = (
overrideResponse: Partial<SolanaAccount> = {},
): SolanaAccount => ({
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
name: faker.helpers.arrayElement([
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
undefined,
]),
policies: faker.helpers.arrayElement([
Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() =>
faker.helpers.fromRegExp(
"^[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}$",
),
),
undefined,
]),
createdAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
updatedAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
...overrideResponse,
});
export const getGetSolanaAccountResponseMock = (
overrideResponse: Partial<SolanaAccount> = {},
): SolanaAccount => ({
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
name: faker.helpers.arrayElement([
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
undefined,
]),
policies: faker.helpers.arrayElement([
Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() =>
faker.helpers.fromRegExp(
"^[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}$",
),
),
undefined,
]),
createdAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
updatedAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
...overrideResponse,
});
export const getUpdateSolanaAccountResponseMock = (
overrideResponse: Partial<SolanaAccount> = {},
): SolanaAccount => ({
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
name: faker.helpers.arrayElement([
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
undefined,
]),
policies: faker.helpers.arrayElement([
Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() =>
faker.helpers.fromRegExp(
"^[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}$",
),
),
undefined,
]),
createdAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
updatedAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
...overrideResponse,
});
export const getGetSolanaAccountByNameResponseMock = (
overrideResponse: Partial<SolanaAccount> = {},
): SolanaAccount => ({
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
name: faker.helpers.arrayElement([
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
undefined,
]),
policies: faker.helpers.arrayElement([
Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() =>
faker.helpers.fromRegExp(
"^[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}$",
),
),
undefined,
]),
createdAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
updatedAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
...overrideResponse,
});
export const getImportSolanaAccountResponseMock = (
overrideResponse: Partial<SolanaAccount> = {},
): SolanaAccount => ({
address: faker.helpers.fromRegExp("^[1-9A-HJ-NP-Za-km-z]{32,44}$"),
name: faker.helpers.arrayElement([
faker.helpers.fromRegExp("^[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
undefined,
]),
policies: faker.helpers.arrayElement([
Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() =>
faker.helpers.fromRegExp(
"^[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}$",
),
),
undefined,
]),
createdAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
updatedAt: faker.helpers.arrayElement([
`${faker.date.past().toISOString().split(".")[0]}Z`,
undefined,
]),
...overrideResponse,
});
export const getExportSolanaAccountResponseMock = (
overrideResponse: Partial<ExportSolanaAccount200> = {},
): ExportSolanaAccount200 => ({ encryptedPrivateKey: faker.string.alpha(20), ...overrideResponse });
export const getExportSolanaAccountByNameResponseMock = (
overrideResponse: Partial<ExportSolanaAccountByName200> = {},
): ExportSolanaAccountByName200 => ({
encryptedPrivateKey: faker.string.alpha(20),
...overrideResponse,
});
export const getSignSolanaTransactionResponseMock = (
overrideResponse: Partial<SignSolanaTransaction200> = {},
): SignSolanaTransaction200 => ({ signedTransaction: faker.string.alpha(20), ...overrideResponse });
export const getSignSolanaMessageResponseMock = (
overrideResponse: Partial<SignSolanaMessage200> = {},
): SignSolanaMessage200 => ({ signature: faker.string.alpha(20), ...overrideResponse });
export const getSendSolanaTransactionResponseMock = (
overrideResponse: Partial<SendSolanaTransaction200> = {},
): SendSolanaTransaction200 => ({
transactionSignature: faker.string.alpha(20),
...overrideResponse,
});
export const getListSolanaAccountsMockHandler = (
overrideResponse?:
| ListSolanaAccounts200
| ((
info: Parameters<Parameters<typeof http.get>[1]>[0],
) => Promise<ListSolanaAccounts200> | ListSolanaAccounts200),
) => {
return http.get("*/v2/solana/accounts", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getListSolanaAccountsResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getCreateSolanaAccountMockHandler = (
overrideResponse?:
| SolanaAccount
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<SolanaAccount> | SolanaAccount),
) => {
return http.post("*/v2/solana/accounts", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getCreateSolanaAccountResponseMock(),
),
{ status: 201, headers: { "Content-Type": "application/json" } },
);
});
};
export const getGetSolanaAccountMockHandler = (
overrideResponse?:
| SolanaAccount
| ((
info: Parameters<Parameters<typeof http.get>[1]>[0],
) => Promise<SolanaAccount> | SolanaAccount),
) => {
return http.get("*/v2/solana/accounts/:address", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getGetSolanaAccountResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getUpdateSolanaAccountMockHandler = (
overrideResponse?:
| SolanaAccount
| ((
info: Parameters<Parameters<typeof http.put>[1]>[0],
) => Promise<SolanaAccount> | SolanaAccount),
) => {
return http.put("*/v2/solana/accounts/:address", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getUpdateSolanaAccountResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getGetSolanaAccountByNameMockHandler = (
overrideResponse?:
| SolanaAccount
| ((
info: Parameters<Parameters<typeof http.get>[1]>[0],
) => Promise<SolanaAccount> | SolanaAccount),
) => {
return http.get("*/v2/solana/accounts/by-name/:name", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getGetSolanaAccountByNameResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getImportSolanaAccountMockHandler = (
overrideResponse?:
| SolanaAccount
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<SolanaAccount> | SolanaAccount),
) => {
return http.post("*/v2/solana/accounts/import", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getImportSolanaAccountResponseMock(),
),
{ status: 201, headers: { "Content-Type": "application/json" } },
);
});
};
export const getExportSolanaAccountMockHandler = (
overrideResponse?:
| ExportSolanaAccount200
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<ExportSolanaAccount200> | ExportSolanaAccount200),
) => {
return http.post("*/v2/solana/accounts/:address/export", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getExportSolanaAccountResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getExportSolanaAccountByNameMockHandler = (
overrideResponse?:
| ExportSolanaAccountByName200
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<ExportSolanaAccountByName200> | ExportSolanaAccountByName200),
) => {
return http.post("*/v2/solana/accounts/export/by-name/:name", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getExportSolanaAccountByNameResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getSignSolanaTransactionMockHandler = (
overrideResponse?:
| SignSolanaTransaction200
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<SignSolanaTransaction200> | SignSolanaTransaction200),
) => {
return http.post("*/v2/solana/accounts/:address/sign/transaction", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getSignSolanaTransactionResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getSignSolanaMessageMockHandler = (
overrideResponse?:
| SignSolanaMessage200
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<SignSolanaMessage200> | SignSolanaMessage200),
) => {
return http.post("*/v2/solana/accounts/:address/sign/message", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getSignSolanaMessageResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getSendSolanaTransactionMockHandler = (
overrideResponse?:
| SendSolanaTransaction200
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<SendSolanaTransaction200> | SendSolanaTransaction200),
) => {
return http.post("*/v2/solana/accounts/send/transaction", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getSendSolanaTransactionResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getSolanaAccountsMock = () => [
getListSolanaAccountsMockHandler(),
getCreateSolanaAccountMockHandler(),
getGetSolanaAccountMockHandler(),
getUpdateSolanaAccountMockHandler(),
getGetSolanaAccountByNameMockHandler(),
getImportSolanaAccountMockHandler(),
getExportSolanaAccountMockHandler(),
getExportSolanaAccountByNameMockHandler(),
getSignSolanaTransactionMockHandler(),
getSignSolanaMessageMockHandler(),
getSendSolanaTransactionMockHandler(),
];