UNPKG

@funkit/connect

Version:

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

48 lines (47 loc) 2.06 kB
import { DirectExecutionType } from '@funkit/api-base'; import type { CheckoutQuoteResponse } from '@funkit/utils'; import type { Address, Hex } from 'viem'; import type { FunkitCheckoutQuoteResult } from '~/domains/quote'; import type { FunkitActiveCheckoutItem, FunkitCheckoutActionParams } from '~/providers/FunkitCheckoutContext'; import type { WithdrawalClient } from '~/wallets/Wallet'; interface DirectExecutionQuoteRequestParamsBase { actionParams: FunkitCheckoutActionParams[]; toChainId: string; toTokenAddress: Address; fromChainId: string; fromTokenAddress: Address; recipientAddress: Address; senderAddress?: Address; isExactIn?: boolean; } interface RegularDEQuoteRequest extends DirectExecutionQuoteRequestParamsBase { toTokenAmount: number; toTokenDecimals: number; isExactIn?: false; } interface WithdrawalDEQuoteRequest extends DirectExecutionQuoteRequestParamsBase { fromTokenAmount: number; isExactIn: true; fromTokenDecimals: number; } type DirectExecutionQuoteRequestParams = RegularDEQuoteRequest | WithdrawalDEQuoteRequest; interface DirectExecutionStartParams { checkoutItem: FunkitActiveCheckoutItem; stepMessageSetter: (m: string) => void; actionsParams: FunkitCheckoutActionParams[]; latestQuote: FunkitCheckoutQuoteResult; onTransactionConfirmed: () => void; withdrawalClient?: WithdrawalClient; } export interface FunkitDirectExecutionInfo { isDirectExecution: boolean; directExecutionType: DirectExecutionType | null; getDirectExecutionQuote: (params: DirectExecutionQuoteRequestParams) => Promise<CheckoutQuoteResponse | null>; executeDirectExecution: (params: DirectExecutionStartParams) => Promise<Hex | null>; } interface UseCheckoutDirectExecutionReturn { getDirectExecutionInfo: (checkoutItem: FunkitActiveCheckoutItem | null) => FunkitDirectExecutionInfo; getWithdrawalDirectExecution: () => FunkitDirectExecutionInfo; } export declare function useCheckoutDirectExecution(): UseCheckoutDirectExecutionReturn; export {};