UNPKG

@xswap-link/sdk

Version:
56 lines (51 loc) 1.7 kB
import { TransactionResponse as EvmTransactionResponse } from "@ethersproject/providers"; import { VersionedTransaction as SolanaVersionedTransaction } from "@solana/web3.js"; import { EvmHandlers, SolanaHandlers } from "@src/context"; import { Ecosystem } from "@src/models"; import { Dispatch, SetStateAction } from "react"; export type EnqueueTxProps = { // eslint-disable-next-line @typescript-eslint/no-explicit-any executeTransaction: () => | Promise<EvmTransactionResponse | undefined> | Promise<SolanaVersionedTransaction | undefined> | undefined; txStatus: TxStatus; txMsg?: string; handlers?: EvmHandlers | SolanaHandlers; network?: Ecosystem; showDefaultSuccessMessage?: boolean; }; export type TxUIWrapperState = { enqueueTransaction: (props: EnqueueTxProps) => number; closeTransactionModal: (nonce: number) => void; isTxModalOpen: boolean; setTxModalOpen: Dispatch<SetStateAction<boolean>>; loading: boolean; txStatus: TxStatus; setTxStatus: Dispatch<SetStateAction<TxStatus>>; txExplorerUrl: string; txHash: string; txError: string; txMsg: string; setTxMsg: Dispatch<SetStateAction<string>>; setTxError: Dispatch<SetStateAction<string>>; txNeedsApproval: boolean; setTxNeedsApproval: Dispatch<SetStateAction<boolean>>; }; /** * make sure there's always appropriate CONFIRMATION status following the SIGNING one * see setTxStatus((prevStatus) => prevStatus + 1) at TxUIWrapper.tsx -> addUILogicToHandlersEVM */ export enum TxStatus { SWAP_INIT, SIGNING_APPROVAL, CONFIRMING_APPROVAL, SIGNING_TX, CONFIRMING_TX, COMPLETED, } export type TxStats = { points?: string; rank?: string; cashback?: string; };