@kanalabs/kana-widget-v2
Version:
Kana Widget for cross-chain bridging and swap.
117 lines (116 loc) • 3.3 kB
TypeScript
import { NetworkId } from "@kanalabs/aggregator";
import { RefObject } from "react";
import { ModalType } from "types";
interface SourceInfo {
chainId: NetworkId;
chainName: string;
chainImg: string;
tokenSymbol: string;
tokenImg: string;
tokenAmount: string;
tokenAddress: string;
tokenBalance: number;
tokenDollarPrice: number;
}
interface TargetInfo {
chainId: NetworkId;
chainName: string;
chainImg: string;
tokenSymbol: string;
tokenDecimal: number;
tokenImg: string;
tokenAmount: string;
tokenAddress: string;
tokenBalance: number;
tokenDollarPrice: number;
}
interface chainAndTokenListVisibility {
visibility: boolean;
clickedFrom: string;
}
interface WalletConnectVisibility {
visibility: boolean;
clickedFrom: string;
}
interface ChainAddressState {
targetChainAddress: string;
sourceChainAddress: string;
}
interface Token {
name: string;
symbol: string;
logoURL?: string;
address?: string;
fa_address?: string;
}
interface RouteHop {
dexName: string;
marketName: string;
fromToken: Token;
toToken: Token;
parentType?: string;
}
interface RouteSplit {
percentage: number;
inputAmount: string;
outputAmount: string;
type: string;
routeTaken: RouteHop[];
}
interface RouteInfo {
amountIn: number;
amountOut: string;
protocols: string[];
routeSplits: RouteSplit[];
}
interface SwapView {
availableRoutes: RouteInfo[];
crossChainRoutes: RouteInfo[];
sourceInfo: SourceInfo;
targetInfo: TargetInfo;
selectedRoute: any;
slippage: number;
model: ModalType;
chainAndTokenListVisibility: chainAndTokenListVisibility;
handleSameChain: () => void;
handleCrossChain: () => void;
isTour: boolean;
isTablet: boolean;
handleTourOpen: () => void;
chainType: string;
isRedeem: boolean;
setRedeemVisible: () => void;
getRoutes: () => Promise<void>;
setSettingsViewVisibility: (visible: boolean) => void;
setAggregatorSettingsVisibility: (visible: boolean) => void;
setCrossChainSettingVisibility: (visible: boolean) => void;
isDexSettingsVisible?: boolean;
isDexSettingsVisibleForCrossChain?: boolean;
isDexModified?: boolean;
props: any;
selectSameChain: (chainId: number) => void;
sourcePair: NetworkId[];
targetPair: NetworkId[];
ref1: RefObject<HTMLDivElement>;
ref2: RefObject<HTMLDivElement>;
ref4: RefObject<HTMLDivElement>;
ref5: RefObject<HTMLDivElement>;
ref6: RefObject<HTMLDivElement>;
ref8: RefObject<HTMLDivElement>;
ref10: RefObject<HTMLInputElement>;
ref11: RefObject<HTMLButtonElement>;
displayTokenList: (value: string) => void;
setWalletConnectVisibility: React.Dispatch<React.SetStateAction<WalletConnectVisibility>>;
copyHash: (hash: any) => Promise<void>;
chainAddress: ChainAddressState;
onTokenAmountChange: (e: any) => void;
getPercentageAmount: (percentage: any) => void;
allowInterChange: boolean;
isRouteLoading: boolean;
interchangeSwap: () => void;
startSwap: () => Promise<void>;
isRoutesVisible: boolean;
setConnectWallets: () => void;
}
declare const SwapView: React.FC<SwapView>;
export default SwapView;