UNPKG

@funkit/connect

Version:

Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.

79 lines (78 loc) 3.68 kB
import type { BridgeCustomer, BridgeVirtualBankAccount } from '@funkit/api-base'; import { type BluvoExchangeType } from '~/consts/bluvo'; /** Supported payment methods in FunkitConnect. **/ export declare enum PaymentMethod { /** Meld - Credit / Debit Card **/ CARD = "card", /** Account Balance **/ ACCOUNT_BALANCE = "balance", /** Bluvo - 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; deviceId: string; exchange: BluvoExchangeType; } 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; deviceId: string; exchange: BluvoExchangeType; } 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: TokenTransferPaymentMethodParams): PaymentMethodTokenTransferInfo; export declare function createPaymentMethodInfo(params: VirtualBankPaymentMethodIncompleteParams): PaymentMethodVirtualBankIncompleteInfo; export declare function createPaymentMethodInfo(params: VirtualBankPaymentMethodParams): PaymentMethodVirtualBankInfo; export declare function createPaymentMethodInfo(params: BrokeragePaymentMethodParams): PaymentMethodBrokerageInfo; export {};