UNPKG

@funkit/connect

Version:

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

49 lines (48 loc) 1.87 kB
import React, { type Dispatch, type ReactNode } from 'react'; import { type PaymentMethodInfo } from '../domains/paymentMethods'; import type { FunkitCheckoutQuoteResult } from '../domains/quote'; import { type FunkitActiveCheckoutItem } from './FunkitCheckoutContext'; export type CheckoutQuoteError = { maxTargetAssetAmount?: number; minTargetAssetAmount?: number; reason: 'insufficientBalance'; } | { maxTargetAssetAmount?: number; minTargetAssetAmount?: number; minTargetUsdAmount?: number; reason: 'insufficientAmount'; } | { originalError: Error; reason: 'internal'; }; export type CheckoutQuoteResult = { success: true; } | { error: CheckoutQuoteError; success: false; }; type GetCheckoutQuoteResponse = CheckoutQuoteResult & { shellCheckoutItemWithNextQuote: FunkitActiveCheckoutItem; quoteState: CheckoutQuoteState; }; interface CheckoutQuoteState { /** Whether the checkout quote is being fetched **/ isQuoting: boolean; /** Latest checkout estimated fees and time **/ latestQuote: null | FunkitCheckoutQuoteResult; /** The quotation step message **/ quoteStepMessage: string; /** Error messages associated with checkout quote **/ quoteErrorMessage: string; } interface FunkitQuoteContextInterface extends CheckoutQuoteState { clearCheckoutQuoteMessages: () => void; getCheckoutQuote: (newPaymentMethodInfo: PaymentMethodInfo, disableInformationStreaming?: boolean) => Promise<GetCheckoutQuoteResponse>; setCheckoutQuote: Dispatch<React.SetStateAction<FunkitCheckoutQuoteResult | null>>; setQuoteProgress: (state: Omit<CheckoutQuoteState, 'latestQuote'>) => void; } export declare function FunkitQuoteProvider({ children }: { children: ReactNode; }): React.JSX.Element; export declare function useQuoteContext(): FunkitQuoteContextInterface; export {};