@funkit/connect
Version:
Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.
76 lines (75 loc) • 3.63 kB
TypeScript
import type { BridgeCustomer, BridgeVirtualBankAccount } from '@funkit/api-base';
import type { MeshConnectionInfo } from '~/providers/FunkitMeshProvider';
/** Supported payment methods in FunkitConnect. **/
export declare enum PaymentMethod {
/** Meld - Credit / Debit Card **/
CARD = "card",
/** Account Balance **/
ACCOUNT_BALANCE = "balance",
/** Mesh - Exchange / Brokerage **/
BROKERAGE = "brokerage",
TOKEN_TRANSFER = "token_transfer",
VIRTUAL_BANK = "virtual_bank"
}
/** Full payment method information used in frontend during payment flows. **/
interface PaymentMethodInfoBase {
description: string;
paymentMethod: PaymentMethod;
title: string;
}
export interface PaymentMethodCardInfo extends PaymentMethodInfoBase {
paymentMethod: PaymentMethod.CARD;
}
export interface PaymentMethodBrokerageInfo extends PaymentMethodInfoBase {
paymentMethod: PaymentMethod.BROKERAGE;
}
export interface PaymentMethodAccountInfo extends PaymentMethodInfoBase {
paymentMethod: PaymentMethod.ACCOUNT_BALANCE;
}
export interface PaymentMethodTokenTransferInfo extends PaymentMethodInfoBase {
paymentMethod: PaymentMethod.TOKEN_TRANSFER;
}
export interface PaymentMethodVirtualBankIncompleteInfo extends PaymentMethodInfoBase {
paymentMethod: PaymentMethod.VIRTUAL_BANK;
matchingFiatAccount: BridgeVirtualBankAccount | undefined;
bridgeCustomer: BridgeCustomer | undefined;
}
export interface PaymentMethodVirtualBankInfo extends PaymentMethodVirtualBankIncompleteInfo {
matchingFiatAccount: BridgeVirtualBankAccount;
}
export type ConnectablePaymentMethodInfo = PaymentMethodAccountInfo | PaymentMethodBrokerageInfo | PaymentMethodVirtualBankInfo;
export declare function isConnectablePaymentMethodInfo(value: unknown): value is ConnectablePaymentMethodInfo;
export type PaymentMethodInfo = PaymentMethodCardInfo | PaymentMethodBrokerageInfo | PaymentMethodAccountInfo | PaymentMethodTokenTransferInfo | PaymentMethodVirtualBankIncompleteInfo;
interface CardPaymentMethodParams {
paymentMethod: PaymentMethod.CARD;
/** We also store client's customization in our database :( */
titleCustomization: string;
}
interface AccountPaymentMethodParams {
paymentMethod: PaymentMethod.ACCOUNT_BALANCE;
walletAddress: string;
}
interface BrokeragePaymentMethodParams {
paymentMethod: PaymentMethod.BROKERAGE;
connection: MeshConnectionInfo;
}
interface TokenTransferPaymentMethodParams {
paymentMethod: PaymentMethod.TOKEN_TRANSFER;
}
interface VirtualBankPaymentMethodIncompleteParams {
paymentMethod: PaymentMethod.VIRTUAL_BANK;
matchingFiatAccount: undefined;
bridgeCustomer: BridgeCustomer | undefined;
}
interface VirtualBankPaymentMethodParams {
paymentMethod: PaymentMethod.VIRTUAL_BANK;
matchingFiatAccount: BridgeVirtualBankAccount;
bridgeCustomer: BridgeCustomer | undefined;
}
export declare function createPaymentMethodInfo(params: CardPaymentMethodParams): PaymentMethodCardInfo;
export declare function createPaymentMethodInfo(params: AccountPaymentMethodParams): PaymentMethodAccountInfo;
export declare function createPaymentMethodInfo(params: BrokeragePaymentMethodParams): PaymentMethodBrokerageInfo;
export declare function createPaymentMethodInfo(params: TokenTransferPaymentMethodParams): PaymentMethodTokenTransferInfo;
export declare function createPaymentMethodInfo(params: VirtualBankPaymentMethodIncompleteParams): PaymentMethodVirtualBankIncompleteInfo;
export declare function createPaymentMethodInfo(params: VirtualBankPaymentMethodParams): PaymentMethodVirtualBankInfo;
export {};