@funkit/connect
Version:
Funkit Connect SDK elevates DeFi apps via web2 sign-ins and one-click checkouts.
49 lines (48 loc) • 2.16 kB
TypeScript
import { DirectExecutionType } from '@funkit/api-base';
import type { RelayTxHash, RelayVmType } from '@funkit/fun-relay';
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[];
fromChainId: string;
fromTokenAddress: Address;
isExactIn?: boolean;
toChainId: string;
toTokenAddress: Address;
recipientAddress: Address;
senderAddress?: Address;
}
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: (txHash: RelayTxHash<RelayVmType>) => 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 {};