Files
riwa-ionic/src/api/types.ts

61 lines
2.5 KiB
TypeScript

import type { Treaty } from "@elysiajs/eden";
import type { client } from ".";
import type { AssetCodeEnum, PaymentChannelEnum, WithdrawMethodEnum } from "./enum";
import type { authClient } from "@/auth";
export type DepositFiatBody = Parameters<typeof client.api.deposit.fiat.post>[0] & {
paymentChannel: PaymentChannelEnum;
assetCode: AssetCodeEnum;
};
export type TreatyQuery<T> = T extends (...args: any[]) => any
? NonNullable<NonNullable<Parameters<T>[0]>["query"]>
: never;
export type TreatyBody<T> = T extends (...args: any[]) => any
? NonNullable<Parameters<T>[0]>
: never;
export type DepositFiatData = Treaty.Data<typeof client.api.deposit.fiat.post>;
export type BalancesData = Treaty.Data<typeof client.api.asset.balances.get>;
export type WithdrawBody = Omit<Parameters<typeof client.api.withdraw.post>[0], "assetCode" | "withdrawMethod"> & {
assetCode: AssetCodeEnum;
withdrawMethod: WithdrawMethodEnum;
};
export type UserProfileData = Treaty.Data<typeof client.api.user.profile.get>;
export type UpdateUserProfileBody = TreatyBody<typeof client.api.user.profile.put>;
export type RwaIssuanceProductsData = Treaty.Data<typeof client.api.rwa.issuance.products.bundle.post>;
export type RwaIssuanceProductBody = TreatyBody<typeof client.api.rwa.issuance.products.bundle.post>;
export type RwaIssuanceCategoriesData = Treaty.Data<typeof client.api.rwa.category.categories.get>;
export type BankAccountsData = Treaty.Data<typeof client.api.bank_account.get>;
export type BankAccountBody = TreatyBody<typeof client.api.bank_account.post>;
export type BankAccountData = Treaty.Data<typeof client.api.bank_account.post>;
export type SupportBanksData = Treaty.Data<typeof client.api.bank_account.banks.get>;
export type AvailableSubscriptionBody = TreatyQuery<typeof client.api.rwa.subscription.available_editions.get>;
export type RwaData = Treaty.Data<typeof client.api.rwa.subscription.available_editions.get>["data"][number];
export type MyIssueRwaData = Treaty.Data<typeof client.api.rwa.issuance.products.get>["data"][number];
export type MySubscribeRwaData = Treaty.Data<typeof client.api.rwa.subscription.my_subscriptions.get>["data"][number];
export type MySubscribeRwaBody = TreatyQuery<typeof client.api.rwa.subscription.my_subscriptions.get>;
export type PhoneNumberVerifyClient = TreatyBody<typeof authClient.phoneNumber.verify>;
export type UsernameClient = TreatyBody<typeof authClient.signIn.username>;
export type EmailVerifyClient = TreatyBody<typeof authClient.emailOtp.verifyEmail>;