@funkit/connect
Version:
Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.
49 lines (48 loc) • 1.87 kB
TypeScript
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 {};