UNPKG

@swapper-finance/sdk

Version:
139 lines (126 loc) 4.36 kB
import { ContractCall, SwapperAppPayload } from "@src/models"; import { Chain, Route, SwapperCTAs, TokenPrices, TokenWithChain, } from "@src/models"; import { SwapMode, ProcessingState, Balances, HistoryEntry, BalancesSnapshotMap, } from "@src/interfaces"; import React from "react"; export interface Shift4Fees { processingFeeFiatAmount: string; partnerFeeFiatAmount: string; networkFeeFiatAmount: string; } export interface SwapContext { // Configuration slippage: number; setSlippage: React.Dispatch<React.SetStateAction<number>>; integrationConfig: Partial<SwapperAppPayload>; integrationTypeOverride: string | undefined; setIntegrationTypeOverride: React.Dispatch< React.SetStateAction<string | undefined> >; supportedChains: Chain[]; isFetchingChains: boolean; supportedChainsMap: Record<string, Chain>; swapMode: SwapMode; isMultichain: boolean; isExternalMode: boolean; ctas: SwapperCTAs; isDirectOnRampSupported: boolean; isCheckingDirectOnRamp: boolean; // Token state allTokens: TokenWithChain[]; tokensPrices: TokenPrices; cashToken: TokenWithChain | undefined; token: TokenWithChain | undefined; setToken: React.Dispatch<React.SetStateAction<TokenWithChain | undefined>>; displayToken: TokenWithChain | undefined; setDisplayToken: React.Dispatch< React.SetStateAction<TokenWithChain | undefined> >; transferToken: TokenWithChain | undefined; setTransferToken: React.Dispatch< React.SetStateAction<TokenWithChain | undefined> >; // Balance state tokensBalances: Record<string, Record<string, Balances>>; isFetchingBalances: boolean; fetchAllBalances: () => Promise<void>; // Chain state chain: Chain | undefined; setChain: React.Dispatch<React.SetStateAction<Chain | undefined>>; cashBridgeChain: Chain | undefined; setCashBridgeChain: React.Dispatch<React.SetStateAction<Chain | undefined>>; chainToTokenOptionsMap: Record<string, TokenWithChain[]>; // Amount state tokenAmount: string; setTokenAmount: React.Dispatch<React.SetStateAction<string>>; tokenAmountWei: string; cashAmount: string; setCashAmount: React.Dispatch<React.SetStateAction<string>>; estimatedTokenOutAmount: string; estimatedTokenOutAmountWei: string; cashBridgeAmount: string; setCashBridgeAmount: React.Dispatch<React.SetStateAction<string>>; estimatedCashOutAmount: string; // Transfer state transferTokenAmount: string; setTransferTokenAmount: React.Dispatch<React.SetStateAction<string>>; transferReceiverAddress: string; setTransferReceiverAddress: React.Dispatch<React.SetStateAction<string>>; // Route state route: Route | undefined; isFetchingRoute: boolean; fetchRoute: () => Promise<void>; fetchShift4Quote: (fiatAmount: string) => Promise<void>; feesToTokenValueRatio: number; setFeesToTokenValueRatio: React.Dispatch<React.SetStateAction<number>>; acceptedHighFees: boolean; setAcceptedHighFees: React.Dispatch<React.SetStateAction<boolean>>; customContractCalls: ContractCall[] | undefined; setCustomContractCalls: React.Dispatch< React.SetStateAction<ContractCall[] | undefined> >; // Transaction state transactionHash: string; setTransactionHash: React.Dispatch<React.SetStateAction<string>>; transactionState: ProcessingState; setTransactionState: React.Dispatch<React.SetStateAction<ProcessingState>>; cashbackAmount: string | undefined; pointsAmount: string | undefined; tokenOutAmount: string; setTokenOutAmount: React.Dispatch<React.SetStateAction<string>>; executeSwapTransaction: () => Promise<void>; transactionError: string; isDepositAndBuyFlow: boolean; setIsDepositAndBuyFlow: React.Dispatch<React.SetStateAction<boolean>>; newPurchaseCounter: number; setNewPurchaseCounter: React.Dispatch<React.SetStateAction<number>>; balancesSnapshots: BalancesSnapshotMap; setBalancesSnapshots: React.Dispatch< React.SetStateAction<BalancesSnapshotMap> >; // Shift4 related shift4TokenAmount: string; shift4Fees: Shift4Fees | undefined; isUsingChainlinkFunction: boolean; // History history: HistoryEntry[]; fetchHistory: () => Promise<void>; historyLoadedOnce: boolean; // Reset state resetSwapFormData: () => void; clearSwapStateOnLogout: () => void; // Error handling error: string; errorDetails: string; }