{"version":3,"sources":["themes/bsc.ts","themes/ethereum.ts","components/ThemeManager/index.tsx","connectors/index.ts","constants/native_bridge.ts","constants/peg_token.ts","helpers/index.ts","constants/twoway.ts","constants/multicall.ts","contexts/Updater.tsx","helpers/contract.ts","hooks/contract.ts","helpers/provider.ts","hooks/useInterval.ts","hooks/useTwowayLockBalances.ts","hooks/index.ts","components/Web3ReactManager/index.tsx","contexts/Controller.tsx","i18n.tsx","assets/images/aac.png","assets/images/amy.png","assets/images/bor.0a18b81a.png","assets/images/chain/arbitrum.svg","assets/images/chain/aurora.svg","assets/images/chain/avalanche.svg","assets/images/chain/base.svg","assets/images/chain/bsc.png","assets/images/chain/ethereum-color.svg","assets/images/chain/ethereum.png","assets/images/chain/fantom.svg","assets/images/chain/harmony.svg","assets/images/chain/heco.png","assets/images/chain/iotex.svg","assets/images/chain/kcc.png","assets/images/chain/metis.png","assets/images/chain/okc.png","assets/images/chain/optimism.svg","assets/images/chain/polygon.png","assets/images/chain/xdai.png","assets/images/conflux.png","assets/images/fin.png","assets/images/fire.png","assets/images/izi.png","assets/images/lol.png","assets/images/nsure.png","assets/images/oUSDT.png","assets/images/obtc.png","assets/images/oltc.png","assets/images/oportal.png","assets/images/ousdc.png","assets/images/usdt.png","assets/images/xvemp.jpg","helpers/icon.ts","assets/images/usdb.png","assets/images/vidy.png","assets/images/vemp.png","assets/images/aave.png","assets/images/crv.png","assets/images/wsg.png","assets/images/lowb.png","assets/images/usdc.png","assets/images/near.png","assets/images/arrow-forward.png","assets/images/add.png","assets/images/diamond.png","assets/images/diamond-primary.png","assets/images/chain/blast.jpg","assets/images/chain/boba.png","components/Backed/index.tsx","constants/wallet.ts","components/modal/WalletsModal/index.tsx","components/Account/index.tsx","helpers/network.ts","components/LanguageSelect/index.tsx","components/ChainSelect/index.tsx","components/Bar/index.tsx","components/Sidebar/index.tsx","assets/images/link.svg","components/style/index.tsx","components/Header/index.tsx","assets/images/menu.png","pages/Data/index.tsx","constants/chef.ts","helpers/calc.ts","components/modal/ConvertModal/index.tsx","components/modal/FarmClaimModal/index.tsx","components/Max/index.tsx","components/modal/FarmStakeModal/index.tsx","components/modal/FarmWithdrawModal/index.tsx","components/FarmItem/index.tsx","components/FarmItemMobile/index.tsx","components/FarmMeta/index.tsx","components/OldFarmItem/index.tsx","components/OldFarmItemMobile/index.tsx","hooks/useGlobelChef.ts","modal/chef.ts","hooks/useOldETHUSDTChef.ts","hooks/usePrice.ts","pages/Farm/index.tsx","pages/History/index.tsx","hooks/useAccountRecord.ts","components/EnterAddress/index.tsx","constants/nft.ts","pages/NFT/index.tsx","components/NFTItem/index.tsx","components/ToastContent/index.tsx","components/modal/AddNFTModal/index.tsx","pages/NFTBridge/index.tsx","hooks/useAccountDefaultNFT.ts","components/ChainSwitcher/index.tsx","assets/images/arrow.svg","assets/images/right.svg","assets/images/time.svg","assets/images/wrong.svg","components/notice/NativeBridgeNotice/index.tsx","hooks/native_bridge.ts","hooks/useAllowances.ts","hooks/useSwitchChain.ts","hooks/useTokenBalances.ts","pages/NativeBridgeV2/index.tsx","pages/OldPool/index.tsx","assets/images/not_support.png","assets/images/filter.svg","constants/index.ts","components/Chart/index.tsx","hooks/useGlobalLiquidity.ts","modal/token.ts","components/ChainPair/index.tsx","components/peg/Bridge/index.tsx","hooks/usePegTokenMeta.ts","assets/images/liquidity_bg.png","hooks/useFeeTier.ts","components/UserLiquidity/index.tsx","components/modal/NoticeModal/index.tsx","components/peg/AddLiquidity/index.tsx","components/peg/RemoveLiquidity/index.tsx","components/peg/Liquidity/index.tsx","pages/PegBridge/index.tsx","pages/Pool/index.tsx","hooks/useApproval.ts","helpers/typography.ts","hooks/useTwowayCalculateFee.ts","hooks/useTwowayFixFee.ts","components/notice/BridgeNotice/index.tsx","components/twoway/Bridge/index.tsx","hooks/useTwowayFee.ts","components/notice/AddLiquidityNotice/index.tsx","components/twoway/Add/index.tsx","hooks/useTwowayCalculateReward.ts","components/modal/ConfirmModal/index.tsx","components/notice/RemoveLiquidityNotice/index.tsx","components/twoway/Remove/index.tsx","components/twoway/Liquidity/index.tsx","pages/Twoway/index.tsx","components/modal/twoway/TwowayChefClaimModal/index.tsx","components/modal/twoway/TwowayChefStakeModal/index.tsx","components/modal/twoway/TwowayChefWithdrawModal/index.tsx","components/TwowayChefItem/index.tsx","components/TwowayChefItemMobile/index.tsx","components/twoway/ChefMeta/index.tsx","hooks/useTwowayChef.ts","pages/TwowayFarm/index.tsx","pages/TwowayPool/index.tsx","pages/App.tsx","index.tsx"],"names":["bscTheme","createMuiTheme","spacing","palette","primary","light","main","secondary","components","MuiSvgIcon","styleOverrides","fontSizeSmall","fontSize","MuiSelect","defaultProps","MenuProps","anchorOrigin","vertical","horizontal","MuiDivider","root","backgroundColor","MuiButton","disableElevation","variant","textTransform","contained","sizeSmall","borderRadius","minWidth","padding","sizeLarge","height","containedSecondary","color","containedPrimary","MuiTabs","indicator","display","MuiMenu","paper","boxShadow","marginTop","list","maxHeight","MuiMenuItem","alignItems","width","marginRight","background","MuiTab","MuiCard","MuiTypography","fontFamily","caption","lineHeight","body2","MuiCssBaseline","html","WebkitFontSmoothing","body","overflow","minHeight","button","a","textDecoration","top","position","content","left","ethereumTheme","MuiPaper","outlined","ThemeManager","children","chainId","useWeb3React","theme","useMemo","CHAIN_ETHER_RINKEBY","CHAIN_ETHER","CHAIN_BSC","CHAIN_BSC_TESTNET","ThemeProvider","INFURA_KEY","process","injectedConnector","InjectedConnector","supportedChainIds","CHAIN_HARMONY_0","CHAIN_HARMONY_0_TESTNET","CHAIN_HECO","CHAIN_POLYGON","CHAIN_POLYGON_MUMBAI","CHAIN_XDAI_TESTNET","CHAIN_XDAI","CHAIN_FANTOM","CHAIN_FANTOM_TESTNET","CHAIN_ARBITRUM","CHAIN_ARBITRUM_TESTNET","CHAIN_OPTIMISM","CHAIN_BOBA","CHAIN_METIS","CHAIN_AURORA","CHAIN_AURORA_TESTNET","CHAIN_KCC","CHAIN_IOTEX","CHAIN_CONFLUX","CHAIN_BASE","CHAIN_AAC","CHAIN_BLAST","bscConnector","BscConnector","walletConnect","WalletConnectConnector","rpc","1","bridge","qrcode","pollingInterval","walletLink","WalletLinkConnector","url","appName","appLogoUrl","ALL_CHAINS","CHAIN_OK","CHAIN_AVALANCHE","PRODUCTION_NATIVE_TARGET_CHAINS","filter","chainID","NATIVE_BRIDGE_ADDRESSES","CHAIN_ETHER_KOVAN","NATIVE_BRIDGE_TOKENS","symbol","address","decimals","isWrapped","originAddress","PEG_PROXY","CHAIN_OK_TESTNET","CHAIN_AVALANCHE_TESTNET","CHAIN_HECO_TESTNET","PEG_TOKENS","pair","pid","displayBalance","balance","fixed","undefined","BigNumber","div","gt","dividedBy","pow","toFormat","ROUND_DOWN","displayBalanceUp","ROUND_CEIL","verifyNumericInput","e","cb","value","target","test","getMaxValue","toFixed","Math","getPegToken","find","t","calculateGasMargin","multipliedBy","multicalls","multicallContract","inputs","calls","length","map","input","contract","callData","interface","encodeFunctionData","method","args","console","error","aggregate","result","i","decodeFunctionResult","getTwowayTokenSymbolByAddress","token","TWOWAY_TOKENS","ethers","utils","getAddress","displayName","OUSDT_TOKENS","charAt","substring","hadBoringReward","pool","getScanTxLink","id","txHash","CHAIN_OASIS","isOriginToken","get2WayTokenFixed","tokenName","twowayLimit","USDT","0","USDC","IZI","ETH","METIS","FIN","AAC","get2WayLimit","index","PRODUCTION_TWOWAY_CHAIN_IDS","TWOWAY_CHAIN_IDS","CHAIN_ETHER_GOERLI","TWOWAY_ADDRESSES","TWOWAY_CHEF_ADDRESSES","FilterTokens","MULTICALL_NETWORKS","CHAIN_ETHER_ROPSTEN","Context","createContext","blockNumber","Updater","library","useState","setBlockNumber","ctx","setCtx","useEffect","on","removeListener","useInterval","Provider","getContract","ABI","account","isAddress","AddressZero","Contract","getSigner","connectUnchecked","useContract","useContractWithProvider","provider","useMulticallContract","MULTICALL_ABI","useMulticallContractWithProvider","useMulticallsWithMulticall","multicall","setResult","useContext","handle","useCallback","r","useMulticalls","useBlockNumber","table","info","log","getUrlProvider","providers","JsonRpcProvider","Chains","timeout","throttleLimit","isTestnet","callback","delay","immediately","savedCallback","useRef","current","tick","setInterval","clearInterval","useRelayChainID","requestChainID","useRelayChainProvider","relayChainID","useTwowayLockBalance","useTwowayLockBalances","lockBalances","loading","results","lock","balances","lockBalance","relayContract","TwowayABI","abi","ids","tokens","useTwowayOTokens","setLockBalances","setLoading","push","catch","j","toString","useAccountBalance","checkedAddresses","setBalance","getBalance","number","setNumber","useNativeBridgeTokens","tokenNames","includes","useTwowayTokens","useTwowayTokenChainIDs","usePegTokens","useQuery","URLSearchParams","useLocation","search","useDebounce","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout","Web3ReactManager","triedEager","activate","active","tried","setTried","isAuthorized","then","isMobile","window","ethereum","useEagerConnect","handleChainChanged","location","reload","handleAccountsChanged","accounts","versionCookieName","CtrContext","version","setVersion","Controller","useCookies","cookies","setCookie","path","sameSite","i18n","use","languageDetector","initReactI18next","init","resources","en","translation","enUsTrans","zh","zhCnTrans","react","useSuspense","fallbackLng","debug","interpolation","escapeValue","getIcon","AACPng","BSCIcon","Boring","NSure","OLTC","OBTC","OPortal","XVEMP","AMY","oUSDT","OUSDC","Fire","LOL","HarmonyIcon","EthereumIcon","Metis","getImage","name","getChainIcon","BaseSvg","OKIcon","AvalancheIcon","FantomIcon","HecoIcon","PolygonIcon","XDaiIcon","ArbitrumIcon","Optimism","Aurora","KCC","IOTEX","Conflux","Backed","className","other","useTranslation","chains","Box","textAlign","maxWidth","m","pt","clsx","justifyContent","marginBottom","sx","ml","chain","src","alt","Link","rel","href","METAMASK","WALLET_CONNECT","WALLET_LINK","SUPPORTED_WALLETS","connector","iconURL","useStyles","makeStyles","createStyles","wallet","border","cursor","borderColor","marginLeft","grow","flexGrow","WalletsModal","props","classes","Dialog","keepMounted","fullWidth","transitionDuration","p","Typography","Object","values","mt","onClick","onClose","bar","wrong","Account","useTheme","useMediaQuery","breakpoints","down","showModal","useModal","ellipseAddress","setupNetwork","request","params","chainName","nativeCurrency","rpcUrls","blockExplorerUrls","explorer","BoringInput","withStyles","InputBase","LanguageSelect","Select","style","md","xs","transformOrigin","elevation","onChange","changeLanguage","language","MenuItem","ChainSelect","setID","change","mr","replace","bottom","Bar","Container","Button","Sidebar","isOpen","close","zIndex","transform","transition","right","exact","to","styles","InputWrapper","status","Label","Area","bgcolor","ApproveContent","approved","doing","htmlColor","CircularProgress","size","WithoutStyleInput","margin","BGInput","BoringTooltip","styled","Tooltip","popper","tooltipClasses","tooltip","typography","pxToRem","SelectTooltip","placement","arrow","disableFocusListener","disableHoverListener","disableTouchListener","tooltipArrow","TokenWithName","LPSingleToken","whiteSpace","Center","CenterY","CenterX","flexDirection","Block","CrossNoticeEdge","amount","desc","img","LinkIcon","nav","Header","open","setOpen","Hidden","mdUp","pr","Tabs","textColor","indicatorColor","event","newValue","centered","Tab","disableRipple","label","mdDown","OTokenSelector","currentName","setTokenName","query","history","useHistory","set","Data","initTokenName","get","suffix","mb","py","borderTop","PRODUCTION_CHEF_CHAINS","CHEF_ADDRESSES","OLD_ETH_CHEF_ADDRESS","displayAPY","poolInfo","boringPrice","calcAPY","eq","rate","point","totalPoint","boringPerBlock","getBlockTime","lockValue","totalStaked","displayTwowayBoringAPY","rewardPerSecond","displayTwowayOTokenAPY","ConvertModal","shouldApprove","setShouldApprove","oldPairAddress","newPairAddress","oldPair","PairV2ABI","allowance","approving","approve","constants","MaxUint256","tx","wait","convert","pairV2","oldMint","FarmClaimModal","setDoing","claiming","chefAddress","isOld","chefContract","ChefABI","deposit","reward","Grid","container","item","disabled","Max","FarmStakeModal","renewFarm","setAmount","staking","parseEther","placeholder","lte","FarmWithdrawModal","withdrawing","withdraw","yourStaked","FarmItem","approveDoing","setApproveDoing","openWithdrawModal","setOpenWithdrawModal","openStakeModal","setOpenStakeModal","openClaimModal","setOpenClaimModal","shouldConvert","setShouldConvert","openConvert","setOpenConvert","lt","oldBalanceOf","oldBalance","tokenAddress","tokenContract","ERC20ABI","pb","borderBottom","FarmItemMobile","svg","FarmMeta","pools","total","setTotal","your","setYour","setReward","rewards","plus","OldFarmItem","OldFarmItemMobile","useGlobalChef","defaultAccount","chainIDs","fetchFarms","promises","pairContract","SwapPairABI","MulticallABI","Promise","all","EmptyPoolInfo","useOldETHUSDTChef","fetchOldFarms","usePrice","price","setPrice","oracleContract","OracleABI","getPrice","formatBytes32String","String","Farm","oldPool","px","History","records","setRecords","recordsLoading","recordsQuery","toLowerCase","client","ApolloClient","uri","cache","InMemoryCache","gql","data","twowayV2Entities","err","useAccountRecord","record","optName","fromToken","Number","fromChainId","toChainId","from","moment","timestamp","format","EnterAddress","DEFAULT_NFT_ADDRESSES","NFT_BRIDGE_ADDRESSES","NFT_BRIDGE_SUPPORT_CHAIN","NFT","setTarget","contractAddress","tokenID","setTo","debounceTo","can","setCan","toStatus","setToStatus","toNotice","setToNotice","setApproved","aprDoing","setAprDoing","BridgeNFTABI","getApproved","network_name","cross","NFTBridgeABI","crossOut","KeyboardBackspace","ZoomIn","NFTItem","nft","objectFit","tokenUri","ToastContent","AddNFTModal","setAddress","debounceAddress","addressStatus","setAddressStatus","addressNotice","setAddressNotice","add","toast","NFTABI","balanceOf","indexCalls","uriCalls","urls","fetch","json","image","concat","NFTBridge","ref","fetching","addresses","meta","useAccountDefaultNFT","allNFTs","setWidth","openModal","setOpenModal","userResult","setUserResult","offsetWidth","ChainSwitcher","changeNetwork","selectCurrentChain","specificId","afterChange","NativeBridgeNotice","fromID","toID","receivedAmount","setStatus","secondHash","setSecondHash","res","total_steps","events","transaction","mx","Time","Right","Wrong","Arrow","useNativeBridgeOriginTokenAddress","targetChainID","nativeBridgeContract","NativeBridgeABI","getOriginTokenAddress","supportedTokens","mirrorAddress","useAllowances","spender","reduce","useSwitchChain","sourceChainId","switching","useTokenBalances","originBalance","NativeBridgeV2","nativeBridgeAddress","fromChains","targetChains","initTargetChain","ok","some","useDefaultTargetChain","setTargetChainID","amountStatus","setAmountStatus","amountNotice","setAmountNotice","filterTokens","fromChainID","toChainID","fromTokensTemp","toTokens","fromTokens","useCommonNativeBridgeTokens","initTokenAddress","useDefaultTokenAddress","type","setType","allowances","minCrossAmount","fixFees","useNativeBridgeMinCrossAmountV2","openAddress","setOpenAddress","getFixedCount","amountN","maximum","token_name","minimum","calculateFee","parseUnits","fixedAmount","ratioAmount","remainAmount","finalAddress","estimateArgs","estimateGas","gas","gasLimit","hash","Card","token_symbol","Skeleton","OldPool","withdrawAmount","setWithdrawAmount","withdrawDoing","setWithdrawDoing","claimDoing","setClaimDoing","TWOWAY_ALL_MAINNET_CHAINS","PRODUCTION_TARGET_PEG_CHAINS","Chart","dest","liquidities","keys","targetChainIDs","cid","targetCalls","acc","useGlobalLiquidity","split","srcChainIDs","setSrcChainIDs","destChainIDs","setDestChainIDs","finalSourceChainIDs","finalDestChainIDs","React","sourceOpen","setSourceOpen","destOpen","setDestOpen","my","pl","ClickAwayListener","onClickAway","title","tmp","sid","join","handleSrcIDSelect","FilterImg","handleDestIDSelect","otherChainIDs","innerChainID","tid","sourceLiquidity","targetToken","diff","liquidity","indexOf","reserve0","l","buildTokenWithAddress","twowayToken2Token","EMPTY_TOKEN","emptyPegToken","ChainPair","sourceChainID","switchTargetChain","sourceChain","firstTargetChain","paddingRight","Bridge","queryTargetChainID","setValue","debounceValue","initTargetChainID","setTokenAddress","useTargetPegToken","proxyAddress","targetProxyAddress","proxyContract","PegProxyABI","targetProxyContract","fee","setFee","setGet","valueStatus","setValueStatus","valueNotice","setValueNotice","setFixedAmount","ratio","setRatio","targetProvider","targetPairContract","targetResults","usePegTokenMeta","originMeta","targetMeta","currentDiff","targetDiff","targetLiquidity","userMaximum","getMaxToken1AmountOut","maxToken1","feeRatioM","v","valueN","gte","count","feeAmountM","finalFixedAmount","d","f","minus","maxAmount","target_chain_name","fixed_amount","HelpOutline","useFeeTier","tier","setTier","inputChainID","UserLiquidity","pairs","worth","setWorth","diff0","totalReserve1s","reserve1","totalSupply","sum","Divider","NoticeModal","message","AddLiquidity","TwoWayABI","openNotice","setOpenNotice","addLiquidity","pairAddress","getLPAmount","lp","t1","calc","source","destination","RemoveLiquidity","oldAprDoing","setOldAprDoing","origin","setOrigin","setIDs","gets","setGets","shouldOldApprove","setShouldOldApprove","oldBalanceN","minimum_amount","oldApproving","remove","removeLiquidity","valueF","calculateBurn","resultAmount","calculateRemoveFee","removeFee","g","memo","Liquidity","setSubTab","setWalletModalOpen","totalValue","had","setT","LiquidityBG","PegBridge","tabValue","tabIndex","tab","setTab","setST","subTab","lg","NotSupport","current_chain_name","support_chain1","support_chain2","sm","append","delete","Pool","useApproval","useAllowance","useTokenBalance","getTwowayFeeStatus","useTwowayCalculateFee","oTokenAddress","relayChainProvider","relayChainTwowayAddress","calcFee","setCalcFee","TwowayCenterABI","feeResult","fixAmount","feeAmount","times","useTwowayFixFees","twowayAddress","centerContract","oTokens","setResults","BridgeNotice","secondStatus","setSecondStatus","thirdHash","setThirdHash","handleNotice","twowayContract","tmpFromChainIDs","fromChainIDs","toChainIDs","setToID","useCommonTwowayTokens","ts","findIndex","ti","realToken","maxInput","first","setFirst","debounceAmount","newApproved","amountFlag","setAmountFlag","otokens","otoken","oTokenIndex","fees","setFees","o","useTwowayFee","fixFee","gained","AddLiquidityNotice","Add","initToken","oToken","ot","setRewards","useTwowayCalculateReward","showReward","setShowReward","currentLockBalances","rs","sort","b","TwowayEdgeABI","ConfirmModal","onConfirm","DialogActions","RemoveLiquidityNotice","Remove","isCorrectNetwork","tokenIndex","selectedToken","allChainIds","useAllChainIdsFor2WayToken","originTokenSymbol","maximum_amount","action","useTokenBalancesWithMulticallContract","hadLiquidity","findToken","Twoway","notice","setNotice","borderBottomRightRadius","borderBottomLeftRadius","TwowayChefClaimModal","TwowayChefABI","earned","TwowayChefStakeModal","TwowayChefWithdrawModal","TwowayChefItem","TwowayChefItemMobile","ChefMeta","useTwowayChef","twowayChefAddress","TwowayFarm","TwowayPool","App","autoRefreshOnNetworkChange","ReactDOM","render","StrictMode","getLibrary","Web3Provider","CssBaseline","hideProgressBar","newestOnTop","pauseOnFocusLoss","pauseOnHover","closeOnClick","autoClose","CookiesProvider","document","getElementById"],"mappings":"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","file":"static/js/main.40c01714.chunk.js","sourcesContent":["import {createMuiTheme} from '@material-ui/core'\n\nexport const bscTheme = createMuiTheme({\n spacing: 5,\n palette: {\n primary: {\n light: '#ffebb9b0',\n main: '#EFB82D',\n },\n secondary: {\n main: '#FD7C25',\n },\n },\n components: {\n MuiSvgIcon: {\n styleOverrides: {\n fontSizeSmall: {\n fontSize: '16px',\n },\n },\n },\n MuiSelect: {\n defaultProps: {\n MenuProps: {\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: {\n backgroundColor: '#f1f2f6',\n },\n },\n },\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n variant: 'contained',\n },\n styleOverrides: {\n root: {\n fontSize: '13px',\n textTransform: 'capitalize',\n },\n contained: {\n backgroundColor: '#f1f2f6',\n '&:hover': {\n backgroundColor: '#f1f2f2',\n },\n },\n sizeSmall: {\n borderRadius: 5,\n minWidth: '56px',\n padding: '4px 5px',\n },\n sizeLarge: {\n height: '50px',\n borderRadius: 10,\n },\n containedSecondary: {\n backgroundColor: '#00D9A7',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#00D9A7 !important',\n },\n '&:active': {\n backgroundColor: '#00D9A7 !important',\n },\n },\n containedPrimary: {\n borderRadius: 10,\n backgroundColor: '#EFB82D',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#EFB23D',\n },\n },\n },\n },\n MuiTabs: {\n styleOverrides: {\n indicator: {\n display: 'none',\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: {\n padding: '5px 0',\n boxShadow: '0px 1px 10px 0px rgba(186, 192, 204, 0.41)',\n marginTop: '10px',\n },\n list: {\n padding: '8px 0',\n maxHeight: '400px',\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n display: 'flex',\n alignItems: 'center',\n padding: '12px 24px',\n fontSize: '14px !important',\n '& a': {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n },\n '& img': {\n marginRight: '10px',\n },\n '&:hover': {\n background: '#f6f6f6',\n },\n '&$selected': {\n background: '#f6f6f6',\n '&:hover': {\n background: '#f6f6f6',\n },\n },\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n color: '#A1A8C7',\n minWidth: '60px !important',\n '&:hover': {\n color: '#444C65',\n },\n '&$selected': {\n color: '#444C65',\n },\n '&:focus': {\n color: '#444C65',\n },\n },\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n boxShadow: '0px 5px 43px 0px rgba(228, 232, 245, 0.92)',\n borderRadius: '16px',\n },\n },\n },\n MuiTypography: {\n styleOverrides: {\n root: {\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif !important',\n },\n caption: {\n color: '#7B89B7',\n lineHeight: '22px',\n },\n body2: {\n color: '#767d8f',\n },\n },\n },\n MuiCssBaseline: {\n styleOverrides: {\n html: {\n WebkitFontSmoothing: 'auto',\n },\n body: {\n overflow: 'inherit !important',\n backgroundColor: '#F6ECD5',\n minHeight: '100vh',\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif !important',\n '&::-webkit-scrollbar, & *::-webkit-scrollbar': {\n display: 'none',\n },\n },\n '*': {\n '-ms-overflow-style': 'none',\n 'scrollbar-width:': 'none',\n },\n button: {\n textTransform: 'capitalize !important',\n },\n a: {\n textDecoration: 'none',\n },\n '.MuiListItem-root': {\n fontSize: '14px !important',\n },\n '.Mui-disabled': {\n background: '#F1F2F6 !important',\n },\n '.Toastify__toast-container': {\n minWidth: '260px',\n width: 'auto !important',\n fontSize: '13px',\n },\n '.Toastify__toast': {\n borderRadius: '12px',\n top: '60px',\n padding: '8px 10px 8px 30px',\n color: '#000',\n position: 'left',\n minHeight: '80px',\n '&:before': {\n content: '\" \"',\n position: 'absolute',\n width: '20px',\n left: 0,\n top: 0,\n height: '100%',\n background: 'linear-gradient(360deg, #0068FF 0%, #00A1FF 100%)',\n },\n\n '& svg': {\n marginRight: '5px',\n },\n },\n '.Toastify__close-button': {\n color: '#000',\n },\n '.Toastify__toast--info': {\n background: '#fff',\n },\n '.MuiStepLabel-root.Mui-disabled': {\n background: '#fff !important',\n },\n '.MuiFormControlLabel-root': {\n alignItems: 'flex-start !important',\n '& h6': {\n marginTop: '2px',\n },\n },\n '.MuiStepConnector-vertical': {\n background: '#fff !important',\n },\n '.MuiTooltip-arrow': {\n color: '#fff !important',\n '&::before': {\n boxShadow: 'rgb(215 224 241) 0px 0px 4px 0px !important',\n },\n },\n },\n },\n },\n})\n","import {createMuiTheme} from '@material-ui/core'\n\nexport const ethereumTheme = createMuiTheme({\n spacing: 5,\n palette: {\n primary: {\n light: '#e1edff',\n main: '#1164FB',\n },\n secondary: {\n main: '#FD7C25',\n },\n },\n components: {\n MuiSvgIcon: {\n styleOverrides: {\n fontSizeSmall: {\n fontSize: '16px',\n },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n borderRadius: '12px',\n },\n },\n },\n MuiSelect: {\n defaultProps: {\n MenuProps: {\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n },\n },\n },\n MuiDivider: {\n styleOverrides: {\n root: {\n backgroundColor: '#f1f2f6',\n },\n },\n },\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n variant: 'contained',\n },\n styleOverrides: {\n root: {\n fontSize: '13px',\n textTransform: 'capitalize',\n },\n contained: {\n backgroundColor: '#f1f2f6',\n '&:hover': {\n backgroundColor: '#f1f2f2',\n },\n },\n sizeSmall: {\n borderRadius: 5,\n minWidth: '56px',\n padding: '4px 5px',\n },\n sizeLarge: {\n height: '50px',\n borderRadius: 10,\n },\n containedSecondary: {\n backgroundColor: '#00D9A7',\n color: '#fff',\n '&:hover': {\n backgroundColor: '#00D9A7 !important',\n },\n '&:active': {\n backgroundColor: '#00D9A7 !important',\n },\n },\n outlined: {\n borderRadius: 10,\n },\n containedPrimary: {\n borderRadius: 10,\n // backgroundColor: isBSC() ? '#EFB82D' : '#1164FB',\n backgroundColor: '#1164FB',\n color: '#fff',\n '&:hover': {\n // backgroundColor: isBSC() ? '#EFB23D' : '#3679f4',\n backgroundColor: '#3679f4',\n },\n },\n },\n },\n MuiTabs: {\n styleOverrides: {\n indicator: {\n display: 'none',\n },\n },\n },\n MuiMenu: {\n styleOverrides: {\n paper: {\n padding: '5px 0',\n boxShadow: '0px 1px 10px 0px rgba(186, 192, 204, 0.41)',\n marginTop: '10px',\n },\n list: {\n padding: '8px 0',\n maxHeight: '400px',\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n display: 'flex',\n alignItems: 'center',\n padding: '12px 24px',\n fontSize: '14px !important',\n '& a': {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n },\n '& img': {\n marginRight: '10px',\n },\n '&:hover': {\n background: '#f6f6f6',\n },\n '&$selected': {\n background: '#f6f6f6',\n '&:hover': {\n background: '#f6f6f6',\n },\n },\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n color: '#A1A8C7',\n minWidth: '60px !important',\n '&:hover': {\n color: '#444C65',\n },\n '&$selected': {\n color: '#444C65',\n },\n '&:focus': {\n color: '#444C65',\n },\n },\n },\n },\n MuiCard: {\n styleOverrides: {\n root: {\n boxShadow: '0px 5px 43px 0px rgba(228, 232, 245, 0.92)',\n borderRadius: '16px',\n },\n },\n },\n MuiTypography: {\n styleOverrides: {\n root: {\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif !important',\n },\n caption: {\n color: '#7B89B7',\n lineHeight: '22px',\n },\n body2: {\n color: '#767d8f',\n },\n },\n },\n MuiCssBaseline: {\n styleOverrides: {\n html: {\n WebkitFontSmoothing: 'auto',\n },\n body: {\n overflow: 'inherit !important',\n // backgroundColor: isBSC() ? '#F6ECD5' : '#E9EDF2',\n backgroundColor: '#E9EDF2',\n minHeight: '100vh',\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif !important',\n // fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif !important',\n '&::-webkit-scrollbar, & *::-webkit-scrollbar': {\n display: 'none',\n },\n },\n '*': {\n '-ms-overflow-style': 'none',\n 'scrollbar-width:': 'none',\n },\n button: {\n textTransform: 'capitalize !important',\n },\n a: {\n textDecoration: 'none',\n },\n '.MuiListItem-root': {\n fontSize: '14px !important',\n },\n '.Mui-disabled': {\n background: '#F1F2F6 !important',\n },\n '.Toastify__toast-container': {\n minWidth: '260px',\n width: 'auto !important',\n fontSize: '13px',\n },\n '.Toastify__toast': {\n borderRadius: '12px',\n top: '60px',\n padding: '8px 10px 8px 30px',\n color: '#000',\n position: 'left',\n minHeight: '80px',\n '&:before': {\n content: '\" \"',\n position: 'absolute',\n width: '20px',\n left: 0,\n top: 0,\n height: '100%',\n background: 'linear-gradient(360deg, #0068FF 0%, #00A1FF 100%)',\n },\n\n '& svg': {\n marginRight: '5px',\n },\n },\n '.Toastify__close-button': {\n color: '#000',\n },\n '.Toastify__toast--info': {\n background: '#fff',\n },\n '.MuiStepLabel-root.Mui-disabled': {\n background: '#fff !important',\n },\n '.MuiFormControlLabel-root': {\n alignItems: 'flex-start !important',\n '& h6': {\n marginTop: '2px',\n },\n },\n '.MuiStepConnector-vertical': {\n background: '#fff !important',\n },\n '.MuiTooltip-arrow': {\n color: '#fff !important',\n '&::before': {\n boxShadow: 'rgb(215 224 241) 0px 0px 4px 0px !important',\n },\n },\n },\n },\n },\n})\n","import {ThemeProvider} from '@material-ui/core'\nimport {CHAIN_BSC, CHAIN_BSC_TESTNET, CHAIN_ETHER, CHAIN_ETHER_RINKEBY} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport React, {useMemo} from 'react'\n\nimport {bscTheme} from '../../themes/bsc'\nimport {ethereumTheme} from '../../themes/ethereum'\n\nconst ThemeManager = ({children}: {children: JSX.Element}): JSX.Element => {\n const {chainId} = useWeb3React()\n\n const theme = useMemo(() => {\n switch (chainId) {\n case CHAIN_ETHER_RINKEBY:\n case CHAIN_ETHER:\n return ethereumTheme\n case CHAIN_BSC:\n case CHAIN_BSC_TESTNET:\n return bscTheme\n default:\n return ethereumTheme\n }\n }, [chainId])\n\n return {children}\n}\n\nexport default ThemeManager\n","import {BscConnector} from '@binance-chain/bsc-connector'\nimport {\n CHAIN_AAC,\n CHAIN_ARBITRUM,\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_AURORA,\n CHAIN_AURORA_TESTNET,\n CHAIN_BASE,\n CHAIN_BLAST,\n CHAIN_BOBA,\n CHAIN_CONFLUX,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_IOTEX,\n CHAIN_KCC,\n CHAIN_METIS,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n} from '@w3u/chains'\nimport {InjectedConnector} from '@web3-react/injected-connector'\nimport {WalletConnectConnector} from '@web3-react/walletconnect-connector'\nimport {WalletLinkConnector} from '@web3-react/walletlink-connector'\n\nconst INFURA_KEY = process.env.REACT_APP_INFURA_KEY\n\nexport const injectedConnector = new InjectedConnector({\n supportedChainIds: [\n 1,\n 3,\n 4,\n 5,\n 42,\n 56,\n 97,\n 256,\n 65,\n 66,\n 43113,\n 43114,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI_TESTNET,\n CHAIN_XDAI,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_ARBITRUM,\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_BOBA,\n CHAIN_METIS,\n CHAIN_AURORA,\n CHAIN_AURORA_TESTNET,\n CHAIN_KCC,\n CHAIN_IOTEX,\n CHAIN_CONFLUX,\n CHAIN_BASE,\n CHAIN_AAC,\n CHAIN_BLAST,\n ],\n})\n\nexport const bscConnector = new BscConnector({supportedChainIds: [56, 97]})\n\n// MainNet only\nexport const walletConnect = new WalletConnectConnector({\n rpc: {1: `https://mainnet.infura.io/v3/${INFURA_KEY}`},\n bridge: 'https://bridge.walletconnect.org',\n qrcode: true,\n pollingInterval: 15000,\n})\n\n// MainNet only\nexport const walletLink = new WalletLinkConnector({\n url: `https://mainnet.infura.io/v3/${INFURA_KEY}`,\n appName: 'BoringDAO',\n appLogoUrl: 'https://app.boringdao.com/static/media/bor.0a18b81a.png',\n})\n","import {\n CHAIN_ARBITRUM,\n CHAIN_AURORA,\n CHAIN_AURORA_TESTNET,\n CHAIN_AVALANCHE,\n CHAIN_BLAST,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_CONFLUX,\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_KCC,\n CHAIN_METIS,\n CHAIN_OK,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n} from '@w3u/chains'\n\nimport {NativeBridgeToken} from '../modal/token'\n\nexport const ALL_CHAINS = [\n CHAIN_ETHER,\n CHAIN_BSC,\n CHAIN_OK,\n CHAIN_POLYGON,\n // CHAIN_HARMONY_0,\n CHAIN_XDAI,\n CHAIN_AVALANCHE,\n // CHAIN_FANTOM,\n // CHAIN_HECO,\n CHAIN_ARBITRUM,\n CHAIN_OPTIMISM,\n CHAIN_BOBA,\n CHAIN_KCC,\n // CHAIN_CONFLUX,\n CHAIN_BLAST,\n]\n\nexport const PRODUCTION_NATIVE_TARGET_CHAINS: {[chainID: number]: number[]} = {\n [CHAIN_ETHER]: [...ALL_CHAINS.filter((chainID) => chainID !== CHAIN_ETHER), CHAIN_METIS],\n [CHAIN_BSC]: [...ALL_CHAINS.filter((chainID) => chainID !== CHAIN_BSC), CHAIN_METIS],\n [CHAIN_OK]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_OK),\n [CHAIN_POLYGON]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_POLYGON),\n [CHAIN_XDAI]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_XDAI),\n // [CHAIN_HECO]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_HECO),\n [CHAIN_HARMONY_0]: [...ALL_CHAINS.filter((chainID) => chainID !== CHAIN_HARMONY_0), CHAIN_AURORA],\n [CHAIN_FANTOM]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_FANTOM),\n [CHAIN_AVALANCHE]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_AVALANCHE),\n [CHAIN_ARBITRUM]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_ARBITRUM),\n [CHAIN_OPTIMISM]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_OPTIMISM),\n [CHAIN_BOBA]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_BOBA),\n [CHAIN_METIS]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_METIS),\n // [CHAIN_AURORA]: [CHAIN_HARMONY_0],\n [CHAIN_KCC]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_KCC),\n [CHAIN_CONFLUX]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_CONFLUX),\n}\n\nexport const NATIVE_TARGET_CHAINS: {[chainID: number]: number[]} = {\n [CHAIN_ETHER_KOVAN]: [CHAIN_BSC_TESTNET, CHAIN_POLYGON_MUMBAI],\n [CHAIN_BSC_TESTNET]: [CHAIN_ETHER_KOVAN, CHAIN_POLYGON_MUMBAI],\n [CHAIN_POLYGON_MUMBAI]: [CHAIN_ETHER_KOVAN, CHAIN_BSC_TESTNET],\n [CHAIN_AURORA_TESTNET]: [CHAIN_HARMONY_0_TESTNET],\n [CHAIN_HARMONY_0_TESTNET]: [CHAIN_AURORA_TESTNET],\n [CHAIN_ETHER]: [...ALL_CHAINS.filter((chainID) => chainID !== CHAIN_ETHER), CHAIN_METIS],\n [CHAIN_BSC]: [...ALL_CHAINS.filter((chainID) => chainID !== CHAIN_BSC), CHAIN_METIS],\n [CHAIN_OK]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_OK),\n [CHAIN_POLYGON]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_POLYGON),\n [CHAIN_XDAI]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_XDAI),\n // [CHAIN_HECO]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_HECO),\n [CHAIN_HARMONY_0]: [...ALL_CHAINS.filter((chainID) => chainID !== CHAIN_HARMONY_0), CHAIN_AURORA],\n [CHAIN_FANTOM]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_FANTOM),\n [CHAIN_AVALANCHE]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_AVALANCHE),\n [CHAIN_ARBITRUM]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_ARBITRUM),\n [CHAIN_OPTIMISM]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_OPTIMISM),\n [CHAIN_BOBA]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_BOBA),\n [CHAIN_METIS]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_METIS),\n // [CHAIN_AURORA]: [CHAIN_HARMONY_0],\n [CHAIN_CONFLUX]: ALL_CHAINS.filter((chainID) => chainID !== CHAIN_CONFLUX),\n}\n\nexport const NATIVE_BRIDGE_ADDRESSES: {[chainID: number]: string} = {\n [CHAIN_ETHER_KOVAN]: '0x14dcF56cbf4C437449FE3811228D2E853B23E55f',\n [CHAIN_BSC_TESTNET]: '0x7B8C0668F4B5f3d8D4695864041F1f0C31e2F86C',\n [CHAIN_POLYGON_MUMBAI]: '0x944d7466B3c246BBeFAB03a51FBfF6Ac6355570E',\n [CHAIN_AURORA_TESTNET]: '0x5A9AbDe26C31B0F38975901f84e558204c98f44D',\n [CHAIN_HARMONY_0_TESTNET]: '0x9926bDc075434CDA3a32e7BA4FbC39e6174d286D',\n [CHAIN_ETHER]: '0xdBe43C732080271Fd7588aa5fe71bd07456D9173',\n [CHAIN_BSC]: '0xe7b388d44fA9069385E174efe6f10616B149Fe86',\n [CHAIN_OK]: '0xb9A9587eee2Da928f72A5846440E81C7426d595f',\n [CHAIN_POLYGON]: '0x64E4E7840bC20959c8BA984Db82fA0132D9b04dD',\n [CHAIN_XDAI]: '0xE3B59FD01c0155A98146a6E0Beb8376B751363fc',\n // [CHAIN_HECO]: '0xE3B59FD01c0155A98146a6E0Beb8376B751363fc',\n [CHAIN_FANTOM]: '0x77B3aa18D89ea24e4AF7BB9BC221D49FD5534c19',\n [CHAIN_AVALANCHE]: '0x2e220E3ab85fC4A46F770A34eF2CdDc8074E4689',\n [CHAIN_HARMONY_0]: '0x216f332D17145871D1d5ff5fEB4b08513Ef7Cc21',\n [CHAIN_ARBITRUM]: '0x9d8bDAa1dDE16da55c86cCaF12C81647ff9858B8',\n [CHAIN_OPTIMISM]: '0x91854b4a3c8379d5baa39F1C0917332E58BfBc7B',\n [CHAIN_BOBA]: '0x225247882FD7396c62E29707DA0890151208161a',\n [CHAIN_METIS]: '0xD01a5051253007ae0b7123b50410E3B5A3f6cF95',\n [CHAIN_AURORA]: '0xB98863f0a0cFE367496bFa393dA4D408Bee0A5Bf',\n [CHAIN_KCC]: '0xF8BE629521CfdcC35E9439E9775d341A0f076023',\n [CHAIN_CONFLUX]: '0x87DD4a7Ad23B95cD9fF9C26B5cF325905CaF8663',\n}\n\nexport const NATIVE_BRIDGE_TOKENS: NativeBridgeToken[] = [\n // {\n // symbol: 'NEAR',\n // address: '0xC42C30aC6Cc15faC9bD938618BcaA1a1FaE8501d',\n // chainID: CHAIN_AURORA,\n // decimals: 24,\n // },\n {\n symbol: 'NEAR',\n address: '0x7b5F623C18Cb82eDA040d363d5B17127F6Ac3Aa4',\n chainID: CHAIN_HARMONY_0,\n decimals: 24,\n },\n {\n symbol: 'USDT',\n address: '0x55FB3193F6e42D6753691c8aA38800B2753FB7d0',\n chainID: CHAIN_ETHER_KOVAN,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0xC2769060Ea91EC67bca1e6Bedb02e3017a7C0d32',\n chainID: CHAIN_BSC_TESTNET,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0x6F4E99b40FdF51bADc6C31361e17D5E1Bb33A13e',\n chainID: CHAIN_POLYGON_MUMBAI,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0xBC19712FEB3a26080eBf6f2F7849b417FdD792CA',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0xffEecbf8D7267757c2dc3d13D730E97E15BfdF7F',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0x5ce01aa1528a6a0c8edecc4cee909f0a24cf54de',\n chainID: CHAIN_OK,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0xfC7b937D53fbcFE0881c3a3D99c9736d5887A006',\n chainID: CHAIN_XDAI,\n decimals: 18,\n },\n // {\n // symbol: 'BORING',\n // address: '0xfC7b937D53fbcFE0881c3a3D99c9736d5887A006',\n // chainID: CHAIN_HECO,\n // decimals: 18,\n // },\n {\n symbol: 'BORING',\n address: '0x50D0799ba241E10A6E9bAcE2936129f117Cb32af',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0xB238a595e9797E009eFD5f938C9918181662066C',\n chainID: CHAIN_FANTOM,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0x017ff87ab312301ade54f7cf9cc5aea28c9de024',\n chainID: CHAIN_HARMONY_0,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0x603f0d26DA2c245D892300A4c3c86b5AD95C96be',\n chainID: CHAIN_AVALANCHE,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0xfC7b937D53fbcFE0881c3a3D99c9736d5887A006',\n chainID: CHAIN_ARBITRUM,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0xbE4A5438ad89311d8c67882175D0fFcC65Dc9C03',\n chainID: CHAIN_OPTIMISM,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0x017Ff87AB312301aDE54f7cf9Cc5AEA28C9De024',\n chainID: CHAIN_BOBA,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0x226D8BfB4da78Ddc5bd8Fd6C1532c58e88F9Fd34',\n chainID: CHAIN_METIS,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0x5D78bF8f79A66e43f5932c1Ae0b8fA6563F97f74',\n chainID: CHAIN_KCC,\n decimals: 18,\n },\n {\n symbol: 'BORING',\n address: '0x017Ff87AB312301aDE54f7cf9Cc5AEA28C9De024',\n chainID: CHAIN_CONFLUX,\n decimals: 18,\n },\n {\n symbol: 'oBTC',\n address: '0x8064d9Ae6cDf087b1bcd5BDf3531bD5d8C537a68',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'oBTC',\n address: '0xd595a0632B7dC0d92f3a80147C63F2f3498F8eE4',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n {\n symbol: 'oBTC',\n address: '0x6ef2968f539E9cBe5043F62dAdE97EAfd92EC53d',\n chainID: CHAIN_OK,\n decimals: 18,\n },\n {\n symbol: 'oBTC',\n address: '0x29414EC76d79Ff238E5E773322799d1c7Ca2443F',\n chainID: CHAIN_XDAI,\n decimals: 18,\n },\n // {\n // symbol: 'oBTC',\n // address: '0x29414EC76d79Ff238E5E773322799d1c7Ca2443F',\n // chainID: CHAIN_HECO,\n // decimals: 18,\n // },\n {\n symbol: 'oBTC',\n address: '0xd39A60AF2ae61D0D92A06d04F97c505b9a54EDAA',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n },\n {\n symbol: 'oBTC',\n address: '0xbc0090f48FDb8725C24B4327c69B99cDd39c2749',\n chainID: CHAIN_FANTOM,\n decimals: 18,\n },\n {\n symbol: 'oBTC',\n address: '0x57c37416c853C2703bbbF7eABB382A9CeDB523d8',\n chainID: CHAIN_AVALANCHE,\n decimals: 18,\n },\n {\n symbol: 'oBTC',\n address: '0x18d7ddc3583C03d7912593A07f353f0279668964',\n chainID: CHAIN_HARMONY_0,\n decimals: 18,\n },\n {\n symbol: 'VEMP',\n address: '0xcFEB09C3c5F0f78aD72166D55f9e6E9A60e96eEC',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'VEMP',\n address: '0xeDF3ce4Dd6725650a8e9398e5C6398D061Fa7955',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n {\n symbol: 'VEMP',\n address: '0x2c9a1d0E1226939EdB7BBb68C43a080c28743C5C',\n chainID: CHAIN_OK,\n decimals: 18,\n },\n {\n symbol: 'VEMP',\n address: '0xe179a674CF3785be513E1620aEBB944e68147D3F',\n chainID: CHAIN_ETHER_KOVAN,\n decimals: 18,\n },\n {\n symbol: 'VEMP',\n address: '0x337c6fC30eEACe049017fc180D259e95eAe1c960',\n chainID: CHAIN_BSC_TESTNET,\n decimals: 18,\n },\n {\n symbol: 'xVEMP',\n address: '0x2cEa1A4cc4aEBd76e448Bb894345D294c53853f2',\n chainID: CHAIN_ETHER_KOVAN,\n decimals: 18,\n },\n {\n symbol: 'xVEMP',\n address: '0x4852931e56B6bBf1f5a26eF62d85B0C56595DCE5',\n chainID: CHAIN_BSC_TESTNET,\n decimals: 18,\n },\n {\n symbol: 'xVEMP',\n address: '0x4a4e2d4859af854d2a3fc6df295843d21e70cc78',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'xVEMP',\n address: '0xAe9a0E6Bd6CB21cF36B773d47923980b410D3C85',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n {\n symbol: 'xVEMP',\n address: '0x861afdBC2F3DF53F07d397EacfA443683653cA99',\n chainID: CHAIN_OK,\n decimals: 18,\n },\n {\n symbol: 'FIN',\n address: '0x054f76beed60ab6dbeb23502178c52d6c5debe40',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'FIN',\n address: '0x2B21237BA30deF78EC551a10C99d656F90Eb10fC',\n chainID: CHAIN_OK,\n decimals: 18,\n isWrapped: true,\n originAddress: '0x8D3573f24c0aa3819A2f5b02b2985dD82B487715',\n },\n {\n symbol: 'AMY',\n address: '0xb6225104d9434CC148570cDDEEf19B2e46dA350D',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'AMY',\n address: '0x8fbd420956fdd301f4493500fd0bcaaa80f2389c',\n chainID: CHAIN_ARBITRUM,\n decimals: 18,\n },\n {\n symbol: 'AAVE',\n address: '0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'AAVE',\n address: '0x68D97B7A961a5239B9F911DA8dEb57F6eF6e5e28',\n chainID: CHAIN_METIS,\n decimals: 18,\n },\n {\n symbol: 'CRV',\n address: '0xD533a949740bb3306d119CC777fa900bA034cd52',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'CRV',\n address: '0x87DD4a7Ad23B95cD9fF9C26B5cF325905CaF8663',\n chainID: CHAIN_METIS,\n decimals: 18,\n },\n {\n symbol: 'WSG',\n address: '0xA58950F05FeA2277d2608748412bf9F802eA4901',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n {\n symbol: 'WSG',\n address: '0x4F497F9D85A6fE135fFca99f0f253919fE827211',\n chainID: CHAIN_METIS,\n decimals: 18,\n },\n // {\n // symbol: 'ONE',\n // address: '0x731203A6E33001d76AF6da49096fC8753b9E4932',\n // chainID: CHAIN_AURORA,\n // decimals: 18,\n // },\n {\n symbol: 'ONE',\n address: '0xb608b55b0F777e70F8e37a18F8Da6EC8AE667B33',\n chainID: CHAIN_AURORA_TESTNET,\n decimals: 18,\n },\n {\n symbol: 'ONE',\n address: '0x323B6b60B286f69D2cEf2277A71038FbDfd18F86',\n chainID: CHAIN_HARMONY_0,\n decimals: 18,\n },\n {\n symbol: 'ONE',\n address: '0xCc246259854B8c824371EFfF4eAe9A119fD48631',\n chainID: CHAIN_HARMONY_0_TESTNET,\n decimals: 18,\n },\n // {\n // symbol: 'LOWB',\n // address: '0x843d4a358471547f51534e3e51fae91cb4dc3f28',\n // chainID: CHAIN_BSC,\n // decimals: 18,\n // },\n // {\n // symbol: 'LOWB',\n // address: '0xd5B59f9F35F9a5bE75E7357798BF15A4E958B6B2',\n // chainID: CHAIN_METIS,\n // decimals: 18,\n // },\n {\n symbol: 'FIRE',\n address: '0x0f0Dd5E2c0e0c4A41F8908D73D36B8D142F6745a',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'FIRE',\n address: '0x0f0Dd5E2c0e0c4A41F8908D73D36B8D142F6745a',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n]\n","import {\n CHAIN_ARBITRUM,\n CHAIN_AVALANCHE,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_HECO_TESTNET,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n} from '@w3u/chains'\n\nimport {PegToken} from '../modal/token'\n\nexport const PEG_PROXY: {[chainID: number]: string} = {\n [CHAIN_ETHER]: '0xF8393Bc60CF8CfcD442BcD742a4Aa847f4B6B4ac',\n [CHAIN_BSC]: '0xf52d6823d9e2aff7548d9fe82eeadca6b1ed3062',\n [CHAIN_OK]: '0x39b107d2d810954507e7cd70403fda4ae12a192e',\n [CHAIN_POLYGON]: '0x54e2657015a9b5cc65dde59e515c71171312d319',\n [CHAIN_AVALANCHE]: '0x0f4c9320b9de4fa426d3e27d85c3452f52314c57',\n [CHAIN_HARMONY_0]: '0xe3b59fd01c0155a98146a6e0beb8376b751363fc',\n [CHAIN_HECO]: '0x8b645375a7a3bceaa01a6ecfd6e58d90b125b454',\n [CHAIN_FANTOM]: '0xbe4a5438ad89311d8c67882175d0ffcc65dc9c03',\n [CHAIN_XDAI]: '0x8b645375a7a3bceaa01a6ecfd6e58d90b125b454',\n [CHAIN_ETHER_KOVAN]: '0xF4809f0574E66aB07A0D2F4c229af0cD31A16FA6',\n [CHAIN_ARBITRUM]: '0x11E4BED429b239a1A0C594ADEB71b99e8Fa1011A',\n [CHAIN_OPTIMISM]: '0xD01a5051253007ae0b7123b50410E3B5A3f6cF95',\n [CHAIN_BOBA]: '0xa1C094Be9E6E3d5FA1815aF8c2c80fF19a4FEcdb',\n [CHAIN_BSC_TESTNET]: '0x6456cA9a734FBEB21BE8b7935837FF33325F4dBf',\n [CHAIN_OK_TESTNET]: '0x1D89E92f28f66DBE12a7F0b469ab55e77330bb1b',\n [CHAIN_POLYGON_MUMBAI]: '0xBDF99C3b6c23fF62049A721385893696514eed62',\n [CHAIN_AVALANCHE_TESTNET]: '0x019ecC465EeE4c2C12c9D27474eB494Cc58799e8',\n [CHAIN_HARMONY_0_TESTNET]: '0x8723ca4652cC6b0d7f916B524178F5ed7FB3534A',\n [CHAIN_HECO_TESTNET]: '0x7fbdB4E3657AA7877887BB445dcB57e58c674871',\n [CHAIN_FANTOM_TESTNET]: '0x40a7Db10d41b0e16F8E264294E47A4719c706EA2',\n [CHAIN_XDAI_TESTNET]: '0x25836668769f5017F29CA40967c5a2889a001550',\n}\n\nexport const PEG_TOKENS: PegToken[] = [\n {\n symbol: 'USDT',\n address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n chainID: CHAIN_ETHER,\n decimals: 6,\n pair: '0xfd16ea1d1a5531b1829200f64e8c18f8e9364477',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0x382bB369d343125BfB2117af9c149795C6C65C50',\n chainID: CHAIN_OK,\n decimals: 18,\n pair: '0x232c6b4e2e0833b1e6e07c9a37898203e7dd7b24',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0x55d398326f99059ff775485246999027b3197955',\n chainID: CHAIN_BSC,\n decimals: 18,\n pair: '0x37e6812c17252534b8b30c8b05fb677c4a94c397',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',\n chainID: CHAIN_POLYGON,\n decimals: 6,\n pair: '0xed6701d701841401b446f23757caa422d81691b0',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0xc7198437980c041c805A1EDcbA50c1Ce5db95118',\n chainID: CHAIN_AVALANCHE,\n decimals: 6,\n pair: '0x216f332d17145871d1d5ff5feb4b08513ef7cc21',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0xa71edc38d189767582c38a3145b5873052c3e47a',\n chainID: CHAIN_HECO,\n decimals: 18,\n pair: '0xe9fe1cefed8492cce0a72bc01c46002791644784',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0x3c2b8be99c50593081eaa2a724f0b8285f5aba8f',\n chainID: CHAIN_HARMONY_0,\n decimals: 6,\n pair: '0xb238a595e9797e009efd5f938c9918181662066c',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0x049d68029688eabf473097a2fc38ef61633a3c7a',\n chainID: CHAIN_FANTOM,\n decimals: 6,\n pair: '0xe4af65953eeb4b868b7b7ff33808e22069b09916',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0x4ECaBa5870353805a9F068101A40E0f32ed605C6',\n chainID: CHAIN_XDAI,\n decimals: 6,\n pair: '0xe9fe1cefed8492cce0a72bc01c46002791644784',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',\n chainID: CHAIN_ARBITRUM,\n decimals: 6,\n pair: '0xe4aF65953eeB4b868B7b7ff33808E22069B09916',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0x94b008aa00579c1307b0ef2c499ad98a8ce58e58',\n chainID: CHAIN_OPTIMISM,\n decimals: 6,\n pair: '0x68D97B7A961a5239B9F911DA8dEb57F6eF6e5e28',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0x5DE1677344D3Cb0D7D465c10b72A8f60699C062d',\n chainID: CHAIN_BOBA,\n decimals: 6,\n pair: '0x364701C4276B800A7493C84785E8ECD97258AcDe',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0x1D83BcDA708047898F20Cebb4AABF08008783f41',\n chainID: CHAIN_ETHER_KOVAN,\n decimals: 6,\n pair: '0x51d4615c849A80BAFb3EcF4817Fb9174eD4B7284',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0xB36c3713A6D46C67f55F6F49Ae0c47a61901F015',\n chainID: CHAIN_BSC_TESTNET,\n decimals: 18,\n pair: '0x9d3f38c696ca08CDDC9C5D04B24D52beE5a81ea1',\n pid: 0,\n },\n {\n symbol: 'USDT',\n address: '0xCB7Bb6e911e79713A596731dc21D0a2EF24a4F74',\n chainID: CHAIN_POLYGON_MUMBAI,\n decimals: 6,\n pair: '0xa8E633C998b109eE76714b4CA8d7D652A68b3860',\n },\n {\n symbol: 'USDT',\n address: '0xbE64543d9dC5b530ee9bD6259D02d14613Aec9aB',\n chainID: CHAIN_OK_TESTNET,\n decimals: 18,\n pair: '0xC8E98D8855088F869a38dD00f4683c3Ea05d2c62',\n },\n {\n symbol: 'USDT',\n address: '0xb608b55b0F777e70F8e37a18F8Da6EC8AE667B33',\n chainID: CHAIN_AVALANCHE_TESTNET,\n decimals: 6,\n pair: '0xBE4Cb4bD2f6E1BAC5E45CE9162388d514375Dc28',\n },\n {\n symbol: 'USDT',\n address: '0xAe8234563e2B07E5cB89c6B0d81Fe54CF7667769',\n chainID: CHAIN_HECO_TESTNET,\n decimals: 18,\n pair: '0x5b9611a5f0dA88aC6D3146C784a7ff66de6E6f09',\n },\n {\n symbol: 'USDT',\n address: '0xbf49c0ffDEEC5bF1731674841B60E4B0855FE6ED',\n chainID: CHAIN_HARMONY_0_TESTNET,\n decimals: 6,\n pair: '0xa42ECFcFE2eA660D4cA88d6773a77eA41AB384a6',\n },\n {\n symbol: 'USDT',\n address: '0xbf49c0ffDEEC5bF1731674841B60E4B0855FE6ED',\n chainID: CHAIN_FANTOM_TESTNET,\n decimals: 6,\n pair: '0x031c7CaCCA128D830C0160e36074D296B6AD23AA',\n },\n {\n symbol: 'USDT',\n address: '0xbf49c0ffDEEC5bF1731674841B60E4B0855FE6ED',\n chainID: CHAIN_XDAI_TESTNET,\n decimals: 6,\n pair: '0xbBa69494e9812948349f31691C871A4aBA42D517',\n },\n]\n","import {Contract} from '@ethersproject/contracts'\nimport {\n CHAIN_AAC,\n CHAIN_ARBITRUM,\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_AURORA,\n CHAIN_AURORA_TESTNET,\n CHAIN_AVALANCHE,\n CHAIN_BASE,\n CHAIN_BLAST,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_KCC,\n CHAIN_METIS,\n CHAIN_OASIS,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n} from '@w3u/chains'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {ChangeEvent} from 'react'\nimport * as stream from 'stream'\n\nimport add from '../components/twoway/Add'\nimport {PEG_TOKENS} from '../constants/peg_token'\nimport {OUSDT_TOKENS, TWOWAY_TOKENS} from '../constants/twoway'\nimport {ContractCall, ContractInputs} from '../hooks'\nimport {TwowayChefInfo} from '../modal/chef'\nimport {PegToken, Token} from '../modal/token'\n\nexport const getBoringAssets = (name: string): string => {\n return `https://raw.githubusercontent.com/BoringDAO/assets/main/images/${name}`\n}\n\nexport const displayBalance = (balance: string | undefined, decimals?: number, fixed?: number): string => {\n if (!balance || balance === 'NaN') {\n balance = '0'\n }\n\n decimals = decimals ? decimals : 18\n fixed = fixed !== undefined ? fixed : 2\n\n if (new BigNumber(balance).div(10 ** decimals).gt(1000)) {\n fixed = 2\n }\n\n return new BigNumber(balance).dividedBy(new BigNumber('10').pow(decimals)).toFormat(fixed, BigNumber.ROUND_DOWN)\n}\n\nexport const displayBalanceUp = (balance: string | undefined, decimals?: number, fixed?: number): string => {\n if (!balance || balance === 'NaN') {\n balance = '0'\n }\n\n decimals = decimals ? decimals : 18\n fixed = fixed !== undefined ? fixed : 2\n\n if (new BigNumber(balance).div(10 ** decimals).gt(1000)) {\n fixed = 2\n }\n\n return new BigNumber(balance).dividedBy(new BigNumber('10').pow(decimals)).toFormat(fixed, BigNumber.ROUND_CEIL)\n}\n\nexport const getTrustWalletIcon = (address: string): string => {\n return `https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/${address}/logo.png`\n}\n\nexport const verifyNumericInput = (e: ChangeEvent<{value: string}>, cb: any) => {\n const {value} = e.target\n const reg = /^-?\\d*(\\.\\d*)?$/\n if (reg.test(value) || value === '') {\n cb(value)\n }\n}\n\nexport const filterTokens = (tokens: Token[] | null | undefined, symbol: string): Token | null => {\n if (!tokens) return null\n for (let i = 0; i < tokens.length; i++) {\n if (tokens[i].symbol === symbol) return tokens[i]\n }\n\n return null\n}\n\nexport const getMaxValue = (value: string, decimals?: number, toFixed?: number): string => {\n decimals = decimals ? decimals : 18\n toFixed = toFixed ? toFixed : 2\n return new BigNumber(value).dividedBy(Math.pow(10, decimals)).toFixed(toFixed, BigNumber.ROUND_DOWN)\n}\n\nexport const isProduction = (): boolean => process.env.REACT_APP_NODE_ENV === 'production'\n\nexport const getTokenType = (chainID: number): string => {\n switch (chainID) {\n case CHAIN_ETHER:\n return 'ERC-20'\n case CHAIN_ETHER_KOVAN:\n return 'ERC-20'\n case CHAIN_BSC:\n return 'BEP-20'\n case CHAIN_BSC_TESTNET:\n return 'BEP-20'\n case CHAIN_OK:\n return 'KIP-20'\n case CHAIN_OK_TESTNET:\n return 'KIP-20'\n default:\n return 'ERC-20'\n }\n}\n\nexport const getPegToken = (chainID: number): PegToken | undefined => {\n return PEG_TOKENS.find((t) => t.chainID === chainID)\n}\n\nexport const getTargetPegToken = (token: PegToken | undefined, targetChainID: number): PegToken | undefined => {\n return PEG_TOKENS.find((t) => t.symbol === token?.symbol && t?.chainID === targetChainID)\n}\n\nexport const calculateGasMargin = (value: BigNumber): string => {\n return value.multipliedBy(1.05).toFixed(0)\n}\n\nexport const multicalls = async (multicallContract: Contract | null, inputs: ContractInputs[]) => {\n const calls =\n inputs &&\n inputs.length > 0 &&\n inputs.map((input: any) => {\n const contract = input.contract\n try {\n return {\n target: contract?.address,\n callData: contract?.interface?.encodeFunctionData(input.method, input.args),\n }\n } catch (e) {\n console.error(e)\n return {\n target: contract?.address,\n callData: null,\n }\n }\n })\n\n const result = await multicallContract?.aggregate(calls)\n return inputs.map((input, i) => {\n return input.contract?.interface.decodeFunctionResult(input.method, result['returnData'][i])\n })\n}\n\nexport const getTwowayTokenSymbolByAddress = (address: string): string | undefined => {\n const token = TWOWAY_TOKENS.find(\n (token) => ethers.utils.getAddress(token.address) === ethers.utils.getAddress(address)\n )\n\n if (token) {\n return token?.displayName ? token?.displayName : token?.symbol\n }\n\n const t = OUSDT_TOKENS.find((token) => ethers.utils.getAddress(token.address) === ethers.utils.getAddress(address))\n\n return t?.symbol.charAt(0) === 'o' ? t?.symbol.substring(1) : t?.symbol\n}\n\nexport const hadBoringReward = (pool: TwowayChefInfo | undefined): boolean => {\n return pool?.token?.symbol !== 'oIZI' && pool?.token?.symbol !== 'oFIN'\n}\n\nexport const getScanTxLink = (id: number, txHash: string) => {\n switch (id) {\n case CHAIN_BASE:\n return 'https://basescan.org/tx/' + txHash\n case CHAIN_ETHER:\n return 'https://etherscan.io/tx/' + txHash\n case CHAIN_ETHER_KOVAN:\n return 'https://kovan.etherscan.io/tx/' + txHash\n case CHAIN_BSC:\n return 'https://bscscan.com/tx/' + txHash\n case CHAIN_OK:\n return 'https://www.oklink.com/en/oec/tx/' + txHash\n case CHAIN_POLYGON:\n return 'https://polygonscan.com/tx/' + txHash\n case CHAIN_POLYGON_MUMBAI:\n return 'https://explorer-mumbai.maticvigil.com/tx/' + txHash\n case CHAIN_HECO:\n return 'https://hecoinfo.com/tx/' + txHash\n case CHAIN_HARMONY_0:\n return 'https://explorer.harmony.one/tx/' + txHash\n case CHAIN_HARMONY_0_TESTNET:\n return 'https://explorer.pops.one/tx/' + txHash\n case CHAIN_AVALANCHE:\n return 'https://snowtrace.io/tx/' + txHash\n case CHAIN_FANTOM:\n return 'https://ftmscan.com/tx/' + txHash\n case CHAIN_XDAI:\n return 'https://blockscout.com/xdai/mainnet/tx/' + txHash\n case CHAIN_ARBITRUM:\n return 'https://arbiscan.io/tx/' + txHash\n case CHAIN_OPTIMISM:\n return 'https://optimistic.etherscan.io/tx/' + txHash\n case CHAIN_BOBA:\n return 'https://blockexplorer.boba.network/tx/' + txHash\n case CHAIN_METIS:\n return 'https://andromeda-explorer.metis.io/tx/' + txHash\n case CHAIN_OASIS:\n return 'https://explorer.emerald.oasis.dev/tx/' + txHash\n case CHAIN_AURORA:\n return 'https://explorer.mainnet.aurora.dev/tx/' + txHash\n case CHAIN_AURORA_TESTNET:\n return 'https://explorer.testnet.aurora.dev/tx/' + txHash\n case CHAIN_KCC:\n return 'https://explorer.kcc.io/en/tx/' + txHash\n default:\n return 'https://etherscan.io/tx/' + txHash\n }\n}\n\nexport const isOriginToken = (chainID: number | undefined, token: Token | undefined): boolean => {\n if ((chainID === CHAIN_HARMONY_0 || chainID === CHAIN_HARMONY_0_TESTNET) && token?.symbol === 'ONE') {\n return true\n }\n\n if (chainID === CHAIN_AAC && token?.symbol === 'AAC') {\n return true\n }\n\n if (\n (chainID === CHAIN_ETHER_KOVAN ||\n chainID === CHAIN_ETHER ||\n chainID === CHAIN_BASE ||\n chainID === CHAIN_OPTIMISM ||\n chainID === CHAIN_BLAST ||\n chainID === CHAIN_ARBITRUM ||\n chainID === CHAIN_AURORA ||\n chainID === CHAIN_ARBITRUM_TESTNET) &&\n token?.symbol === 'ETH'\n ) {\n return true\n }\n\n if (chainID === CHAIN_METIS && token?.symbol === 'METIS') {\n return true\n }\n\n return false\n}\n\nexport const get2WayTokenFixed = (tokenName: string | undefined): number => {\n switch (tokenName) {\n case 'ETH':\n return 4\n case 'oETH':\n return 4\n default:\n return 2\n }\n}\n\nconst twowayLimit: {[name: string]: {[index: number]: string}} = {\n USDT: {\n 0: '500k',\n 1: '100k',\n },\n USDC: {\n 0: '500k',\n 1: '100k',\n },\n IZI: {\n 0: '500k',\n 1: '100k',\n },\n ETH: {\n 0: '200',\n 1: '40',\n },\n METIS: {\n 0: '3000',\n 1: '500',\n },\n FIN: {\n 0: '500k',\n 1: '100k',\n },\n AAC: {\n 0: '1',\n 1: '1',\n },\n}\n\nexport const get2WayLimit = (tokenName: string | undefined, index: number) => {\n if (index === 0 || index === 1) {\n return twowayLimit[tokenName ?? 'USDT'][index]\n }\n\n return '500k'\n}\n","import {\n CHAIN_AAC,\n CHAIN_ARBITRUM,\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_AURORA,\n CHAIN_AVALANCHE,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_BASE,\n CHAIN_BLAST,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_CONFLUX,\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_HECO_TESTNET,\n CHAIN_IOTEX,\n CHAIN_KCC,\n CHAIN_METIS,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n} from '@w3u/chains'\nimport {CHAIN_ETHER_GOERLI} from '@w3u/chains/dist/chains'\n\nimport {isProduction} from '../helpers'\nimport {TwowayOToken, TwowayToken} from '../modal/token'\n\nexport const PRODUCTION_TWOWAY_CHAIN_IDS: number[] = [\n CHAIN_BLAST,\n CHAIN_BSC,\n CHAIN_POLYGON,\n CHAIN_ETHER,\n CHAIN_OK,\n // CHAIN_HECO,\n CHAIN_XDAI,\n // CHAIN_FANTOM,\n CHAIN_METIS,\n CHAIN_ARBITRUM,\n CHAIN_AVALANCHE,\n // CHAIN_HARMONY_0,\n CHAIN_OPTIMISM,\n // CHAIN_AURORA,\n CHAIN_KCC,\n // CHAIN_IOTEX,\n // CHAIN_CONFLUX,\n CHAIN_BASE,\n CHAIN_AAC,\n]\nexport const TWOWAY_CHAIN_IDS: number[] = [CHAIN_ETHER_GOERLI, CHAIN_POLYGON_MUMBAI, CHAIN_ARBITRUM_TESTNET, CHAIN_BASE]\n\nexport const isTwowayChain = (chainID: number | undefined) => {\n if (!chainID) return false\n const ids = [...PRODUCTION_TWOWAY_CHAIN_IDS, ...TWOWAY_CHAIN_IDS]\n return ids.includes(chainID)\n}\n\nexport const TWOWAY_ADDRESSES: {[chainID: number]: string} = {\n [CHAIN_ETHER]: '0xecaD1ab3464ECcC7536af6aFeE414dF873495616',\n [CHAIN_BSC]: '0x0075Ac0C662a5B655060d1519fF739D834078705',\n [CHAIN_OK]: '0xf82B64169f3F43706F423c3246a10D190D12B576',\n // [CHAIN_HECO]: '0x66D6A03394dC9D155F3704e14C6c0F03076B40D1',\n [CHAIN_POLYGON]: '0x6dc551088AFAf828b95a9c9Ad590AeFE797c8e87',\n [CHAIN_XDAI]: '0x805675c662CF99B0156C8D1D76EAB86a830d9E8D',\n [CHAIN_FANTOM]: '0x66D6A03394dC9D155F3704e14C6c0F03076B40D1',\n [CHAIN_METIS]: '0x57E05346A576A3f75972aC0E7c9d9f46765B346E',\n [CHAIN_ARBITRUM]: '0x2e220E3ab85fC4A46F770A34eF2CdDc8074E4689',\n [CHAIN_ARBITRUM_TESTNET]: '0x3caf319515A122E98Da710304f31F237a9b304C7',\n [CHAIN_AVALANCHE]: '0x12f3a5af0a82af48af89FA5BAcf6307e1b226903',\n [CHAIN_HARMONY_0]: '0x7F942c3f0F61dE5133447B8A4974969EA36a7f19',\n [CHAIN_OPTIMISM]: '0x29414EC76d79Ff238E5E773322799d1c7Ca2443F',\n [CHAIN_ETHER_KOVAN]: '0x15624E9d0442D1039C335BC1aeB5F6A876a9bb72',\n [CHAIN_BSC_TESTNET]: '0xFaf3aD46dA9670910e340073FFd31aA4D04B2f5a',\n [CHAIN_POLYGON_MUMBAI]: '0xCbb3f8292CbE44efb8A059eA2406bD36F5ab1652',\n [CHAIN_AURORA]: '0x68D97B7A961a5239B9F911DA8dEb57F6eF6e5e28',\n [CHAIN_ETHER_KOVAN]: '0x79149445532A5847F12b136448a5f1AC25d85C92',\n [CHAIN_KCC]: '0x87DD4a7Ad23B95cD9fF9C26B5cF325905CaF8663',\n [CHAIN_IOTEX]: '0x87DD4a7Ad23B95cD9fF9C26B5cF325905CaF8663',\n [CHAIN_CONFLUX]: '0xbE4A5438ad89311d8c67882175D0fFcC65Dc9C03',\n // [CHAIN_FILECOIN_TEST]: '0xb608b55b0F777e70F8e37a18F8Da6EC8AE667B33',\n [CHAIN_ETHER_GOERLI]: '0xa12cF91751F9C7547a2543de6Eb781B2a89e4296',\n [CHAIN_BASE]: '0x87DD4a7Ad23B95cD9fF9C26B5cF325905CaF8663',\n [CHAIN_AAC]: '0xa6B2d37B171E626ee5227322FEaD4272682fbf89',\n [CHAIN_BLAST]: '0x87DD4a7Ad23B95cD9fF9C26B5cF325905CaF8663',\n}\n\nexport const OUSDT_TOKENS: TwowayOToken[] = [\n {\n symbol: 'oAAC',\n address: '0x50c06345e42e44Cef8299D34b96BBc1278859076',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n pid: 0,\n },\n {\n symbol: 'oUSDT',\n address: '0x56700FB81834fDCe92616f7E7c4b8C8bb120957d',\n chainID: CHAIN_POLYGON_MUMBAI,\n decimals: 18,\n pid: 0,\n },\n {\n symbol: 'oUSDT',\n address: '0x413cfE1C41F98879365D665CACB7E79a60001fEE',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n pid: 0,\n },\n {\n symbol: 'oUSDC',\n address: '0x8DE93f998b6b0ddA780Ee12B97dde1F2fADd3B1d',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n pid: 1,\n },\n // {\n // symbol: 'oLOL',\n // address: '0x0D9ceFE09299C8c3Cbe1F2706fbcEdBc35d73052',\n // chainID: CHAIN_POLYGON,\n // decimals: 18,\n // pid: 2,\n // },\n {\n symbol: 'oIZI',\n address: '0x79904eC9De1FCCF7ca50fE3f8430e922d53e07e6',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n pid: 3,\n },\n {\n symbol: 'oETH',\n address: '0x5E4e79E5Ea6515c95eA4433b8C985a0f5fAE442b',\n chainID: CHAIN_POLYGON_MUMBAI,\n decimals: 18,\n pid: 0,\n },\n {\n symbol: 'oETH',\n address: '0x0caD6ef3383C4349c68f072076BCDE7B7623576B',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n pid: 6,\n },\n {\n symbol: 'oMETIS',\n address: '0x746158B125447C909291cf3B271C929D156cBAd2',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n pid: 5,\n },\n {\n symbol: 'oFIN',\n address: '0x4D98192A8A078D0937c8FCa144C07e741364BdcA',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n pid: 4,\n },\n]\n\nexport const TWOWAY_CHEF_ADDRESSES: {[chainID: number]: string} = {\n [CHAIN_POLYGON_MUMBAI]: '0x797051A08a1753b3E054DDC1245AD812DAe9050F',\n [CHAIN_POLYGON]: '0xB225cC2207FECC82806042cEB386eF2b23E2464c',\n}\n\nexport const FilterTokens = isProduction() ? ['METIS'] : []\n\nexport const TWOWAY_TOKENS: TwowayToken[] = [\n {\n symbol: 'ETH',\n address: '0x4300000000000000000000000000000000000004',\n chainID: CHAIN_BLAST,\n decimals: 18,\n },\n {\n symbol: 'USDC',\n address: '0x4300000000000000000000000000000000000003',\n chainID: CHAIN_BLAST,\n decimals: 18,\n },\n {\n symbol: 'AAC',\n address: '0xF424cAA15eF7F8524bF55bD838935A25cDf1caae',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n },\n {\n symbol: 'AAC',\n address: '0xa68f68a53afbd2339ee672907a0b3f48ee65f33d',\n chainID: CHAIN_AAC,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n chainID: CHAIN_ETHER,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x382bB369d343125BfB2117af9c149795C6C65C50',\n chainID: CHAIN_OK,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0x55d398326f99059ff775485246999027b3197955',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',\n chainID: CHAIN_POLYGON,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n displayName: 'USDT.e',\n address: '0xc7198437980c041c805A1EDcbA50c1Ce5db95118',\n chainID: CHAIN_AVALANCHE,\n decimals: 6,\n },\n // {\n // symbol: 'USDT',\n // address: '0xa71edc38d189767582c38a3145b5873052c3e47a',\n // chainID: CHAIN_HECO,\n // decimals: 18,\n // },\n {\n symbol: 'USDT',\n address: '0x3c2b8be99c50593081eaa2a724f0b8285f5aba8f',\n chainID: CHAIN_HARMONY_0,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x049d68029688eabf473097a2fc38ef61633a3c7a',\n chainID: CHAIN_FANTOM,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x4ECaBa5870353805a9F068101A40E0f32ed605C6',\n chainID: CHAIN_XDAI,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0xbB06DCA3AE6887fAbF931640f67cab3e3a16F4dC',\n chainID: CHAIN_METIS,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',\n chainID: CHAIN_ARBITRUM,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x94b008aa00579c1307b0ef2c499ad98a8ce58e58',\n chainID: CHAIN_OPTIMISM,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x5DE1677344D3Cb0D7D465c10b72A8f60699C062d',\n chainID: CHAIN_BOBA,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x4988a896b1227218e4A686fdE5EabdcAbd91571f',\n chainID: CHAIN_AURORA,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x35D50cbc648c533A5DA29f4899955bd116fC738C',\n chainID: CHAIN_ETHER_KOVAN,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x17b0C74E06407b06CE10B86021ceC571aDc8Dfb8',\n chainID: CHAIN_BSC_TESTNET,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0x800f9a236Dfb7206D29Fa15fE4110c75148696BB',\n chainID: CHAIN_POLYGON_MUMBAI,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0xbE64543d9dC5b530ee9bD6259D02d14613Aec9aB',\n chainID: CHAIN_OK_TESTNET,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0xb608b55b0F777e70F8e37a18F8Da6EC8AE667B33',\n chainID: CHAIN_AVALANCHE_TESTNET,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0xAe8234563e2B07E5cB89c6B0d81Fe54CF7667769',\n chainID: CHAIN_HECO_TESTNET,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0xbf49c0ffDEEC5bF1731674841B60E4B0855FE6ED',\n chainID: CHAIN_HARMONY_0_TESTNET,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0xbf49c0ffDEEC5bF1731674841B60E4B0855FE6ED',\n chainID: CHAIN_FANTOM_TESTNET,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0xbf49c0ffDEEC5bF1731674841B60E4B0855FE6ED',\n chainID: CHAIN_XDAI_TESTNET,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0x0039f574eE5cC39bdD162E9A88e3EB1f111bAF48',\n chainID: CHAIN_KCC,\n decimals: 18,\n },\n {\n symbol: 'USDT',\n address: '0x6fbcdc1169b5130c59e72e51ed68a84841c98cd1',\n chainID: CHAIN_IOTEX,\n decimals: 6,\n },\n {\n symbol: 'USDT',\n address: '0xfe97e85d13abd9c1c33384e796f10b73905637ce',\n chainID: CHAIN_CONFLUX,\n decimals: 18,\n },\n {\n symbol: 'USDC',\n address: '0x6963efed0ab40f6c3d7bda44a05dcf1437c44372',\n chainID: CHAIN_CONFLUX,\n decimals: 18,\n },\n {\n symbol: 'USDC',\n address: '0x3b2bf2b523f54c4e454f08aa286d03115aff326c',\n chainID: CHAIN_IOTEX,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n address: '0x980a5AfEf3D17aD98635F6C5aebCBAedEd3c3430',\n chainID: CHAIN_KCC,\n decimals: 18,\n },\n {\n symbol: 'USDC',\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n chainID: CHAIN_ETHER,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n address: '0x7f5c764cbc14f9669b88837ca1490cca17c31607',\n chainID: CHAIN_OPTIMISM,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n address: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n {\n symbol: 'USDC',\n address: '0xc946daf81b08146b1c7a8da2a851ddf2b3eaaf85',\n chainID: CHAIN_OK,\n decimals: 18,\n },\n {\n symbol: 'USDC',\n address: '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83',\n chainID: CHAIN_XDAI,\n decimals: 6,\n },\n // {\n // symbol: 'USDC',\n // address: '0x9362bbef4b8313a8aa9f0c9808b80577aa26b73b',\n // chainID: CHAIN_HECO,\n // decimals: 6,\n // },\n {\n symbol: 'USDC',\n address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n chainID: CHAIN_POLYGON,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75',\n chainID: CHAIN_FANTOM,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n address: '0xEA32A96608495e54156Ae48931A7c20f0dcc1a21',\n chainID: CHAIN_METIS,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',\n chainID: CHAIN_ARBITRUM,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n displayName: 'USDC.e',\n address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664',\n chainID: CHAIN_AVALANCHE,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n address: '0x985458e523db3d53125813ed68c274899e9dfab4',\n chainID: CHAIN_HARMONY_0,\n decimals: 6,\n },\n {\n symbol: 'USDC',\n address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802',\n chainID: CHAIN_AURORA,\n decimals: 6,\n },\n // {\n // symbol: 'LOL',\n // address: '0x55E3f23B563769426f8Aa4059e9977689c74B47E',\n // chainID: CHAIN_BSC,\n // decimals: 18,\n // },\n // {\n // symbol: 'LOL',\n // address: '0x55E3f23B563769426f8Aa4059e9977689c74B47E',\n // chainID: CHAIN_METIS,\n // decimals: 18,\n // },\n {\n symbol: 'IZI',\n address: '0x9ad37205d608b8b219e6a2573f922094cec5c200',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'IZI',\n address: '0x60d01ec2d5e98ac51c8b4cf84dfcce98d527c747',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0xF3A6679B266899042276804930B3bFBaf807F15b',\n chainID: CHAIN_ETHER_KOVAN,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x58586604Bc3206B04c6a38F97A0430CaE0326C56',\n chainID: CHAIN_POLYGON_MUMBAI,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0xCE2984f9D4F47c6575dE5dF2c9FCD286A57D8975',\n chainID: CHAIN_ARBITRUM_TESTNET,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x4200000000000000000000000000000000000006',\n chainID: CHAIN_BASE,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x4200000000000000000000000000000000000006',\n chainID: CHAIN_OPTIMISM,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x2170Ed0880ac9A755fd29B2688956BD959F933F8',\n chainID: CHAIN_BSC,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0xEF71CA2EE68F45B9Ad6F72fbdb33d707b872315C',\n chainID: CHAIN_OK,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1',\n chainID: CHAIN_XDAI,\n decimals: 18,\n },\n // {\n // symbol: 'ETH',\n // address: '0x64FF637fB478863B7468bc97D30a5bF3A428a1fD',\n // chainID: CHAIN_HECO,\n // decimals: 18,\n // },\n {\n symbol: 'ETH',\n address: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x74b23882a30290451A17c44f4F05243b6b58C76d',\n chainID: CHAIN_FANTOM,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x420000000000000000000000000000000000000A',\n chainID: CHAIN_METIS,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n chainID: CHAIN_ARBITRUM,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB',\n chainID: CHAIN_AVALANCHE,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB',\n chainID: CHAIN_AURORA,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0x6983d1e6def3690c4d616b13597a09e6193ea013',\n chainID: CHAIN_HARMONY_0,\n decimals: 18,\n },\n {\n symbol: 'ETH',\n address: '0xf55aF137A98607F7ED2eFEfA4cd2DfE70E4253b1',\n chainID: CHAIN_KCC,\n decimals: 18,\n },\n {\n symbol: 'METIS',\n address: '0x9E32b13ce7f2E80A01932B42553652E053D6ed8e',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'METIS',\n address: '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000',\n chainID: CHAIN_METIS,\n decimals: 18,\n },\n {\n symbol: 'FIN',\n address: '0x054f76beed60ab6dbeb23502178c52d6c5debe40',\n chainID: CHAIN_ETHER,\n decimals: 18,\n },\n {\n symbol: 'FIN',\n address: '0x576c990a8a3e7217122e9973b2230a3be9678e94',\n chainID: CHAIN_POLYGON,\n decimals: 18,\n },\n {\n symbol: 'FIN',\n address: '0x8d3573f24c0aa3819a2f5b02b2985dd82b487715',\n chainID: CHAIN_OK,\n decimals: 18,\n },\n // {\n // symbol: 'WETH2',\n // address: '0xbf49c0ffDEEC5bF1731674841B60E4B0855FE6ED',\n // chainID: CHAIN_FILECOIN_TEST,\n // decimals: 18,\n // },\n {\n symbol: 'USDT',\n address: '0xbf49c0ffDEEC5bF1731674841B60E4B0855FE6ED',\n chainID: CHAIN_ETHER_GOERLI,\n decimals: 6,\n },\n]\n","import {\n CHAIN_AAC,\n CHAIN_ARBITRUM,\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_AURORA,\n CHAIN_AURORA_TESTNET,\n CHAIN_AVALANCHE,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_BASE,\n CHAIN_BLAST,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_CONFLUX,\n CHAIN_ETHER,\n CHAIN_ETHER_GOERLI,\n CHAIN_ETHER_KOVAN,\n CHAIN_ETHER_RINKEBY,\n CHAIN_ETHER_ROPSTEN,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_HECO_TESTNET,\n CHAIN_IOTEX,\n CHAIN_KCC,\n CHAIN_METIS,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n} from '@w3u/chains'\n\nexport const MULTICALL_NETWORKS: {[chainID: number]: string} = {\n [CHAIN_ETHER]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441',\n [CHAIN_ETHER_ROPSTEN]: '0x53C43764255c17BD724F74c4eF150724AC50a3ed',\n [CHAIN_ETHER_KOVAN]: '0x2cc8688C5f75E365aaEEb4ea8D6a480405A48D2A',\n [CHAIN_ETHER_RINKEBY]: '0x42Ad527de7d4e9d9d011aC45B31D8551f8Fe9821',\n [CHAIN_ETHER_GOERLI]: '0x77dCa2C955b15e9dE4dbBCf1246B4B85b651e50e',\n [CHAIN_BSC]: '0x1Ee38d535d541c55C9dae27B12edf090C608E6Fb',\n [CHAIN_BSC_TESTNET]: '0x301907b5835a2d723Fe3e9E8C5Bc5375d5c1236A',\n [CHAIN_OK]: '0x43e9cebf47397b510eB0a8aD9478dA2aC05F969c',\n [CHAIN_OK_TESTNET]: '0x412Ffc85E70ba52beD9301a5dE60E95AbDaa6200',\n [CHAIN_AVALANCHE_TESTNET]: '0xe17D262c3188F9c49f475Ba92110c12D094f13F3',\n [CHAIN_AVALANCHE]: '0xE9fE1cEFeD8492ccE0A72bC01C46002791644784',\n [CHAIN_HARMONY_0]: '0x4F497F9D85A6fE135fFca99f0f253919fE827211',\n [CHAIN_HARMONY_0_TESTNET]: '0xE958CC207Ad831E46E7ba9C5E9399ae189A10D61',\n [CHAIN_POLYGON_MUMBAI]: '0x3A520D5957cb50b0F570C4580282a7d5f2aE434c',\n [CHAIN_POLYGON]: '0xcDa98D16F4f5dA0163e25CA469d10ED8A64017bC',\n [CHAIN_XDAI]: '0x9F595098E07B3D75d36077bAF30889c49cDAeEFb',\n [CHAIN_XDAI_TESTNET]: '0x08FEa88e6Bc7D6e6AD45db98F049d2099EcD3a94',\n [CHAIN_FANTOM]: '0x9F595098E07B3D75d36077bAF30889c49cDAeEFb',\n [CHAIN_FANTOM_TESTNET]: '0xc425c83B35937FD07bE6763F91C357314e9DA3fE',\n [CHAIN_HECO]: '0x9F595098E07B3D75d36077bAF30889c49cDAeEFb',\n [CHAIN_HECO_TESTNET]: '0xA5772c7fD3575B5e66e530b517d7d744B849cB36',\n [CHAIN_ARBITRUM]: '0x9F595098E07B3D75d36077bAF30889c49cDAeEFb',\n [CHAIN_ARBITRUM_TESTNET]: '0x66d28394746ECe22d80cba6Faffc8336a46f0670',\n [CHAIN_OPTIMISM]: '0x11E4BED429b239a1A0C594ADEB71b99e8Fa1011A',\n [CHAIN_BOBA]: '0xD01a5051253007ae0b7123b50410E3B5A3f6cF95',\n [CHAIN_METIS]: '0x5D78bF8f79A66e43f5932c1Ae0b8fA6563F97f74',\n [CHAIN_AURORA]: '0xF8BE629521CfdcC35E9439E9775d341A0f076023',\n [CHAIN_AURORA_TESTNET]: '0x75359476afe3d8DC0caB44118e0637FbaCd60141',\n [CHAIN_KCC]: '0x225247882FD7396c62E29707DA0890151208161a',\n [CHAIN_IOTEX]: '0xE9fE1cEFeD8492ccE0A72bC01C46002791644784',\n [CHAIN_CONFLUX]: '0xE9fE1cEFeD8492ccE0A72bC01C46002791644784',\n [CHAIN_BASE]: '0x9F595098E07B3D75d36077bAF30889c49cDAeEFb',\n [CHAIN_AAC]: '0x2A414954191ba1995f1FA4235Af6c0aE0d75092d',\n [CHAIN_BLAST]: '0x31bf6867a93AB84Cb8F9CA4Ef3bBE9e541f36674',\n}\n","import {useWeb3React} from '@web3-react/core'\nimport React, {createContext, ReactNode, useEffect, useState} from 'react'\nimport {useInterval} from 'react-use'\n\nexport interface UpdaterContext {\n blockNumber: number\n}\n\nexport const Context = createContext({blockNumber: 0})\n\nconst Updater = ({children}: {children: ReactNode}): JSX.Element => {\n const {library} = useWeb3React()\n const [blockNumber, setBlockNumber] = useState(0)\n const [ctx, setCtx] = useState({blockNumber: 0})\n\n useEffect(() => {\n if (!library) return undefined\n library.on('block', (blockNumber: number) => {\n setBlockNumber(blockNumber)\n })\n return () => library.removeListener('block')\n }, [library])\n\n useInterval(() => {\n setCtx({blockNumber: blockNumber})\n }, 15000)\n\n return {children}\n}\n\nexport default Updater\n","import {isAddress} from '@ethersproject/address'\nimport {AddressZero} from '@ethersproject/constants'\nimport {Contract, ContractInterface} from '@ethersproject/contracts'\nimport {JsonRpcProvider, Web3Provider} from '@ethersproject/providers'\n\nexport function getContract(\n library: JsonRpcProvider,\n address: string | undefined,\n ABI: ContractInterface,\n account?: string | null | undefined\n): Contract {\n if (!isAddress(address ?? '') || address === AddressZero) {\n // throw Error(`Invalid 'address' parameter '${address}'.`)\n console.error(`Invalid 'address' parameter '${address}'.`)\n }\n\n return new Contract(address ?? '', ABI, account ? library.getSigner(account).connectUnchecked() : library)\n}\n","import {Contract, ContractInterface} from '@ethersproject/contracts'\nimport {JsonRpcProvider, Web3Provider} from '@ethersproject/providers'\nimport {Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {ethers} from 'ethers'\nimport {useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport MULTICALL_ABI from '../abi/Multicall.json'\nimport {MULTICALL_NETWORKS} from '../constants/multicall'\nimport {Context} from '../contexts/Updater'\nimport {getContract} from '../helpers/contract'\nimport {ContractCall, ContractInputs, useBlockNumber} from './index'\n\nexport const useContract = (address: string | undefined | 0, ABI: ContractInterface): Contract | null => {\n const {library, account} = useWeb3React()\n\n return useMemo(() => {\n if (!address || !ABI || !library) return null\n try {\n return getContract(library, address, ABI, account)\n } catch (error) {\n console.error('Failed to get contract', error)\n return null\n }\n }, [address, ABI, library])\n}\n\nexport const useContractWithProvider = (\n provider: JsonRpcProvider,\n address: string | undefined | 0,\n ABI: ContractInterface\n): Contract | null => {\n const {account} = useWeb3React()\n\n return useMemo(() => {\n if (!address || !ABI || !provider) return null\n try {\n return getContract(provider, address, ABI, account)\n } catch (error) {\n console.error('Failed to get contract', error)\n return null\n }\n }, [address, ABI, provider])\n}\n\nexport const useChainContract = (\n chainID: number | undefined,\n address: string | undefined | 0,\n ABI: ContractInterface,\n account: string | undefined | null\n): Contract | null => {\n return useMemo(() => {\n if (!address || !ABI || !chainID) return null\n const provider = new ethers.providers.JsonRpcProvider(Chains[chainID ?? 1].rpc)\n try {\n return getContract(provider as Web3Provider, address, ABI, account)\n } catch (error) {\n console.error('Failed to get contract', error)\n return null\n }\n }, [address, ABI, chainID, account])\n}\n\nexport const useMulticallContract = (): Contract | null => {\n const {chainId} = useWeb3React()\n return useContract(chainId && MULTICALL_NETWORKS[chainId], MULTICALL_ABI)\n}\n\nexport const useMulticallContractWithProvider = (provider: JsonRpcProvider, chainID: number): Contract | null => {\n return useContractWithProvider(provider, chainID && MULTICALL_NETWORKS[chainID], MULTICALL_ABI)\n}\n\nexport const useMulticallsWithMulticall = (multicall: Contract | null, inputs: ContractInputs[]) => {\n const [result, setResult] = useState()\n const ctx = useContext(Context)\n\n const calls = useMemo(() => {\n try {\n return inputs && inputs.length > 0\n ? inputs.map((input: any) => {\n const contract = input.contract\n return {\n target: contract?.address,\n callData: contract?.interface?.encodeFunctionData(input.method, input.args),\n }\n })\n : []\n } catch (e) {\n console.error(e)\n }\n }, [inputs])\n\n const handle = useCallback(async () => {\n if (multicall) {\n try {\n const result = await multicall.aggregate(calls)\n const r = inputs.map((input, i) => {\n return input.contract?.interface.decodeFunctionResult(input.method, result['returnData'][i])\n })\n setResult(r)\n } catch (e) {\n console.error(`multicall(${multicall.address}): `, e)\n }\n }\n }, [multicall, calls])\n\n useEffect(() => {\n handle()\n }, [calls, ctx])\n\n return result\n}\n\nexport const useMulticalls = (inputs: ContractInputs[] | undefined) => {\n const multicallContract = useMulticallContract()\n const [result, setResult] = useState()\n const ctx = useContext(Context)\n const blockNumber = useBlockNumber()\n\n const calls = useMemo(\n () =>\n inputs && inputs.length > 0\n ? inputs.map((input: any) => {\n const contract = input.contract\n try {\n return {\n target: contract?.address,\n callData: contract?.interface?.encodeFunctionData(input.method, input.args),\n }\n } catch (e) {\n console.error(e)\n console.table(inputs)\n return {\n target: contract?.address,\n callData: null,\n }\n }\n })\n : [],\n [inputs]\n )\n\n const handle = useCallback(async () => {\n if (multicallContract) {\n try {\n if (!inputs) return\n const result = await multicallContract.aggregate(calls)\n const r = inputs.map((input, i) => {\n return input.contract?.interface.decodeFunctionResult(input.method, result['returnData'][i])\n })\n setResult(r)\n } catch (e) {\n console.table(inputs)\n console.info(e)\n console.log(calls)\n }\n }\n }, [multicallContract, calls])\n\n useEffect(() => {\n try {\n handle()\n } catch (e) {\n console.error(e)\n }\n }, [calls, ctx, blockNumber])\n\n return result\n}\n","import {\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_AURORA_TESTNET,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_ETHER,\n CHAIN_ETHER_GOERLI,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n Chains,\n} from '@w3u/chains'\nimport {ethers} from 'ethers'\n\nexport const getInfuraProvider = (chainID: number) => {\n return new ethers.providers.InfuraProvider(chainID, 'f064dd62c6b646a788786d0dfb59623a')\n}\n\nexport const getUrlProvider = (chainID: number) => {\n // const id = '12eb5516d58a46a3a0e4522fa1811797'\n const id = 'f05d1f443cdc4cd089c073969678e26a'\n if (!chainID) {\n return new ethers.providers.JsonRpcProvider(`https://mainnet.infura.io/v3/${id}`, chainID)\n }\n\n let url\n switch (chainID) {\n case CHAIN_ETHER_KOVAN:\n url = `https://kovan.infura.io/v3/${id}`\n break\n case CHAIN_ETHER:\n // url = 'https://eth-mainnet.alchemyapi.io/v2/xt19QLfMwjVcrvqiqfbHWDJV7_Yx1vn0'\n url = `https://mainnet.infura.io/v3/${id}`\n break\n case CHAIN_OK_TESTNET:\n url = 'https://exchaintestrpc.okex.org'\n break\n case CHAIN_OK:\n url = 'https://exchainrpc.okex.org'\n break\n case CHAIN_HARMONY_0:\n url = 'https://api.harmony.one'\n break\n case CHAIN_HARMONY_0_TESTNET:\n url = 'https://api.s0.pops.one'\n break\n case CHAIN_BSC_TESTNET:\n url = 'https://data-seed-prebsc-1-s1.binance.org:8545'\n break\n case CHAIN_BSC:\n url = 'https://bsc-dataseed.binance.org/'\n // url = 'https://bsc-dataseed2.defibit.io/'\n break\n case CHAIN_POLYGON_MUMBAI:\n // url = 'https://rpc-mumbai.matic.today'\n // url = 'https://rpc-mumbai.maticvigil.com/'\n // url = 'https://polygon-mumbai.infura.io/v3/f064dd62c6b646a788786d0dfb59623a'\n url = 'https://polygon-mumbai.infura.io/v3/f05d1f443cdc4cd089c073969678e26a'\n break\n case CHAIN_POLYGON:\n // url = 'https://polygon-rpc.com/'\n // url = 'https://polygon-mainnet.g.alchemy.com/v2/rPqtNyA8W6Auhe9Yv2jpE5JeczyfnTr8'\n url = 'https://polygon-mainnet.g.alchemy.com/v2/x0IqOekv_eQ-ru9cQExzB1nQVrNwap8t'\n // url = 'https://rpc-mainnet.matic.quiknode.pro'\n break\n case CHAIN_FANTOM:\n url = 'https://rpc.ftm.tools/'\n break\n default:\n url = Chains[chainID].rpc\n }\n\n return new ethers.providers.JsonRpcProvider(\n {\n url: url || '',\n timeout: 2000,\n throttleLimit: 3,\n },\n chainID\n )\n}\n\nexport const isTestnet = (chainID: number | undefined): boolean => {\n return (\n chainID === CHAIN_ETHER_GOERLI ||\n chainID === CHAIN_BSC_TESTNET ||\n chainID === CHAIN_POLYGON_MUMBAI ||\n chainID === CHAIN_OK_TESTNET ||\n chainID === CHAIN_AURORA_TESTNET ||\n chainID === CHAIN_ARBITRUM_TESTNET\n )\n}\n","import {useEffect, useRef} from 'react'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useInterval = (callback: () => void, delay: number, immediately: boolean) => {\n const savedCallback = useRef<() => void | null>()\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback\n })\n // Set up the interval.\n useEffect(() => {\n function tick() {\n if (typeof savedCallback?.current !== 'undefined') {\n savedCallback?.current()\n }\n }\n\n if (delay !== null) {\n if (immediately) {\n tick()\n }\n const id = setInterval(tick, delay)\n return () => clearInterval(id)\n }\n }, [delay, immediately])\n}\n","import {CHAIN_POLYGON, CHAIN_POLYGON_MUMBAI} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {useMemo, useState} from 'react'\n\nimport MULTICALL_ABI from '../abi/Multicall.json'\nimport TwowayABI from '../abi/TwoWayCenter.json'\nimport {MULTICALL_NETWORKS} from '../constants/multicall'\nimport {PRODUCTION_TWOWAY_CHAIN_IDS, TWOWAY_ADDRESSES, TWOWAY_CHAIN_IDS} from '../constants/twoway'\nimport {multicalls} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {getUrlProvider, isTestnet} from '../helpers/provider'\nimport {ContractInputs, useTwowayOTokens} from './index'\nimport {useInterval} from './useInterval'\n\nexport const useRelayChainID = () => {\n const {chainId} = useWeb3React()\n const requestChainID = isTestnet(chainId) ? CHAIN_POLYGON_MUMBAI : CHAIN_POLYGON\n return useMemo(() => requestChainID, [chainId])\n}\n\nexport const useRelayChainProvider = () => {\n const {library, chainId} = useWeb3React()\n const relayChainID = useRelayChainID()\n const provider = relayChainID === chainId ? library : getUrlProvider(relayChainID)\n\n return useMemo(() => provider, [chainId])\n}\n\nexport const useTwowayLockBalance = (tokenName: string | undefined, chainID: number | undefined) => {\n const {lockBalances, loading} = useTwowayLockBalances()\n const results = lockBalances.find((lock) => lock.tokenName === tokenName)\n const balance = results && results.balances.find((result) => result.chainID === chainID)\n return useMemo(() => {\n return {\n lockBalance: balance?.balance || '0',\n loading,\n }\n }, [chainID, lockBalances])\n}\n\ninterface LockBalanceInterface {\n chainID: number\n balance: string\n}\n\ninterface LockBalancesInterface {\n tokenName: string\n balances: LockBalanceInterface[]\n}\n\nexport const useTwowayLockBalances = () => {\n const {chainId} = useWeb3React()\n const relayChainID = useRelayChainID()\n const provider = useRelayChainProvider()\n const relayContract = getContract(provider, TWOWAY_ADDRESSES[relayChainID], TwowayABI.abi)\n const ids = isTestnet(chainId) ? TWOWAY_CHAIN_IDS : PRODUCTION_TWOWAY_CHAIN_IDS\n\n const tokens = useTwowayOTokens()\n const multicallContract = getContract(provider, MULTICALL_NETWORKS[relayChainID], MULTICALL_ABI)\n\n const [lockBalances, setLockBalances] = useState([])\n const [loading, setLoading] = useState(true)\n\n useInterval(\n async () => {\n try {\n const calls: ContractInputs[] = []\n tokens.map((token) => {\n calls.push(\n ...ids.map((id) => {\n return {\n contract: relayContract,\n method: 'lockBalances',\n args: [token.address, id],\n }\n })\n )\n })\n const balances = await multicalls(multicallContract, calls).catch((e: any) => {\n console.error('multicalls lockBalances:', e)\n return ids.map((id) => '0')\n })\n const length = ids.length\n const result: LockBalancesInterface[] = []\n if (balances && balances.length > 0) {\n tokens.map((token, i) => {\n const r = ids.map((id, j) => {\n // @ts-ignore\n const balance = balances[j + length * i] || '0'\n return {\n chainID: id,\n balance: balance.toString(),\n }\n })\n\n result.push({\n tokenName: token.symbol,\n balances: r,\n })\n })\n setLockBalances(result)\n setLoading(false)\n }\n } catch (e) {\n console.error('lock balances: ', e)\n }\n },\n 6000,\n true\n )\n\n return {lockBalances, loading}\n}\n","import {Contract} from '@ethersproject/contracts'\nimport {CHAIN_BSC, CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\nimport {isMobile} from 'react-device-detect'\nimport {useLocation} from 'react-router-dom'\nimport {useInterval} from 'react-use'\n\nimport {injectedConnector} from '../connectors'\nimport {NATIVE_BRIDGE_TOKENS} from '../constants/native_bridge'\nimport tokenList from '../constants/native_tokens.json'\nimport {PEG_TOKENS} from '../constants/peg_token'\nimport productionTokenList from '../constants/production_native_tokens.json'\nimport {FilterTokens, OUSDT_TOKENS, TWOWAY_TOKENS} from '../constants/twoway'\nimport {isProduction} from '../helpers'\nimport {NativeBridgeToken, PegToken, Token, TwowayOToken, TwowayToken} from '../modal/token'\nimport {useMulticallContract, useMulticalls} from './contract'\nimport {useRelayChainID} from './useTwowayLockBalances'\n\nexport interface ContractInputs {\n contract: Contract | null\n method: string\n args?: any[]\n}\n\nexport interface ContractCall {\n target: string | undefined\n callData: string\n}\n\nexport const useEagerConnect = (): boolean => {\n const {activate, active} = useWeb3React()\n const [tried, setTried] = useState(false)\n\n useEffect(() => {\n try {\n injectedConnector.isAuthorized().then((isAuthorized: boolean) => {\n if (isAuthorized) {\n activate(injectedConnector, undefined, true).catch(() => {\n setTried(true)\n })\n } else {\n if (isMobile && window.ethereum) {\n activate(injectedConnector, undefined, true).catch(() => {\n setTried(true)\n })\n } else {\n setTried(true)\n }\n }\n })\n } catch (e) {\n console.error('useEagerConnect: ', e)\n }\n }, [activate])\n\n useEffect(() => {\n if (active) {\n setTried(true)\n }\n }, [active])\n\n return tried\n}\n\nexport const useBalances = (addresses: (string | null | undefined)[]) => {\n const multicallContract = useMulticallContract()\n const calls = useMemo((): ContractInputs[] => {\n return (\n addresses &&\n addresses.map((address) => {\n return {\n contract: multicallContract,\n method: 'getEthBalance',\n args: [address],\n }\n })\n )\n }, [addresses])\n\n const result = useMulticalls(calls)\n\n return useMemo(() => {\n return result\n }, [addresses, calls, result])\n}\n\nexport const useBalance = (address: string | null | undefined): string => {\n const checkedAddresses = useMemo(() => [address], [address])\n const balances = useBalances(checkedAddresses)\n return useMemo(() => {\n return balances && balances[0] && balances[0][0]\n }, [balances])\n}\n\nexport const useAccountBalance = (address: string | null | undefined): string => {\n const checkedAddresses = useMemo(() => address, [address])\n const {library} = useWeb3React()\n const [balance, setBalance] = useState('')\n\n const handle = useCallback(async () => {\n try {\n const result = await library.getBalance(checkedAddresses)\n setBalance(result.toString())\n } catch (e) {\n console.log(`useAccountBalance: ${e}`)\n }\n }, [library, checkedAddresses])\n\n useEffect(() => {\n handle()\n }, [handle])\n\n return balance\n}\n\nexport const useBlockNumber = (): number => {\n // const {library, chainId} = useWeb3React()\n const [number, setNumber] = useState(0)\n\n // useEffect(() => {\n // if (!library || !chainId) return undefined\n // library.on('block', (blockNumber: number) => {\n // setNumber(blockNumber)\n // })\n // return () => library.removeListener('block')\n // }, [library])\n\n useInterval(() => {\n setNumber(number + 1)\n }, 3000)\n\n return number\n}\n\nexport const useNativeTokens = (chainId: number | undefined): Token[] => {\n return useMemo(\n () =>\n isProduction()\n ? productionTokenList.filter((token) => token.chainID === chainId)\n : tokenList.filter((token) => token.chainID === chainId),\n [tokenList, productionTokenList, chainId]\n )\n}\n\nexport const useNativeBridgeTokens = (chainId: number | undefined): NativeBridgeToken[] => {\n return useMemo(() => NATIVE_BRIDGE_TOKENS.filter((token) => token.chainID === chainId), [chainId])\n}\n\nexport const useCommonNativeBridgeTokens = (\n fromChainID: number | undefined,\n toChainID: number | undefined\n): NativeBridgeToken[] => {\n const fromTokensTemp = useNativeBridgeTokens(fromChainID)\n const toTokens = useNativeBridgeTokens(toChainID)\n const fromTokens = fromTokensTemp.filter((token) => !(fromChainID === CHAIN_ETHER && token.symbol.includes('xVEMP')))\n return useMemo(() => fromTokens.filter((token) => toTokens.some((t) => t.symbol === token.symbol)), [\n fromChainID,\n toChainID,\n ])\n}\n\nexport const useTwowayOTokens = (): TwowayOToken[] => {\n const relayChainID = useRelayChainID()\n const tokens = useMemo(() => OUSDT_TOKENS.filter((token) => token.chainID === relayChainID), [\n OUSDT_TOKENS,\n relayChainID,\n ])\n\n if (FilterTokens.length === 0) {\n return tokens\n }\n\n const tokenNames = useMemo(() => FilterTokens.map((tokenName) => 'o' + tokenName), [FilterTokens])\n\n return useMemo(() => tokens.filter((token) => !tokenNames.includes(token.symbol)), [tokens])\n}\n\nexport const useTwowayTokens = (chainId: number | undefined): TwowayToken[] => {\n chainId = chainId ?? CHAIN_ETHER\n const tokens = useMemo(() => TWOWAY_TOKENS.filter((token) => token.chainID === chainId), [TWOWAY_TOKENS, chainId])\n if (FilterTokens.length === 0) {\n return tokens\n }\n\n return useMemo(() => tokens.filter((token) => !FilterTokens.includes(token.symbol)), [tokens])\n}\n\nexport const useCommonTwowayTokens = (\n fromChainID: number | undefined,\n toChainID: number | undefined\n): TwowayToken[] => {\n fromChainID = fromChainID ?? CHAIN_ETHER\n const from = useTwowayTokens(fromChainID)\n const to = useTwowayTokens(toChainID)\n\n const tokens = useMemo(() => from.filter((token) => to.some((t) => t.symbol === token.symbol)), [\n fromChainID,\n toChainID,\n ])\n\n if (FilterTokens.length === 0) {\n return tokens\n }\n\n return useMemo(() => tokens.filter((token) => !FilterTokens.includes(token.symbol)), [tokens])\n}\n\nexport const useAllChainIdsFor2WayToken = (tokenName: string | undefined) => {\n tokenName = tokenName ?? 'USDT'\n const tokens = useMemo(() => TWOWAY_TOKENS.filter((token) => token.symbol === tokenName), [TWOWAY_TOKENS, tokenName])\n return useMemo(() => tokens.map((token) => token.chainID), [tokens])\n}\n\nexport const useTwowayTokenChainIDs = (tokenName: string): number[] => {\n const tokens = useMemo(() => TWOWAY_TOKENS.filter((token) => token.symbol === tokenName), [tokenName])\n return useMemo(() => tokens.map((token) => token.chainID), [tokens])\n}\n\nexport const usePegTokens = (chainId: number | undefined): PegToken[] => {\n return useMemo(() => PEG_TOKENS.filter((token) => token.chainID === chainId), [PEG_TOKENS, chainId])\n}\n\nexport const useTargetPegToken = (token: PegToken | undefined, targetChainID: number): PegToken | undefined => {\n return useMemo(() => PEG_TOKENS.find((t) => t.symbol === token?.symbol && t?.chainID === targetChainID), [\n targetChainID,\n token,\n ])\n}\n\nexport const useQuery = (): URLSearchParams => new URLSearchParams(useLocation().search)\n\nexport const useDefaultTokenAddress = (tokens: Token[]): string => {\n if (!tokens || tokens.length === 0) return ''\n const query = useQuery()\n const address = query.get('token')\n const ok = useMemo(() => tokens.some((token) => token.address === address), [tokens, address])\n return address !== null && ok ? address : tokens[0].address\n}\n\nexport const useDefaultTargetChain = (chains: number[]): number => {\n if (!chains || chains.length === 0) return CHAIN_BSC\n const query = useQuery()\n const target = query.get('target_chain_id')\n const ok = useMemo(() => chains.some((chain) => chain === Number(target)), [chains, target])\n return target !== null && ok ? Number(target) : chains[0]\n}\n\n// Hook\n// T is a generic type for value parameter, our case this will be string\nexport function useDebounce(value: T, delay: number): T {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value)\n useEffect(\n () => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler)\n }\n },\n [value, delay] // Only re-call effect if value or delay changes\n )\n return debouncedValue\n}\n\nexport const useNetworkListener = () => {\n useEffect(() => {\n const {ethereum} = window\n\n if (ethereum && ethereum.on) {\n const handleChainChanged = () => {\n console.log('Chain changed')\n window.location.reload()\n }\n\n const handleAccountsChanged = (accounts: string[]) => {\n if (accounts.length > 0) {\n console.log('Account changed')\n window.location.reload()\n }\n }\n\n ethereum.on('chainChanged', handleChainChanged)\n ethereum.on('accountsChanged', handleAccountsChanged)\n\n return () => {\n if (ethereum.removeListener) {\n ethereum.removeListener('chainChanged', handleChainChanged)\n ethereum.removeListener('accountsChanged', handleAccountsChanged)\n }\n }\n }\n return undefined\n }, [])\n}\n","import {useEagerConnect, useNetworkListener} from '../../hooks'\n\nexport default function Web3ReactManager({children}: {children: JSX.Element}) {\n // const { active, activate } = useWeb3React()\n\n // try to eagerly connect to an injected provider, if it exists and has granted access already\n const triedEager = useEagerConnect()\n\n useNetworkListener()\n\n // on page load, do nothing until we've tried to connect to the injected connector\n if (!triedEager) {\n return null\n }\n\n return children\n}\n","import React, {createContext, ReactNode, useEffect, useState} from 'react'\nimport {useCookies} from 'react-cookie'\n\nexport interface ControllerContext {\n version: string\n setVersion: any\n}\n\nconst versionCookieName = 'oportal_version'\n\nexport const CtrContext = createContext({version: 'V2', setVersion: undefined})\n\nconst Controller = ({children}: {children: ReactNode}): JSX.Element => {\n const [cookies, setCookie] = useCookies([versionCookieName])\n const [version, setVersion] = useState(cookies[versionCookieName] || 'V2')\n\n useEffect(() => setCookie(versionCookieName, version, {path: '/', sameSite: true}), [version])\n\n return {children}\n}\n\nexport default Controller\n","import i18n from 'i18next'\nimport languageDetector from 'i18next-browser-languagedetector'\nimport {initReactI18next} from 'react-i18next'\n\nimport enUsTrans from './locales/en-US.json'\nimport zhCnTrans from './locales/zh-CN.json'\n\ni18n\n .use(languageDetector)\n .use(initReactI18next)\n .init({\n resources: {\n en: {\n translation: enUsTrans,\n },\n zh: {\n translation: zhCnTrans,\n },\n },\n react: {\n useSuspense: false,\n },\n fallbackLng: 'en-US',\n debug: false,\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n },\n })\n\nexport default i18n\n","export default __webpack_public_path__ + \"static/media/aac.e46b1272.png\";","export default __webpack_public_path__ + \"static/media/amy.e4f20763.png\";","export default __webpack_public_path__ + \"static/media/bor.0a18b81a.0a18b81a.png\";","export default __webpack_public_path__ + \"static/media/arbitrum.abae01ba.svg\";","export default __webpack_public_path__ + \"static/media/aurora.94ddad5a.svg\";","export default __webpack_public_path__ + \"static/media/avalanche.234db155.svg\";","export default __webpack_public_path__ + \"static/media/base.10d9e192.svg\";","export default __webpack_public_path__ + \"static/media/bsc.358a42f2.png\";","export default __webpack_public_path__ + \"static/media/ethereum-color.c378096f.svg\";","export default __webpack_public_path__ + \"static/media/ethereum.92bf3772.png\";","export default __webpack_public_path__ + \"static/media/fantom.3f8c71bb.svg\";","export default __webpack_public_path__ + \"static/media/harmony.02c2e3ba.svg\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASrSURBVHgBzZo/bBtVHMe/v3NaigTIEiAhOuRSRQIWYpBgCskFFgoDidSBzUFiokFOtw6VYkssTIkVQEzFXZCQKlKWBhZqV0xFog4TQ4UuA1IRCEVQodLW9/j9zj777nznP+9e3Hykk+27F+f3973f+z0TTLDp5JFrLVsWzSkiGwoFvvIgvnq4chFU0/PUHlq5Os7VXWSEoAsLbR33SkqRw58c6NFUnlfNosz4CgSCe7Qes3AmWJCad58q4yoylgLWpwsbpgWPQ6TK3tnrlZHHjzRq07HpmNrhdwVMBlfdp6VRvGENG5D7bKFIU+omJie8IAa7iW1nedjA3KCHfsgo2mI/ncDkOUGEd623p6Gu7jfSBqUq0BG+jIcOOYOUSM4Bdh0n0w6OEMpSq/jg+qX4/X4FJGEl5g9xptHkgBP7pXhi9yUxJ881U8LnH3kMBsl3ZsIIEQUk7vnFhiG+fusj00oUsL1QDt/oKcChYzppC0/O4uLr52ESIir5tVeHrgLWMbUBg4jl5Vo+NY/Fk0aXkDymvPXgQ1sBsT6wCoMUnprtvl+emYdJwl5oK5DTriZTWXy2Z/Xi82/CMF0v+AqQpUowTPGFntASStOPPwOTsBcW5dWS8IHhOkcsbscEdk4aL6Ucv7Q/jPDZeHUVE0F2gSDPqGk259f6rC8c3LsD4xAVLI6lORhi45VVlObOJD5r/nELxiHYksQ2DCDzfVroXPrlW+z/cxumEeMbUUBCJm3FPfjvDso3apGxxqZV7nxMwQDfr2yl1jyVH2sR64uXAgXEMxnJD91SDiNpygwQAat7l7ufw9aXZDexNogCB8hAWty7bPVw6MTHisdMTLeZFJjjeifN+pUb0dApvXimL/alRspUbhNcixOhCU3sJ9JDJxzfouTma2t940T4LJWqUqyAgtqHJvnjydarxZLz4hvnx/6OkVBqjz1gaXsgCYn9xm+9r5Qa6BDqoDYsu4UWrkCTsKAB7t/RBWvYnO9mWeBaqFu8y5ckrkMD+eeyUMXvhRkU43FvjUlTOhT+OqCUakCT8DwvhHdigj1grs+ykHGTuSqv7YXsgbUFzem0+vPliNVFgfDUGPdQgPxNXPmxaLWjpq0AhxF7oQoNRMCVqxcighaf68V9kpVF+KWd9VTlhsH791rQ4OqVEhm8sPfnLSxdWe964p1TvU28WDks6De//oCXv3o/W3UqByEdes3d79y7OD39KJeoDjT4/d+/fOGCVoooI4rJRuY2Pys8PYuV3Qv4+Kcvcbd1D7pw76qCUr07c/b1RumTxcxnAUEOhC0v93RDJoSr1hoz4Rt91Sg3UFeQscATQePCZhZe+c3dpfjt/nKak4OnqHM4YijQe0lHTskHHLtuE6dnOB3Mdyx08OP+w/rnSc/Sj5h23fpRUKIjfDnt+fBTyvZpzRfAhA88JOYtDuWz9dqgYeMcs16DwbODITT9yWSEY9bxTuq3nTJ7w2gbPoJYHVzjDAiZODo/NbC5M8yKUBGmCAR/gK1OdTwyWX7sYft9Ve5sk+bCp6SMV9TQETxAX4EwgTLSZ223Km0K54tYmHhxJK7hPd7Cyi5QNlKaQof5H6fT2vk9/59iAAAAAElFTkSuQmCC\"","export default __webpack_public_path__ + \"static/media/iotex.25e8756c.svg\";","export default __webpack_public_path__ + \"static/media/kcc.2a935bae.png\";","export default __webpack_public_path__ + \"static/media/metis.b7cb139b.png\";","export default __webpack_public_path__ + \"static/media/okc.acd8a15c.png\";","export default __webpack_public_path__ + \"static/media/optimism.8eb852cd.svg\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/xdai.1054f470.png\";","export default __webpack_public_path__ + \"static/media/conflux.e14548a0.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/fire.369a5eba.png\";","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/lol.693acec8.png\";","export default __webpack_public_path__ + \"static/media/nsure.f56a5e8d.png\";","export default __webpack_public_path__ + \"static/media/oUSDT.cacf0848.png\";","export default __webpack_public_path__ + \"static/media/obtc.4452e23c.png\";","export default __webpack_public_path__ + \"static/media/oltc.38d24050.png\";","export default __webpack_public_path__ + \"static/media/oportal.409e5d4f.png\";","export default __webpack_public_path__ + \"static/media/ousdc.1a15374c.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAADAFBMVEVHcEwA/wAmoXsAAAAAf38loHoAolUA//8moXomoHoAqqpVqqoloXomoXo/v38loXsAf38moHoloHomoHsloXsmoXomoXkloHolonslonkmoHsmo3wmn3kkoXs/f38mpH0mo3wloXsloXsloHkmonslonsmo30npX0mn3omo30lnXknp38moXwloHompH0non0moXsmoXkloXsmoXolonsloXsAAEcno34mpX0mpX4loHoloXwmo30mm3kAAP8ln3ompX4moHoknXkloXsknXcinHkloXsnpH0monsmoXsno30onnomoXsmo30moHomonomoXszmWYmoHoAmWYmoHompX4mpH4mpH0non0ko3YkmnYmoHomoXv///8pon39/v4oonwYm3P8/v0noXx3xKz+//4joHkin3nu+PUprYQloHrZ7uja7+k3qIUmonwoqIAbnHQop4Ano30VmnEoqYEprIMnoXsZm3MkoHononwcnXUXm3IproUprIQloXoanHT8/f0gn3gmo3wUmXAfnncennYproQoqoHY7ugdnXYhn3ggnnf5/PyJzLcXmnIro34pq4MnpH1Zt5r+/v4np38npX4npn8loXsin3jt+PT7/fz2+/o+rIrf8eszp4SU0b4spH9BrYwoq4IorIO239JauJu139Inp4BbuJt1xKwenXbK6N8loHvh8u1NspNxwahzw6o5qYfq9vM4qYZJsJCGy7WDyrQ2qIV7xq+74dZMsZKMzbkoon3S6+TU7OXb7+lPs5WOzronqIBnvaJvwaji8u4upYBUtpjd8Os2qIQpo307qoiu3M5nvaP1+/kqo32Nzbry+feV0b+/49gpon5kvKFRtJWPz7tqv6WT0L5ovqREro1twKd5xa4vpYBywqkypoJHsJCAyLKT0L0pq4LZ7+ic1MP9/v3a7+jX7uf5/ft4xK2Qz7t+x7Aponyz3tHk8+9gup6Z08HO6eHH593v+PYmoXzs9/Sr2sy44NSi18YAjmDx+fbD5dqn2coAkGT9IPnsAAAAXHRSTlMAAf4BAvsDAf3+AwP79wT6BP2Q/F26YvztFv6OKCkE9Ybqjvut+vz9a/4X/nfY00HVP9H4qagCbef0h4+nLgGOv/sVxGAsx+vv/OoZeHjq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\"","export default __webpack_public_path__ + \"static/media/xvemp.da0848e6.jpg\";","import {\n CHAIN_AAC,\n CHAIN_ARBITRUM,\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_AURORA,\n CHAIN_AURORA_TESTNET,\n CHAIN_AVALANCHE,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_BASE,\n CHAIN_BLAST,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_CONFLUX,\n CHAIN_ETHER,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_HECO_TESTNET,\n CHAIN_IOTEX,\n CHAIN_KCC,\n CHAIN_METIS,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n} from '@w3u/chains'\n\nimport AACPng from '../assets/images/aac.png'\nimport AAVE from '../assets/images/aave.png'\nimport Add from '../assets/images/add.png'\nimport AMY from '../assets/images/amy.png'\nimport ArrowForward from '../assets/images/arrow-forward.png'\nimport Boring from '../assets/images/bor.0a18b81a.png'\nimport ArbitrumIcon from '../assets/images/chain/arbitrum.svg'\nimport Aurora from '../assets/images/chain/aurora.svg'\nimport AvalancheIcon from '../assets/images/chain/avalanche.svg'\nimport BaseSvg from '../assets/images/chain/base.svg'\nimport Blast from '../assets/images/chain/blast.jpg'\nimport BOBA from '../assets/images/chain/boba.png'\nimport BSCIcon from '../assets/images/chain/bsc.png'\nimport EthereumIcon from '../assets/images/chain/ethereum-color.svg'\nimport ETH from '../assets/images/chain/ethereum.png'\nimport FantomIcon from '../assets/images/chain/fantom.svg'\nimport HarmonyIcon from '../assets/images/chain/harmony.svg'\nimport HecoIcon from '../assets/images/chain/heco.png'\nimport IOTEX from '../assets/images/chain/iotex.svg'\nimport KCC from '../assets/images/chain/kcc.png'\nimport Metis from '../assets/images/chain/metis.png'\nimport OKIcon from '../assets/images/chain/okc.png'\nimport Optimism from '../assets/images/chain/optimism.svg'\nimport PolygonIcon from '../assets/images/chain/polygon.png'\nimport XDaiIcon from '../assets/images/chain/xdai.png'\nimport Conflux from '../assets/images/conflux.png'\nimport CRV from '../assets/images/crv.png'\nimport DiamondPrimary from '../assets/images/diamond-primary.png'\nimport Diamond from '../assets/images/diamond.png'\nimport FIN from '../assets/images/fin.png'\nimport Fire from '../assets/images/fire.png'\nimport IZI from '../assets/images/izi.png'\nimport LOL from '../assets/images/lol.png'\nimport LOWB from '../assets/images/lowb.png'\nimport NEAR from '../assets/images/near.png'\nimport NSure from '../assets/images/nsure.png'\nimport oUSDT from '../assets/images/oUSDT.png'\nimport OBTC from '../assets/images/obtc.png'\nimport OLTC from '../assets/images/oltc.png'\nimport OPortal from '../assets/images/oportal.png'\nimport OUSDC from '../assets/images/ousdc.png'\nimport USDB from '../assets/images/usdb.png'\nimport USDC from '../assets/images/usdc.png'\nimport USDT from '../assets/images/usdt.png'\nimport VEMP from '../assets/images/vemp.png'\nimport VIDY from '../assets/images/vidy.png'\nimport WSG from '../assets/images/wsg.png'\nimport XVEMP from '../assets/images/xvemp.jpg'\n\nexport const getIcon = (symbol: string | undefined): string => {\n switch (symbol) {\n case 'AAC':\n return AACPng\n case 'USDB':\n return USDB\n case 'oAAC':\n return AACPng\n case 'ETH':\n return ETH\n case 'BSC':\n return BSCIcon\n case 'BORING':\n return Boring\n case 'BOR':\n return Boring\n case 'VIDY':\n return VIDY\n case 'Nsure':\n return NSure\n case 'oLTC':\n return OLTC\n case 'FIN':\n return FIN\n case 'oFIN':\n return FIN\n case 'USDT':\n return USDT\n case 'oBTC':\n return OBTC\n case 'oportal':\n return OPortal\n case 'VEMP':\n return VEMP\n case 'xVEMP':\n return XVEMP\n case 'AMY':\n return AMY\n case 'AAVE':\n return AAVE\n case 'CRV':\n return CRV\n case 'WSG':\n return WSG\n case 'oUSDT':\n return oUSDT\n case 'oUSDC':\n return OUSDC\n case 'LOWB':\n return LOWB\n case 'USDC':\n return USDC\n case 'FIRE':\n return Fire\n case 'LOL':\n return LOL\n case 'oLOL':\n return LOL\n case 'oIZI':\n return IZI\n case 'IZI':\n return IZI\n case 'ONE':\n return HarmonyIcon\n case 'oETH':\n return EthereumIcon\n case 'METIS':\n return Metis\n case 'oMETIS':\n return Metis\n case 'NEAR':\n return NEAR\n default:\n return USDT\n }\n}\n\nexport const getImage = (name: string): string => {\n switch (name) {\n case 'arrow-forward':\n // return boringAssetPrefix + 'arrow-forward.png'\n return ArrowForward\n case 'add':\n return Add\n case 'diamond':\n return Diamond\n case 'diamond-primary':\n return DiamondPrimary\n default:\n return ''\n }\n}\n\nexport const getChainIcon = (chainID: number) => {\n switch (chainID) {\n case CHAIN_BLAST:\n return Blast\n case CHAIN_AAC:\n return AACPng\n case CHAIN_BASE:\n return BaseSvg\n case CHAIN_ETHER:\n return EthereumIcon\n case CHAIN_METIS:\n return Metis\n case CHAIN_BSC:\n return BSCIcon\n case CHAIN_BSC_TESTNET:\n return BSCIcon\n case CHAIN_OK:\n return OKIcon\n case CHAIN_OK_TESTNET:\n return OKIcon\n case CHAIN_HARMONY_0:\n return HarmonyIcon\n case CHAIN_HARMONY_0_TESTNET:\n return HarmonyIcon\n case CHAIN_AVALANCHE:\n return AvalancheIcon\n case CHAIN_AVALANCHE_TESTNET:\n return AvalancheIcon\n case CHAIN_FANTOM:\n return FantomIcon\n case CHAIN_FANTOM_TESTNET:\n return FantomIcon\n case CHAIN_HECO:\n return HecoIcon\n case CHAIN_HECO_TESTNET:\n return HecoIcon\n case CHAIN_POLYGON:\n return PolygonIcon\n case CHAIN_POLYGON_MUMBAI:\n return PolygonIcon\n case CHAIN_XDAI:\n return XDaiIcon\n case CHAIN_XDAI_TESTNET:\n return XDaiIcon\n case CHAIN_ARBITRUM:\n return ArbitrumIcon\n case CHAIN_ARBITRUM_TESTNET:\n return ArbitrumIcon\n case CHAIN_OPTIMISM:\n return Optimism\n case CHAIN_BOBA:\n return BOBA\n case CHAIN_AURORA_TESTNET:\n return Aurora\n case CHAIN_AURORA:\n return Aurora\n case CHAIN_KCC:\n return KCC\n case CHAIN_IOTEX:\n return IOTEX\n case CHAIN_CONFLUX:\n return Conflux\n default:\n return EthereumIcon\n }\n}\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABChJREFUeNqtV81rFEsQ/7Ux6kHYBUHzEEQ8vGd2H4iavBc96UVEL4K34NGTnkQwF1GQKGIUPHkyroIfqP+AX4mSeNGL4geeBC+SNco64m7MzGxRdm1vUszYs5OgAz+6qZnpX1V1VXU1FvowY02ziUGLq0R4bcfAgppNQ3GMwOJNFOGafMN1rMGfesIQ/9pFK0SoWRK28zbM/Jzm5oqaxWjIKC+eUS0uEGHELtRoLUpIkJAbFZRUIo4tIjSIcIEZxcWRh+i1C7yYJ0uRZ8mJ2mgirczLMERpQeRR1D1gf5qy6GhxmvjGDfDQEPjcOXAYGt931SjCQJ7bS7H9kMh4SVVmVEbgeh28YQMYAO/fn/QMCdx3gilm9GaRF8VVXsIcPH0q5A63b6tc40YhW1uroYD0I8GiZKbDIuYX9x896sgLBfD0dMpyf0ycT1tftsKGkmUjjgyPPwbfvDkHdX9vL/jWLQt915rfvQOemUko0ghDaIpGNmfjOMtiTatvAfjwYbAxQqgw0DlS7wDDmzeDLSFTsm5UAK1wNdXOHwNv3oL7+4yHNB/Hj6thNGeQ5axPowfNZtdgtstN68dqFXzoEPj+ffDYGPjRI4cHD8Dr1jmrt22zsjEj8jZ0Xv2kMZGqH4Nw9btz5F6/7izZt8/wly+6wLt34KVLnQKXLuVnTDqrLPdVyMHSqbwSCbFTYPly8Pv3asXIiJOvWGH4wweRLw6x5YY71dLEOn7+DC4WHdGyZeCBAfD27aaFVatcTHR3g7dsAW/daizQwpkz4B8zulYGAlGAshQQfP3qqhuQhgakZkUSe/cY/v49O76E26tAWpnZWfDFi+D+fnBfnxtXr3YkXV1ivcgdNm1SBcol8ULH2CDdgpzDRo9YN+7a5Uj++9/leBQ7+b17qsCxIf2X/B4INAhVmIuPH8ErVzqSU6fUU2Rx8KCTwxh+/jzDoDaPcENSISsLXr0CT0woJgWT4OHTauXlyyJ378fHwWvXOvnf/1j3//DFlkJKAKQY+CyX4Fm/XolyK6DRedcS8ImTCUKdkxY44Ua9jh4rqKX3R6wBFgoNyN27wU+eSFzkpKDlZG43r1ZQSQeduP/KlSQqFd1jYwyfPZt8/+wZWBvXXIxq58soW40aFv6zn1SxAwecAqWS7nEWSOAvww1Od8zSJORpHQTgnr+cAkeOaIp5QdldM9GSC0g/NUZBO+HkQtT++eFD3e+JST9xds5rh5zZpkvDKB2x5moyx4eHwRs3gnfukEbULeyAzlDyKnNOey6ts7TQPjdKZM+GMnosptyDZyrRlue25xFe5vUJlNnEJN/L1oaedjxPiaJ0yk3yNqv5rqf5aB+xKPzOHbFMhFF34TSdyWk+dmoWFbnY4k899fb1XOq3XMXj2ARWEbIyQSAHS/tcGWRe+PX8J2yuet9/1iF2AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAD2UlEQVR4Xu2bzS4sQRTHK8HehicQT2Av8Rb2QyJWJB4DYSGYuQmxIFYWFiRcsbC2ECvxAHYW9nXrb/qMM6f6o6qnu7ra3F/yD/V1zqkz0zM1XdVKBUJrvWH0qYtBnw05vnWYSezLmY3AvrQfJSbQCRk5sbu7q6enpzW65Ql90DeHiR+PkWCCmpFRdrtda3JlBVspzKimMUHc8oiOjo6s4KsWfAhuVWiM0ykeweXlpRVo3YJPwZQKgXE09H5EVZMSdFWdGAcd8tTpdKxgmhJiYXRUHRjD9+QBxRjFuFdVYgy+kGUUYxbjRVWBbsErL8UY7Z1gDKyRJRTbJMaaKoMZ2CMLKLZRjJ7yQbMlLYptFsN9CU0jVldXLYNt08rKyiADygXNlrco5ikWZFxSjOJls6vRtonNKxvTPotOFxcXloG26/z8nHIwq7JgWQqmt7c3clsKaS9PbIyNqZ9E4/HxsTUwhObm5gYBgtfX11wR0k6e2E/pSSUpY7BqPT8/UxhWW5oODg6suiIx+8P4OK5LV1dXPMBaxOz/YMp7qDw9PbUGhFSIBJycnJCLPUXU7dRVIRIAMR99Qjh10f8ENJEA83cThZ2dHatjaIVKAOaasIkEfG9XuWxa1K1QCcBcEz6jeftDoRIADfyEcuginwScnZ1ZdT4a+HF1GEKuCVhcXIwjAcTHx4fVJoU+RX54AoqIIgFkyCUBX19fhX54ArDOTxP1iSoBLuPB/Py8Vc/leglA0SQAkwLb29tWG6nX699glvVSrUzAkLGUNmpfX1+36qV8EjCqBn50RQshkDZJ11cfCpUAuRCqZCmcFTgouvZJoRIwtBQGVThdWlqybNDng+ybpVAJYD76VOVU2gBpl0WWRknA1taWVZcl5qNPWadS8nr3tVk2AY+Pj1ZdnpiPPjq5JYbbRbKzryj49/f374TI9jyVTYBP/9RbYqCM4zSBm5ubUrYeHh4oDKstS2BhYcGqzxKzP4yv4yxhQQSenp6stiJxZJsUJdmlLxcbM4xONkYODw+tQb7yCWp5efl7M6Ys19fXls0sYW4J9sYIoFb8+xvF5peOTjZHsZGIYpFiQcaVJqfNUeBjNBZkXGliffPRHgck2iJG8QEJQL1xvATFNsv7iAzQyTdCMqjVYqR/8mehf9cxuT+qDHqcD0oSepyPyhJ6nA9LE8bgX7KMYoxiVPPKS4zhwXdKTKdIEQtjRdWJZt8OAFVNSuB3KLosmq0TQBMHK9nanvD7nq8C4/SOR9DQY3N3qml0yoOTVdxeI7HbWJz8X3VNoMf10dk09Dg+PJ2HjvTx+X8qgJNT2UN32gAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcfPz9O7u7vn5+ff39+Li4/T08vT09PDw8Ovs7O/t7vHx8u/v7/Hx8fj4+Orq6vb29vDw8PLy8+7u7vDw8Pj4+O7u7ubn5/j59/X19enp6dXV1Pv7++7r9NDR0eHh4e7u7u/v72ds3v///8XF5+jo6Pb29vLz8/r6+v///+Tk5Pj4+Obn5+rp6vT09O7u7vPw8fy0BPlsBPr8+vz+/vzCBPHy8Zb9YH3+eOHg3/z8/MQLB+z8DvunBPycBOjo6NH+Jaz9S6MJBrP+RNj+Hrn+PvH0973+OJIHBvxcBfvMBI79Z4sGBKwJBfQkCKb9Udzd3lD9plr7nd/+GPx6A+X+E/uJBHb+gBj32Z/+V/yTA4T+cftEBPuBBPztAvo6BMv+Lc4LB/P6CO/oDPP8/PNLC/3WAyr1y5oJBrsIBftRBO+LEtfY2PjmB+kdC0H9tyX80hLy4/fw7gWn+Ur9rfbyBfRkC+0OBvFXDfgUBdUJBge498X+M/stBfM/C/DcDgV29/7lAvjdBTr8v3L4iArY8t8RCfUzCbQLB9wFBOMOB/N2DGf9kASD9uzo5a3xTGX1kARn+gzj7QVB94MEA1/9lfwhBfTTCkP2su6pDgaN+d3vHgRV+G3/ie4xDef0Fc/0Kjb0vQbM9gfD9QAe9S/+yXr4evPDCwac95HzZBXr4Pfy85Pq7knl6FL2p+iyF+bjFbn2P1Xsnrjx8Cvr4vLzDeD7GtPmKvWzCsj4Nfzy9Ibxc4T4di5G4f//+4f4b+vFsPDPwr/uOZzvWub19tX2JQeT80rsrvPz6HTO6df0y+JuGM5vcfGIQ5/3Xc6DhG7m6/S1VM308vv97a7V4t7x7+vwetvj6uuKePPp4fSbDe7X2drYJOzKEXDqhY+q58vk8BQc3jHV4rH6fdf8Wpn4tMkXFO9OKuinp/LIgOWvpPBnQd5QTvvvy8Y3NrtVWWrr1QJR8RV066P30PfgY+bjsfW0KeKoh+mShVin6ZcfIoiO4i3bu03WzfLOVb39UINyCVAAAAAmdFJOUwD8D1z//gUC/v4o0Bxt0XythcDkTu4yvJnlmv5C/l/rOkD9O/xEzDT0NgAACyRJREFUWMOMlglMG2cWx8dgYxsIV8idVVtV8nhm7DEYGPABxhjMYbA5zX0YMMEcJrDEHCEgCDcIoihAECoQoiUiJISQEK5ocytp7qRNmlurHL0vqe3uarW72jdj0s1uU7V/zTe2xv7933vf+76ZQZC3ievE/cU1Jy4X+Z1i/umw3tFzs5cLyMtj45qtrnaP34XDcF3jsYmNYSgmB2EgHs/F813uqvdv4t4e6zCMoFh8DosHghNfJpBjhJu7629Z0L86umGYADgKleAkxQi+oXBBiK3b7GqP8evht3rJKRlHJaFIUvCmAf2NxyOxde5Ov+7ghDhslIvjJRIVRxYPLiIOCUKpN3LhkZTbe79WBhdZ7ybEZT7yQn9ahVpRGUeG832mSQHvtQFFyYSE59vL4CKOfLyPrfV7+OWtW9evX7/1+dnHZCEK2byRC0VxeCzMw+EtDk7IGhQXybFz3/0jNjY2KizOYlF8+u31zx8LCrVi2RacIxLDvJIkDnVgLq6/cHBC3AUCCU94Kyp2lVeY6ru6umqsXz84Jyjko+I+nMPBRWIZTC8Pc/t/Bzq+XEA+/q44Kmpf7L6o4jiFqau7pq5msK6uRv/Zg7PsQsGyVisR41vARszH3Bz+ZyahfrmYLaz6Nqw49meD7hrAB3cN7to1WNfx1ZcPCwurqrQoTknEIlxGbXizF1zEWcDGCf+vLZ1hUbF2A0t33SCwublw5OZm5XZ89uAcu9BHwkFhIkhKIvf8bxFcrpMbxsL9/15viguDDPbtiy0OAwM9sFlZWSUl9pFVcuPstFaGoj4o9IMl9/7ZgYu4Y+S05Jy13tQZR89BbFRUWGe7PqskGsScpMxHifnGWRHho0WroBXEO6+ngct1FguJj0Rf1bXXx8UVF9NdKA7rNHVkZUVH26TS5GQYUnpEw/nGuUJtlRYWBIvcvJoCF/EQEOyLf8sd7K5XdMaFFUcV0wYKq1manJ1thJFsNGbTH8lwSHvuPCysIqEODsuZSYGLvCsXSTi8G7mD1i6TxW4QBhm02wA3hmSEgDIyMkIyjMYMI1zKLj0rVvF5JAfzQOwGHsQWlfAbW4le32VSWOLiwmhZFO3mZGNISHBIcHCwry+c4FsI45Nt/KJPJOOUiSTOQEMLYakT/l9IS3L13TUKBWMQByuxfTQ7ICAgJiAmJiDA15cejA+dUsadKwKfeJykWwlrmCBUAr87ydFZu6w1JpPFEtfZGdf5qaLdKqW5mKKiouaWmBjGyTfAF9JhHGAOhJsc6B64YQIR8dFfjbaSDn1dV71CYem0KCyK+m69ebGlgFZTeXNzTk5LS1HREGTDeAT/u0pGsTBvmIP1QoLAhd8sZkijGzvqatrrTQpaJpPV2riYn5+iTElJOXVqbH7Hjvz58vLmoqIYezU/4rAtN4KBIyYgVIX3Dz1KtmVBCu3gYDLVw1ayjjaWzitPJYUnwREeGh5+SqlUzueUt7TQaQQM/aTlyV2cEGQzxpbLOPdjho3SWvMuPeTQ1d1e32Xt1o+aexYiIyI0ERERDQ15oaG0RwqkUj5ET0jRjyjKZkEfvDBSVEbeb1nM6LGZG3eN6q1W2IfWGisYSJ8ArtFo1GqDWqOJpG3AY75paKioqKX8p09wyhtxXSvGST75suDQo2xIIbdjVK/Xj9bRp0az9Jg6kFF6errBoFZrIiOX8sLHZpuGWsrL8+9rxZQ7sr5MLPRTUS9HhoZLe2y15qzG0Y6ODkikscMMBrrUzCBQZlCmTsfYqBtGZpsAn89PeXmFBbO4lU8SQjHvxaWmxUfgYKutNZsbaZkba2t7hm+mBqWmtrampgYxPoHq8YJyaOyOfGVK+NJVlp8X4ojyhEIx+iJv9ulwaWlPzzWb7VqtuTYLRrStJ3gqIaE6obo6ISFhoPWM4fxIQU75/LwSWhsemhdxlSV0QRxJCSGXcF5EjAwdAwdG167ZaqNrbbYeY/CFiuqExD2tK1P94wDn5EDoJGhraGheZIThqoBgDORUmfiV+lLTseHh4OHh4WOg0h6ptEdqNPo+Ob+wsDBbwCxFmlamMHRDZITGEHj1D2wXxFsgVqlUgle6pdmnh2jFPB0aGmoKTjYmw9bzhZ3QDDAsQxq205FAqw3pgaev4uINyPt4PCrnT/8weRxmF1TQVDA/OzI2tpiREZzhe6icjgswsEnhr2Or1emBOl1Q6z3S3wNxjqeEQn7ViT1Q5OzY2MjYwvil8bzxpYVF2DMBMTuUdNZM1QA3rMYO1GUGpfa+gs2wGXFYixJCvs/duanz45cujS+Nn186fzzyeH//E8ADyvNT7IEhMsAMrdOdgdb29ib8sMzD1iDIBoIQUqJPLq/0HwdF9vdr+i8YDBcC+2HTNOUr32AN6fbYk629vYkJ1bvvLlPkewjiKRcSsnj2988uqPsNNw03L9ycmtLpVk6fGWkuUCpDGVZtZ3WZkPkHH/QmJibs373tezFfQN9RvAkeLuJjR+ZWdFNTU2dWzpw+PTnZCuofS1EmRWoMTM12GOgBmq7Y/ae0k/f6OPwN9PvcO3wCVf35xOVnK0BOPmtt3QOaS5yZDE+C+OkMSrO9vQMDkHkF0NvTDh/9yxWShbnTN+UN8Eamkl/81xwNDuwZSJybmZm5PLM/MbJBE2GgYciaZmFJAwx05cmjR7R9fC1L4Ew/2B3BAHbkh5eBnJu5vJ/W7gMHth0I1ESoM+nAkHU1E5mGD5+8feQuuUxyJJS/F31b5zpsklNiwu/jf+7fX3EASGBpbd922hCYmboaGNLenpZ28ijAF8nlaYoicQkPc4T4cHjCo5kQ3nu+7QDDwR/TIFDl4V5If4ApGS7RaZ/4uEyyPE2/LMEbH4dPrGUer5DCOiEHx30+PFyZlgZcZeVeUFvb3kRYLhUAVzLwRb/pvqppMY5Dz3goWyKjVxHX/nBdg5GoRHJk7yrZ1jbRNnFw50Q1lL6tcu/R2yfuifv6+mTxKEEQbAEqUYnweLiRrV19gWfeLwQEcfH5wYm2gxMTBwHeeXDnH3dWwGp7fvsEJZcL2YQk/j+NV79v2kAUJuEMd/xQmlAaIieoStrDPtt3HSokWLx1vj+iI1MYu3TpSCTEZrGVwarUqbM9ojInUkbCn0C2qku/MxTRJqV5Og/26e7e+97zve+zQiEMhUXlcktQn24YBvoz2m07nX3IrN/HgH0GHF++XV7BZyVx8zpEtllo3kDVHL7uzesdDrtCXN1MsSyO+9M4jqNo+gnIfX3PyTtKhd0zDZ2YCCTVPeELebLF04pFdAelgx+DKIrwDMwzNVjMLinuXCUoVzhbBKrtIX+eVIq93GaKyERZ0fTu/mNmA4xBbLC4Y3BZdxA3DpeU+b62fRB5siqBbaJYqRGWzpfDlWGHGOHMUu4wLTL0WpwQxxOCBsISzsGf6zOqWHvT8ZPROLMhXJhG97dchoJ4Bj0frlAkH71cyu6D9ZkPIIu3yWQEW47hxHB5I7WtUTU8C6BFtW2FAd1zutXH+H4xt//MTXUyybYYj0ejuRsI2gKxXaWfi8CTNLRo7fnjogUfDxg/O19MMkvm37WPk00Ayhe+1Qs8QrjjHlUe+r+RXKVjJ311niwWyc8z1esgccg+zCOiE/iWxdx6dZfswkyz3L2GurhODXpInDAByLZgHpeeyyDbdgo/TBbyZekobXdkdnZWvz3bUi3XrTdKO1XfRnmeNmrhWwL0ADmqhuPOdbl1XK38f/lv5Vw4PTw62UPhc8/tMlovN/Kl3FOU79YeuULpIp+vVpvN1y/2139MLvd0Af+XUi/8S7n/AhnoOTJt/Er2AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAZ2UlEQVR4Xu1bB3CU55m2QaCu1aoXVJDouCSOfUmciy/2xXHixI7jJCZ0Y9ziSWYuk5vczd3M5caXYBCoA6ZYQnWl3VUBCYxpBotuekcY9bZaiWaVLdLuc8/7rSTQSnJJ7MSZ4Zt5R9KW///e93vf53ne7/t1zz13x91xd3yZY//Wedr9e3+/KnuZN/KSx8GYMQH69GAYMgNQnOkHw2p/lGb6oCzVG4Z0b+QnjUPuSk3XgV1/eP7MmX/3db/eP8S4cMEwcbvhl/+Zs3w8SjP8UbyWlukLA53Ur/JF5boA7Nzkg32FgdiT44sdWd6o4GeMyf7QpWqgzwiEMT2aFspgeKA0+1vfBzDO/T5fyZGzLv5CbspElInjaYFcXW8cqwiFvTYWaIyEsykc9sYw9DWEDzN7fRgcLZHoN0ej60ocTr77DRRn+KEwlYFhtuStCEZu5hSD+/2+EqO48Ilf5q64F7qMYOi5yofLtHC2JQ44F+GypgjYG6bi+pXJ6GuMha1x4PWGOLQdC8PFbcGwNgTBWp8IR8dC2NsXwGpaCAut79brqCqbgQIVDC02LRuPiuJnHnGfx99llG14NM2Y7sfVCkbZem86HgcHV7O/gavdGotrlyJw/UIMbl1JQP5bnnBen4JDpcFDAdiRrcVH+5kBDWEskYmwmV7A0d0P4NLh76Hv2kvoaV+EHvMiWPjTfvNVlLwdhuI1WmzO8EF58fwfuc/nbzo2pPh3lydrkZvkiVu1s+Gk0476KDiZ6l1Xw2BM8URXswZXD0YAzTEoIBDeqJ6GG1clAyIZgEjoVgUBpslwNPJ7Hb+AtX0+itZpYLv2KjZypa2dL+Hj1gUMxGL00izmJbjeOBc5yzyhT9Ni/fKgU+7z+tLHzopf/5eOoFaYMgFNx6KYuqGw0BlrfRzMF2LRfnI2HM2TGYAJOLk1GtcvxbP2JxHcAriqk5G7zAu3rk5WJVKzNxL1H8agr/MBNJ58Ehamv3GNBpuSfdDf+SKsHXOQy0A6bryGQt5TgiDWY1qEy0ceR0m6BgWrvHDx+PpI93l+KcOwceafijKJ0mmhsDZOhbVJw/qOYepHoL85FNs2TEBVngant0XgSlU03td7wX4tAT10+NyOcHRejAeaZqCfOKAwoI7Ba/waPm78OVd/Hj46+BgObp6JfGJJf8dSOG/+Gqd3P4yrdNbSsnAoAL2mF2FveQq3iCvG9BCUpkTi3bKFT7jP9wsfBnJ4UWokOs9PYd2Gw1EXh1OVXLE/+uLYVgnKN2A6E4TDJZG4cXkGDhpZ783TYatlhtSGwVrHcmihdSS47BrZ4carsHcshq1trgI/u1lAcClaz/0YxasDYTctgb11MazNAoqL4fz4DZw98hj66hn0+hic2RINwxpfso4G7vP9woZe//gfypKDUL6aacw6tysEj8TRCq0CPEnnbe8wVU3TcKBIi5uX4oAGLZ2dhM4zcQQ4CqA0LxSQ18vW+GBnViA/F4KqzbOwUxdPQaRBVpIHCjO8UEIMsLQsQl8bg8KfPVz5tos/RVfLApguP4fsJIKteRYBNhG9NcSe+mhiSAgKkibyHp44u79Q6z7/v2ocPLjqkdIUD5Ss5mo2ieOD/B0J89mpaDgcRx4Phfl8vJpIX1MgqS4ER8oDKXwoblYG4zKRvs8UB1srs6A5jNcJJ0B+k6AmwPYia5+r3LkUdmbD+apHlQDatMoDTad+yHRfpD4jPx3XX0PWCrIJ5+Gknmg/9RDvJcwzCY6mOJRSPBUlaRxE1i9ORRYu8+cKBeDiB9GqbmFi6rdE8cYiaCJQtMIL5ZleaDk6g38Ho791Fh0Yj3w6YTo9VWFDP2nO0RjOn6Fw8HdL80x0t7+o6rn/1ms4SJ4vIfjdIMJ301EnQa/5xA9QkOyJyvxIRYk2fv5Www+Qt9wDzppw0us0FK30xfa13mSVEDWXvSUJMGSwJN+61+7ux1801ifH7ytODSZ9TSFwsebohK3lfiIvUbolkMjPG5sE0EiBLXGkNV+uwHjW7CzWpytAd1q/lE/LNyhylqDXvIBZMF8pvpqjT6CPtZ29fBwKyPEShEHAs3e8zLT3QE6SH3qbGOCGKLJPOKqMBOBajaJdB7HFyoyyts9F64WfoCjDF+U5i19w9+dzjdOHUqKNaeOx3+gPC52x1cbw5hGw1VOyUuToVnjg7DYNHLWJcLYnMOrjcWSzhlI3lM5OGsV5wYowOvUKJ7qAPxegfFMoEd+Tq+tytot1X5TmrWhuCPEpgkQPVGwKQHmGB6ytLCcJbkswHY/mdcPJMonoIYiKjrCa52LzejZcaePYQhjGu/v1mUZHx2X/YqafMTUIvURba2MQPiwL4o0l1aT+o3CrOoqrHowP9GxgUrQM0NeIBXS88Q4JPGj1MtEwBWy97UJnLitfr4X+bT/yvet1W/sS6NJ9qfwGnDdLIGiNM5jm4Wg6ORX6TA1azsUqFrLVBzPbZqL10rM4t/+b6L+2lNm1gGX3CBnEjyJtQp+7b59plLz99Q9K2MxU0TlBeVtNAi8+m4Hwxa0L4pCUQxTQmgjDSjJB60NqdV2r7OY8zUKQtJqeJ9jNHTUAFpG7NBtXvijNHzblOAGyYz5L7kk4JftEPRJ3mk7Es2xClJawS4N161W0XPwxNvzpHtLkHPS3/QSWunj2JZ4oySQ7ZE77/JK5JJ1tKBHcToHjaIqEPskHtQfj8H4hqe16IhuYEIJZONPsHmbCVKJwpKrvMQNg+meu6gLavM8XAPPLEGB10a7LrHWTcLIiEocNGlhrppBZFuDDbffh7J5HeJ+fwcaFsBOvehoSqA1cUt3dv08cZ06s/a4Ii9YTkcrJfka/r4ZavZPpt0KDgzqudN00YsB4lGVOZIa4EHh0i0RvbRx6uZKymr3m+Z8cADqdn0LxQ0nc1/4yeurvH3Y9CbL6nRmY/dYE7MyPYZ+wEEd2s/z43Zy3xiH/zXHMuDjK8yh8WBnKUvAmFuBedz/HHIWrZ53IT/OhkIllgxOBM1up4urCFeJ3Sdq1+qOv2Rv5q/yA9qkYDfBck40kJhA0219SzrsCIOA3egDkb0HxgjRffocBaHpM3X/ENZXwigS6XkJROjGKmdXDuj+9+yF0nE2gLI9Czb4YynRiVMM0FKf4oWDttMXufo45JGUOGILItUzpmkm4skealVCYTk3BlfeDWYeBaNgfjRqKG9QLx490Xk2Wn7O1zYG1zRUAyQIBNPuNpag99xQu7v82yjcGDQuAreNFBoCgaHqawRsFTGlS91aCYi/LaV/JTAqoN9g3PIsdeZ78DoNTx8xtSlDNmZULsJlguCk18Ka7n6OOXWU/++9idlgwJSjwO70tGnuLgnHiXSqva4lKcMA8TSkuW0PQiMkNmQiTTkpZrkzLpZ8gh+WSRXF0qPJ+FK32x7F370fd8SfVrpFxre/tALAP0KWSUeqCBjDltrmuG0Qd8QB6zEtdnyft5a30Y/pH8/UYlBKQ208lUHQlKjq2Cu3WTkYZs6rSsCjW3d8RQ7cmscaQ6c/Ucam3PiL9RwdCUMRaL1g+AQJIB0q11PS+ahNjhOMN0UosddVM58osRkfN8zCQthrP/hiX2enp0n1wYsdDzIzFasenMjtsOAZ0LmSzpVWsMczxAXPWTqLjoiBvl1FxEq9PGW5hmaJjOimQP2tdUt3ObOgzEcTZY5Rmzvitu78jRlbSBOiYgo5GCUA47LVSd9GsxRg0nQ5WGrwoSYvqw+TgO7e8Bqy/PU6pxGK2zIZkX+oIP5RuCCWbMBtaF6H2xJNoP0+a4u+y3XXxg0cZAP+hAPRSxIjytMgCuLMKf7exjKx02kIT8Osnu+wpCOB9JhCYY1G53gf7dBqc3R0KtMUrvBCQLk4NRH6y9rS7v8PGrl3/oSnJCIKRNaPQuyYCdVVMq0xf5LEfsNTNRNelychPCqIAChtGTYNmSArF4crZSsg4bryOohRfHCibpVZbVqu7bR5azv9waPXOSwCk+2Pq26gTeuuiyN8hKnWHBZZmr39cXcdlCwhyX+NKT2JLHY+iNf4s2xh0VQejhhSdm+RLcRWutt7ECpMlSF6fTIf7K1960JARgPeLJABhcDZHs2UNQ8PpOEY6kZOKwPFtoaq1tUl6ua8+O7xSrnhXm0xwserdP9BPwf7yWUMO95jmo7362eEBeDuAq/oKrzkBFjpUnC77CrcDIFhkbYxB9wCDSAAEK/qJE7IF56iNQtZyT5jOEAca7oNxpQ+BN9El3wcCIC14WZoGBsMbfu5+D41De36rK2MndXZPhAvEVBlEYGc2m5Da+ylHQ/EuU+xQibw3uCcwMMm6ENysn8x+3AddFCZWJWUXYF/pFBzeMnvI4W6CVsflwQAswLl930Lx2gD0dPyCARDFGIuStGClP1zXpv6gjrC2/4IBHQDKttfQ2/wgP+PagwTL1Mj+4fgWLZxEfmfLZNibKdTawtB6UvYfw7ErP5Dq0ReGNbPHDkDZuoc3l6YH8ktxCsis5FBnWwJraRrqD8SrlShO8UbrmUl0XqI9GIAo9DQ/RkSeAx0BtKdZtrQXqxrdXzI8AJIBLRd+NPD3Ylx4nwEgwDrrXGLKwjo2pknH5wqABFb2CRWNCt93LCXNyX5itGv1abZGETwB2LLOR2WhPsUDewtCcG53EI5ukR3ocGqZCNV16lY/8G/ufg+NLasfer80IxCd1WFK/hasnIDCpInIZ9f37jphBl4kORC9DVMVuAwGoFcQ3zyPdTyHrazvsABUGRNHBuDi00MBuLj322SYCQyAdJAjA2BpmjwkoiwsgZ7WR1zZSfF1OwDRDGQQSsgw8p2u6knkf9J0PfVLfYIqgerdkymafKkHZo4dAH3mdBioAa5dYQbUEn1bpuMwW+F+cyy6SDH9rEs90bS3ngFolCzgZ3gTu/l1pcQsTO8CRnkoALS9JVNxcMttDOgWDDg/GICFOFTuQ2r0VBkg5WYh4xhTw1Swbc0+AypynqspYiNlbYlUKd7fRLodoGor53G5KgTGdG/ViR4tCsflHSE4s306SlO8YGdWVO+NUKdVBaunjx2A4tQHNpeweei4GEfHwtF+Ngq6ZV74sJw3oviR7q+I1HbzClUW+/A+1p7V/LzazVUOUedLI1ORRcTueAnO7jdQQOTNTZ7oAq7OF1FMyitO9aWoYiq3fRfFFDH7KzQMgIvvJQNKUulkByX29ddxnhgh3y/k6hoomvL/7IOCZWzTk4Ohe2ui6k8EnM+8p6XiC3SVZCP7FaMWVYZQspXsYoXjwq5gspkf8jJmjx2ALQVPbdYTKRuOxVJMRLAEJnK1pqCakndfjreKuoG6uvnYdNWe9rQ9M7SSYlamaKlsRzHqWSybfKbczuLJKNkQho0r7lVK8B3Z2Un2Vhug2VSHm5b7UFvEDWBJOEsvgqLFm1kQSDDUIC/VH3t0k9FyajaDMlstguwIwRQL/SovFPKatvpJ2FPoj11ZGvX9Tcs9SL8TUXc0CicqpW2OwNFy9hwMUIV+4e/c/R4ax3b+Ps9AEDy1PVqd5VnppFNObISG6mXbKwRb3/HBwRLRACHoHeD2OwNQyBLoZdreqpuHPmllZf+e4NV++TncrJsDRydf42fbzsei9kiY2kCVcuo8HY/zW7V0gOndEI/rl56F8+arcFwnbpi/r1SnqzcYZIdwfHx5OnIyRJCFkJrH42Sl7DkSk65KFyubptHEA5eQ2pntj0KyTfXxZTPc/R4a1SfffFDPFRQ1JWklpz0KaJie1pqpTNMg1B+Mw8Zl9yqAs5iGd3aiznTpZIEW0QCuw013s5iWkNNlhykYtbtJX6mhMHLF60/EqQNV69UItQs0CHxO01K14qJGHWKcU0/tbGzJ8iKqh1OejwdaY1hWFFM1iSpIzmYGUZ1Pukw2UXQUZKXS4eKesdvi48fX+5RQBer4QZGdiobctLjDFAd9uhecXa8Mc/52AJgBzXKWN/w91/t0qP05glsU63UiNbyWjVUc9XqAq/6FWkmlvR1zBlpnaok6abe5CE0xaP4wgi24L9FeNmK80XCCAEzQ6/koXsluR9tgKQ03kdN6vp+7ctwnK0EZ2cs5sVVayEaj+4XUxdoeQw5rrPHsU6M4uFCxQFejBGB4drjeZzkwi3ZQWBWs8FV1rJ4NGNhj7DEJOwh7yHeZBc3/AkdNEBqPxEKX7E8ngnG4LISd4iTiBllAGh1mxPZsH1Su8Ro4cB05ZymzUircwtTPcJC6Tff4dnmaw9kaNdSPS10562VDRHrwhar289I8R3FwIbKTvSh0fjriPUnrwcbKfFo2V10Sd3CS9rqEIaWnrGUmUzkGRmqEYrayfep5A5HHLqddJmcToSojwVbdtVEyMgAONmglpEDdhu/Mdvd3xNhb8puH9fxwz0eDoDPYiJAZOlx0J7WcxXSydg5vS63U5+tZk4e3PQhRbXe+10OkHrW/V0btLxw/BKpspFgO5VzVwmQ/grAIHldvMPx7nJ85mmzhN5ANI50Xq94TxpLxl/Qfu/7vHLkrPLF9EwXQwKQtzez9W10nNoMBuH7157h8+LvDnJQM2KWLVUBol61scbxdDjpZ06NMTExAtr9VngtwgWYfg2htmUbtQWGTFgAzu0/ZVnP/nsvCsHm9J2xNM9V13JszV5aIAPJh+YQ0uPs55qjIfe5NI3tyK9Oyv5YdVeu8ETVtpYNFVF7mK88Ne73vxivEEB+cr/oO0/4FAtoLTO/bmxvDVpCS1m6aw8x5wYX6EkTW97XzcpgagN6mWLa8Y6/s3qIAFK30HvH6oAlANp+IIlv449B7vwty93PMIacphrQQ7MqVo6gH1OrI5O50VKyj+qcEJ89hwekmgJ3a8XUqRpGxS9HFOpaTpOG1K88LxaGnjpTX7nK8l+XV1/wwmilejEzXriuC/mM5L2KIsjyTgNh63yjvi4kmiKMy1bD+Qz8d/d1HQcY4FKxidNVJiyu93QPQ3TYfW3MicKP+l+rvwc9YOhcTuAKgZw/uaI9VWl0mJVgyCHwWyYTrv4I69WEAbW0vYuvb46nW/PBettS9qzkazYTW9hZpcbpS9g2CR7w/aDevTkZ5pjdy/zz+8wdgZ+XCp0sygpHHjnCsAAxa7v+ROtcGKq0/+Fpfx/M4WhKMQq5AEfuBc7vYtFydQt5PIMNQ0Nx6GY7uV1F9+oeUrUJxfqgqEayZwiCN7ZSzI06dGBekexD4xv5cP3uVwlR5aMIHhw79ztvdv880claF3tAT0PqvvzzC6TvNefMVvPOncURs2YmRre2lrPtYdX7f3xaL/cYAKjE6malVT4fqUgXdJxBDvJCfwu+95cfGS1rXkY7cacJKxSu1FEPjMHZ5RCjlZ2mYwu4wEBuSwja5+/WZR2vNrtiyVD9sz5Wd2JGOD5ogve36Eq62Fw5U3E/weYDyOR6oD1HpapeHGdqjKXymqHPFljOPo/3ij1R/D9Oj/LzrqTHR7yOcoTlE+FCBGpM9ULHei8LmNpaMZvI8gp4NWWGSr8Pdp889OusOzZDTF/1afwqgkeruTusmhdUdj2UXGUpwpFxuEbCLJE256tkqp8ZtSyB138PW2XH954q67txcGTI5TSaQOc3x6lr5y73QXTMdwx6+HMXkOcWilZ4EvoDPX/djjU0rPByGjCAcf+/hEU7faYIVslHpNE9ByRp/5C73R80HbHHb4tXEHW1PU/DMU8djsk1urREZPNpKyhMosZS9GuSv9FGbtNKD2JrGrvlB06Xdq2TvprcCatz9+KtG1jKt2biGtVo9nPcHra99LlNdq6Tp4GQczeHoOD+T9S8PP3kgZ5Un9paS/prmwmGeRkCcDrTPJP0loONMDEtNA12SF0ol497WoLsxbsT2+OjGrGCZyGlxCXEmKzm83H3+X8hYt2JCnz5dgxt1Lwzj/h7zS+za4tSZnfvkpK57aqOAm7/B1WPfQ3kWmYGdWX5yIApT+HtKEOlWg5wVgajcoMFHR7j6JvYFlLaDW9ojysPdmjQ4XKrBZrbH6f/judt93l/o0Gd6qa2pj449MRCARWxvH2GzJJOJUufyd07OXhcFm/k5pjylrvlXZIiF6olxZ6sAG5mibTJ/j1CPvIhOcMhR+4DTci33640wYsX+XH/2+hrR+/3u8/1Sxob/9b5RlB6BPPb+jltz1JaTo15MjqFuZ4FNHpdTGTKfRrFj+pXaDBn1EZrPZa5zP0fHdOKMB7V+CLL+GPHlrrz7eCdl0hnd6mB5Boe0k8gMcG1R33mWZ2n9gQv0GAQ79YFF7eS6O/OXmPzfwX0UUFr1Hyfl2c/+xn1+f5NRkBJyw7hai7xVXmg8loj+pigVCNX0NAaprXE5AJX9A2vDfZ8qdD6LOVrDcXa7Vu0Ul6cEIi911mb3ef3NR26S78eGDD/oid775bmdpkTW/TwGYJEKQnf7k/gk4fLJJsFMQC/F0rb1bGuluaHg2rAy+JL7PP6u473N8xblLfeEjilZyG5u88ZAWAh8/dfmqSdDXYJHevZPq3+hPVJpfShXOwY3L02DPKNclh6gGqW8lJBbpw4tf9T9/l+ZsbXgX6uyV3jAuDoQxem+1P1+eHejNzrPT1XIL9pAzh1vP2/sMnnN2ZrArjAebRciUbHOC8UpbKQItAa2s1lJ41C67p8+/QGHr9LYU/nGM0VrZx4tXOXHYATAKA9NyL/MkUb1bJcNGfI/QP6Q8jGulp8BVHF+pDRvFCX7OYrf/vp7x6re/I77df8hR+25jeHbK5bM3a5/4o+lGx+s1qVGoygtmu1qJLvE6G7jxpm7i9d+6+V9la89U1u7Mdz9+3fH3XF33B1fxvh/Tp+eLBmvd10AAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADQ0lEQVR4XtXZMW4UQRCFYY7AEZyZC3ABTsAFOAEJiSVHhKQEJISkXAGRI5AQQrLkAAmRmBCcEBAZjYVX8rdV3bUzs7PjX/qTfa97unqN2LXv3VuI45OPP45PPl0VvXT9nSMYapLuv1o8+Nz6vFWw44/3XK7jn0lwsEX1PIvhQQ6t59srPnwtes7Z8YFr1XPPgg9Zu55/Em6+q6dvv2+91vPxy7Orh88/b72+i84xCjetKuY9xbyq8+yEm1XMsNczw15F5yrjRi3fn/32rLew37PF+c8/W/2WzlXCTVr2sF+1h/2WztfExS1b2B1rC7stnTPFhZkZ9uYyw16mc4a4KDPDXqaYZ2bYy3TeW1S/1WXYaynmLTPsZTr3BouRGfZ6innPDHuRzr3BYmSEnYpiXjHCTuTRsy/3nX3R4aO9zKtG2Il0/lEXYN6ziut6innk5OEH7GSOwT1aRtiJnHQB5i3H4j4txTyyfAERdjIj7GTdJ6/PtzqZEXZ09AWYtxRzFfOWYq7/h+9/+BHzzOEdFDsq5i3FPLL77j998819tzqZr95duHSrM6cyfEW3o90LEPOeYj63Yq6LX8AN9uZSzPVgFxDh2jGKue79AqI9KrhHVTHXRS4g26uH6yuKuS56ATcOv/Ov4tqeYq4HuYDIi19/fdQ19nqKua7mAm6MsNNSzHV1FxD9fcFOSzHX4QIufVHFPFPMM8U8U8wj9/plSMwjI+xkirnu/dtghB0V85ZirqMvYMBOZoSdMV2NsKPlCxgU88xd/s8X92op5pGbC6hcQoSdlrvi+pYRdvTW8JULGBTznhVcU1HMI53/GksaYaeqmFeNsKMPTj8cOfs1FiMj7FQU84oRdiKde8Nx4UPRYISdnmLeM8JOpnPfwnJkhr2WYt4yw16k84a4KDLD3txm2IsM/yga4cLMFnan2sJupnM2cXFmD/u72sN+pvOVcJOWPez37PHoxdetNZnOVcaNeraw27OF3Z7OtRNuVjHCTs8IOxWdZxRuWnXK4aesvdE5JuHma9fzz4IPWauee3Z84Fr0nHvFhx9az7cYHmRpyx9v94mHWkrPcXCGd8NDzm36y4y14cGn6v53Dgfq6fp98Q/twpmau6HU4QAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACfklEQVR4Xu2Y8e3iMAyFuwEjMAIjMAIjMAojMAIjMAIjMAIjMMKdfJJ/yn1NUiev98cp+SRLyHVezCPUVZdfg7MwMRrTACZGYxrAxGhMA5gYjWkAE6MxDWBiNKYBTIzGNICJ0djFgGVZVrE3x+PxL/37/c6SLuRO+cX/hQmn02mlbfF6vVjajNwlm0rjcDiwvJn3+73STUNFUrBfgA0xLpcLlzVBPYaKpBAxwOLxeHBpCP7vc6EiKUQNsPh8PlxeJaqtIilEm+xplmtLoSIplAywI89cS8M8+tfr9U+eWlG9GpJCyQDDmmbeYmsyUPP5fP5co5bvpSApsFk2xV/SozYZ0jreN6iT7tWLpLBlgMFrHrnJYKcjp+FQo1TXgqQQMcDgdQ97yHFSrRJcX6uNIilEDfh+v6uaXG3tr2FwLdf3IClEDTDsZsa6Wn0OrmtZW0JSaDHA6J0MDtfV9ooiKbQaYJQmw/l8ZukKrtnaK4Kk0GOAwXqP3GRIYX1kry0khV4DDK7xSCcDYW10rxqSgmJAdDKksK5WG0VSaDXAb4JO62RgTamuBUmhxQB/rWU3wZSWycCa0l4tSApRA7YecUvv/DgZeL2k14KkEDEgzVt9CWp4pJOB17hXD5JCzQDe5Hj0c1DHwycD876XgqRQMiCXj0DTuJ65qG4NSSH3RXNRO/okqumhIilEmrUbXCulyZALFUkhYkAvpcnAUJEU7JUVG0qj9lgbgXq5UJEV2JBHz9HPQd2995ANKB3VvdiaDCq7qNxut5+mIvO+FTMhfZq0z5bbg10M+J+ZBjAxGtMAJkZjGsDEaEwDmBiNaQATozENYGI0pgFMjMbwBvwGBnBCMZAHiDYAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAqBJREFUWEftl1tPE1EQx2f2Jl55ND6a+G6i5aZAacubiU8NMSh4CQ8mfiBjGrF0gdKNLwalYDRo1F5Mo+L9IyCKRiVG6u7+zZrQYHtqb2cbHtzXc2bmd+bMmf8s0w77eIfxkDSga2bh0G7DjhG5QRe0Yhf1yxPjXa8bPbA0oEQqdxvAqS0ABr7YtjF8aSzwrBEoiUCZ7wDv2x68GShpQFOpXIaAvvJsgPHZVvXhiWjX83oyJQ3INPNHXQMPCegUQemsRc6OdL+oBSUNyAs0efNRj/ZLvwvGgWahpALVgiLmdaXIkbGxnpVqmZIO5AWann7c66rakihTtaB8AfKgrltP+lTwEoP3l2eDwZ+gU+R8tPdlxVqtImtlvRaUo2rhiyOBV3+1ilYC1mNrJjMnHIUWq2WqHMq3K9sOG09lTyqExfLG6e0B46O9qYe3ZKYEZFmFzq+23VHPqZvZ06FSP4hmARiCllCCYtPKHHGgzDFwvJlAsmyYsfYTzgAnktllMA3JctyKHxAvcyJVKYqtOG3FlhkbHE9m7jFzpBVHsmwB3OeYlT9sADNM1AugLa9OdAAwr3YYWn8JYH6+sOcbG7tknbbiJf3YGHKhzIlfGa8ajhYaHQ28b0tGElYmSI5yB4y9lTJCH4iLofEzwXfemu9AM6mng47rLtQD4zvQjWR+QCWkhTCMNYXt0LmRwbdt0bI/MIqzIJILrwm6qha+EO1+0xa1n7Jy/Qw3XU27SNVCIhhfrqwRIRW9aKlF7cEQIS0aNcpVvVp7kQY0aRaOKUbxQb1zj+9AiWQ2B6Ye0bgqmgz9BxKJNPM6qRQWzc6+A8VT2VsMOl0KVMcvj69FHZvNHdRV9yoRBQnKikKbV7bkoBF9lFbUjQT9197/QLUy+RuCh1FAjqLhQwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAS9JREFUWEftmMFKw0AQhvff9Sk820NverFS36PSiNBa6MlX8FJfoScPNiBNaN6jwXrx6EGv+hSdHdmA0II0MRvoQmdPgUz+DN/O7vwMlOeapfktlHpwMqzU/bDfffKRhM/Hs/lLyxzZd2YYpwMw0Vq3h9cXH3V1vRKKk9ceNC02f87WXA2i82xPCa360DbZTkhHg6iTSkKOQJwIod2VIITKTooQEkKu/ZRR2PX+cGroOctP2JozIi66dtUFbS8B3G31MuYpW72squHijAFB09tNr/sJ52eMVo+/FuI/Qk3GFtbFqjHiNP8CcNykeF0tZv4OL6HgtszhLayowWkQRV13v8UPVSF3ODd1FRp/xQihMnJCSAiJYyyrAX9CgY1jghtYFR0/W40U0cQ9NzHS+wFGszz0MeLxMwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA6CAYAAAAA0F95AAAAAXNSR0IArs4c6QAACcBJREFUaAXlW2uMFEUQrpo9T3w/8U6NmvhAEzUByWmiItH4QKIe4IEISjBGYPdQz3eCGPCZSFQwHrviM4qJ0cQAPhBUvERB8YGiyCmoMSIg51sQPe5g2696dvZ293pme2Z2zx92cjs93VXVXdXV1VXVc0y2JakWk6ILbcGNcExrqR810Gz+h2aqWuqg94hpAaX5Xg2fUg2UpeWo1xrxbRuZXqcMD7cBd2yAKKVSsZkn6gSNsZp5GfQnug/vg8HwnZRUQ/Q80vwRBHKb1ZyCgGShpqhkEIjXx17F99msBtAu+hT9e/rC2HWk6FHOaNCUGgbGF6Pujb+J9qKB9CD/ovuTahGEc4kdWV+ovylBg2gur/eFQEewBsxUNZjoc4CLxzzTwjzz16s6MPcMaHrMy/wOp+1oU8pt60dXoW2DdMQoe+q5Cw8BJVgAHXQHJtsQgG/TtRH7/moNKAx20bOgeYgBcTil6GbdPpt/w+qNhYh2GuDsm2TuwkNAKVyFYrBmdRpUfwUaE8Udod52AfscqOE7GiupbgHzs3wpCMMOnQX49zVMSt2KVbzfF96uQ+ZwBmh+YAI3C+BmtRdUcjUme6wJybqN6S5Y4xka3rXwItDdyuBvwMoPBN7vekuk6DXMI+7p8422MQ/w9tKxzVtgOz1UAeaX09kQgJRb1T5YyedRK8e8QB+JsZ+WCjErWJ8JqG3S71F/ZCGFJ0PpLYAp6iJMYJIB1r6J6Xec5ONpDO/SSNsojecx9gSoEUdji4aXkyFB41B3aYUgUgQqPAlvJaV4C1yr+lM3rQFMXQlc2NcmWP2XNFJKTcDqPxOWAOC7qAZ7t5U/1rhJNR0Lc3cEOoUoHdDBk+kR/tlrLNaAbnocHXGZn5dn/jp1HCY91xss5LMWa/4C3ab203h1cJyY3gpJoxS8DgssPOZLjwBSSo6qxnxPtEo77UE3aFRxdbux7xXtHY0UsBQdTX/SEy49zmJbXYF6R2R6LmIjPFvhVRdXAEl1NAab4zVGfHZCZXu7uhGJFaA1aVdcGh7mDtiD8dCEbEF/+KrwKjyjOPSiSuA5P9ZKuZRuwn4V+0GYsLi6N+p6JX4ULHhKDdSk5vIyCODeWGRdrZwvvDMI347J3hOLINEi7PsRmoa4ul30OQRq8vbiDPM17YvgaRZv04vWRsswxtA4BLH802tAZBnU6t2YhFbn8bOwsw6Nzr9XsrIVFoZomz5em9Wl0ISTY5HPYqn+74XzEVhcSYjX5hUvqvPeK/ms8DgMa5jBNpgSa45Mm+E9HEEzcVTJEZPNHV2xiBqR34StOV/3JNWDmHdcQ5t2MPHrsZfeMw5n26joMJzO52hwB+moahWGsZXixvjiHkcvjNTbIGpxsGpdtDs1QQibo1MDpsL5LKWVN4OWZJAqX5he1kS30DCMVx9jgI1wqppoMne7jtAc/hHELsVfHKs4EivTT09K6XRXjPkZUJlWIXn6g+5hmmiAsG3qxCk1SjtVwHAFIKgZXom3qbZUDHD7IdHpRlsJxPCVLiqn/jeoA7H6F0cmz7B3knzNlR4BSEOaJVCYl+sL//C2QX/6ANvg1/AEAjC8/b9Dh8a1AZD+XQwXOMNFkWmxAAS1nq7Dr5uS8idl7lE0nFrU/vo0ULTEDBShlek7TPxzjakiqj9TGwz+LaWj9xaAGMV+2h6IXQhbamFFXC+QK2oHXOvfrE6E+g8OOylo4/fILI3BwvRKsvYWgFAXo5iIaBS9beDQUgwcL2rzOE3k9r/S6XKv1fb5N+YxIn/nUIJVnBEq6YSTNAkSD2sTFKKBI5F12Qj8FcA/vZRsyPff4GG4gVUbbQS9cMefA5uRZslHGotZAzzQDD+GalgBMDI5rpNSiW3A9KoOftoinf2zgpgXNoMFIBBRjKK3DdzrL6ESvXjWP6zxY3oDmjOt3MDBW8DDblGH4mpzFV4P9ZrKPhN0ErVSOyV1Stser5hwJxJqByOlLcfej1D/3Yu7fd++xb5v0HcLviBuR3kNEDgxig5cxzCeYlZSV4gQ42wDRq7CvcwYZ80801+Y5wgb5oU1OwEIZJrlLv9aqVoVRZfrUNuJ5RUu1GPZq7+CoCYiYvzCao4AstsChdSmKDGM1xQ2+dYdGgIV/oy2aq/Q5laoh5QcobWIMrN0ELLLa3s6AmqM1F6GAy9DS7HtNcDDrEe8wLTSew18ijGUHB5HSLkpuNOSBd5pefYzNK2O3HvIwEkVd4YXgHiK4iQxbSkmZXwbTfOUrHz44Eisv2SsvRPFSD7XyLQeCdPx2gUPgjP0hd8CHpGUOh3q2YbX4MDEwZceDn2NlfzSQ7V6Mp0AvGPgUwQLj7HBEnQa8hBfWdEtAQqvAR4BMYqODpy8FvNTVlAmJwGNbWFah728DgKeWAZF8pBXRmVeaEcXgGCneR4Yc6+u5N1UJHZPqb2hysErWYgrsX9SHYCmct8JzYCg3CxRIX6IejwByEB11AwhBBlF+VZnJGAWW8/LgQBYjtFAx2cBZWJf6MTUAOHIxigytkEd7AXTPxZC6EDos1Kf5/7A7Zj5BO1o+cNY9cTXABlGEqEJ7Sl2G0dVdC7OjH3R97axv7CR6RWk1o6HABoKm/N1pj/AfCO2n3h8sUtlBCDTaOUVWGHJJplKAo3y1Vf5bSD73y/uF+dItkaavzENEqWtcgKQ0TP8KCboZxTH48AMFgAj7KmHlij9HYCJn2lgvnKpNoxQWQHIlGu0p2j6JO1UpMvko8V2AfMpS3HBMhR9pujxRQj4fh+8yM2VF8AjvAP2YBQ0obenqCPEAC0Q788U+DCu2+stXeKQoojuCZYbaKo6A96feIo9QZC4rAmanGsvpbALQhuAxnYIoSful/R6Agaxle0dqVLKAe+V1wBvMDGKhHvHwqLAYAJHobivpUXu6hRdUMS8fBrn0GXVYl6mUD0BCHX5OpzpSanmSxdOA4V0Ve8isf/EomYHeXz5JKaKpboCkInXaE+x0CiOhRaYbpAliXFqnlfGV+ppnp1/r1Kl+gIQo+hetHRoHty0tjgxEsh4ZQ3ezvNeoDWr4Dlek3+vYqX6ApDJz+ZN2GxNqLmeYhZXaEyf5PlycO3NubOf4QcyYoeZ3Jnvr2KlbwQgDKR5OX5do6hwTDpFdmALNOAwMC6fy48G7A9V5LmIdN8JQIYVo+jQU6jtA4a352Yitz1n5uot+f8tyDVU+9G3AhBuEvi/EKIP4dVLsPMLVn0JBNCoBZPhuQLSl6XvBSBGcQ/tKZ4CRt+GAOTy8rOcYPqSdz1W3wtAhhWjyPr+cBM04SgwPwqXqTv6nPv/fMCpajTSZd7+/0+m8y/1BI3dxtFHegAAAABJRU5ErkJggg==\"","export default \"data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACalBMVEUAAAD//wH9/QP8/AP8/AL7+wP8/AL7+wP7+wP7+wP8/AP8/AP8/AP8/AL8/AL7+wL7+wL8/AP8/AP8/AP7+wP8/AP8/AP8/AL7+wP7+wP8/AP8/AP8/AP8/AP8/AP7+wP8/AP7+wP7+wP8/AP7+wP8/AP8/AP8/AP8/AP8/AP8/AP8/AP8/AP8/AP8/AP8/AP8/AP8/AP7+wP8/AP7+wP8/AP8/AL8/AP7+wP8/AP8/AP8/AP7+wP//wP+/gP9/QP8/AP8/AP7+wP7+wL6+gL5+QP5+QL4+AL39wL29gL19QL09ALz8wLy8gLx8QLw8ALu7gLt7QLs7ALq6gLp6QLo6ALm5gLl5QLk5ALj4wLg4ALf3wLe3gLd3QLc3ALZ2QLY2ALX1wLU1ALT0wLS0gLMzALKygLJyQLGxgLExALDwwK/vwK9vQK8vAK7uwK2tgK1tQKzswKysgKwsAKqqgKoqAKnpwKlpQGkpAGjowGiogKiogGhoQGgoAGfnwKengGdnQGYmAGWlgGRkQGQkAGPjwGKigGIiAGHhwGDgwF+fgF9fQF6egF4eAF1dQFxcQFwcAFvbwFtbQFnZwFjYwFiYgFhYQFeXgFbWwFZWQFXVwFUVAFTUwFSUgFQUABOTgBMTABGRgBFRQBERABCQgBAQAA5OQA4OAA3NwAyMgAwMAAvLwAuLgArKwAqKgAoKAAmJgAkJAAjIwAiIgAhIQAfHwAeHgAcHAAbGwAZGQAVFQAUFAASEgAQEAAPDwAODgANDQAMDAALCwAKCgAJCQAICAAHBwAGBgAFBQAEBAADAwACAgABAQAAAAC3/a7zAAAAQXRSTlMAAQEBAQECAgMJExQVFBUUFRkoKSk8PTw8PUtMa2xtbXR8fYuLkZ2nrru8xMrLzd3e4OHi4ubt8vL4/P39/////tb2cE0AAAOsSURBVHjapdd3Q9RIFADwpwIKWBFdTxQQyKKurq7KwhqS+CJ3cpQ7r8BxhdM7z9M7O/bee++9Yu8VC1ZsIMx3coKbzTDZhCz5/Zt5k7yZycw8iK5rsifd6wvki4hifsDnTfckdwXHOvcYKIwMisgQgyOFgT06gxPdUrP8IYwi5M9K7QbtiUvJHouWxmanxIGtpMzRaGt0ZhJYSxgwfDy2Y/zwAQlgIXFQHjqQNyjR4vOFEDoSEqKm0SdXRIfE3D5R4odiDIaaekjKxZjkclkkChMwJhOERGB0GhzCGIUGdwJD/zyMWV5/iEgehh0wLBl0mSJ2gJgJYX1HYYeM6gut4nPQoKIs2ZJRRV1OPGhSxzDxijp7q51tC4uVSA9jUkGTpTKv/35rPbH1Zm9l5CPULKB6+5n4qScaSTtaLv2Heg/+3gCQFjI+v+YmceDJuon6akoDAAF1P+14SRw5UoRhAkD3ERhWsuH8xdpWF2otXHhAqE9LJX3YRnQHTxDDispLw/6a/G1pVOXHCfWgWsGwoAcyxMgQhinlZ/ZXyBiF/Ps9Qh37BnViBnjNzabXk9p/tbniqNLiJhrfvEoyHnnBZ262mbZ6uGoSmkw8RKi6KTJG+CCAvJJzhLpeoZjWddUdQh1muw5AAXLkaU9bmxVp4zp37RrDit0fSfONzZVscgVQaMpgfQuNb1pCE1WqbhGWFv6rrKhoKATkFZ8k1P1qhfZV86FN+LVNNJwbXECOPKXOmKoDhPVu09fmuQGRz2Bls/ay1dpUTT517y7j7es9FXwPomkQi44Sqm6qjIiTKqsMv/xzmzTXzsC28vlpVL4stpPFrWtTYUhzGrT1MVNGVgB8XAaLGrV/fj3NgCPvJlT9dBlZPn4pqwcJ9XSajBzlx6uEOl+GbXghXUSDPvPnSswLfNZrQm2RkCWma78z22zBe0JtlBSetJNQz2dIyAp6tA2Foewj1Mua36o5f/x9hVCXvkOdvqGAwMb/fI1QTY8fmdQ1Emo7NzaCvqnqGcxtIHaezdQzYDbVnn6MkHcRKy2ENJydz20S/p5ADcGIHy7bnChnF5TxC3kId7RJ/78gLdG9Oj2vTOLC6dHGHa7Kn8ssLJ9VyodT2fHc8a4qsv2hzB/vbi8Yrq84Li9ZX7m+5rm9aLq96rq/bLu/7rsvONyXPLyEfk6Krn4Jrss++8IzZ5yKFtRxOSlxbktfJ7r0SotWfKf16gJ2+PI/g5b/BYWIhQW0/M+wLP8/Ay4mbofc/N/TAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAD3ElEQVR4XuWZTUhUURTHn5ZhuioIqfykqE1BbYMijDZBBUFQhLgwwgoLgiASchctWkWgRSF+VEhlIUiLPjbmR5qmjjqNmqVhEM44ucz3nNM9d+Y5r/lbKHOfvOEufjjzO/c95p573v14GoZhkOaA0A0QugFCN0DoBgjdAKEbIHQDhG6A0A0QugFCN0DoBgjdAJE01+8a9JEMOnUaYx4ERNJw52fonvybGPMgIJLGTkBnBGMeBETSDIoEhKie+q0iiHkQEEmz56BBPyM1IgmPIeZBQCih18yhID2k42cx5jFAKKE7Ng/0en8iBKGEFFoJQChB+wS8mzQoTE+pw8KYxwChjC9WGU1YF8B7DBDK4NEP0wt61oUxDwFCGSkyD4BQhvYJ+BRLwAddE1BWaYjd4APqMdcvutdj0cpoXzDIbx6mKauSAuZRareivroF7+MyIJQyS030Y+E2rcuMdnCOWmVV/KKXNDC/m7pMg/rN7RSKNMV8i2y3/wjeyyVAKMVn7hWHogZ5QuwQx+M2M/ay5NLf7Q4ci/qO+bToFnp+G/WszqMDQildjolwuZMhtwtFGkU1tFLfMq9JAhBKWc5KkPt5UOJ0naJ9ONIsHpF0aK8YEMqwR50TwOWfGGcKxoapMRyilrkwxJaTPAWAUAYfiQe4nHkOsHZJlydGet+4n4pEx+12S1WAjd88RN+tKsrdiTFFgFACjxrP6Px5yroht8RVdwzKGOqlBjHi/+pwVskZmSTnfVyuAhBKsH/4yQpDLnUzdF+uBBwrHPVBe5u1IkH8SNgJ6v/NFdTo5ooAQgm8++O1nj//bwVYIzpcEIgnJF90/PL0JOWP9MvvuTvEZipSKzdOidcqAoQSePmzE+Akz9HZ7PJzVC9Gu242CO2cTFs3qcu99woglMAlG6JHlJkdd1vF6DrLmykMDNGm+lq43qb0anQu4WUxMaYIEEqw54Ahxw/njm8e7KF8Xx+0ZwpEPHO4j4q+ji46fqmakpPgOPE54MmKfviWJSokZVcB5r2YuCata1R6HmPMBjHRrRuKV0PWxXLZ+fTCAvk9LU0kMfKcuh2nSRcAoQzeBM1QNbUvtQvMyKDiiYAseYjF4I1UkOrcfp8AQil2Ca90HY8++zWr8Y8VEMqxT4RtYil7M4pxJ37RtiPWnh+hxLgLgHAFHskg1cq9AVcDV8arbwZV3DKo2RffLEVfmNTINhtz8D4uAMI13o7FnutIgxzhRMLULJMw4n7ZOwHhOsUn4iPupOQKtl0FQOgGCN0AoRsgdAOEboDQDRC6AUI3QOgGCN0AoRsgdAOEboDQij+9a+fj9iuGRQAAAABJRU5ErkJggg==\"","import {Box, Link} from '@material-ui/core'\nimport {\n CHAIN_AURORA,\n CHAIN_AVALANCHE,\n CHAIN_BOBA,\n CHAIN_HARMONY_0,\n CHAIN_METIS,\n CHAIN_OK,\n CHAIN_POLYGON,\n CHAIN_XDAI,\n} from '@w3u/chains'\nimport clsx from 'clsx'\nimport React from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport {getChainIcon} from '../../helpers/icon'\nimport {WithBoxProps} from '../style'\n\nconst Backed = ({className, ...other}: WithBoxProps): JSX.Element => {\n const {t} = useTranslation()\n const chains = [\n CHAIN_POLYGON,\n CHAIN_AVALANCHE,\n CHAIN_METIS,\n CHAIN_HARMONY_0,\n CHAIN_OK,\n CHAIN_XDAI,\n CHAIN_BOBA,\n CHAIN_AURORA,\n ]\n return (\n \n span': {\n marginRight: '3px',\n },\n '& > :not(style) + :not(style)': {\n ml: '2px',\n },\n }}\n >\n Backed by\n {chains.map((chain) => (\n chain\n ))}\n \n {/* Backed by Avalanche, Polychain, Harmony, xDAI, HECO and OEC */}\n Powered by BoringDAO🌀 Nash Equilibrium Lock(NEL) Technology\n a': {\n color: '#A1A8C7',\n },\n '& > a:last-child': {\n color: '#333A50',\n },\n '& > :not(style) + :not(style)': {\n ml: 2,\n },\n }}\n >\n \n {t('website')}\n \n \n {t('list_your_coin')}\n \n \n \n )\n}\n\nexport default Backed\n","import {AbstractConnector} from '@web3-react/abstract-connector'\n\nimport {bscConnector, injectedConnector, walletConnect, walletLink} from '../connectors'\n\nexport const METAMASK = 'METAMASK'\nexport const WALLET_CONNECT = 'WALLET_CONNECT'\nexport const WALLET_LINK = 'WALLET_LINK'\nexport const BSC_WALLEE = 'BSC_WALLET'\n\nexport interface WalletInfo {\n connector?: AbstractConnector\n name: string\n iconURL: string\n}\n\nexport const SUPPORTED_WALLETS: {[key: string]: WalletInfo} = {\n [METAMASK]: {\n connector: injectedConnector,\n name: 'MetaMask',\n iconURL: 'https://raw.githubusercontent.com/web3-utilities/assets/main/wallets/metamask.svg',\n },\n [BSC_WALLEE]: {\n connector: bscConnector,\n name: 'Binance Smart Chain',\n iconURL: 'https://raw.githubusercontent.com/web3-utilities/assets/main/wallets/bsc_wallet.png',\n },\n [WALLET_CONNECT]: {\n connector: walletConnect,\n name: 'WalletConnect',\n iconURL: 'https://raw.githubusercontent.com/web3-utilities/assets/main/wallets/wallet_connect.svg',\n },\n [WALLET_LINK]: {\n connector: walletLink,\n name: 'Coinbase Wallet',\n iconURL: 'https://raw.githubusercontent.com/web3-utilities/assets/main/wallets/coinbase.svg',\n },\n}\n","import {Box, createStyles, Dialog, DialogProps, makeStyles, Theme, Typography} from '@material-ui/core'\nimport {useWeb3React} from '@web3-react/core'\nimport React from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport {injectedConnector} from '../../../connectors'\nimport {METAMASK, SUPPORTED_WALLETS, WALLET_CONNECT, WALLET_LINK} from '../../../constants/wallet'\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n main: {\n '& .MuiPaper-root': {\n maxWidth: '460px !important',\n },\n },\n wallet: {\n display: 'flex',\n alignItems: 'center',\n border: '1px solid #e0e0e0',\n borderRadius: '8px',\n padding: '16px 20px',\n cursor: 'pointer',\n position: 'relative',\n '&.active': {\n background: '#fafafa',\n borderColor: theme.palette.primary.main,\n '& span': {\n display: 'block',\n top: '10px',\n left: '20px',\n width: '8px',\n height: '8px',\n marginRight: '10px',\n borderRadius: '8px',\n background: '#BCE369',\n },\n },\n '&:hover': {\n border: `1px solid ${theme.palette.primary.main}`,\n },\n '& img': {\n marginLeft: 'auto',\n },\n },\n grow: {\n flexGrow: 1,\n },\n address: {\n '& img': {\n marginLeft: '5px',\n cursor: 'pointer',\n },\n },\n })\n)\n\nconst WalletsModal = ({...props}: DialogProps): JSX.Element => {\n const {t} = useTranslation()\n const classes = useStyles()\n const {activate, connector} = useWeb3React()\n\n return (\n \n \n {t('unlock_wallet')}\n {Object.values([METAMASK, WALLET_CONNECT, WALLET_LINK]).map((value) => {\n const wallet = SUPPORTED_WALLETS[value]\n if (!wallet) {\n return\n }\n return (\n {\n if (props) {\n // @ts-ignore\n props.onClose()\n }\n return activate(injectedConnector, (e) => console.error(e), true)\n }}\n >\n \n {wallet.name}\n {wallet.name}\n \n )\n })}\n \n \n )\n}\n\nexport default WalletsModal\n","import {createStyles, makeStyles, Theme, useMediaQuery, useTheme} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {ellipseAddress} from '@w3u/dapp'\nimport {useWeb3React} from '@web3-react/core'\nimport {useModal} from 'mui-modal-provider'\nimport React from 'react'\n\nimport {displayBalance} from '../../helpers'\nimport {getChainIcon} from '../../helpers/icon'\nimport {useAccountBalance} from '../../hooks'\nimport WalletsModal from '../modal/WalletsModal'\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n bar: {\n cursor: 'pointer',\n background: '#F1F2F6',\n padding: '8px 12px',\n borderRadius: '6px',\n display: 'flex',\n alignItems: 'center',\n marginLeft: theme.spacing(2),\n color: '#333A50',\n '& img': {\n width: '16px',\n height: '16px',\n marginRight: '5px',\n },\n },\n wrong: {\n background: theme.palette.error.main,\n color: '#ffffff',\n },\n })\n)\n\nconst Account = (): JSX.Element => {\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('md'))\n const classes = useStyles()\n const {account, chainId} = useWeb3React()\n const balance = useAccountBalance(account)\n const {showModal} = useModal()\n\n return (\n <>\n {account && balance && (\n
showModal(WalletsModal)}>\n token\n {!isMobile && (\n <>\n {displayBalance(balance.toString())}\n  | \n \n )}\n {ellipseAddress(account)}\n
\n )}\n \n )\n}\nexport default Account\n","import {CHAIN_ETHER, CHAIN_ETHER_KOVAN, CHAIN_OPTIMISM, Chains} from '@w3u/chains'\n\n/**\n * Prompt the user to add a network to the Metamask, and if the wallet is on a different network, switch to the corresponding network\n * @returns {boolean} true if the setup succeeded, false otherwise\n */\nexport const setupNetwork = async (chainID: number): Promise => {\n // const provider = createMetaMaskProvider()\n const provider = (window as Window).ethereum\n\n if (provider) {\n try {\n if (chainID === CHAIN_ETHER || chainID === CHAIN_ETHER_KOVAN) {\n // @ts-ignore\n await provider.request({method: 'wallet_switchEthereumChain', params: [{chainId: `0x${chainID.toString(16)}`}]})\n } else {\n // @ts-ignore\n await provider.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: `0x${chainID.toString(16)}`,\n chainName: Chains[chainID].name,\n nativeCurrency: {\n name: Chains[chainID].symbol,\n symbol: chainID === 137 ? 'MATIC' : Chains[chainID].symbol,\n decimals: Chains[chainID].decimals,\n },\n rpcUrls: [chainID !== 137 ? Chains[chainID].rpc : 'https://polygon-rpc.com'],\n blockExplorerUrls: [Chains[chainID].explorer],\n },\n ],\n })\n }\n return true\n } catch (error) {\n console.error(error)\n if (chainID === CHAIN_OPTIMISM) {\n // @ts-ignore\n await provider.request({method: 'wallet_switchEthereumChain', params: [{chainId: `0x${chainID.toString(16)}`}]})\n }\n return false\n }\n } else {\n console.error(\"Can't setup the BSC network on metamask because window.ethereum is undefined\")\n return false\n }\n}\n","import {createStyles, InputBase, MenuItem, Select, useMediaQuery, useTheme, withStyles} from '@material-ui/core'\nimport i18n from 'i18next'\nimport React from 'react'\n\nexport const BoringInput = withStyles(() =>\n createStyles({\n root: {\n background: '#F1F2F6',\n borderRadius: '6px',\n color: '#333A50',\n fontSize: '14px',\n '& img': {\n marginRight: '5px',\n },\n '& .MuiSelect-selectMenu': {\n padding: '10px 24px 10px 12px',\n display: 'flex',\n alignItems: 'center',\n '&:focus': {\n background: 'none',\n },\n },\n },\n })\n)(InputBase)\n\nconst LanguageSelect = (): JSX.Element => {\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('md'))\n\n return (\n ) => {\n return i18n.changeLanguage(e.target.value as string)\n }}\n value={i18n.language ?? 'en-US'}\n input={}\n >\n {isMobile ? 'CN' : '简体中文'}\n {isMobile ? 'EN' : 'English'}\n \n )\n}\n\nexport default LanguageSelect\n","import {MenuItem, Select} from '@material-ui/core'\nimport {\n CHAIN_AAC,\n CHAIN_ARBITRUM,\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_AURORA,\n CHAIN_AURORA_TESTNET,\n CHAIN_AVALANCHE,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_BASE,\n CHAIN_BLAST,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_CONFLUX,\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_HECO_TESTNET,\n CHAIN_IOTEX,\n CHAIN_KCC,\n CHAIN_METIS,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n Chains,\n} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport React, {useEffect, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport {isProduction} from '../../helpers'\nimport {getChainIcon} from '../../helpers/icon'\nimport {setupNetwork} from '../../helpers/network'\nimport {BoringInput} from '../LanguageSelect'\n\nconst ChainSelect = (): JSX.Element => {\n const {t} = useTranslation()\n const {chainId} = useWeb3React()\n const [id, setID] = useState(chainId ?? 1)\n const chains = isProduction()\n ? [\n CHAIN_ETHER,\n CHAIN_BLAST,\n CHAIN_BSC,\n CHAIN_OK,\n CHAIN_AVALANCHE,\n // CHAIN_HARMONY_0,\n CHAIN_POLYGON,\n // CHAIN_HECO,\n CHAIN_XDAI,\n // CHAIN_FANTOM,\n CHAIN_ARBITRUM,\n CHAIN_OPTIMISM,\n CHAIN_BOBA,\n CHAIN_METIS,\n // CHAIN_AURORA,\n CHAIN_KCC,\n // CHAIN_IOTEX,\n // CHAIN_CONFLUX,\n CHAIN_BASE,\n CHAIN_AAC,\n ]\n : [\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_BLAST,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_OK_TESTNET,\n CHAIN_OK,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_AVALANCHE,\n // CHAIN_HARMONY_0,\n // CHAIN_HARMONY_0_TESTNET,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n // CHAIN_HECO,\n // CHAIN_HECO_TESTNET,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n // CHAIN_FANTOM,\n // CHAIN_FANTOM_TESTNET,\n CHAIN_ARBITRUM,\n CHAIN_ARBITRUM_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_BOBA,\n CHAIN_METIS,\n // CHAIN_AURORA,\n CHAIN_AURORA_TESTNET,\n CHAIN_KCC,\n // CHAIN_IOTEX,\n // CHAIN_CONFLUX,\n CHAIN_BASE,\n CHAIN_AAC,\n ]\n\n useEffect(() => setID(chainId ?? 1), [chainId])\n\n const change = async (e: React.ChangeEvent<{value: number}>) => {\n await setupNetwork(e.target.value as number)\n .then(() => {\n setID(e.target.value as number)\n // window.location.reload()\n })\n .catch((e) => console.error('Setup network: ', e))\n }\n\n return (\n }\n >\n {chains.map((chain) => (\n \n chain\n {Chains[chain]?.displayName.replace(/OKEXChain/i, 'OEC')}\n \n ))}\n \n )\n}\n\nexport default ChainSelect\n","import {Box, Button, Container, createStyles, makeStyles} from '@material-ui/core'\nimport {useWeb3React} from '@web3-react/core'\nimport {useModal} from 'mui-modal-provider'\nimport React from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport Account from '../Account'\nimport ChainSelect from '../ChainSelect'\nimport LanguageSelect from '../LanguageSelect'\nimport WalletsModal from '../modal/WalletsModal'\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n root: {\n position: 'fixed',\n bottom: '0',\n width: '100%',\n height: '80px',\n padding: '20px 0',\n background: '#fff',\n boxShadow: '0px 5px 43px 0px rgba(228, 232, 245, 0.92);',\n fontSize: '13px',\n display: 'none',\n [theme.breakpoints.down('sm')]: {\n display: 'block',\n height: '60px',\n padding: '10px 0',\n },\n },\n })\n)\n\nconst Bar = (): JSX.Element => {\n const classes = useStyles()\n const {t} = useTranslation()\n const {account} = useWeb3React()\n\n const {showModal} = useModal()\n\n return (\n
\n \n \n \n \n {account ? (\n \n ) : (\n \n )}\n \n \n \n \n
\n )\n}\n\nexport default Bar\n","import {Box, useTheme} from '@material-ui/core'\nimport CloseIcon from '@material-ui/icons/Close'\nimport React, {useContext} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {NavLink} from 'react-router-dom'\n\nimport {CtrContext} from '../../contexts/Controller'\nimport {isProduction} from '../../helpers'\nimport {getIcon} from '../../helpers/icon'\n\nconst Sidebar = ({isOpen, close}: {isOpen: any; close: any}) => {\n const {t} = useTranslation()\n const {version, setVersion} = useContext(CtrContext)\n const theme = useTheme()\n\n return (\n \n logo\n \n \n \n \n \n {t('two_way_bridge')}\n \n {isProduction() ? (\n \n {t('native_bridge')}\n \n ) : (\n \n {t('native_bridge')}\n \n )}\n \n {t('farm')}\n \n {version === 'V2' && (\n \n {t('data')}\n \n )}\n {version === 'V2' && (\n \n {t('history')}\n \n )}\n {!isProduction() && (\n \n {t('nft_bridge')}\n \n )}\n \n \n )\n}\n\nexport default Sidebar\n","export default __webpack_public_path__ + \"static/media/link.c58bf208.svg\";","import {\n Box,\n BoxProps,\n CircularProgress,\n createStyles,\n InputBase,\n makeStyles,\n styled,\n StyledComponentProps,\n Tooltip,\n tooltipClasses,\n TooltipProps,\n Typography,\n withStyles,\n} from '@material-ui/core'\nimport CheckCircle from '@material-ui/icons/CheckCircle'\nimport {Chains} from '@w3u/chains'\nimport clsx from 'clsx'\nimport React from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport LinkIcon from '../../assets/images/link.svg'\nimport {getChainIcon} from '../../helpers/icon'\n\nexport interface WithBoxProps extends BoxProps, StyledComponentProps {\n children?: React.ReactNode\n className?: string\n}\n\nexport interface InputWrapperProps extends WithBoxProps {\n status?: string\n}\n\nexport const bl = {\n vertical: 'bottom',\n horizontal: 'left',\n}\n\nconst styles = {\n root: {\n color: 'rgba(119, 124, 139, 1)',\n fontSize: '13px',\n marginBottom: '6px',\n display: 'flex',\n alignItems: 'center',\n },\n input: {\n display: 'flex',\n alignItems: 'center',\n border: '1px solid #D8E0ED',\n borderRadius: '6px',\n padding: '6px 15px',\n color: 'rgba(161, 168, 199, 1)',\n '& input': {\n fontSize: '16px',\n },\n '& img': {\n marginRight: '5px',\n },\n },\n}\n\nconst useStyles = makeStyles(() => createStyles(styles))\n\nexport const InputWrapper = ({status, children, className, ...other}: InputWrapperProps): JSX.Element => {\n return (\n \n {children}\n \n )\n}\n\nexport const Label = ({children, className, ...other}: WithBoxProps): JSX.Element => {\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport const Area = ({children, ...other}: WithBoxProps): JSX.Element => {\n return (\n \n {children}\n \n )\n}\n\nexport const ApproveContent = ({approved, doing}: {approved: boolean; doing: boolean}): JSX.Element => {\n const {t} = useTranslation()\n\n return (\n <>\n {approved ? (\n <>\n \n {t('approved')}\n \n ) : (\n <>\n {doing && }\n {t('approve')}\n \n )}\n \n )\n}\n\nexport const BorderInput = withStyles(() =>\n createStyles({\n root: {\n borderRadius: '6px',\n color: '#333A50',\n fontSize: '14px',\n border: '1px solid #D8E0ED',\n '& .MuiSelect-selectMenu': {\n display: 'flex',\n alignItems: 'center',\n padding: '15px 24px 15px 12px',\n '& img': {\n marginRight: '5px',\n },\n '&:focus': {\n background: 'none',\n },\n },\n },\n })\n)(InputBase)\n\nexport const WithoutStyleInput = withStyles(() =>\n createStyles({\n root: {\n borderRadius: '6px',\n color: '#333A50',\n fontSize: '12px !important',\n '& .MuiSelect-selectMenu': {\n display: 'flex',\n alignItems: 'center',\n '&:focus': {\n background: 'none',\n },\n '& img': {\n margin: '0 5px 0 0',\n },\n '& p': {\n // display: 'none',\n },\n },\n },\n })\n)(InputBase)\n\nexport const BGInput = withStyles(() =>\n createStyles({\n root: {\n background: '#F1F2F6',\n borderRadius: '6px',\n color: '#333A50',\n fontSize: '14px',\n marginLeft: '20px',\n '& .MuiSelect-selectMenu': {\n padding: '10px 24px 10px 12px',\n display: 'flex',\n alignItems: 'center',\n '&:focus': {\n background: 'none',\n },\n },\n },\n })\n)(InputBase)\n\nexport const BGThemeInput = withStyles((theme) =>\n createStyles({\n root: {\n background: theme.palette.primary.main,\n borderRadius: '6px',\n color: '#ffffff !important',\n fontSize: '14px',\n marginLeft: '20px',\n '& img': {\n marginRight: '10px',\n },\n '& .MuiSelect-selectMenu': {\n padding: '10px 24px 10px 12px',\n display: 'flex',\n alignItems: 'center',\n '&:focus': {\n background: 'none',\n },\n },\n '& .MuiSvgIcon-root': {\n color: '#ffffff',\n },\n },\n })\n)(BGInput)\n\nexport const BoringTooltip = styled(({className, ...props}: TooltipProps) => (\n \n))(({theme}) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: '#f5f5f9',\n color: 'rgba(0, 0, 0, 0.87)',\n maxWidth: 220,\n fontSize: theme.typography.pxToRem(12),\n border: '1px solid #dadde9',\n },\n}))\n\nexport const SelectTooltip = styled(({className, ...props}: TooltipProps) => (\n \n))(({theme}) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n boxShadow: '0px 0px 4px 0px #D7E0F1 !important',\n backgroundColor: '#ffffff',\n padding: '20px 10px 0 !important',\n color: 'rgba(0, 0, 0, 0.87)',\n maxWidth: 300,\n fontSize: theme.typography.pxToRem(12),\n border: '1px solid #dadde9',\n borderRadius: '10px',\n },\n [`.${tooltipClasses.tooltipArrow}`]: {\n color: '#fff !important',\n '&:before': {\n boxShadow: '0px 0px 4px 0px #D7E0F1 !important',\n },\n },\n}))\n\ninterface TokenWithName extends WithBoxProps {\n src: string\n width: number\n name?: string | undefined\n}\n\nexport const TokenWithName = ({className, src, width, name, ...other}: TokenWithName): JSX.Element => {\n return (\n \n token\n {name}\n \n )\n}\n\ninterface LPTokenProps extends TokenWithName {\n chainID: number\n targetChainID: number\n}\n\ninterface LPSingleTokenProps extends TokenWithName {\n chainID: number\n}\n\nexport const LPSingleToken = ({className, src, chainID, width, name, ...other}: LPSingleTokenProps): JSX.Element => {\n return (\n \n \n token\n token\n \n {name}\n \n )\n}\n\nexport const LPToken = ({className, src, chainID, targetChainID, width, name, ...other}: LPTokenProps): JSX.Element => {\n return (\n \n \n token\n token\n token\n \n {name}\n \n )\n}\n\nexport const Center = ({children, className, ...other}: WithBoxProps): JSX.Element => {\n const classes = useStyles()\n return (\n \n {children}\n \n )\n}\n\nexport const CenterY = ({children, className, ...other}: WithBoxProps): JSX.Element => {\n return (\n \n {children}\n \n )\n}\n\nexport const CenterX = ({children, className, ...other}: WithBoxProps): JSX.Element => {\n return (\n \n {children}\n \n )\n}\n\nexport const Block = ({children, className, ...other}: WithBoxProps): JSX.Element => {\n return (\n \n {children}\n \n )\n}\n\nexport const CrossNoticeEdge = ({\n chainID,\n amount,\n symbol,\n href,\n desc,\n}: {\n chainID: number\n amount: string\n symbol: string\n href: string\n desc: string\n}) => {\n return (\n \n \n chain\n \n {amount}\n
\n {symbol}\n \n link\n \n
\n \n {desc}\n \n \n \n )\n}\n","import {Box, Button, Container, createStyles, Hidden, makeStyles, Tab, Tabs, useTheme} from '@material-ui/core'\nimport {useWeb3React} from '@web3-react/core'\nimport {useModal} from 'mui-modal-provider'\nimport React, {useContext, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {NavLink} from 'react-router-dom'\n\nimport Menu from '../../assets/images/menu.png'\nimport {CtrContext} from '../../contexts/Controller'\nimport {isProduction} from '../../helpers'\nimport {getIcon} from '../../helpers/icon'\nimport Account from '../Account'\nimport ChainSelect from '../ChainSelect'\nimport LanguageSelect from '../LanguageSelect'\nimport Sidebar from '../Sidebar'\nimport WalletsModal from '../modal/WalletsModal'\nimport {CenterY} from '../style'\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n root: {\n height: '80px',\n padding: '20px 0',\n background: '#fff',\n boxShadow: '0px 5px 43px 0px rgba(228, 232, 245, 0.92);',\n fontSize: '13px',\n [theme.breakpoints.down('sm')]: {\n height: '60px',\n padding: '10px 0',\n },\n },\n nav: {\n '& a': {\n display: 'flex',\n alignItems: 'center',\n color: '#A1A8C7',\n padding: '0 10px',\n cursor: 'pointer',\n textDecoration: 'none',\n '&.active': {\n color: theme.palette.primary.main,\n },\n },\n },\n })\n)\n\nconst Header = (): JSX.Element => {\n const classes = useStyles()\n const {t} = useTranslation()\n const {account} = useWeb3React()\n\n const {showModal} = useModal()\n\n const theme = useTheme()\n const {version, setVersion} = useContext(CtrContext)\n const [open, setOpen] = useState(false)\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => setVersion(newValue === 1 ? 'V1' : 'V2')\n\n return (\n
\n setOpen(false)}\n />\n setOpen(false)} />\n \n \n \n setOpen(true)}>\n menu setOpen(true)} />\n \n \n logo\n \n \n \n \n \n \n {t('two_way_bridge')}\n \n {isProduction() ? (\n \n {t('native_bridge')}\n \n ) : (\n \n {t('native_bridge')}\n \n )}\n \n {t('farm')}\n \n {version === 'V2' && {t('data')}}\n {version === 'V2' && {t('history')}}\n {!isProduction() && (\n \n {t('nft_bridge')}\n \n )}\n \n \n \n \n {account ? (\n \n ) : (\n \n )}\n \n \n \n \n \n
\n )\n}\n\nexport default Header\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAA7ElEQVRYR+2YMQ6CQBREZyns1UsAZ9IzWBm9gth4B+9E2EOIvQXfUKhIolmLH/43Q70hs2/nw+wEOHuCM70IZVnOuq47AlgBWBjdwBXAOcuybSiK4iQiG6NC32SJyCHkeX4xTHbMsfUn2JklquHQrQHMjXr5NXRGBX6U5e87TMLKBGgJZcAgYRIeEaAl1C3BAK+ImAFeEe7j1a23Ox0DvLor+OPQRkzCJMy0pu0BEibh7wSmbuCfJV9d17eUwzKR1vpgHmPcJwk20sC3TdMs/1OwhQZeRKoY4y6J8ODWPEUD//vQpezK0hp38fIONP93x0LP8PwAAAAASUVORK5CYII=\"","import {Box, Button, CircularProgress, Typography} from '@material-ui/core'\nimport {CHAIN_AURORA, CHAIN_AVALANCHE, CHAIN_CONFLUX, CHAIN_IOTEX, Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {useHistory} from 'react-router-dom'\n\nimport {CenterY, TokenWithName} from '../../components/style'\nimport {CtrContext} from '../../contexts/Controller'\nimport {displayBalance} from '../../helpers'\nimport {getChainIcon, getIcon} from '../../helpers/icon'\nimport {useQuery, useTwowayOTokens, useTwowayTokenChainIDs} from '../../hooks'\nimport {useTwowayLockBalances} from '../../hooks/useTwowayLockBalances'\n\nconst OTokenSelector = ({name, currentName, setTokenName}: {name: string; currentName: string; setTokenName: any}) => {\n const query = useQuery()\n const history = useHistory()\n\n return (\n \n {\n query.set('token', name)\n history.push({search: query.toString()})\n setTokenName(name)\n }}\n >\n \n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst Data = () => {\n const {chainId} = useWeb3React()\n const query = useQuery()\n const initTokenName = query.get('token') ?? 'oUSDT'\n const [tokenName, setTokenName] = useState(initTokenName)\n const {t} = useTranslation()\n const {lockBalances, loading} = useTwowayLockBalances()\n const lockBalance = lockBalances.find((lock) => lock.tokenName === tokenName)\n const {version} = useContext(CtrContext)\n const ids = useTwowayTokenChainIDs(tokenName.replace('o', ''))\n\n const suffix = useCallback((chainID: number, name: string) => {\n if (chainID === CHAIN_AVALANCHE) {\n if (name.includes('USD')) {\n return '.e'\n }\n return ''\n } else {\n return ''\n }\n }, [])\n\n const tokens = useTwowayOTokens()\n\n useEffect(() => {\n if (version === 'V1') {\n window.location.href = '/twoway?tab=2'\n }\n }, [version])\n\n return (\n \n \n {t('liquidity')}\n \n \n {tokens.map((token) => (\n \n ))}\n\n {/**/}\n {/**/}\n {/**/}\n {/**/}\n {/**/}\n {/**/}\n \n {loading && }\n {!loading && (\n \n \n To\n Token\n \n Liquidity\n \n \n {lockBalance?.balances.map((lockBalance, i) => {\n return ids\n .filter((id) => ![CHAIN_AURORA, CHAIN_CONFLUX, CHAIN_IOTEX].includes(id))\n .includes(lockBalance.chainID) ? (\n \n \n \n \n \n \n \n \n {displayBalance(lockBalance?.balance)}\n \n \n ) : (\n <>\n )\n })}\n \n )}\n \n )\n}\n\nexport default Data\n","import {\n CHAIN_ARBITRUM,\n CHAIN_AVALANCHE,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_HARMONY_0,\n CHAIN_HECO,\n CHAIN_OK,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_XDAI,\n} from '@w3u/chains'\n\nimport {ALL_CHAINS} from './native_bridge'\n\nexport const PRODUCTION_CHEF_CHAINS = ALL_CHAINS\n\nexport const CHEF_CHAINS = [...ALL_CHAINS]\n\nexport const CHEF_ADDRESSES: {[chainID: number]: string} = {\n [CHAIN_ETHER_KOVAN]: '0x9F7Ccd966d0ea6858Ada8b383A44c2678B76c231',\n [CHAIN_BSC_TESTNET]: '0xD6cc9F28f869e535aB31E8607866a7EC0d7f4E85',\n // [CHAIN_ETHER]: '0x204c87CDA5DAAC87b2Fc562bFb5371a0B066229C',\n [CHAIN_ETHER]: '0xDBECe03cbB33160cA62107017fF45265343f5F10',\n [CHAIN_BSC]: '0xa056c100cEB4111899916Cf2d361152eE9147aDF',\n [CHAIN_OK]: '0xAd2F796199ff714AfE4f6716C50fF6dc431322C8',\n [CHAIN_POLYGON]: '0x9159b63bFD1566ab4c99Ee1Ff21575C86d2cEBB9',\n [CHAIN_XDAI]: '0x0Bf101ab5CC8C6Be93D9fb6742e1e4d724aFa414',\n [CHAIN_HECO]: '0x0Bf101ab5CC8C6Be93D9fb6742e1e4d724aFa414',\n [CHAIN_FANTOM]: '0x6D6D851bE4Ae838f32B0694a2561FDe3a18765e6',\n [CHAIN_AVALANCHE]: '0xAf9f062613dF193dCF4d4008ACC3bb9280c87323',\n [CHAIN_HARMONY_0]: '0x39c412fa81dAe9673A3E00e83B2F58a08DD8Fbc9',\n [CHAIN_ARBITRUM]: '0x216f332D17145871D1d5ff5fEB4b08513Ef7Cc21',\n [CHAIN_OPTIMISM]: '0x77B3aa18D89ea24e4AF7BB9BC221D49FD5534c19',\n [CHAIN_BOBA]: '0xB238a595e9797E009eFD5f938C9918181662066C',\n}\n\nexport const OLD_ETH_CHEF_ADDRESS = '0x204c87CDA5DAAC87b2Fc562bFb5371a0B066229C'\n","import {\n CHAIN_ARBITRUM,\n CHAIN_AVALANCHE,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_ETHER,\n CHAIN_FANTOM,\n CHAIN_HARMONY_0,\n CHAIN_HECO,\n CHAIN_OK,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_XDAI,\n} from '@w3u/chains'\nimport BigNumber from 'bignumber.js'\n\nimport {PoolInfo, TwowayChefInfo} from '../modal/chef'\nimport pool from '../pages/Pool'\n\nexport const getBlockTime = (chainID: number | undefined): number => {\n switch (chainID) {\n case CHAIN_ETHER:\n return 15\n case CHAIN_BSC:\n return 3\n case CHAIN_OK:\n return 4\n case CHAIN_POLYGON:\n return 2\n case CHAIN_XDAI:\n return 5\n case CHAIN_HECO:\n return 3\n case CHAIN_FANTOM:\n return 1\n case CHAIN_AVALANCHE:\n return 2\n case CHAIN_HARMONY_0:\n return 2\n case CHAIN_ARBITRUM:\n return 1\n case CHAIN_OPTIMISM:\n return 1\n case CHAIN_BOBA:\n return 1\n default:\n return 3\n }\n}\n\nexport const displayAPY = (poolInfo: PoolInfo, boringPrice: string): string => {\n const result = calcAPY(poolInfo, boringPrice)\n if (new BigNumber(result).eq(0)) {\n return 'Finished'\n }\n\n return result + '%'\n}\n\nexport const calcAPY = (poolInfo: PoolInfo, boringPrice: string): string => {\n const rate = new BigNumber(poolInfo.point)\n .div(poolInfo.totalPoint)\n .multipliedBy(poolInfo.boringPerBlock)\n .div(getBlockTime(poolInfo.token?.chainID))\n\n const lockValue = new BigNumber(poolInfo.totalStaked).multipliedBy(10 ** 18)\n const m = rate.multipliedBy(365 * 3600 * 24).multipliedBy(boringPrice)\n\n if (lockValue.eq(0)) return '0.00'\n\n const result = m.div(lockValue).multipliedBy(100)\n\n let fixed = 2\n if (result.gt(1000)) {\n fixed = 0\n }\n\n return result.toFixed(fixed)\n}\n\nexport const displayTwowayBoringAPY = (poolInfo: TwowayChefInfo, boringPrice: string): string => {\n const rate = new BigNumber(poolInfo.point).div(poolInfo.totalPoint).multipliedBy(poolInfo.rewardPerSecond[0])\n\n let lockValue = new BigNumber(poolInfo.totalStaked).multipliedBy(10 ** 18)\n const m = rate.multipliedBy(365 * 3600 * 24).multipliedBy(boringPrice)\n\n if (lockValue.eq(0)) return '0.00'\n\n if (poolInfo.token?.symbol === 'oETH') {\n lockValue = lockValue.multipliedBy(2800)\n }\n\n if (poolInfo.token?.symbol === 'oMETIS') {\n lockValue = lockValue.multipliedBy(150)\n }\n\n const result = m.div(lockValue).multipliedBy(100)\n\n let fixed = 2\n if (result.gt(1000)) {\n fixed = 0\n }\n\n return result.toFixed(fixed)\n}\n\nexport const displayTwowayOTokenAPY = (poolInfo: TwowayChefInfo): string => {\n if (poolInfo.token?.symbol === 'oIZI') {\n return '0.00'\n }\n const rate = new BigNumber(poolInfo.rewardPerSecond[1])\n\n const lockValue = new BigNumber(poolInfo.totalStaked)\n const m = rate.multipliedBy(365 * 3600 * 24)\n\n if (lockValue.eq(0)) return '0.00'\n\n const result = m.div(lockValue).multipliedBy(100)\n\n let fixed = 2\n if (result.gt(1000)) {\n fixed = 0\n }\n\n return result.toFixed(fixed)\n}\n","import {Box, Button, Dialog, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport PairV2ABI from '../../../abi/SwapPairV2.json'\nimport {getContract} from '../../../helpers/contract'\nimport {useInterval} from '../../../hooks/useInterval'\nimport {PoolInfo} from '../../../modal/chef'\n\nconst ConvertModal = ({poolInfo, open, close}: {poolInfo: PoolInfo; open: boolean; close: any}): JSX.Element => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const [shouldApprove, setShouldApprove] = useState(false)\n\n const oldPairAddress = '0x9312142EfbA17Ce795F95E17076B0800D14a3b19'\n const newPairAddress = '0xfd16ea1d1a5531b1829200f64e8c18f8e9364477'\n\n useInterval(\n async () => {\n if (chainId === CHAIN_ETHER && poolInfo.token?.chainID === CHAIN_ETHER) {\n try {\n const oldPair = getContract(library, oldPairAddress, PairV2ABI.abi, account)\n const allowance = await oldPair.allowance(account, newPairAddress)\n setShouldApprove(new BigNumber(allowance.toString()).eq(0))\n } catch (e) {\n console.error(e)\n }\n }\n },\n 5000,\n true\n )\n\n const approving = async () => {\n try {\n const oldPair = getContract(library, oldPairAddress, PairV2ABI.abi, account)\n const tx = await oldPair.approve(newPairAddress, ethers.constants.MaxUint256)\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n }\n\n const convert = async () => {\n try {\n const pairV2 = getContract(library, newPairAddress, PairV2ABI.abi, account)\n const tx = await pairV2.oldMint()\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n }\n\n return (\n \n \n \n Convert your old LP to new LP\n \n {shouldApprove && (\n \n )}\n {!shouldApprove && (\n \n )}\n \n \n )\n}\n\nexport default ConvertModal\n","import {Box, Button, CircularProgress, Dialog, Grid, InputBase, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ChefABI from '../../../abi/BoringChef.json'\nimport {CHEF_ADDRESSES, OLD_ETH_CHEF_ADDRESS} from '../../../constants/chef'\nimport {displayBalance, getMaxValue, verifyNumericInput} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getIcon} from '../../../helpers/icon'\nimport {PoolInfo} from '../../../modal/chef'\nimport Max from '../../Max'\nimport {InputWrapper, Label, LPSingleToken, TokenWithName} from '../../style'\n\nconst FarmClaimModal = ({poolInfo, open, close}: {poolInfo: PoolInfo; open: boolean; close: any}): JSX.Element => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const [amount, setAmount] = useState('')\n const [doing, setDoing] = useState(false)\n\n const claiming = async () => {\n try {\n setDoing(true)\n let chefAddress = CHEF_ADDRESSES[chainId ?? CHAIN_ETHER]\n if (poolInfo.isOld) {\n chefAddress = OLD_ETH_CHEF_ADDRESS\n }\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract.deposit(poolInfo.token?.pid, 0).catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n close()\n }\n\n return (\n \n \n \n {t('claim')}\n \n \n \n {displayBalance(poolInfo.reward)}\n \n \n \n \n \n \n \n \n {doing && }\n {t('claim')}\n \n \n \n \n \n \n )\n}\n\nexport default FarmClaimModal\n","import {Box} from '@material-ui/core'\nimport {useTranslation} from 'react-i18next'\n\nimport {WithBoxProps} from '../style'\n\nconst Max = ({...props}: WithBoxProps): JSX.Element => {\n const {t} = useTranslation()\n\n return (\n \n {t('max')}\n \n )\n}\n\nexport default Max\n","import {Box, Button, CircularProgress, Dialog, Grid, InputBase, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ChefABI from '../../../abi/BoringChef.json'\nimport {CHEF_ADDRESSES, OLD_ETH_CHEF_ADDRESS} from '../../../constants/chef'\nimport {displayBalance, getMaxValue, verifyNumericInput} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getIcon} from '../../../helpers/icon'\nimport {PoolInfo} from '../../../modal/chef'\nimport Max from '../../Max'\nimport {InputWrapper, Label, LPSingleToken} from '../../style'\n\nconst FarmStakeModal = ({\n poolInfo,\n open,\n close,\n renewFarm,\n}: {\n poolInfo: PoolInfo\n open: boolean\n close: any\n renewFarm: () => void\n}): JSX.Element => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const [amount, setAmount] = useState('')\n const [doing, setDoing] = useState(false)\n\n const staking = async () => {\n try {\n setDoing(true)\n let chefAddress = CHEF_ADDRESSES[chainId ?? CHAIN_ETHER]\n if (poolInfo.isOld) {\n chefAddress = OLD_ETH_CHEF_ADDRESS\n }\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract\n .deposit(poolInfo.token?.pid, ethers.utils.parseEther(amount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n await renewFarm()\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n close()\n }\n\n return (\n \n \n \n {t('stake')}\n \n \n \n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(poolInfo.balance, 18))} />\n \n \n \n \n \n \n \n \n {doing && }\n {t('stake')}\n \n \n \n \n \n \n )\n}\n\nexport default FarmStakeModal\n","import {Box, Button, CircularProgress, Dialog, Grid, InputBase, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ChefABI from '../../../abi/BoringChef.json'\nimport {CHEF_ADDRESSES, OLD_ETH_CHEF_ADDRESS} from '../../../constants/chef'\nimport {displayBalance, getMaxValue, verifyNumericInput} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getIcon} from '../../../helpers/icon'\nimport {PoolInfo} from '../../../modal/chef'\nimport Max from '../../Max'\nimport {InputWrapper, Label, LPSingleToken} from '../../style'\n\nconst FarmWithdrawModal = ({\n poolInfo,\n open,\n close,\n renewFarm,\n}: {\n poolInfo: PoolInfo\n open: boolean\n close: any\n renewFarm: () => void\n}): JSX.Element => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const [amount, setAmount] = useState('')\n const [doing, setDoing] = useState(false)\n\n const withdrawing = async () => {\n try {\n setDoing(true)\n let chefAddress = CHEF_ADDRESSES[chainId ?? CHAIN_ETHER]\n if (poolInfo.isOld) {\n chefAddress = OLD_ETH_CHEF_ADDRESS\n }\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract\n .withdraw(poolInfo.token?.pid, ethers.utils.parseEther(amount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n await renewFarm()\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n close()\n }\n\n return (\n \n \n \n {t('withdraw')}\n \n \n \n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(poolInfo.yourStaked, 18))} />\n \n \n \n \n \n \n \n \n {doing && }\n {t('withdraw')}\n \n \n \n \n \n \n )\n}\n\nexport default FarmWithdrawModal\n","import {Box, Button} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useModal} from 'mui-modal-provider'\nimport React, {useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ERC20ABI from '../../abi/ERC20.json'\nimport PairV2ABI from '../../abi/SwapPairV2.json'\nimport {CHEF_ADDRESSES} from '../../constants/chef'\nimport {displayBalance} from '../../helpers'\nimport {displayAPY} from '../../helpers/calc'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\nimport {setupNetwork} from '../../helpers/network'\nimport {useInterval} from '../../hooks/useInterval'\nimport {PoolInfo} from '../../modal/chef'\nimport ConvertModal from '../modal/ConvertModal'\nimport FarmClaimModal from '../modal/FarmClaimModal'\nimport FarmStakeModal from '../modal/FarmStakeModal'\nimport FarmWithdrawModal from '../modal/FarmWithdrawModal'\nimport WalletsModal from '../modal/WalletsModal'\nimport {ApproveContent, CenterY, LPSingleToken} from '../style'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst FarmItem = ({\n poolInfo,\n boringPrice,\n renewFarm,\n}: {\n poolInfo: PoolInfo\n boringPrice: string\n renewFarm: () => void\n}) => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const [approveDoing, setApproveDoing] = useState(false)\n const [openWithdrawModal, setOpenWithdrawModal] = useState(false)\n const [openStakeModal, setOpenStakeModal] = useState(false)\n const [openClaimModal, setOpenClaimModal] = useState(false)\n\n const {showModal} = useModal()\n\n const [shouldConvert, setShouldConvert] = useState(false)\n const [openConvert, setOpenConvert] = useState(false)\n\n const approved = useMemo(() => new BigNumber(poolInfo.balance).lt(poolInfo.allowance), [poolInfo])\n\n useInterval(\n async () => {\n if (chainId === CHAIN_ETHER && poolInfo.token?.chainID === CHAIN_ETHER) {\n const pairV2 = getContract(library, poolInfo.token?.pair, PairV2ABI.abi, account)\n const oldBalance = await pairV2.oldBalanceOf(account)\n setShouldConvert(new BigNumber(oldBalance.toString()).gt(0))\n }\n },\n 5000,\n true\n )\n\n const change = async (chainID: number) => {\n await setupNetwork(chainID)\n .then(() => window.location.reload())\n .catch((e) => console.error('Setup network: ', e))\n }\n\n const approving = async () => {\n try {\n setApproveDoing(true)\n const chefAddress = CHEF_ADDRESSES[chainId ?? CHAIN_ETHER]\n const tokenAddress = poolInfo.token?.pair\n console.debug(`Approve(token: ${tokenAddress}, spender: ${chefAddress})`)\n const tokenContract = getContract(library, tokenAddress, ERC20ABI.abi, account)\n const tx = await tokenContract\n .approve(chefAddress, ethers.constants.MaxUint256)\n .catch((e: any) => console.error(e))\n await tx.wait()\n await renewFarm()\n } catch (e) {\n console.error(e)\n }\n setApproveDoing(false)\n }\n\n return (\n \n setOpenConvert(false)} />\n setOpenStakeModal(false)}\n renewFarm={renewFarm}\n />\n setOpenWithdrawModal(false)}\n renewFarm={renewFarm}\n />\n setOpenClaimModal(false)} />\n \n \n \n {displayAPY(poolInfo, boringPrice)}\n {displayBalance(poolInfo.totalStaked)}\n {displayBalance(poolInfo.balance)}\n {displayBalance(poolInfo.yourStaked)}\n \n {new BigNumber(poolInfo.reward).gt(0) && chainId == poolInfo.token?.chainID ? (\n setOpenClaimModal(true)}\n sx={{\n cursor: 'pointer',\n '&:hover': {\n color: 'primary.main',\n },\n }}\n >\n {displayBalance(poolInfo.reward)}\n \n ) : (\n <>{displayBalance(poolInfo.reward)}\n )}\n \n \n {chainId === CHAIN_ETHER && shouldConvert ? (\n \n ) : (\n <>\n {chainId !== poolInfo.token?.chainID && account && (\n \n )}\n {account && approved && chainId === poolInfo.token?.chainID && (\n \n \n \n \n setOpenWithdrawModal(true)}\n disabled={new BigNumber(poolInfo.yourStaked).lte(0)}\n size={'small'}\n variant={'outlined'}\n >\n {t('withdraw')}\n \n \n )}\n {account && !approved && chainId === poolInfo.token?.chainID && (\n \n )}\n {!account && (\n \n )}\n \n )}\n \n \n )\n}\n\nexport default FarmItem\n","import {Box, Button} from '@material-ui/core'\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {useModal} from 'mui-modal-provider'\nimport React, {useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {NavLink} from 'react-router-dom'\n\nimport PairV2ABI from '../../abi/SwapPairV2.json'\nimport {displayAPY} from '../../helpers/calc'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\nimport {setupNetwork} from '../../helpers/network'\nimport {useInterval} from '../../hooks/useInterval'\nimport {PoolInfo} from '../../modal/chef'\nimport ConvertModal from '../modal/ConvertModal'\nimport WalletsModal from '../modal/WalletsModal'\nimport {LPSingleToken} from '../style'\n\nconst FarmItemMobile = ({poolInfo, boringPrice}: {poolInfo: PoolInfo; boringPrice: string}) => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const [shouldConvert, setShouldConvert] = useState(false)\n const [openConvert, setOpenConvert] = useState(false)\n\n const {showModal} = useModal()\n\n const change = async (chainID: number) => {\n await setupNetwork(chainID)\n .then(() => window.location.reload())\n .catch((e) => console.error('Setup network: ', e))\n }\n useInterval(\n async () => {\n if (chainId === CHAIN_ETHER && poolInfo.token?.chainID === CHAIN_ETHER) {\n const pairV2 = getContract(library, poolInfo.token?.pair, PairV2ABI.abi, account)\n const oldBalance = await pairV2.oldBalanceOf(account)\n setShouldConvert(new BigNumber(oldBalance.toString()).gt(0))\n }\n },\n 5000,\n true\n )\n\n return (\n \n setOpenConvert(false)} />\n \n \n \n \n {displayAPY(poolInfo, boringPrice)}\n APY\n \n \n {chainId !== poolInfo.token?.chainID && account && (\n change(poolInfo.token?.chainID ?? CHAIN_ETHER)}>\n \n \n )}\n {chainId === poolInfo.token?.chainID && (\n \n \n \n )}\n {!account && (\n showModal(WalletsModal)}\n size={'small'}\n variant={'contained'}\n color={'primary'}\n disableElevation\n >\n Unlock\n \n )}\n \n \n )\n}\n\nexport default FarmItemMobile\n","import {Box, Grid, Typography} from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport React, {useEffect, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport {displayBalance} from '../../helpers'\nimport {getIcon} from '../../helpers/icon'\nimport {PoolInfo} from '../../modal/chef'\nimport {Block, CenterY} from '../style'\n\nconst FarmMeta = ({pools, boringPrice}: {pools: PoolInfo[]; boringPrice: string}) => {\n const {t} = useTranslation()\n const [total, setTotal] = useState()\n const [your, setYour] = useState()\n const [reward, setReward] = useState()\n\n useEffect(() => {\n let total = new BigNumber(0)\n let your = new BigNumber(0)\n let rewards = new BigNumber(0)\n\n pools.map((pool) => {\n total = new BigNumber(pool.totalStaked).plus(total)\n your = new BigNumber(pool.yourStaked).plus(your)\n rewards = new BigNumber(pool.reward).plus(rewards)\n })\n\n setTotal(total.toString())\n setYour(your.toString())\n setReward(rewards.toString())\n }, [pools, boringPrice])\n\n return (\n \n \n \n \n \n \n \n \n \n {t('total_staked')}\n {displayBalance(total)}\n \n \n \n \n \n \n \n \n \n \n \n {t('your_staked')}\n {displayBalance(your)}\n \n \n \n \n \n \n \n \n dollar\n \n \n {t('rewards')}\n {displayBalance(reward)}\n \n \n \n \n \n \n )\n}\n\nexport default FarmMeta\n","import {Box, Button} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useModal} from 'mui-modal-provider'\nimport React, {useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ERC20ABI from '../../abi/ERC20.json'\nimport {OLD_ETH_CHEF_ADDRESS} from '../../constants/chef'\nimport {displayBalance} from '../../helpers'\nimport {displayAPY} from '../../helpers/calc'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\nimport {setupNetwork} from '../../helpers/network'\nimport {PoolInfo} from '../../modal/chef'\nimport FarmClaimModal from '../modal/FarmClaimModal'\nimport FarmStakeModal from '../modal/FarmStakeModal'\nimport FarmWithdrawModal from '../modal/FarmWithdrawModal'\nimport WalletsModal from '../modal/WalletsModal'\nimport {ApproveContent, CenterY, LPSingleToken} from '../style'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst OldFarmItem = ({\n poolInfo,\n boringPrice,\n renewFarm,\n}: {\n poolInfo: PoolInfo\n boringPrice: string\n renewFarm: () => void\n}) => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const [approveDoing, setApproveDoing] = useState(false)\n const [openWithdrawModal, setOpenWithdrawModal] = useState(false)\n const [openStakeModal, setOpenStakeModal] = useState(false)\n const [openClaimModal, setOpenClaimModal] = useState(false)\n\n const approved = useMemo(() => new BigNumber(poolInfo.balance).lt(poolInfo.allowance), [poolInfo])\n const {showModal} = useModal()\n\n const change = async (chainID: number) => {\n await setupNetwork(chainID)\n .then(() => window.location.reload())\n .catch((e) => console.error('Setup network: ', e))\n }\n\n const approving = async () => {\n try {\n setApproveDoing(true)\n const chefAddress = OLD_ETH_CHEF_ADDRESS\n const tokenAddress = poolInfo.token?.pair\n const tokenContract = getContract(library, tokenAddress, ERC20ABI.abi, account)\n const tx = await tokenContract\n .approve(chefAddress, ethers.constants.MaxUint256)\n .catch((e: any) => console.error(e))\n await tx.wait()\n await renewFarm()\n } catch (e) {\n console.error(e)\n }\n setApproveDoing(false)\n }\n\n return (\n \n setOpenStakeModal(false)}\n renewFarm={renewFarm}\n />\n setOpenWithdrawModal(false)}\n renewFarm={renewFarm}\n />\n setOpenClaimModal(false)} />\n \n \n \n {displayAPY(poolInfo, boringPrice)}\n {displayBalance(poolInfo.totalStaked)}\n {displayBalance(poolInfo.balance)}\n {displayBalance(poolInfo.yourStaked)}\n \n {new BigNumber(poolInfo.reward).gt(0) && chainId == poolInfo.token?.chainID ? (\n setOpenClaimModal(true)}\n sx={{\n cursor: 'pointer',\n '&:hover': {\n color: 'primary.main',\n },\n }}\n >\n {displayBalance(poolInfo.reward)}\n \n ) : (\n <>{displayBalance(poolInfo.reward)}\n )}\n \n \n {chainId !== poolInfo.token?.chainID && account && (\n \n )}\n {account && approved && chainId === poolInfo.token?.chainID && (\n \n \n \n \n setOpenWithdrawModal(true)}\n disabled={new BigNumber(poolInfo.yourStaked).lte(0)}\n size={'small'}\n variant={'outlined'}\n >\n {t('withdraw')}\n \n \n )}\n {account && !approved && chainId === poolInfo.token?.chainID && (\n \n )}\n {!account && (\n \n )}\n \n \n )\n}\n\nexport default OldFarmItem\n","import {Box, Button} from '@material-ui/core'\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {useModal} from 'mui-modal-provider'\nimport React from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {NavLink} from 'react-router-dom'\n\nimport {displayAPY} from '../../helpers/calc'\nimport {getIcon} from '../../helpers/icon'\nimport {setupNetwork} from '../../helpers/network'\nimport {PoolInfo} from '../../modal/chef'\nimport WalletsModal from '../modal/WalletsModal'\nimport {LPSingleToken} from '../style'\n\nconst OldFarmItemMobile = ({poolInfo, boringPrice}: {poolInfo: PoolInfo; boringPrice: string}) => {\n const {t} = useTranslation()\n const {chainId, account} = useWeb3React()\n\n const {showModal} = useModal()\n\n const change = async (chainID: number) => {\n await setupNetwork(chainID)\n .then(() => window.location.reload())\n .catch((e) => console.error('Setup network: ', e))\n }\n\n return (\n \n \n \n \n \n {displayAPY(poolInfo, boringPrice)}\n APY\n \n \n {chainId !== poolInfo.token?.chainID && account && (\n change(poolInfo.token?.chainID ?? CHAIN_ETHER)}>\n \n \n )}\n {chainId === poolInfo.token?.chainID && (\n \n \n \n )}\n {!account && (\n showModal(WalletsModal)}\n size={'small'}\n variant={'contained'}\n color={'primary'}\n disableElevation\n >\n Unlock\n \n )}\n \n \n )\n}\n\nexport default OldFarmItemMobile\n","import {CHAIN_ARBITRUM, CHAIN_BOBA, CHAIN_OPTIMISM} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {useMemo, useState} from 'react'\n\nimport ChefABI from '../abi/BoringChefSec.json'\nimport MulticallABI from '../abi/Multicall.json'\nimport SwapPairABI from '../abi/SwapPair.json'\nimport {CHEF_ADDRESSES, CHEF_CHAINS, PRODUCTION_CHEF_CHAINS} from '../constants/chef'\nimport {MULTICALL_NETWORKS} from '../constants/multicall'\nimport {getPegToken, isProduction, multicalls} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {getUrlProvider} from '../helpers/provider'\nimport {PoolInfo} from '../modal/chef'\nimport {PegToken} from '../modal/token'\nimport {ContractInputs} from './index'\nimport {useInterval} from './useInterval'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useGlobalChef = () => {\n const {library, account, chainId} = useWeb3React()\n const defaultAccount = account ?? '0xffffffffffffffffffffffffffffffffffffffff'\n const [result, setResult] = useState([])\n const chainIDs = useMemo(() => (isProduction() ? PRODUCTION_CHEF_CHAINS : CHEF_CHAINS), [])\n\n const fetchFarms = async () => {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const promises: Promise[] = []\n const tokens: (PegToken | undefined)[] = []\n chainIDs.map((chainID) => {\n const provider = chainId === chainID ? library : getUrlProvider(chainID)\n const token = getPegToken(chainID)\n tokens.push(token)\n const chefAddress = CHEF_ADDRESSES[chainID]\n\n const pairContract = getContract(provider, token?.pair, SwapPairABI.abi)\n const chefContract = getContract(provider, chefAddress, ChefABI.abi)\n const multicallContract = getContract(provider, MULTICALL_NETWORKS[chainID], MulticallABI)\n\n const calls: ContractInputs[] = []\n calls.push({contract: pairContract, method: 'balanceOf', args: [defaultAccount]})\n calls.push({contract: chefContract, method: 'userInfo', args: [token?.pid, defaultAccount]})\n calls.push({contract: pairContract, method: 'balanceOf', args: [chefAddress]})\n calls.push({contract: pairContract, method: 'allowance', args: [defaultAccount, chefAddress]})\n calls.push({contract: chefContract, method: 'poolInfo', args: [token?.pid]})\n calls.push({contract: chefContract, method: 'totalAllocPoint', args: []})\n if (chainID === CHAIN_ARBITRUM || chainID === CHAIN_OPTIMISM || chainID === CHAIN_BOBA) {\n calls.push({contract: chefContract, method: 'boringPerSecond', args: []})\n } else {\n calls.push({contract: chefContract, method: 'boringPerBlock', args: []})\n }\n calls.push({contract: pairContract, method: 'totalSupply', args: []})\n calls.push({contract: chefContract, method: 'pendingBoring', args: [token?.pid, defaultAccount]})\n promises.push(\n multicalls(multicallContract, calls).catch((e: any) => {\n console.error(`multicalls(${chainID}):`, e)\n return ['0', ['0'], '0', '0', ['0', '0'], '0', '0', '0', '0']\n })\n )\n })\n\n Promise.all(promises)\n .then((values) => {\n setResult(\n values.map((value, i) => ({\n token: tokens[i],\n totalStaked: value[2].toString(),\n yourStaked: value[1][0].toString(),\n point: value[4][1].toString(),\n totalPoint: value[5].toString(),\n boringPerBlock: value[6].toString(),\n balance: value[0].toString(),\n allowance: value[3].toString(),\n reward: value[8].toString(),\n }))\n )\n })\n .catch((e) => console.error('useGlobalChef:', e))\n } catch (e) {\n console.error('promise', e)\n }\n }\n\n useInterval(fetchFarms, 60000, true)\n\n return {result, fetchFarms}\n}\n","import {PegToken, TwowayOToken} from './token'\n\nexport interface TwowayChefInfo {\n token?: TwowayOToken | undefined\n totalStaked: string\n yourStaked: string\n point: string\n totalPoint: string\n rewardPerSecond: string[]\n balance: string\n allowance: string\n earned: string[]\n}\n\nexport interface PoolInfo {\n token?: PegToken | undefined\n totalStaked: string\n yourStaked: string\n point: string\n totalPoint: string\n boringPerBlock: string\n balance: string\n allowance: string\n reward: string\n isOld?: boolean\n}\n\nexport const EmptyPoolInfo = {\n totalStaked: '0',\n yourStaked: '0',\n point: '0',\n totalPoint: '0',\n boringPerBlock: '0',\n balance: '0',\n allowance: '0',\n reward: '0',\n}\n","import {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {useState} from 'react'\n\nimport ChefABI from '../abi/BoringChef.json'\nimport MulticallABI from '../abi/Multicall.json'\nimport SwapPairABI from '../abi/SwapPair.json'\nimport {OLD_ETH_CHEF_ADDRESS} from '../constants/chef'\nimport {MULTICALL_NETWORKS} from '../constants/multicall'\nimport {multicalls} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {EmptyPoolInfo, PoolInfo} from '../modal/chef'\nimport {ContractInputs} from './index'\nimport {useInterval} from './useInterval'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useOldETHUSDTChef = () => {\n const {library, account, chainId} = useWeb3React()\n const defaultAccount = account ?? '0xffffffffffffffffffffffffffffffffffffffff'\n const [result, setResult] = useState(EmptyPoolInfo)\n\n const fetchOldFarms = async () => {\n try {\n if (chainId !== CHAIN_ETHER) return\n const pid = 14\n const pairAddress = '0x9312142EfbA17Ce795F95E17076B0800D14a3b19'\n const chefAddress = OLD_ETH_CHEF_ADDRESS\n\n const pairContract = getContract(library, pairAddress, SwapPairABI.abi)\n const chefContract = getContract(library, chefAddress, ChefABI.abi)\n const multicallContract = getContract(library, MULTICALL_NETWORKS[chainId], MulticallABI)\n\n const calls: ContractInputs[] = []\n calls.push({contract: pairContract, method: 'balanceOf', args: [defaultAccount]})\n calls.push({contract: chefContract, method: 'userInfo', args: [pid, defaultAccount]})\n calls.push({contract: pairContract, method: 'balanceOf', args: [chefAddress]})\n calls.push({contract: pairContract, method: 'allowance', args: [defaultAccount, chefAddress]})\n calls.push({contract: chefContract, method: 'poolInfo', args: [pid]})\n calls.push({contract: chefContract, method: 'totalAllocPoint', args: []})\n calls.push({contract: chefContract, method: 'boringPerBlock', args: []})\n calls.push({contract: pairContract, method: 'totalSupply', args: []})\n calls.push({contract: chefContract, method: 'pendingBoring', args: [pid, defaultAccount]})\n const value = await multicalls(multicallContract, calls).catch((e: any) => {\n console.error(\"multicalls('old'):\", e)\n return ['0', ['0'], '0', '0', ['0', '0'], '0', '0', '0', '0']\n })\n\n setResult({\n token: {\n address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n chainID: CHAIN_ETHER,\n symbol: 'USDT',\n decimals: 6,\n pair: '0x9312142EfbA17Ce795F95E17076B0800D14a3b19',\n pid: 14,\n isOld: true,\n },\n isOld: true,\n totalStaked: value[2] ? value[2].toString() : '0',\n yourStaked: value[1] ? value[1][0].toString() : '0',\n point: value[4] ? value[4][1].toString() : '0',\n totalPoint: value[5] ? value[5].toString() : '0',\n boringPerBlock: value[6] ? value[6].toString() : '0',\n balance: value[0] ? value[0].toString() : '0',\n allowance: value[3] ? value[3].toString() : '0',\n reward: value[8] ? value[8].toString() : '0',\n })\n } catch (e) {\n console.error('promise', e)\n }\n }\n\n useInterval(fetchOldFarms, 60000, true)\n\n return {result, fetchOldFarms}\n}\n","import {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {ethers} from 'ethers'\nimport {useState} from 'react'\n\nimport OracleABI from '../abi/Oracle.json'\nimport {getUrlProvider} from '../helpers/provider'\nimport {useContractWithProvider} from './contract'\nimport {useInterval} from './useInterval'\n\nexport const usePrice = (tokenName: string): string => {\n const {library, chainId} = useWeb3React()\n const [price, setPrice] = useState('0')\n\n const provider = getUrlProvider(CHAIN_ETHER)\n const oracleContract = useContractWithProvider(\n chainId === CHAIN_ETHER ? library : provider,\n '0xADee8b009d8e4c3D95bf415c7EEF53d8F9147716',\n OracleABI.abi\n )\n\n useInterval(\n async () => {\n try {\n const result = await oracleContract?.getPrice(ethers.utils.formatBytes32String(tokenName))\n setPrice(result.toString())\n console.debug('Get price', result.toString())\n } catch (e) {\n console.error(`Current chain id: ${chainId}, tokenName: ${tokenName}`, e)\n setPrice(String(10 ** 17))\n }\n },\n 20000,\n true\n )\n\n return price\n}\n","import {Box, CircularProgress, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport React from 'react'\nimport {isMobile} from 'react-device-detect'\nimport {useTranslation} from 'react-i18next'\n\nimport FarmItem from '../../components/FarmItem'\nimport FarmItemMobile from '../../components/FarmItemMobile'\nimport FarmMeta from '../../components/FarmMeta'\nimport OldFarmItem from '../../components/OldFarmItem'\nimport OldFarmItemMobile from '../../components/OldFarmItemMobile'\nimport {Block, CenterY} from '../../components/style'\nimport {useGlobalChef} from '../../hooks/useGlobelChef'\nimport {useOldETHUSDTChef} from '../../hooks/useOldETHUSDTChef'\nimport {usePrice} from '../../hooks/usePrice'\n\nconst Farm = (): JSX.Element => {\n const {t} = useTranslation()\n const {chainId} = useWeb3React()\n const {result: pools, fetchFarms} = useGlobalChef()\n const {result: oldPool, fetchOldFarms} = useOldETHUSDTChef()\n const boringPrice = usePrice('BORING')\n\n if (isMobile)\n return (\n \n Twoway LP\n \n {t('twoway_lp_farm_desc')}\n \n {pools.length > 0 ? (\n <>\n {chainId === CHAIN_ETHER && }\n {pools.map((pool) => (\n \n ))}\n \n ) : (\n \n \n \n )}\n \n )\n\n return (\n \n \n \n  \n Pool\n APR\n {t('total_staked')}\n {t('balance')}\n {t('your_staked')}\n {t('rewards')}\n \n \n {pools.length > 0 ? (\n <>\n Twoway LP\n \n {chainId === CHAIN_ETHER && (\n \n )}\n {pools.map((pool) => (\n \n ))}\n \n \n ) : (\n \n \n \n )}\n \n \n )\n}\n\nexport default Farm\n","import {Box, CircularProgress, Typography} from '@material-ui/core'\nimport {ellipseAddress} from '@w3u/dapp'\nimport moment from 'moment'\nimport {useContext, useEffect} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport {TokenWithName} from '../../components/style'\nimport {CtrContext} from '../../contexts/Controller'\nimport {getTwowayTokenSymbolByAddress} from '../../helpers'\nimport {getChainIcon, getIcon} from '../../helpers/icon'\nimport {useAccountRecord} from '../../hooks/useAccountRecord'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nconst History = () => {\n const {t} = useTranslation()\n const {records, recordsLoading} = useAccountRecord()\n const {version} = useContext(CtrContext)\n\n useEffect(() => {\n if (version === 'V1') {\n window.location.href = '/twoway?tab=2'\n }\n }, [version])\n\n return (\n \n \n {t('records')}\n \n {recordsLoading && }\n {!recordsLoading && (\n \n \n Name\n Token\n From Chain\n To Chain\n From\n To\n Amount\n Time\n \n {records &&\n records.map((record) => (\n \n {record.optName}\n \n \n \n \n \n \n \n \n \n {ellipseAddress(record?.from)}\n {ellipseAddress(record?.to)}\n \n {record.amount}\n \n \n {moment(record.timestamp * 1000).format('YYYY-MM-DD HH:mm:ss')}\n \n \n ))}\n \n )}\n \n )\n}\n\nexport default History\n","import {ApolloClient, InMemoryCache, gql} from '@apollo/client'\nimport {useWeb3React} from '@web3-react/core'\nimport {useState} from 'react'\n\nimport {useInterval} from './useInterval'\n\nexport const useAccountRecord = () => {\n const {account} = useWeb3React()\n\n // const APIURL = 'https://api.thegraph.com/subgraphs/name/burlin-star/twoway-v2-mumbai'\n const APIURL = 'https://api.thegraph.com/subgraphs/name/burlin-star/twoway-v2-polygon'\n\n const [records, setRecords] = useState([])\n const [recordsLoading, setLoading] = useState(true)\n\n const recordsQuery = `\n query {\n twowayV2Entities(\n where:{users_contains:[\"${account?.toLowerCase()}\"]}\n orderBy: timestamp orderDirection:desc) {\n id\n optName\n fromChainId\n fromToken\n from\n toChainId\n toToken\n to\n amount\n timestamp\n }\n }\n `\n\n const client = new ApolloClient({\n uri: APIURL,\n cache: new InMemoryCache(),\n })\n\n useInterval(\n () => {\n client\n .query({\n query: gql(recordsQuery),\n })\n .then((data) => {\n console.log('Subgraph data: ', data.data.twowayV2Entities)\n if (data.data && data.data.twowayV2Entities) {\n setRecords(data.data.twowayV2Entities)\n setLoading(false)\n }\n })\n .catch((err) => {\n console.log('Error fetching data: ', err)\n })\n },\n 10000,\n true\n )\n\n return {records, recordsLoading}\n}\n","import {Box} from '@material-ui/core'\nimport {useTranslation} from 'react-i18next'\n\nimport {WithBoxProps} from '../style'\n\nconst EnterAddress = ({...props}: WithBoxProps): JSX.Element => {\n const {t} = useTranslation()\n return (\n \n {t('current_address')}\n \n )\n}\n\nexport default EnterAddress\n","import {CHAIN_BSC_TESTNET, CHAIN_ETHER_KOVAN, CHAIN_OK, CHAIN_OK_TESTNET} from '@w3u/chains'\n\nexport const DEFAULT_NFT_ADDRESSES: {[chainID: number]: string[]} = {\n [CHAIN_ETHER_KOVAN]: ['0xe6EbBf44d11B5F897D9Dbcba4Aa91FE04e797426'],\n}\n\nexport const NFT_BRIDGE_ADDRESSES: {[chainID: number]: string} = {\n [CHAIN_ETHER_KOVAN]: '0x9915E20515EA5626F6eeA5C5F9bfCc1c60E01BF4',\n [CHAIN_BSC_TESTNET]: '0x7EEABE6A42720560CF8172532A33f9D003eB6355',\n [CHAIN_OK_TESTNET]: '0xC077FA849176a121CE8BF18feD5793149dC5f899',\n}\n\nexport const NFT_BRIDGE_SUPPORT_CHAIN: {[chainID: number]: number[]} = {\n [CHAIN_ETHER_KOVAN]: [CHAIN_BSC_TESTNET, CHAIN_OK_TESTNET],\n [CHAIN_BSC_TESTNET]: [CHAIN_ETHER_KOVAN, CHAIN_OK_TESTNET],\n [CHAIN_OK_TESTNET]: [CHAIN_ETHER_KOVAN, CHAIN_BSC_TESTNET],\n}\n","import {Box, Button, CircularProgress, Grid, InputBase, MenuItem, Select, Typography} from '@material-ui/core'\nimport {KeyboardBackspace, ZoomIn} from '@material-ui/icons'\nimport {CHAIN_ETHER, Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {NavLink} from 'react-router-dom'\n\nimport BridgeNFTABI from '../../abi/BridgeNFT.json'\nimport NFTBridgeABI from '../../abi/NFTBridgeUUPS.json'\nimport EnterAddress from '../../components/EnterAddress'\nimport {ApproveContent, Center, InputWrapper, Label, WithoutStyleInput} from '../../components/style'\nimport {NFT_BRIDGE_ADDRESSES, NFT_BRIDGE_SUPPORT_CHAIN} from '../../constants/nft'\nimport {getContract} from '../../helpers/contract'\nimport {getChainIcon} from '../../helpers/icon'\nimport {useDebounce, useQuery} from '../../hooks'\n\nconst NFT = (): JSX.Element => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n const chains = useMemo(() => NFT_BRIDGE_SUPPORT_CHAIN[chainId ?? CHAIN_ETHER], [chainId])\n const [target, setTarget] = useState(chains[0])\n const query = useQuery()\n const contractAddress = query.get('address')\n const tokenID = query.get('tokenID')\n\n const [to, setTo] = useState('')\n const debounceTo = useDebounce(to, 300)\n const [can, setCan] = useState(false)\n const [toStatus, setToStatus] = useState('')\n const [toNotice, setToNotice] = useState('')\n const [approved, setApproved] = useState(false)\n const [aprDoing, setAprDoing] = useState(false)\n const [doing, setDoing] = useState(false)\n\n const approving = async () => {\n if (!contractAddress) return\n try {\n setAprDoing(true)\n const contract = getContract(library, contractAddress, BridgeNFTABI, account)\n await contract?.approve(NFT_BRIDGE_ADDRESSES[chainId ?? CHAIN_ETHER], tokenID)\n } catch (e) {\n console.error(e)\n }\n setAprDoing(false)\n }\n\n useEffect(() => {\n const query = async () => {\n if (!contractAddress) return\n console.log(tokenID)\n const contract = getContract(library, contractAddress, BridgeNFTABI, account)\n const result = await contract?.getApproved(tokenID)\n console.log(result.toString())\n setApproved(result.toString() === NFT_BRIDGE_ADDRESSES[chainId ?? CHAIN_ETHER])\n }\n\n query().catch((e) => console.error(e))\n }, [library, chainId, tokenID, aprDoing])\n\n useEffect(() => {\n if (debounceTo === '') {\n setCan(false)\n setToStatus('')\n setToNotice('')\n return\n }\n if (!ethers.utils.isAddress(debounceTo)) {\n setCan(false)\n setToStatus('error')\n setToNotice(\n t('assigned_address_notice', {\n network_name: Chains[target].displayName,\n })\n )\n } else {\n setCan(true)\n setToStatus('')\n setToNotice('')\n }\n }, [debounceTo])\n\n const switchChain = (e: React.ChangeEvent<{value: number}>) => {\n setTarget(e.target.value)\n }\n\n const cross = async () => {\n try {\n setDoing(true)\n console.log(\n `token0: ${contractAddress}, contract: ${\n NFT_BRIDGE_ADDRESSES[chainId ?? CHAIN_ETHER]\n } chainID: ${target}, to: ${to}, tokenId: ${tokenID}`\n )\n const contract = getContract(library, NFT_BRIDGE_ADDRESSES[chainId ?? CHAIN_ETHER], NFTBridgeABI, account)\n await contract?.crossOut(contractAddress, target, to, tokenID)\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n nft\n \n \n \n \n \n \n \n \n Uniswap - 0.3%\n \n Contract address: {query.get('address')}\n Token ID: {query.get('tokenID')}\n Metadata frozen\n \n \n \n }\n >\n {chains?.map((chainID: number) => {\n return (\n \n chain\n {Chains[chainID].displayName}\n \n )\n })}\n \n \n \n \n ) => setTo(e.target.value)}\n />\n setTo(account || '')} />\n \n \n {toNotice}\n \n \n BoringDAO将基于NEL技术在目标链发行包裹 NFT,您可以随时将包裹 NFT跨回原链以赎回您的\n 原始NFT,大部分情况下,NFT将于5-10分钟抵达目标链。\n \n \n \n \n \n \n \n \n \n {doing && }\n {t('confirm')}\n \n \n \n \n \n \n \n )\n}\n\nexport default NFT\n","import {Box} from '@material-ui/core'\nimport React from 'react'\nimport {NavLink} from 'react-router-dom'\n\nimport {NFTMeta} from '../../modal/nft'\n\nexport const NFTItem = ({nft, width}: {nft: NFTMeta; width: number}): JSX.Element => {\n return (\n \n nft\n \n NFTName: Uniswap-v3\n \n \n Cross\n \n \n \n TokenID: {nft.tokenID}\n \n )\n}\n","import {Box} from '@material-ui/core'\nimport React, {ReactNode} from 'react'\n\nconst ToastContent = ({content, status}: {content: ReactNode; status: boolean}) => {\n return (\n \n {content}\n \n )\n}\n\nexport default ToastContent\n","import {Box, Button, Dialog, InputBase, Typography} from '@material-ui/core'\nimport {useWeb3React} from '@web3-react/core'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useCallback, useEffect, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {toast} from 'react-toastify'\n\nimport NFTABI from '../../../abi/BridgeNFT.json'\nimport {DEFAULT_NFT_ADDRESSES} from '../../../constants/nft'\nimport {multicalls} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {ContractInputs, useDebounce} from '../../../hooks'\nimport {useMulticallContract} from '../../../hooks/contract'\nimport {NFTMeta} from '../../../modal/nft'\nimport ToastContent from '../../ToastContent'\nimport {InputWrapper, Label} from '../../style'\n\nconst AddNFTModal = ({\n result,\n setResult,\n open,\n close,\n}: {\n result: NFTMeta[]\n setResult: any\n open: boolean\n close: any\n}): JSX.Element => {\n const {t} = useTranslation()\n const {library, account} = useWeb3React()\n\n const [address, setAddress] = useState('')\n const debounceAddress = useDebounce(address, 300)\n const [addressStatus, setAddressStatus] = useState('')\n const [addressNotice, setAddressNotice] = useState('')\n const [can, setCan] = useState(false)\n\n const multicallContract = useMulticallContract()\n\n useEffect(() => {\n if (debounceAddress !== '' && !ethers.utils.isAddress(debounceAddress)) {\n setCan(false)\n setAddressStatus('error')\n setAddressNotice(t('add_contract_notice'))\n } else {\n setCan(true)\n setAddressStatus('')\n setAddressNotice('')\n }\n }, [debounceAddress])\n\n const add = useCallback(async () => {\n try {\n console.log(address)\n if (!address || address === '') {\n return toast.info()\n }\n const contract = getContract(library, address, NFTABI, account)\n let number\n // await contract.safeMint(account, 2)\n try {\n number = await contract?.balanceOf(account)\n } catch (e) {\n console.error(e)\n return toast.info()\n }\n\n const indexCalls: ContractInputs[] = []\n if (Number(number.toString()) === 0) return toast.info()\n for (let i = 0; i < Number(number.toString()); i++) {\n indexCalls.push({contract: contract, method: 'tokenOfOwnerByIndex', args: [account, i]})\n }\n\n const ids = await multicalls(multicallContract, indexCalls).catch((e: any) => {\n console.error('multicalls 1:', e)\n return []\n })\n\n console.log(ids)\n const uriCalls: ContractInputs[] = []\n for (let i = 0; i < ids.length; i++) {\n console.log(ids[i]?.toString())\n uriCalls.push({contract: contract, method: 'tokenURI', args: [ids[i]?.toString()]})\n }\n\n const urls = await multicalls(multicallContract, uriCalls).catch((e: any) => {\n console.error('multicalls 2:', e)\n return []\n })\n\n console.log(urls)\n const promises = urls.map((url: any) =>\n fetch(url[0])\n .then((value) => {\n return value.json()\n })\n .then((result) => {\n return result\n })\n .catch((e) => {\n console.error(e)\n return 'https://media.nervous.net/rareghosts/RAREGHOSTS.gif'\n })\n )\n\n Promise.all(promises)\n .then((values) => {\n const r = values.map((value, i) => {\n return {\n address: address,\n tokenID: Number(ids[i]?.toString()),\n tokenUri: urls[i]?.toString() ?? '',\n img: value.image,\n }\n })\n setResult(result.concat(r))\n close()\n return toast.info()\n })\n .catch((e) => console.error(e))\n } catch (e) {\n console.error(e)\n }\n }, [address])\n\n return (\n \n \n \n {t('add_contract')}\n \n \n \n ) => {\n console.log(e.target.value)\n setAddress(e.target.value)\n }}\n />\n \n \n {addressNotice}\n \n \n \n \n \n \n )\n}\n\nexport default AddNFTModal\n","import {Box, CircularProgress, Grid} from '@material-ui/core'\nimport {Add} from '@material-ui/icons'\nimport React, {useEffect, useRef, useState} from 'react'\n\nimport {NFTItem} from '../../components/NFTItem'\nimport AddNFTModal from '../../components/modal/AddNFTModal'\nimport {Center} from '../../components/style'\nimport {useAccountDefaultNFT} from '../../hooks/useAccountDefaultNFT'\nimport {NFTMeta} from '../../modal/nft'\n\nconst NFTBridge = (): JSX.Element => {\n const ref = useRef(null)\n const [tried, allNFTs] = useAccountDefaultNFT()\n\n const [width, setWidth] = useState(0)\n const [openModal, setOpenModal] = useState(false)\n const [userResult, setUserResult] = useState([])\n\n useEffect(() => {\n setWidth(ref?.current?.offsetWidth ?? 0)\n }, [])\n\n return (\n \n setOpenModal(false)} />\n \n \n setOpenModal(true)}>\n \n 添加合约地址,展示NFT图像\n \n \n {!tried && (\n \n
\n \n
\n
\n )}\n {userResult.map((nft) => {\n console.log(nft)\n return (\n \n \n \n )\n })}\n {allNFTs.map((nft) => {\n return (\n \n \n \n )\n })}\n
\n \n )\n}\n\nexport default NFTBridge\n","import {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {useCallback, useEffect, useState} from 'react'\n\nimport NFTABI from '../abi/BridgeNFT.json'\nimport {DEFAULT_NFT_ADDRESSES, NFT_BRIDGE_ADDRESSES} from '../constants/nft'\nimport {multicalls} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {NFTMeta} from '../modal/nft'\nimport {useMulticallContract} from './contract'\nimport {ContractInputs} from './index'\n\nexport const useAccountDefaultNFT = (): [boolean, NFTMeta[]] => {\n const {library, chainId, account} = useWeb3React()\n const chainID = chainId ?? CHAIN_ETHER\n const [result, setResult] = useState([])\n const [tried, setTried] = useState(false)\n const multicallContract = useMulticallContract()\n\n const fetching = useCallback(async () => {\n if (!account) return\n // https://api.allorigins.win/raw?url=\n // fetch('https://api.allorigins.win/raw?url=https://api.nervous.net/prerelease/token/rareghosts/2')\n // .then((response) => response.json())\n // .then((json) => console.log(json))\n // .catch((e) => console.error(e))\n const addresses = [NFT_BRIDGE_ADDRESSES[chainID], ...(DEFAULT_NFT_ADDRESSES[chainID] ?? [])]\n console.log(addresses)\n\n const meta: NFTMeta[] = []\n for (let i = 0; i < addresses.length; i++) {\n const contract = getContract(library, addresses[i], NFTABI, account)\n const result = await contract?.balanceOf(account)\n console.log(result.toString())\n // await contract?.safeMint(account, 8)\n const calls: ContractInputs[] = []\n if (Number(result.toString()) === 0) continue\n for (let i = 0; i < Number(result.toString()); i++) {\n calls.push({contract: contract, method: 'tokenOfOwnerByIndex', args: [account, i]})\n }\n\n const ids = await multicalls(multicallContract, calls).catch((e: any) => {\n console.error('multicalls 1:', e)\n return []\n })\n\n const uriCalls: ContractInputs[] = []\n for (let i = 0; i < ids.length; i++) {\n uriCalls.push({contract: contract, method: 'tokenURI', args: [ids[i]?.toString()]})\n }\n\n const urls = await multicalls(multicallContract, uriCalls).catch((e: any) => {\n console.error('multicalls 2:', e)\n return []\n })\n\n const m = urls.map((url: any, j: number) => ({\n address: addresses[i],\n tokenID: Number(ids[j]?.toString()),\n tokenUri: url,\n img: '',\n }))\n\n meta.push(...m)\n }\n\n if (meta.length === 0) return\n\n const promises = meta.map((m: NFTMeta) =>\n fetch(m.tokenUri)\n .then((value) => {\n return value.json()\n })\n .then((result) => {\n return result\n })\n .catch((e) => {\n console.error(e)\n return 'https://media.nervous.net/rareghosts/RAREGHOSTS.gif'\n })\n )\n\n Promise.all(promises)\n .then((values) => {\n const r = values.map((value, i) => {\n meta[i].img = value.image\n return meta[i]\n })\n setResult(r)\n })\n .catch((e) => console.error(e))\n }, [])\n\n useEffect(() => {\n fetching()\n .then(() => setTried(true))\n .catch((e) => {\n console.error(e)\n setTried(true)\n })\n }, [account, library])\n\n return [tried, result]\n}\n","import {MenuItem, Select} from '@material-ui/core'\nimport {CHAIN_ETHER, Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport React, {useEffect, useState} from 'react'\n\nimport {getChainIcon} from '../../helpers/icon'\nimport {setupNetwork} from '../../helpers/network'\nimport {BoringInput} from '../LanguageSelect'\n\nconst ChainSwitcher = ({\n chainIDs,\n onChange,\n changeNetwork,\n selectCurrentChain,\n specificId,\n afterChange,\n}: {\n chainIDs: number[]\n onChange: (id: number) => void\n changeNetwork?: boolean\n selectCurrentChain?: boolean\n specificId?: number\n afterChange?: any\n}) => {\n const {chainId} = useWeb3React()\n const [id, setID] = useState(selectCurrentChain ? chainId ?? CHAIN_ETHER : chainIDs[0])\n\n useEffect(() => {\n if (!selectCurrentChain) {\n if (specificId) {\n setID(specificId)\n } else {\n setID(chainIDs[0])\n }\n }\n }, [chainIDs])\n\n useEffect(() => onChange(id), [id])\n\n const change = async (e: React.ChangeEvent<{value: number}>) => {\n // if (afterChange) afterChange(e.target.value as number)\n if (!changeNetwork) return setID(e.target.value as number)\n await setupNetwork(e.target.value as number)\n .then(() => {\n setID(e.target.value as number)\n window.location.reload()\n })\n .catch((e) => console.error('Setup network: ', e))\n }\n\n return (\n }\n >\n {chainIDs.map((chain) => (\n \n chain\n {Chains[chain]?.displayName?.replace(/OKEXChain/i, 'OEC')}\n \n ))}\n \n )\n}\n\nexport default ChainSwitcher\n","export default __webpack_public_path__ + \"static/media/arrow.7c5322ad.svg\";","export default __webpack_public_path__ + \"static/media/right.dc041336.svg\";","export default __webpack_public_path__ + \"static/media/time.4bbb1feb.svg\";","export default __webpack_public_path__ + \"static/media/wrong.5908f094.svg\";","import {Box} from '@material-ui/core'\nimport {CHAIN_BSC, CHAIN_POLYGON, Chains} from '@w3u/chains'\nimport React, {useState} from 'react'\n\nimport Arrow from '../../../assets/images/arrow.svg'\nimport Right from '../../../assets/images/right.svg'\nimport Time from '../../../assets/images/time.svg'\nimport Wrong from '../../../assets/images/wrong.svg'\nimport {getScanTxLink} from '../../../helpers'\nimport {useInterval} from '../../../hooks/useInterval'\nimport {CenterX, CrossNoticeEdge} from '../../style'\n\nconst NativeBridgeNotice = ({\n fromID,\n toID,\n txHash,\n amount,\n symbol,\n receivedAmount,\n}: {\n fromID: number\n toID: number\n txHash: string\n amount: string\n symbol: string\n receivedAmount: string\n}) => {\n const [status, setStatus] = useState(0)\n const [secondHash, setSecondHash] = useState('')\n\n useInterval(\n () => {\n fetch(`https://oportal.boringdao-api.com/native/api/v1/steps?tx_id=${txHash}`)\n .then((res) => res.json())\n .then((data) => {\n console.log(data)\n if (data.total_steps !== 0 && data.events.length === data.total_steps) {\n setStatus(1)\n setSecondHash(data.events[1].transaction)\n }\n })\n .catch((e) => console.error(e))\n },\n 3000,\n true\n )\n\n return (\n \n \n \n {status === 0 && time}\n {status === 1 && time}\n {status === 2 && time}\n arrow\n \n \n \n )\n}\n\nexport default NativeBridgeNotice\n","import {useCallback, useEffect, useState} from 'react'\n\nimport NativeBridgeABI from '../abi/NBridge.json'\nimport {NATIVE_BRIDGE_ADDRESSES} from '../constants/native_bridge'\nimport {NativeBridgeToken} from '../modal/token'\nimport {useContract} from './contract'\n\nexport const useNativeBridgeMinCrossAmount = (\n chainID: number,\n targetChainID: number,\n token: NativeBridgeToken | undefined\n): string => {\n const [amount, setAmount] = useState('0')\n const nativeBridgeAddress = NATIVE_BRIDGE_ADDRESSES[chainID]\n const nativeBridgeContract = useContract(nativeBridgeAddress, NativeBridgeABI.abi)\n const originAddress = useNativeBridgeOriginTokenAddress(chainID, targetChainID, token)\n\n const fetch = useCallback(async () => {\n if (!originAddress) return\n const result = await nativeBridgeContract?.minCrossAmount(originAddress, targetChainID)\n setAmount(result.toString())\n }, [chainID, targetChainID, token, originAddress])\n\n useEffect(() => {\n fetch().catch((e) => console.error(e))\n }, [chainID, targetChainID, token, originAddress])\n\n return amount\n}\n\nexport const useNativeBridgeMinCrossAmountV2 = (\n chainID: number,\n targetChainID: number,\n token: NativeBridgeToken | undefined\n): string => {\n const [amount, setAmount] = useState('0')\n const nativeBridgeAddress = NATIVE_BRIDGE_ADDRESSES[chainID]\n const nativeBridgeContract = useContract(nativeBridgeAddress, NativeBridgeABI.abi)\n\n const fetch = useCallback(async () => {\n const result = await nativeBridgeContract?.fixFees(token?.address, targetChainID)\n setAmount(result.toString())\n }, [chainID, targetChainID, token])\n\n useEffect(() => {\n fetch().catch((e) => console.error(e))\n }, [chainID, targetChainID, token])\n\n return amount\n}\n\nexport const useNativeBridgeOriginTokenAddress = (\n chainID: number,\n targetChainID: number,\n token: NativeBridgeToken | undefined\n): string => {\n const [address, setAddress] = useState('')\n const nativeBridgeAddress = NATIVE_BRIDGE_ADDRESSES[chainID]\n const nativeBridgeContract = useContract(nativeBridgeAddress, NativeBridgeABI.abi)\n\n const getOriginTokenAddress = useCallback(async () => {\n const result = await nativeBridgeContract?.supportedTokens(chainID, token?.address)\n setAddress(result.mirrorAddress)\n }, [chainID, token])\n\n useEffect(() => {\n getOriginTokenAddress().catch((e) => console.error(e))\n }, [chainID, targetChainID, token])\n\n return address\n}\n","import {useWeb3React} from '@web3-react/core'\nimport {ethers} from 'ethers'\nimport {useMemo} from 'react'\n\nimport ERC20ABI from '../abi/ERC20.json'\nimport {isOriginToken} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {Token} from '../modal/token'\nimport {useMulticalls} from './contract'\nimport {ContractInputs} from './index'\n\nexport const useAllowance = (token: Token, spender: string, account: string | null | undefined): string => {\n const tokens = useMemo(() => [token], [token])\n const allowances = useAllowances(tokens, spender, account)\n\n return allowances[token?.address]\n}\n\nexport const useAllowances = (\n tokens: Token[],\n spender: string,\n account: string | null | undefined\n): Record => {\n const {library, chainId} = useWeb3React()\n const calls = useMemo((): ContractInputs[] | undefined => {\n try {\n if (!tokens) return []\n if (tokens.length === 0) return []\n if (tokens[0].address === '') return []\n return tokens.map((token) => {\n const contract = getContract(library, token.address, ERC20ABI.abi)\n return {contract: contract, method: 'allowance', args: [account, spender]}\n })\n } catch (e) {\n console.error(e)\n }\n }, [tokens])\n\n const results = useMulticalls(calls)\n\n return useMemo(() => {\n try {\n return results && results.length > 0\n ? tokens.reduce>((m, token, i) => {\n if (isOriginToken(chainId, token)) {\n m[token.address] = ethers.constants.MaxUint256.toString()\n } else {\n m[token.address] = results[i].toString()\n }\n return m\n }, {})\n : {}\n } catch (e) {\n console.error(e)\n return {}\n }\n }, [results])\n}\n\nexport const useSpecialAllowances = (\n tokens: Token[],\n spender: string,\n account: string | null | undefined\n): Record => {\n const {library} = useWeb3React()\n const calls = useMemo((): ContractInputs[] => {\n if (!tokens) return []\n return tokens.map((token) => {\n const tokenAddress = token.isWrapped ? token.originAddress : token.address\n const _spender = token.isWrapped ? token.address : spender\n const contract = getContract(library, tokenAddress, ERC20ABI.abi)\n return {contract: contract, method: 'allowance', args: [account, _spender]}\n })\n }, [tokens])\n\n const results = useMulticalls(calls)\n\n return useMemo(\n () =>\n results && results.length > 0\n ? tokens.reduce>((m, token, i) => {\n m[token.address] = results[i].toString()\n return m\n }, {})\n : {},\n [tokens, results]\n )\n}\n","import {useWeb3React} from '@web3-react/core'\nimport {useEffect} from 'react'\n\nimport {setupNetwork} from '../helpers/network'\nimport {useQuery} from './index'\n\nexport const useSwitchChain = () => {\n const query = useQuery()\n const {chainId} = useWeb3React()\n\n const sourceChainId = query.get('source_chain_id')\n\n useEffect(() => {\n const switching = async () => {\n await setupNetwork(Number(sourceChainId))\n .then(() => {\n // window.location.reload()\n })\n .catch((e) => console.error('Setup network: ', e))\n }\n\n if (Number(sourceChainId) === chainId) return\n\n switching().catch((e) => console.error(e))\n }, [sourceChainId])\n}\n","import {Contract} from '@ethersproject/contracts'\nimport {useWeb3React} from '@web3-react/core'\nimport {ethers} from 'ethers'\nimport {useMemo} from 'react'\n\nimport ERC20ABI from '../abi/ERC20.json'\nimport {isOriginToken} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {Token} from '../modal/token'\nimport {useMulticalls, useMulticallsWithMulticall} from './contract'\nimport {ContractInputs, useAccountBalance} from './index'\n\nexport const useTokenBalance = (token: Token, account?: string | null | undefined): string => {\n const tokens = useMemo(() => [token], [token])\n const balances = useTokenBalances(tokens, account)\n\n return balances[token?.address]\n}\n\nexport const useTokenBalances = (tokens: Token[], account?: string | null | undefined): Record => {\n const {library, chainId} = useWeb3React()\n const originBalance = useAccountBalance(account)\n\n const calls = useMemo((): ContractInputs[] => {\n if (!tokens) return []\n if (tokens.length === 0) return []\n if (tokens[0].address === '') return []\n return tokens.map((token) => {\n try {\n const contract = getContract(library, token.address, ERC20ABI.abi)\n return {contract: contract, method: 'balanceOf', args: [account]}\n } catch (e) {\n console.error(e)\n return {contract: null, method: 'balanceOf', args: [account]}\n }\n })\n }, [tokens])\n\n const results = useMulticalls(calls)\n\n return useMemo(\n () =>\n results && results.length > 0 && tokens.length === results.length\n ? tokens.reduce>((m, token, i) => {\n if (isOriginToken(chainId, token)) {\n m[token.address] = originBalance\n } else {\n m[token.address] = results[i].toString()\n }\n return m\n }, {})\n : {},\n [results]\n )\n}\n\nexport const useTokenBalancesWithMulticallContract = (\n multicall: Contract | null,\n tokens: Token[],\n account?: string | null | undefined\n): Record => {\n const {library} = useWeb3React()\n\n const calls = useMemo((): ContractInputs[] => {\n if (!tokens) return []\n return tokens.map((token) => {\n try {\n const contract = getContract(library, token.address, ERC20ABI.abi)\n return {contract: contract, method: 'balanceOf', args: [account]}\n } catch (e) {\n console.error(e)\n return {contract: null, method: 'balanceOf', args: [account]}\n }\n })\n }, [tokens])\n\n const results = useMulticallsWithMulticall(multicall, calls)\n\n return useMemo(() => {\n try {\n return results && results.length > 0 && tokens.length === results.length\n ? tokens.reduce>((m, token, i) => {\n m[token.address] = results[i].toString()\n return m\n }, {})\n : {}\n } catch (e) {\n console.error(e)\n return {}\n }\n }, [results])\n}\n","import {\n Box,\n Button,\n Card,\n CircularProgress,\n Grid,\n InputBase,\n MenuItem,\n Select,\n Skeleton,\n Typography,\n} from '@material-ui/core'\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward'\nimport {CHAIN_AURORA, CHAIN_ETHER, CHAIN_METIS, Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useModal} from 'mui-modal-provider'\nimport React, {ChangeEvent, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {useHistory} from 'react-router-dom'\nimport {toast} from 'react-toastify'\n\nimport ERC20ABI from '../../abi/ERC20.json'\nimport NativeBridgeABI from '../../abi/NBridge.json'\nimport AddressInput from '../../components/AddressInput'\nimport Backed from '../../components/Backed'\nimport ChainPair from '../../components/ChainPair'\nimport ChainSwitcher from '../../components/ChainSwitcher'\nimport Max from '../../components/Max'\nimport ToastContent from '../../components/ToastContent'\nimport WalletsModal from '../../components/modal/WalletsModal'\nimport NativeBridgeNotice from '../../components/notice/NativeBridgeNotice'\nimport {\n ApproveContent,\n Area,\n Center,\n CenterY,\n InputWrapper,\n Label,\n TokenWithName,\n WithoutStyleInput,\n} from '../../components/style'\nimport {\n ALL_CHAINS,\n NATIVE_BRIDGE_ADDRESSES,\n NATIVE_TARGET_CHAINS,\n PRODUCTION_NATIVE_TARGET_CHAINS,\n} from '../../constants/native_bridge'\nimport {\n displayBalance,\n get2WayTokenFixed,\n getMaxValue,\n isOriginToken,\n isProduction,\n verifyNumericInput,\n} from '../../helpers'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\nimport {getUrlProvider} from '../../helpers/provider'\nimport {\n useCommonNativeBridgeTokens,\n useDebounce,\n useDefaultTargetChain,\n useDefaultTokenAddress,\n useQuery,\n} from '../../hooks'\nimport {useContract} from '../../hooks/contract'\nimport {useNativeBridgeMinCrossAmountV2, useNativeBridgeOriginTokenAddress} from '../../hooks/native_bridge'\nimport {useAllowances} from '../../hooks/useAllowances'\nimport {useSwitchChain} from '../../hooks/useSwitchChain'\nimport {useTokenBalances} from '../../hooks/useTokenBalances'\n\nconst NativeBridgeV2 = (): JSX.Element => {\n const query = useQuery()\n const history = useHistory()\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n useSwitchChain()\n\n const {showModal} = useModal()\n\n const chainID = chainId ?? CHAIN_ETHER\n const nativeBridgeAddress = NATIVE_BRIDGE_ADDRESSES[chainID]\n\n const fromChains = [...ALL_CHAINS, CHAIN_METIS]\n const targetChains = isProduction() ? PRODUCTION_NATIVE_TARGET_CHAINS[chainID] : NATIVE_TARGET_CHAINS[chainID]\n\n const initTargetChain = useDefaultTargetChain(targetChains)\n\n const [amount, setAmount] = useState('')\n const [doing, setDoing] = useState(false)\n const [aprDoing, setAprDoing] = useState(false)\n const [address, setAddress] = useState('')\n const debounceAddress = useDebounce(address, 300)\n\n const [result, setResult] = useState<[string, string]>()\n const [targetChainID, setTargetChainID] = useState(initTargetChain)\n const [amountStatus, setAmountStatus] = useState('')\n const [amountNotice, setAmountNotice] = useState('')\n\n const filterTokens = useCommonNativeBridgeTokens(chainID, targetChainID)\n const initTokenAddress = useDefaultTokenAddress(filterTokens)\n const [type, setType] = useState(initTokenAddress)\n\n const nativeBridgeContract = useContract(nativeBridgeAddress, NativeBridgeABI.abi)\n const provider = getUrlProvider(targetChainID)\n const targetNativeBridgeAddress = NATIVE_BRIDGE_ADDRESSES[targetChainID]\n const targetNativeBridgeContract = getContract(provider, targetNativeBridgeAddress, NativeBridgeABI.abi)\n\n const token = filterTokens.find((t) => t?.address === type)\n const balances = useTokenBalances(filterTokens, account)\n const allowances = useAllowances(filterTokens, nativeBridgeAddress, account)\n\n const approved = new BigNumber(allowances[type]).gt(balances[type])\n const originTokenAddress = useNativeBridgeOriginTokenAddress(chainID, targetChainID, token)\n const minCrossAmount = useNativeBridgeMinCrossAmountV2(chainID, targetChainID, token)\n\n const [openAddress, setOpenAddress] = useState(false)\n const [addressNotice, setAddressNotice] = useState('')\n const [addressStatus, setAddressStatus] = useState(false)\n\n const [loading, setLoading] = useState(false)\n\n const switchToken = (e: React.ChangeEvent<{value: string}>) => {\n setType(e.target.value)\n query.set('token', e.target.value as string)\n history.push({search: query.toString()})\n }\n\n const switchTarget = (id: number) => {\n setTargetChainID(id)\n query.set('target_chain_id', id.toString())\n history.push({search: query.toString()})\n }\n\n const getFixedCount = (symbol: string | undefined): number => {\n switch (symbol) {\n case 'oBTC':\n return 4\n case 'AAVE':\n return 3\n default:\n return 2\n }\n }\n\n const can = useMemo(\n () =>\n new BigNumber(amount).gt(0) &&\n (openAddress ? addressStatus : true) &&\n new BigNumber(amount).multipliedBy(10 ** (token?.decimals ?? 18)).lte(balances[type]),\n [amount]\n )\n\n useEffect(() => {\n const amountN = new BigNumber(amount).multipliedBy(10 ** (token?.decimals ?? 18))\n if (amountN.gt(balances[type])) {\n setAmountStatus('error')\n setAmountNotice(\n t('maximum_amount_notice', {\n maximum: displayBalance(balances[type], token?.decimals, getFixedCount(token?.symbol)),\n token_name: token?.symbol,\n })\n )\n } else if (amountN.lt(minCrossAmount)) {\n setAmountStatus('error')\n setAmountNotice(\n t('minimum_amount_notice', {\n minimum: displayBalance(minCrossAmount, token?.decimals, getFixedCount(token?.symbol)),\n token_name: token?.symbol,\n })\n )\n } else {\n setAmountStatus('')\n setAmountNotice('')\n }\n }, [amount, minCrossAmount])\n\n useEffect(() => setType(initTokenAddress), [initTokenAddress])\n\n useEffect(() => {\n setResult(['0', '0'])\n setLoading(true)\n if (new BigNumber(amount).gt(0)) {\n amount &&\n nativeBridgeContract\n ?.calculateFee(token?.address, targetChainID, ethers.utils.parseUnits(amount, token?.decimals ?? 18))\n .then((res: any[]) => {\n const fixedAmount = res[0].toString()\n const ratioAmount = res[1].toString()\n const remainAmount = res[2].toString()\n setResult([new BigNumber(fixedAmount).plus(ratioAmount).toString(), remainAmount])\n setLoading(false)\n })\n .catch((e: any) => {\n console.error(e)\n setLoading(false)\n })\n } else {\n setLoading(false)\n }\n }, [amount])\n\n const approving = async () => {\n try {\n setAprDoing(true)\n\n const tokenAddress = token?.isWrapped ? token?.originAddress : token?.address\n const spender = token?.isWrapped ? token?.address : nativeBridgeAddress\n console.log(`Approve(tokenAddress: ${tokenAddress}, spender: ${spender}, account: ${account})`)\n const contract = getContract(library, tokenAddress, ERC20ABI.abi, account)\n const tx = await contract.approve(spender, ethers.constants.MaxUint256).catch((e: any) => console.error(e))\n await tx.wait()\n setAprDoing(false)\n } catch (e) {\n console.error(e)\n }\n }\n\n const lock = async () => {\n const finalAddress = !openAddress ? account : address\n\n if (!ethers.utils.isAddress(finalAddress ?? ''))\n return toast.info()\n const amountBN = new BigNumber(amount)\n if (amountBN.lt(new BigNumber(minCrossAmount).div(10 ** (token?.decimals ?? 18)))) {\n toast.info()\n return\n }\n\n try {\n setDoing(true)\n console.info(\n `CrossOut(tokenAddress: ${token?.address}, toChainID: ${targetChainID}, amount: ${ethers.utils.parseUnits(\n amount,\n token?.decimals\n )}, to: ${finalAddress})`\n )\n try {\n let estimateArgs = {}\n if (isOriginToken(chainId, token)) {\n estimateArgs = {\n value: ethers.utils.parseEther(amount),\n }\n }\n\n const gas = await nativeBridgeContract?.estimateGas\n .crossOut(\n token?.address,\n targetChainID,\n finalAddress,\n ethers.utils.parseUnits(amount, token?.decimals),\n estimateArgs\n )\n .catch((e) => {\n console.error(e)\n })\n\n let args: any = {\n gasLimit: gas,\n }\n if (isOriginToken(chainId, token)) {\n args = {\n value: ethers.utils.parseEther(amount),\n gasLimit: gas,\n }\n }\n\n const tx = await nativeBridgeContract?.crossOut(\n token?.address,\n targetChainID,\n finalAddress,\n ethers.utils.parseUnits(amount, token?.decimals),\n args\n )\n await tx.wait()\n setAddress('')\n setAmount('')\n toast(\n \n )\n } catch (e) {\n console.error(e)\n }\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n }\n\n useEffect(() => {\n if (debounceAddress === '') return\n if (!ethers.utils.isAddress(debounceAddress)) {\n setAddressNotice(\n t('assigned_address_notice', {\n network_name: Chains[targetChainID].displayName,\n })\n )\n setAddressStatus(false)\n } else {\n setAddressStatus(true)\n setAddressNotice('')\n }\n }, [debounceAddress])\n\n return (\n \n \n \n \n \n From\n \n console.log(id)}\n selectCurrentChain={true}\n />\n \n\n \n \n Send\n \n {t('balance')}: {displayBalance(balances[type], token?.decimals, getFixedCount(token?.symbol))}\n \n \n \n }\n >\n {filterTokens?.map((token) => {\n return (\n \n token\n {token.symbol}\n \n )\n })}\n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(balances[type], token?.decimals, getFixedCount(token?.symbol)))}\n />\n \n \n \n {amountNotice}\n \n\n
\n \n
\n\n \n \n To\n \n \n setOpenAddress(!openAddress)}\n sx={{\n cursor: 'pointer',\n color: 'primary.main',\n }}\n >\n {openAddress ? '- ' : '+ '}\n {t('send_to')}\n \n \n\n {openAddress && (\n \n \n \n Address\n \n \n ) => setAddress(e.target.value)}\n />\n \n \n {addressNotice}\n \n )}\n\n \n \n {t('you_will_get')}\n \n \n \n \n {loading && }\n {!loading &&\n displayBalance(result && result[1].toString(), token?.decimals, getFixedCount(token?.symbol))}\n \n \n \n \n\n {account === undefined ? (\n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n {doing && }\n {t('confirm')}\n \n \n \n )}\n \n \n \n \n )\n}\n\nexport default NativeBridgeV2\n","import {Box, Button, CircularProgress, Grid, InputBase, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ChefABI from '../../abi/BoringChef.json'\nimport ERC20ABI from '../../abi/ERC20.json'\nimport Max from '../../components/Max'\nimport {ApproveContent, CenterY, InputWrapper, Label, LPSingleToken} from '../../components/style'\nimport {CHEF_ADDRESSES, OLD_ETH_CHEF_ADDRESS} from '../../constants/chef'\nimport {displayBalance, getMaxValue, verifyNumericInput} from '../../helpers'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\n// import {useGlobalChef} from '../../hooks/useGlobelChef'\nimport {useOldETHUSDTChef} from '../../hooks/useOldETHUSDTChef'\n\nconst OldPool = (): JSX.Element => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n const {result: pool} = useOldETHUSDTChef()\n const [amount, setAmount] = useState('')\n const [withdrawAmount, setWithdrawAmount] = useState('')\n const [doing, setDoing] = useState(false)\n\n const [approveDoing, setApproveDoing] = useState(false)\n const [withdrawDoing, setWithdrawDoing] = useState(false)\n const [claimDoing, setClaimDoing] = useState(false)\n\n const chefAddress = OLD_ETH_CHEF_ADDRESS\n\n const approving = async () => {\n try {\n setApproveDoing(true)\n const tokenAddress = pool?.token?.pair\n const tokenContract = getContract(library, tokenAddress, ERC20ABI.abi, account)\n const tx = await tokenContract\n .approve(chefAddress, ethers.constants.MaxUint256)\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setApproveDoing(false)\n }\n\n const staking = async () => {\n try {\n setDoing(true)\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract\n .deposit(pool?.token?.pid, ethers.utils.parseEther(amount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n setAmount('')\n close()\n }\n\n const withdrawing = async () => {\n try {\n setWithdrawDoing(true)\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract\n .withdraw(pool?.token?.pid, ethers.utils.parseEther(withdrawAmount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setWithdrawDoing(false)\n setWithdrawAmount('')\n close()\n }\n\n const claiming = async () => {\n try {\n setClaimDoing(true)\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract.deposit(pool?.token?.pid, 0).catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setClaimDoing(false)\n close()\n }\n\n const approved = useMemo(() => new BigNumber(pool?.balance ?? '0').lt(pool?.allowance ?? '0'), [pool])\n\n return (\n \n \n \n \n \n \n {displayBalance(pool?.totalStaked)}\n \n \n {t('total_staked')}(Old)\n \n \n \n \n \n {displayBalance(pool?.yourStaked)}\n \n \n {t('your_staked')}\n \n \n \n \n \n \n \n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(pool?.balance ?? '0'))} />\n \n \n \n \n \n \n \n \n {doing && }\n {t('stake')}\n \n \n \n \n \n\n \n \n \n ) => verifyNumericInput(e, setWithdrawAmount)}\n />\n setWithdrawAmount(getMaxValue(pool?.yourStaked ?? '0'))} />\n \n \n \n {withdrawDoing && }\n {t('withdraw')}\n \n \n \n\n \n {t('claimable_rewards')}\n \n token\n \n {displayBalance(pool?.reward)}\n \n \n \n \n {claimDoing && }\n {t('claim')}\n \n \n )\n}\n\nexport default OldPool\n","export default __webpack_public_path__ + \"static/media/not_support.82262122.png\";","export default __webpack_public_path__ + \"static/media/filter.830d742b.svg\";","import {\n CHAIN_ARBITRUM,\n CHAIN_AVALANCHE,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_BOBA,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_HECO_TESTNET,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_OPTIMISM,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n} from '@w3u/chains'\n\nexport const TWOWAY_ALL_MAINNET_CHAINS = [\n CHAIN_ETHER,\n CHAIN_BSC,\n CHAIN_OK,\n CHAIN_POLYGON,\n // CHAIN_HARMONY_0,\n CHAIN_XDAI,\n CHAIN_AVALANCHE,\n CHAIN_FANTOM,\n CHAIN_HECO,\n CHAIN_ARBITRUM,\n CHAIN_OPTIMISM,\n CHAIN_BOBA,\n]\n\nexport const TARGET_PEG_CHAINS: {[chainID: number]: number[]} = {\n [CHAIN_HARMONY_0_TESTNET]: [\n CHAIN_OK_TESTNET,\n CHAIN_BSC_TESTNET,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_ETHER_KOVAN,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_HECO_TESTNET,\n CHAIN_FANTOM_TESTNET,\n CHAIN_XDAI_TESTNET,\n ],\n [CHAIN_FANTOM_TESTNET]: [\n CHAIN_OK_TESTNET,\n CHAIN_BSC_TESTNET,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_ETHER_KOVAN,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_HECO_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_XDAI_TESTNET,\n ],\n [CHAIN_XDAI_TESTNET]: [\n CHAIN_OK_TESTNET,\n CHAIN_BSC_TESTNET,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_ETHER_KOVAN,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_HECO_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_FANTOM_TESTNET,\n ],\n [CHAIN_HECO_TESTNET]: [\n CHAIN_OK_TESTNET,\n CHAIN_BSC_TESTNET,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_ETHER_KOVAN,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_XDAI_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_FANTOM_TESTNET,\n ],\n [CHAIN_BSC_TESTNET]: [\n CHAIN_OK_TESTNET,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_ETHER_KOVAN,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_XDAI_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HECO_TESTNET,\n ],\n [CHAIN_POLYGON_MUMBAI]: [\n CHAIN_BSC_TESTNET,\n CHAIN_OK_TESTNET,\n CHAIN_ETHER_KOVAN,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_XDAI_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HECO_TESTNET,\n ],\n [CHAIN_OK_TESTNET]: [\n CHAIN_BSC_TESTNET,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_ETHER_KOVAN,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_XDAI_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HECO_TESTNET,\n ],\n [CHAIN_AVALANCHE_TESTNET]: [\n CHAIN_OK_TESTNET,\n CHAIN_BSC_TESTNET,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_ETHER_KOVAN,\n CHAIN_XDAI_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HECO_TESTNET,\n ],\n [CHAIN_ETHER_KOVAN]: [\n CHAIN_OK_TESTNET,\n CHAIN_BSC_TESTNET,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_XDAI_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HECO_TESTNET,\n ],\n [CHAIN_ETHER]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_ETHER),\n [CHAIN_OK]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_OK),\n [CHAIN_BSC]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_BSC),\n [CHAIN_POLYGON]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_POLYGON),\n [CHAIN_AVALANCHE]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_AVALANCHE),\n [CHAIN_HECO]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_HECO),\n // [CHAIN_HARMONY_0]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_HARMONY_0),\n [CHAIN_FANTOM]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_FANTOM),\n [CHAIN_XDAI]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_XDAI),\n [CHAIN_ARBITRUM]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_ARBITRUM),\n [CHAIN_OPTIMISM]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_OPTIMISM),\n [CHAIN_BOBA]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_BOBA),\n}\n\nexport const PRODUCTION_TARGET_PEG_CHAINS: {[chainID: number]: number[]} = {\n [CHAIN_ETHER]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_ETHER),\n [CHAIN_BSC]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_BSC),\n [CHAIN_OK]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_OK),\n [CHAIN_POLYGON]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_POLYGON),\n // [CHAIN_HARMONY_0]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_HARMONY_0),\n [CHAIN_XDAI]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_XDAI),\n [CHAIN_AVALANCHE]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_AVALANCHE),\n [CHAIN_FANTOM]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_FANTOM),\n [CHAIN_HECO]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_HECO),\n [CHAIN_ARBITRUM]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_ARBITRUM),\n [CHAIN_OPTIMISM]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_OPTIMISM),\n [CHAIN_BOBA]: TWOWAY_ALL_MAINNET_CHAINS.filter((chainID) => chainID !== CHAIN_BOBA),\n}\n\nexport const PRODUCTION_TARGET_CHAINS: {[chainID: number]: number[]} = {\n [CHAIN_ETHER]: [CHAIN_BSC, CHAIN_OK],\n [CHAIN_BSC]: [CHAIN_ETHER],\n [CHAIN_AVALANCHE]: [CHAIN_ETHER],\n [CHAIN_OK]: [CHAIN_ETHER],\n [CHAIN_HARMONY_0]: [CHAIN_ETHER],\n}\n\nexport const TARGET_CHAINS: {[chainID: number]: number[]} = {\n [CHAIN_ETHER]: [CHAIN_BSC, CHAIN_OK, CHAIN_AVALANCHE, CHAIN_HARMONY_0],\n [CHAIN_ETHER_KOVAN]: [\n CHAIN_BSC_TESTNET,\n CHAIN_OK_TESTNET,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HARMONY_0,\n ],\n [CHAIN_BSC]: [CHAIN_ETHER],\n [CHAIN_OK]: [CHAIN_ETHER],\n [CHAIN_BSC_TESTNET]: [CHAIN_ETHER_KOVAN],\n [CHAIN_OK_TESTNET]: [CHAIN_ETHER_KOVAN],\n [CHAIN_AVALANCHE_TESTNET]: [CHAIN_ETHER_KOVAN],\n [CHAIN_AVALANCHE]: [CHAIN_ETHER],\n [CHAIN_HARMONY_0_TESTNET]: [CHAIN_ETHER_KOVAN],\n [CHAIN_HARMONY_0]: [CHAIN_ETHER],\n}\n\n// token1 => token0\nexport const TOKEN_MAPPING: {[key: string]: string} = {\n '0xB18b2a2BF61D2a05A19A54dc113028f101E31b21': '0x3de3Add2B44bF4cDa453eA9deb812aa0582928Ee',\n '0xdE62E709BBa148eB78f3A9E4273420e4B6330c72': '0xB18b2a2BF61D2a05A19A54dc113028f101E31b21',\n '0xb78d5C8817bf0985932115B7700194ffCD79AfB3': '0xe5dB9ed82982943eFecAA439c82CCBb1b2AFC2A0',\n '0x9a40dB98775015EB2452754e905e22E087ad3842': '0xa9C744B12AB13Cd4cAC6f3cbbE33113d5DBB09Ee',\n '0x19783469f2485b702b89f98A64F2179877D0391E': '0xa9C744B12AB13Cd4cAC6f3cbbE33113d5DBB09Ee',\n '0xffEecbf8D7267757c2dc3d13D730E97E15BfdF7F': '0xBC19712FEB3a26080eBf6f2F7849b417FdD792CA',\n '0x26Ec036Be42907eA15a273833816539B26d2BE53': '0xa9C744B12AB13Cd4cAC6f3cbbE33113d5DBB09Ee',\n '0xD01a5051253007ae0b7123b50410E3B5A3f6cF95': '0x07C44B5Ac257C2255AA0933112c3b75A6BFf3Cb1',\n '0x11E4BED429b239a1A0C594ADEB71b99e8Fa1011A': '0xBC19712FEB3a26080eBf6f2F7849b417FdD792CA',\n '0x5cE01aa1528A6A0C8EDEcC4cEe909F0a24CF54de': '0xBC19712FEB3a26080eBf6f2F7849b417FdD792CA',\n '0x017Ff87AB312301aDE54f7cf9Cc5AEA28C9De024': '0xBC19712FEB3a26080eBf6f2F7849b417FdD792CA',\n '0x3de3Add2B44bF4cDa453eA9deb812aa0582928Ee': '0x13edDC17aE2257e4F06105822330E4a5DcED36e2',\n '0x2B21237BA30deF78EC551a10C99d656F90Eb10fC': '0x054f76beed60ab6dbeb23502178c52d6c5debe40',\n '0x0314fc7180dD2A4370A4039ccf11f2C1a4a9C33B': '0x07C44B5Ac257C2255AA0933112c3b75A6BFf3Cb1',\n}\n\nexport const MIN_AMOUNT: {[key: string]: number} = {\n FIN: 100,\n BORING: 1000,\n oBTC: 0.001,\n}\n","import {Box, CircularProgress, ClickAwayListener, useTheme} from '@material-ui/core'\nimport CheckIcon from '@material-ui/icons/Check'\nimport {Chains} from '@w3u/chains'\nimport BigNumber from 'bignumber.js'\nimport React, {useState} from 'react'\nimport {useHistory} from 'react-router-dom'\n\nimport FilterImg from '../../assets/images/filter.svg'\nimport {PRODUCTION_TARGET_PEG_CHAINS} from '../../constants'\nimport {displayBalance, getPegToken} from '../../helpers'\nimport {getChainIcon, getIcon} from '../../helpers/icon'\nimport {useQuery} from '../../hooks'\nimport {useGlobalLiquidity} from '../../hooks/useGlobalLiquidity'\nimport {SelectTooltip, TokenWithName} from '../style'\n\nconst Chart = () => {\n console.log('=>=>=>Chart=>=>=>')\n const query = useQuery()\n const history = useHistory()\n const theme = useTheme()\n const src = query.get('src')\n const dest = query.get('dest')\n const liquidities = useGlobalLiquidity()\n const chainIDs = Object.keys(PRODUCTION_TARGET_PEG_CHAINS)\n const [srcChainIDs, setSrcChainIDs] = useState(src ? src.split(',') : [])\n const [destChainIDs, setDestChainIDs] = useState(dest ? dest.split(',') : [])\n\n const finalSourceChainIDs = srcChainIDs.length === 0 ? chainIDs : srcChainIDs\n const finalDestChainIDs = destChainIDs.length === 0 ? chainIDs : destChainIDs\n\n const [sourceOpen, setSourceOpen] = React.useState(false)\n const [destOpen, setDestOpen] = React.useState(false)\n\n const handleSrcIDSelect = (id: string) => {\n let tmp: string[] = []\n if (srcChainIDs.includes(id)) {\n tmp = srcChainIDs.filter((sid) => sid !== id)\n } else {\n tmp = [...srcChainIDs, id]\n }\n const result = chainIDs.filter((id) => tmp.includes(id))\n setSrcChainIDs(result)\n query.set('src', result.join(','))\n history.push({search: query.toString()})\n }\n\n const handleDestIDSelect = (id: string) => {\n let tmp: string[] = []\n if (destChainIDs.includes(id)) {\n tmp = destChainIDs.filter((sid) => sid !== id)\n } else {\n tmp = [...destChainIDs, id]\n }\n const result = chainIDs.filter((id) => tmp.includes(id))\n setDestChainIDs(result)\n query.set('dest', result.join(','))\n history.push({search: query.toString()})\n }\n\n if (liquidities.length === 0) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n \n setSourceOpen(false)}>\n
\n setSourceOpen(false)}\n open={sourceOpen}\n title={chainIDs.map((chainID) => (\n handleSrcIDSelect(chainID)}\n className={srcChainIDs.includes(chainID) ? 'active' : ''}\n >\n chain\n \n {Chains[Number(chainID)].displayName}\n \n {srcChainIDs.includes(chainID) && }\n \n ))}\n >\n setSourceOpen(true)}>\n From\n filter\n \n \n
\n
\n
\n \n setDestOpen(false)}>\n
\n setDestOpen(false)}\n open={destOpen}\n title={chainIDs.map((chainID) => (\n handleDestIDSelect(chainID)}\n className={destChainIDs.includes(chainID) ? 'active' : ''}\n >\n chain\n \n {Chains[Number(chainID)].displayName}\n \n {destChainIDs.includes(chainID) && }\n \n ))}\n >\n setDestOpen(true)}>\n To\n filter\n \n \n
\n
\n
\n Token\n \n Liquidity\n \n
\n \n \n {finalSourceChainIDs.map((chainID) => {\n const cid = Number(chainID)\n const otherChainIDs = finalDestChainIDs.filter((id) => id != chainID)\n const chainIDs = Object.keys(PRODUCTION_TARGET_PEG_CHAINS)\n const targetChainIDs = chainIDs.filter((id) => id != chainID)\n {\n return otherChainIDs.map((innerChainID) => {\n const tid = Number(innerChainID)\n const sourceLiquidity = liquidities[cid]\n const targetToken = getPegToken(tid)\n const diff = 18 - (targetToken ? targetToken?.decimals : 18)\n const liquidity = liquidities[Number(innerChainID)]\n const index = targetChainIDs.indexOf(innerChainID)\n const reserve0 = liquidity[0][0].toString()\n const lock = sourceLiquidity[index + 1][0].toString()\n const l = new BigNumber(reserve0)\n .multipliedBy(10 ** diff)\n .plus(lock)\n .toString()\n\n return (\n \n \n \n chain\n \n {Chains[cid].displayName}\n \n \n \n \n \n chain\n \n {Chains[tid].displayName}\n \n \n \n \n \n \n \n {displayBalance(l, 18, 0)}\n \n \n )\n })\n }\n })}\n \n \n )\n}\n\nexport default Chart\n","import {useState} from 'react'\n\nimport MulticallABI from '../abi/Multicall.json'\nimport SwapPairABI from '../abi/SwapPair.json'\nimport {PRODUCTION_TARGET_PEG_CHAINS} from '../constants'\nimport {MULTICALL_NETWORKS} from '../constants/multicall'\nimport {getPegToken, multicalls} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {getUrlProvider} from '../helpers/provider'\nimport {ContractInputs} from './index'\nimport {useInterval} from './useInterval'\n\nexport const useGlobalLiquidity = () => {\n const [result, setResult] = useState([])\n\n useInterval(\n async () => {\n try {\n const chainIDs = Object.keys(PRODUCTION_TARGET_PEG_CHAINS)\n const promises: Promise[] = []\n chainIDs.map((chainID) => {\n const targetChainIDs = chainIDs.filter((id) => id != chainID)\n const cid = Number(chainID)\n const provider = getUrlProvider(cid)\n const token = getPegToken(cid)\n const pairContract = getContract(provider, token?.pair, SwapPairABI.abi)\n const multicallContract = getContract(provider, MULTICALL_NETWORKS[cid], MulticallABI)\n\n const calls: ContractInputs[] = []\n calls.push({contract: pairContract, method: 'reserve0', args: []})\n const targetCalls = targetChainIDs.map((id) => {\n return {contract: pairContract, method: 'reserve1s', args: [id]}\n })\n calls.push(...targetCalls)\n promises.push(\n multicalls(multicallContract, calls).catch((e: any) => {\n console.error('multicalls:', e)\n return ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0']\n })\n )\n })\n\n Promise.all(promises)\n .then((values) => {\n const r = values.reduce((acc, value, i) => ({...acc, [chainIDs[i]]: value}), {})\n setResult(r)\n })\n .catch((e) => console.error('useGlobalLiquidity:', e))\n } catch (e) {\n console.error(e)\n }\n },\n 20000,\n true\n )\n\n return result\n}\n","export interface Token {\n address: string\n symbol: string\n decimals: number\n isWrapped?: boolean\n originAddress?: string\n}\n\nexport const buildTokenWithAddress = (address: string): Token => {\n return {\n address: address,\n symbol: '',\n decimals: 0,\n }\n}\n\nexport interface NativeBridgeToken {\n address: string\n symbol: string\n decimals: number\n chainID: number\n isWrapped?: boolean\n originAddress?: string\n}\n\nexport interface PegToken {\n address: string\n symbol: string\n decimals: number\n chainID: number\n pair: string\n pid?: number\n isOld?: boolean\n}\n\nexport interface TwowayToken {\n address: string\n symbol: string\n displayName?: string\n decimals: number\n chainID: number\n}\n\nexport interface TwowayOToken extends TwowayToken {\n pid: number\n}\n\nexport const twowayToken2Token = (token: TwowayToken | undefined) => {\n if (!token) return EMPTY_TOKEN\n\n return {\n address: token.address,\n symbol: token.symbol,\n decimals: token.decimals,\n isWrapped: false,\n originAddress: '',\n }\n}\n\nexport const emptyPegToken = {\n address: '',\n symbol: '',\n decimals: 18,\n chainID: 1,\n pair: '',\n}\n\nexport interface PegTokenMeta {\n address: string\n pair: string\n}\n\nexport const EMPTY_TOKEN = {\n address: '',\n symbol: '',\n decimals: 18,\n}\n","import {Box, Grid, MenuItem, Select} from '@material-ui/core'\nimport {Chains} from '@w3u/chains'\nimport React from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport {getChainIcon, getImage} from '../../helpers/icon'\nimport {WithoutStyleInput} from '../style'\n\nconst ChainPair = ({\n sourceChainID,\n targetChainIDs,\n targetChainID,\n switchTargetChain,\n type,\n}: {\n sourceChainID: number\n targetChainIDs: number[]\n targetChainID: number\n switchTargetChain: any\n type?: string\n}) => {\n const sourceChain = Chains[sourceChainID]\n const firstTargetChain = Chains[targetChainIDs && targetChainIDs[0]]\n const {t} = useTranslation()\n\n return (\n \n \n \n \n {t('source_chain')}\n \n chain\n {sourceChain.displayName}\n \n \n \n \n \n {type === 'to' ? (\n arrow\n ) : (\n add\n )}\n \n \n \n \n {t('destination_chain')}\n {targetChainIDs?.length === 1 ? (\n \n chain\n {firstTargetChain.displayName}\n \n ) : (\n \n }\n >\n {targetChainIDs?.map((chainID) => {\n return (\n \n token\n {Chains[chainID].displayName.replace(/OKEXChain/i, 'OEC')}\n \n )\n })}\n \n \n )}\n \n \n \n \n )\n}\n\nexport default ChainPair\n","import {Box, Button, CircularProgress, Grid, InputBase} from '@material-ui/core'\nimport {HelpOutline} from '@material-ui/icons'\nimport {CHAIN_ETHER, Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useModal} from 'mui-modal-provider'\nimport React, {ChangeEvent, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {useHistory} from 'react-router-dom'\n\nimport ERC20ABI from '../../../abi/ERC20.json'\nimport PegProxyABI from '../../../abi/TwoWay.json'\nimport {PRODUCTION_TARGET_PEG_CHAINS, TARGET_PEG_CHAINS} from '../../../constants'\nimport {PEG_PROXY} from '../../../constants/peg_token'\nimport {displayBalance, getMaxValue, isProduction, verifyNumericInput} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getIcon} from '../../../helpers/icon'\nimport {getUrlProvider} from '../../../helpers/provider'\nimport {useDebounce, usePegTokens, useQuery, useTargetPegToken} from '../../../hooks'\nimport {useContract} from '../../../hooks/contract'\nimport {useAllowances} from '../../../hooks/useAllowances'\nimport {usePegTokenMeta} from '../../../hooks/usePegTokenMeta'\nimport {useTokenBalances} from '../../../hooks/useTokenBalances'\nimport {emptyPegToken} from '../../../modal/token'\nimport ChainPair from '../../ChainPair'\nimport EnterAddress from '../../EnterAddress'\nimport Max from '../../Max'\nimport WalletsModal from '../../modal/WalletsModal'\nimport {ApproveContent, BoringTooltip, InputWrapper, Label, TokenWithName} from '../../style'\n\nconst Bridge = (): JSX.Element => {\n const query = useQuery()\n const queryTargetChainID = query.get('target_chain_id')\n const history = useHistory()\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const {showModal} = useModal()\n\n const [value, setValue] = useState('')\n const debounceValue = useDebounce(value, 300)\n const [to, setTo] = useState('')\n const debounceTo = useDebounce(to, 300)\n\n const chainID = chainId ?? CHAIN_ETHER\n const targetChains = isProduction() ? PRODUCTION_TARGET_PEG_CHAINS[chainID] : TARGET_PEG_CHAINS[chainID]\n const initTargetChainID =\n queryTargetChainID && targetChains.includes(Number(queryTargetChainID))\n ? Number(queryTargetChainID)\n : targetChains && targetChains[0]\n const [targetChainID, setTargetChainID] = useState(initTargetChainID)\n\n const tokens = usePegTokens(chainId)\n const balances = useTokenBalances(tokens, account)\n\n const initTokenAddress = (tokens && tokens.length > 0 && tokens[0].address) || ''\n const [tokenAddress, setTokenAddress] = useState(initTokenAddress)\n const token = tokens.find((t) => t?.address === tokenAddress)\n const targetToken = useTargetPegToken(token, targetChainID)\n\n const proxyAddress = (PEG_PROXY as any)[chainID]\n const targetProxyAddress = (PEG_PROXY as any)[targetChainID]\n const proxyContract = useContract(proxyAddress, PegProxyABI.abi)\n const provider = getUrlProvider(targetChainID)\n const targetProxyContract = getContract(provider, targetProxyAddress, PegProxyABI.abi)\n const switchTarget = (e: React.ChangeEvent<{value: unknown}>) => {\n setTargetChainID(e.target.value as number)\n query.set('target_chain_id', e.target.value as string)\n history.push({search: query.toString()})\n }\n\n const allowances = useAllowances(tokens, proxyAddress, account)\n const approved = new BigNumber(allowances[tokenAddress]).gt(balances[tokenAddress])\n\n const [fee, setFee] = useState('0')\n const [get, setGet] = useState('0')\n\n const [valueStatus, setValueStatus] = useState('')\n const [valueNotice, setValueNotice] = useState('')\n const [toStatus, setToStatus] = useState('')\n const [toNotice, setToNotice] = useState('')\n\n const [doing, setDoing] = useState(false)\n const [aprDoing, setAprDoing] = useState(false)\n\n const [fixedAmount, setFixedAmount] = useState('')\n const [ratio, setRatio] = useState('')\n\n const can = valueStatus !== 'error' && toStatus !== 'error' && value !== '' && to != ''\n\n useEffect(() => setTargetChainID(initTargetChainID), [targetChains])\n useEffect(() => setTokenAddress(initTokenAddress), [tokens])\n\n const [originMeta, targetMeta] = usePegTokenMeta(\n chainID,\n token || emptyPegToken,\n targetChainID,\n targetToken || emptyPegToken\n )\n\n useEffect(() => {\n console.log(`Target chain id: ${targetChainID}`)\n if (originMeta && targetMeta) {\n console.log(originMeta[0][1].toString())\n console.log(targetMeta[0][0].toString())\n }\n }, [targetChainID])\n\n const currentDiff = 18 - (token?.decimals || 18)\n const targetDiff = 18 - (targetToken?.decimals || 18)\n\n const targetLiquidity = useMemo(\n () =>\n targetMeta &&\n originMeta &&\n new BigNumber(targetMeta[0][0].toString())\n .multipliedBy(10 ** targetDiff)\n .plus(originMeta[0][1].toString())\n .toString(),\n [targetMeta, originMeta, targetDiff]\n )\n const maximum = useMemo(() => (targetLiquidity ? targetLiquidity : '0'), [targetLiquidity])\n // const userMaximum = new BigNumber(maximum).gt(balances[tokenAddress]) ? balances[tokenAddress] : maximum\n const userMaximum = useMemo(\n () => BigNumber.minimum(maximum, new BigNumber(balances[tokenAddress]).multipliedBy(10 ** currentDiff)).toString(),\n [balances, maximum, currentDiff]\n )\n\n const crossOut = async () => {\n try {\n setDoing(true)\n console.log(\n `CrossOut(tokenAddress: ${token?.address}, pegproxy: ${proxyAddress}, amount: ${ethers.utils.parseUnits(\n value,\n token?.decimals\n )}, to: ${to}, chainID: ${targetChainID})`\n )\n const gas = await proxyContract?.estimateGas\n .crossOut(token?.address, targetChainID, to, ethers.utils.parseUnits(value, token?.decimals))\n .catch((e) => {\n console.error(e)\n })\n const tx = await proxyContract?.crossOut(\n token?.address,\n targetChainID,\n to,\n ethers.utils.parseUnits(value, token?.decimals)\n )\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n setTo('')\n setValue('')\n }\n\n const approving = async () => {\n setAprDoing(true)\n console.log(`Approve(tokenAddress: ${token?.address}, spender: ${proxyAddress}, account: ${account})`)\n const contract = getContract(library, token?.address, ERC20ABI.abi, account)\n const tx = await contract.approve(proxyAddress, ethers.constants.MaxUint256).catch((e: any) => console.error(e))\n await tx.wait()\n setAprDoing(false)\n }\n\n useEffect(() => {\n const request = async () => {\n try {\n const maxToken1 = await proxyContract?.getMaxToken1AmountOut(token?.address, targetChainID)\n const ratio = await targetProxyContract?.feeRatioM(targetToken?.address, chainID)\n setRatio(ratio.toString())\n const v = value ? value : '0'\n const valueN = ethers.utils.parseUnits(v, 18).toString()\n if (new BigNumber(value).gte(5)) {\n let count = 2\n if (new BigNumber(maxToken1.toString()).eq(0) || new BigNumber(valueN).lte(maxToken1.toString())) {\n count = 1\n }\n\n const fixedAmount = await targetProxyContract?.feeAmountM(targetToken?.address, chainID)\n const finalFixedAmount = new BigNumber(fixedAmount.toString()).multipliedBy(count).toString()\n setFixedAmount(finalFixedAmount)\n\n const d = new BigNumber(value).multipliedBy(ratio.toString())\n const f = new BigNumber(finalFixedAmount).multipliedBy(10 ** targetDiff).plus(d.toString())\n setFee(f.toString())\n setGet(new BigNumber(valueN).minus(f).toString())\n } else {\n setFee('0')\n setGet('0')\n }\n } catch (e) {\n console.error('Get fee: ', e)\n }\n }\n\n request()\n }, [targetChainID, chainID, value])\n\n useEffect(() => {\n let maxAmount = 5\n if (targetChainID === CHAIN_ETHER) {\n maxAmount = 240\n }\n if (new BigNumber(debounceValue).lt(maxAmount)) {\n setValueStatus('error')\n setValueNotice(t('cross_minimum_limit_notice', {amount: maxAmount}))\n } else if (new BigNumber(debounceValue).gt(new BigNumber(userMaximum).div(10 ** 18))) {\n setValueStatus('error')\n setValueNotice(t('cross_maximum_limit_notice', {amount: displayBalance(userMaximum, 18, 2)}))\n } else if (new BigNumber(debounceValue).gt(new BigNumber(maximum).multipliedBy(0.8).div(10 ** 18))) {\n setValueStatus('info')\n setValueNotice(t('cross_limit_notice'))\n } else {\n setValueStatus('')\n setValueNotice('')\n }\n }, [debounceValue, targetChainID, userMaximum])\n\n useEffect(() => {\n if (debounceTo !== '' && !ethers.utils.isAddress(debounceTo)) {\n setToStatus('error')\n setToNotice(\n t('assigned_address_notice', {\n network_name: Chains[targetChainID].displayName,\n })\n )\n } else {\n setToStatus('')\n setToNotice('')\n }\n }, [debounceTo])\n\n return (\n \n \n \n \n ) => setTo(e.target.value)}\n />\n setTo(account || '')} />\n \n \n {toNotice}\n \n \n \n \n ) => verifyNumericInput(e, setValue)}\n />\n setValue(getMaxValue(userMaximum, 18))} />\n \n \n {valueNotice}\n \n \n \n \n \n \n ≈ {displayBalance(get, 18, 2)}\n \n \n {account === undefined ? (\n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n {doing && }\n {t('confirm')}\n \n \n \n )}\n \n )\n}\n\nexport default Bridge\n","import {useEffect, useMemo} from 'react'\n\nimport SwapPairABI from '../abi/SwapPair.json'\nimport {getUrlProvider} from '../helpers/provider'\nimport {PegToken} from '../modal/token'\nimport {\n useContract,\n useContractWithProvider,\n useMulticallContractWithProvider,\n useMulticalls,\n useMulticallsWithMulticall,\n} from './contract'\nimport {ContractInputs} from './index'\n\nexport const useCurrentPegTokenMeta = (token: PegToken, targetChainID: number): any => {\n const pairContract = useContract(token?.pair, SwapPairABI.abi)\n\n const calls = useMemo((): ContractInputs[] => {\n return [\n {contract: pairContract, method: 'getReserves', args: [targetChainID]},\n {contract: pairContract, method: 'totalSupply', args: []},\n ]\n }, [])\n\n const results = useMulticalls(calls)\n\n return useMemo(() => {\n return results\n }, [token, results])\n}\n\nexport const usePegTokenMeta = (\n chainID: number,\n token: PegToken,\n targetChainID: number,\n targetToken: PegToken\n): any => {\n const provider = useMemo(() => getUrlProvider(chainID), [chainID])\n const targetProvider = useMemo(() => getUrlProvider(targetChainID), [targetChainID])\n\n const pairContract = useContractWithProvider(provider, token?.pair, SwapPairABI.abi)\n const targetPairContract = useContractWithProvider(targetProvider, targetToken.pair, SwapPairABI.abi)\n const multicall = useMulticallContractWithProvider(targetProvider, targetChainID)\n\n const calls = useMemo((): ContractInputs[] => {\n return [\n {contract: pairContract, method: 'getReserves', args: [targetChainID]},\n {contract: pairContract, method: 'totalSupply', args: []},\n ]\n }, [pairContract, targetChainID])\n\n const targetCalls = useMemo((): ContractInputs[] => {\n return [\n {contract: targetPairContract, method: 'getReserves', args: [chainID]},\n {contract: targetPairContract, method: 'totalSupply', args: []},\n ]\n }, [targetPairContract, chainID])\n\n const results = useMulticalls(calls)\n const targetResults = useMulticallsWithMulticall(multicall, targetCalls)\n\n return useMemo(() => {\n return [results, targetResults]\n }, [token, results, targetResults])\n}\n","export default __webpack_public_path__ + \"static/media/liquidity_bg.159b29fb.png\";","import {CHAIN_BSC, CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport {useState} from 'react'\nimport {useInterval} from 'react-use'\n\nimport PegProxyABI from '../abi/TwoWay.json'\nimport {PEG_PROXY} from '../constants/peg_token'\nimport {PegToken} from '../modal/token'\nimport {useContract} from './contract'\n\nexport const useFeeTier = (token: PegToken | undefined): string => {\n const {chainId} = useWeb3React()\n const chainID = chainId ?? CHAIN_ETHER\n const [tier, setTier] = useState('0')\n const proxyAddress = PEG_PROXY[chainID]\n const proxyContract = useContract(proxyAddress, PegProxyABI.abi)\n const inputChainID = chainId === CHAIN_ETHER ? CHAIN_BSC : CHAIN_ETHER\n\n useInterval(async () => {\n try {\n const ratio = await proxyContract?.feeRatioM(token?.address, inputChainID)\n setTier(ratio.toString())\n } catch (e) {\n console.error(\n `Current chain id: ${chainID}, proxyAddress: ${proxyAddress}, inputChainID: ${inputChainID}, token: ${token?.address}`\n )\n }\n }, 2000)\n\n return tier\n}\n","import {Box, Divider} from '@material-ui/core'\nimport {HelpOutline} from '@material-ui/icons'\nimport {Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport React, {useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport SwapPairABI from '../../abi/SwapPair.json'\nimport {displayBalance} from '../../helpers'\nimport {getChainIcon, getIcon, getImage} from '../../helpers/icon'\nimport {useContract} from '../../hooks/contract'\nimport {useFeeTier} from '../../hooks/useFeeTier'\nimport {useTokenBalances} from '../../hooks/useTokenBalances'\nimport {buildTokenWithAddress, PegToken} from '../../modal/token'\nimport {BoringTooltip} from '../style'\n\nconst UserLiquidity = ({setType, token}: {setType: any; token: PegToken}) => {\n const {t} = useTranslation()\n const {account} = useWeb3React()\n const pair = useMemo(() => buildTokenWithAddress(token?.pair || ''), [token])\n const pairs = useMemo(() => [pair], [pair])\n\n const tier = useFeeTier(token)\n\n const balances = useTokenBalances(pairs, account)\n\n const [worth, setWorth] = useState('0')\n\n const pairContract = useContract(token?.pair, SwapPairABI.abi)\n\n useEffect(() => {\n const get = async () => {\n const diff0 = 18 - (token?.decimals || 18)\n const reserve0 = await pairContract?.reserve0()\n const reserve1 = await pairContract?.totalReserve1s()\n const total = await pairContract?.totalSupply()\n\n const valueN = new BigNumber(balances[pair.address])\n const sum = new BigNumber(reserve0.toString()).multipliedBy(10 ** diff0).plus(reserve1.toString())\n\n console.log(\n `diff0: ${diff0}, reserve0: ${reserve0.toString()}, reserve1: ${reserve1.toString()}, total: ${total.toString()}, value: ${valueN.toString()}`\n )\n\n setWorth(valueN.multipliedBy(sum).div(total.toString()).toString())\n }\n\n if (Object.keys(balances).length !== 0) {\n get().catch((e) => console.error(e))\n }\n }, [balances])\n\n return (\n \n \n \n token\n {token?.symbol}\n \n token\n {Chains[token?.chainID].displayName}\n \n \n diamond\n {t('lp_reward')} : {displayBalance(tier, 16, 1)}%\n \n \n \n \n \n \n diamond\n {t('lp_reward')} : {displayBalance(tier, 16, 1)}%\n \n \n \n \n \n \n \n {t('your_lp_amount')}\n \n \n \n \n \n {displayBalance(balances[pair.address], 18, 2)} LP\n \n =\n \n \n {displayBalance(worth, 18, 2)} {token?.symbol}\n \n \n \n setType(1)} sx={{ml: {md: 'auto', xs: ''}}}>\n {t('add')}\n \n setType(2)} ml={2}>\n {t('remove')}\n \n \n \n \n \n )\n}\n\nexport default UserLiquidity\n","import {Box, createStyles, Dialog, makeStyles, Theme, Typography} from '@material-ui/core'\nimport {useWeb3React} from '@web3-react/core'\nimport React, {ReactNode} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport {injectedConnector} from '../../../connectors'\nimport {METAMASK, SUPPORTED_WALLETS, WALLET_CONNECT, WALLET_LINK} from '../../../constants/wallet'\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n main: {\n '& .MuiPaper-root': {\n maxWidth: '460px !important',\n },\n },\n wallet: {\n display: 'flex',\n alignItems: 'center',\n border: '1px solid #e0e0e0',\n borderRadius: '8px',\n padding: '16px 20px',\n cursor: 'pointer',\n position: 'relative',\n '&.active': {\n background: '#fafafa',\n borderColor: theme.palette.primary.main,\n '& span': {\n display: 'block',\n top: '10px',\n left: '20px',\n width: '8px',\n height: '8px',\n marginRight: '10px',\n borderRadius: '8px',\n background: '#BCE369',\n },\n },\n '&:hover': {\n border: `1px solid ${theme.palette.primary.main}`,\n },\n '& img': {\n marginLeft: 'auto',\n },\n },\n grow: {\n flexGrow: 1,\n },\n address: {\n '& img': {\n marginLeft: '5px',\n cursor: 'pointer',\n },\n },\n })\n)\n\nconst NoticeModal = ({open, close, message}: {open: boolean; close: any; message: ReactNode}): JSX.Element => {\n const classes = useStyles()\n\n return (\n \n {message}\n \n )\n}\n\nexport default NoticeModal\n","import {Box, Button, CircularProgress, Grid, InputBase, Typography} from '@material-ui/core'\nimport {HelpOutline} from '@material-ui/icons'\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace'\nimport {CHAIN_ETHER, Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useCallback, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ERC20ABI from '../../../abi/ERC20.json'\nimport SwapPairABI from '../../../abi/SwapPair.json'\nimport TwoWayABI from '../../../abi/TwoWay.json'\nimport {PEG_PROXY} from '../../../constants/peg_token'\nimport {calculateGasMargin, displayBalance, getMaxValue, verifyNumericInput} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getIcon, getImage} from '../../../helpers/icon'\nimport {usePegTokens} from '../../../hooks'\nimport {useContract} from '../../../hooks/contract'\nimport {useAllowances} from '../../../hooks/useAllowances'\nimport {useFeeTier} from '../../../hooks/useFeeTier'\nimport {useTokenBalances} from '../../../hooks/useTokenBalances'\nimport Max from '../../Max'\nimport NoticeModal from '../../modal/NoticeModal'\nimport {ApproveContent, BoringTooltip, InputWrapper, Label, LPSingleToken, TokenWithName} from '../../style'\n\nconst AddLiquidity = ({setType}: {setType: any}): JSX.Element => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n const chainID = chainId ?? CHAIN_ETHER\n\n const [doing, setDoing] = useState(false)\n const tokens = usePegTokens(chainId)\n const balances = useTokenBalances(tokens, account)\n\n const [tokenAddress, setTokenAddress] = useState((tokens && tokens.length > 0 && tokens[0].address) || '')\n const token = tokens.find((t) => t?.address === tokenAddress)\n\n const tier = useFeeTier(token)\n\n const [value, setValue] = useState('')\n\n const proxyAddress = (PEG_PROXY as any)[chainID]\n const proxyContract = useContract(proxyAddress, TwoWayABI.abi)\n const [aprDoing, setAprDoing] = useState(false)\n\n const [openNotice, setOpenNotice] = useState(false)\n\n const allowances = useAllowances(tokens, proxyAddress, account)\n const approved = new BigNumber(allowances[tokenAddress]).gt(balances[tokenAddress])\n\n const approving = useCallback(async () => {\n setAprDoing(true)\n console.log(`Approve(tokenAddress: ${token?.address}, spender: ${proxyAddress}, account: ${account})`)\n const contract = getContract(library, token?.address, ERC20ABI.abi, account)\n const tx = await contract.approve(proxyAddress, ethers.constants.MaxUint256).catch((e: any) => console.error(e))\n await tx.wait()\n setAprDoing(false)\n }, [token])\n\n const add = useCallback(async () => {\n try {\n setDoing(true)\n console.log(\n `Add(tokenAddress: ${token?.address}, twoway: ${proxyAddress}, amount: ${ethers.utils.parseUnits(\n value,\n token?.decimals\n )})`\n )\n const amount = ethers.utils.parseUnits(value, token?.decimals)\n const gas = await proxyContract?.estimateGas.addLiquidity(token?.address, amount, account).catch((e) => {\n console.error(e)\n })\n if (gas) {\n console.log(gas?.toString())\n console.log(calculateGasMargin(new BigNumber(gas?.toString())))\n const tx = await proxyContract?.addLiquidity(token?.address, amount, account, {\n gasLimit: calculateGasMargin(new BigNumber(gas?.toString())),\n })\n await tx.wait()\n }\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n setValue('')\n }, [value])\n\n const pairAddress = token?.pair || ''\n const pairContract = useContract(pairAddress, SwapPairABI.abi)\n const [get, setGet] = useState('')\n\n useEffect(() => {\n const calc = async () => {\n if (value) {\n const valueN = ethers.utils.parseUnits(value, token?.decimals || 18)\n console.log(valueN.toString())\n const lp = await pairContract?.getLPAmount(valueN.toString())\n console.log(lp.toString())\n setGet(lp.toString())\n const reserve0 = await pairContract?.reserve0()\n console.log(reserve0.toString())\n const total = await pairContract?.totalSupply()\n console.log(total.toString())\n const t1 = await pairContract?.totalReserve1s()\n console.log(t1.toString())\n } else {\n setGet('0')\n }\n }\n\n calc().catch((e) => console.error(e))\n }, [value])\n\n const can = useMemo(\n () =>\n new BigNumber(value).gt(0) &&\n new BigNumber(value).multipliedBy(10 ** (token?.decimals || 0)).lte(balances[tokenAddress]),\n [value]\n )\n\n return (\n \n \n setType()} />\n {t('add_liquidity')}\n \n setOpenNotice(false)}\n message={\n <>\n Notice Front-end system of oPortal-ETH is under updating, please\n deposit liquidity later.\n \n }\n />\n \n {t('remove_liquidity_notice', {\n source: Chains[chainID].displayName,\n destination: '',\n token_symbol: token?.symbol,\n })}\n \n \n \n \n \n \n ) => verifyNumericInput(e, setValue)}\n />\n setValue(getMaxValue(balances[tokenAddress], token?.decimals))} />\n \n \n \n \n diamond\n {t('lp_reward')}:\n \n {displayBalance(tier, 16, 1)}%\n \n \n \n \n \n \n \n \n \n \n \n {displayBalance(get, 18, 2)}\n \n \n \n \n \n \n \n \n \n \n {doing && }\n {t('confirm')}\n \n \n \n \n )\n}\n\nexport default AddLiquidity\n","import {Box, Button, CircularProgress, Grid, InputBase, Typography} from '@material-ui/core'\nimport {HelpOutline} from '@material-ui/icons'\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace'\nimport {CHAIN_ETHER, Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useCallback, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ERC20ABI from '../../../abi/ERC20.json'\nimport SwapPairABI from '../../../abi/SwapPair.json'\nimport PairV2ABI from '../../../abi/SwapPairV2.json'\nimport TwoWayABI from '../../../abi/TwoWay.json'\nimport {PRODUCTION_TARGET_PEG_CHAINS, TARGET_PEG_CHAINS} from '../../../constants'\nimport {PEG_PROXY} from '../../../constants/peg_token'\nimport {calculateGasMargin, displayBalance, getMaxValue, isProduction, verifyNumericInput} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getIcon} from '../../../helpers/icon'\nimport {useDebounce, usePegTokens} from '../../../hooks'\nimport {useContract} from '../../../hooks/contract'\nimport {useInterval} from '../../../hooks/useInterval'\nimport {useTokenBalances} from '../../../hooks/useTokenBalances'\nimport {buildTokenWithAddress} from '../../../modal/token'\nimport EnterAddress from '../../EnterAddress'\nimport Max from '../../Max'\nimport {BoringTooltip, InputWrapper, Label, TokenWithName} from '../../style'\n\nconst RemoveLiquidity = ({setType}: {setType: any}): JSX.Element => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n const chainID = chainId ?? CHAIN_ETHER\n const targetChains = isProduction() ? PRODUCTION_TARGET_PEG_CHAINS[chainID] : TARGET_PEG_CHAINS[chainID]\n\n const tokens = usePegTokens(chainId)\n const [tokenAddress, setTokenAddress] = useState((tokens && tokens.length > 0 && tokens[0].address) || '')\n const token = tokens.find((t) => t?.address === tokenAddress)\n\n const [targetChainID, setTargetChainID] = useState(targetChains[0])\n const pairAddress = token?.pair || ''\n const pairs = useMemo(() => [buildTokenWithAddress(pairAddress)], [pairAddress])\n const balances = useTokenBalances(pairs, account)\n\n const [value, setValue] = useState('')\n const debounceValue = useDebounce(value, 300)\n const [doing, setDoing] = useState(false)\n\n const proxyAddress = PEG_PROXY[chainID]\n const proxyContract = useContract(proxyAddress, TwoWayABI.abi)\n const [oldAprDoing, setOldAprDoing] = useState(false)\n\n const [to, setTo] = useState('')\n const debounceTo = useDebounce(to, 300)\n\n const [origin, setOrigin] = useState('')\n const [fee, setFee] = useState('')\n\n const [ids, setIDs] = useState([])\n const [gets, setGets] = useState([])\n\n const [valueStatus, setValueStatus] = useState('')\n const [valueNotice, setValueNotice] = useState('')\n const [toStatus, setToStatus] = useState('')\n const [toNotice, setToNotice] = useState('')\n const [shouldOldApprove, setShouldOldApprove] = useState(false)\n\n useEffect(() => setTargetChainID(targetChains && targetChains[0]), [targetChains])\n\n const oldPairAddress = '0x9312142EfbA17Ce795F95E17076B0800D14a3b19'\n\n useInterval(\n async () => {\n if (chainId === CHAIN_ETHER) {\n const oldPair = getContract(library, oldPairAddress, PairV2ABI.abi, account)\n const pairV2 = getContract(library, token?.pair, PairV2ABI.abi, account)\n const oldBalance = await pairV2.oldBalanceOf(account)\n\n const allowance = await oldPair.allowance(account, token?.pair)\n const oldBalanceN = new BigNumber(oldBalance.toString())\n\n if (oldBalanceN.gt(0) && new BigNumber(allowance.toString()).lt(oldBalanceN)) {\n setShouldOldApprove(true)\n } else {\n setShouldOldApprove(false)\n }\n }\n },\n 5000,\n true\n )\n\n useEffect(() => {\n if (debounceTo !== '' && !ethers.utils.isAddress(debounceTo)) {\n setToStatus('error')\n setToNotice(\n t('assigned_address_notice', {\n network_name: '',\n })\n )\n } else {\n setToStatus('')\n setToNotice('')\n }\n }, [debounceTo])\n\n useEffect(() => {\n if (new BigNumber(debounceValue).lt(1)) {\n setValueStatus('error')\n setValueNotice(\n `${t('remove_liquidity_minimum_notice', {\n token_symbol: token?.symbol,\n minimum_amount: 1,\n })}`\n )\n } else if (new BigNumber(debounceValue).gt(new BigNumber(balances[pairAddress]).div(10 ** 18))) {\n setValueStatus('error')\n setValueNotice(\n `${t('remove_liquidity_maximum_notice', {\n token_symbol: token?.symbol,\n minimum_amount: displayBalance(balances[pairAddress], 18, 2),\n })}`\n )\n } else {\n setValueStatus('')\n setValueNotice('')\n }\n }, [debounceValue])\n\n const oldApproving = async () => {\n setOldAprDoing(true)\n console.log(`ApproveOld(tokenAddress: ${oldPairAddress}, spender: ${token?.pair}, account: ${account})`)\n const contract = getContract(library, oldPairAddress, ERC20ABI.abi, account)\n const tx = await contract.approve(token?.pair, ethers.constants.MaxUint256).catch((e: any) => console.error(e))\n await tx.wait()\n setOldAprDoing(false)\n }\n\n const remove = async () => {\n try {\n setDoing(true)\n const amount = ethers.utils.parseUnits(value, 18)\n console.log(\n `Remove(tokenAddress: ${\n token?.address\n }, target :${targetChainID} pegswap: ${proxyAddress}, amount: ${amount.toString()})`\n )\n\n const gas = await proxyContract?.estimateGas.removeLiquidity(token?.address, amount, to).catch((e) => {\n console.error(e)\n })\n if (gas) {\n console.log(gas?.toString())\n console.log(calculateGasMargin(new BigNumber(gas?.toString())))\n const tx = await proxyContract?.removeLiquidity(token?.address, amount, to, {\n gasLimit: calculateGasMargin(new BigNumber(gas?.toString())),\n })\n await tx.wait()\n }\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n }\n\n const pairContract = useContract(pairAddress, SwapPairABI.abi)\n\n const calc = useCallback(async () => {\n console.log('calc')\n setIDs([])\n setGets([])\n setOrigin('0')\n if (value !== '') {\n const valueF = ethers.utils.parseUnits(value, 18)\n try {\n const resultAmount = await pairContract?.calculateBurn(valueF)\n console.log('amount0: ', resultAmount[0].toString())\n console.log('amount1: ', resultAmount[1].toString())\n console.log('amount2: ', resultAmount[2].toString())\n console.log(resultAmount[1].length)\n\n const removeFee = await proxyContract?.calculateRemoveFee(token?.address, valueF)\n const result = resultAmount[2].filter((amount: any) => new BigNumber(amount.toString()).gt(0))\n\n console.info('Current remove fee: ', removeFee[0].toString())\n console.info('Current remaining fee: ', removeFee[1].toString())\n console.info('Target count: ', result.length)\n\n const fee = new BigNumber(removeFee[0].toString()).plus(\n new BigNumber(0.5).multipliedBy(result.length).multipliedBy(10 ** (token?.decimals || 18))\n )\n\n setFee(fee.toString())\n\n const origin = new BigNumber(resultAmount[0].toString())\n setOrigin(origin.minus(fee.toString()).toString())\n if (resultAmount[1].length > 0) {\n setIDs(resultAmount[1])\n setGets(resultAmount[2])\n }\n } catch (e) {\n console.error(e)\n }\n }\n }, [value])\n\n useEffect(() => {\n calc()\n }, [value])\n\n const can = useMemo(\n () =>\n new BigNumber(value).gt(0) &&\n new BigNumber(value).multipliedBy(10 ** 18).lte(balances[pairAddress]) &&\n toStatus !== 'error' &&\n to !== '',\n [value]\n )\n\n return (\n \n \n setType()} />\n {t('remove_liquidity')}\n \n \n {t('remove_liquidity_notice', {\n source: Chains[chainID].displayName,\n destination: Chains[targetChainID].displayName,\n token_symbol: token?.symbol,\n })}\n \n \n \n ) => setTo(e.target.value)}\n />\n setTo(account || '')} />\n \n \n {toNotice}\n \n \n \n \n ) => verifyNumericInput(e, setValue)}\n />\n setValue(getMaxValue(balances[pairAddress], 18))} />\n \n \n {valueNotice}\n \n \n \n \n {(new BigNumber(value).eq(0) || value == '' || new BigNumber(origin).gt(0)) && (\n \n \n \n \n {displayBalance(origin, token?.decimals, 2)}\n \n {chainID === CHAIN_ETHER && (\n \n \n \n )}\n \n \n )}\n {ids &&\n gets &&\n ids.length > 0 &&\n gets.length > 0 &&\n ids.map((id, i) => {\n // @ts-ignore\n const g = gets[i].toString()\n if (new BigNumber(g).lte(0)) return <>\n return (\n \n \n \n \n {displayBalance(g, 18, 2)}\n \n {id === CHAIN_ETHER && (\n \n \n \n )}\n \n \n )\n })}\n \n \n {shouldOldApprove && (\n \n \n \n )}\n \n \n {t('confirm')}\n \n \n \n \n )\n}\n\n// RemoveLiquidity.whyDidYouRender = true\nexport default React.memo(RemoveLiquidity)\n","import {Box, Button, Typography} from '@material-ui/core'\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport React, {useCallback, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport LiquidityBG from '../../../assets/images/liquidity_bg.png'\nimport {usePegTokens} from '../../../hooks'\nimport {useTokenBalances} from '../../../hooks/useTokenBalances'\nimport {buildTokenWithAddress} from '../../../modal/token'\nimport UserLiquidity from '../../UserLiquidity'\nimport WalletsModal from '../../modal/WalletsModal'\nimport AddLiquidity from '../AddLiquidity'\nimport RemoveLiquidity from '../RemoveLiquidity'\n\nconst Liquidity = ({setSubTab}: {setSubTab: any}): JSX.Element => {\n const [type, setType] = useState(0)\n const {t} = useTranslation()\n const {chainId, account} = useWeb3React()\n const chainID = chainId ?? CHAIN_ETHER\n\n const [walletModalOpen, setWalletModalOpen] = useState(false)\n\n const filterTokens = usePegTokens(chainID)\n const tokens = useMemo(() => (filterTokens && filterTokens.length > 0 ? [filterTokens[0]] : []), [filterTokens])\n\n const pairs = useMemo(() => tokens.map((token) => buildTokenWithAddress(token?.pair || '')), [tokens])\n const balances = useTokenBalances(pairs, account)\n const values = useMemo(() => pairs.map((pair) => balances[pair.address]), [pairs, balances])\n\n const totalValue = useMemo(() => values.reduce((acc, value) => new BigNumber(acc).plus(value).toString()), [values])\n const had = new BigNumber(totalValue).gt(0)\n\n const setT = useCallback(() => setType(0), [setType])\n\n useEffect(() => {\n if (type === 1 || type === 2) {\n setSubTab(1)\n } else {\n setSubTab(0)\n }\n }, [type])\n\n console.log('Liquidity')\n\n return (\n \n {type === 0 && (\n \n {had ? (\n <>\n \n setType(1)}\n >\n {t('add_liquidity')}\n \n \n \n \n ) : (\n <>\n \n \n {t('your_liquidity')}\n \n \n {t('user_havent_liquidity')}\n \n \n bg\n \n \n \n {account === undefined ? (\n setWalletModalOpen(true)}\n >\n {t('unlock_wallet')}\n \n ) : (\n setType(1)}\n >\n {t('add_liquidity')}\n \n \n )}\n \n \n )}\n {had && (\n \n \n {t('your_liquidity')}\n \n {tokens.map((token) => (\n \n {new BigNumber(balances[token?.pair]).gt(0) && (\n \n )}\n \n ))}\n \n )}\n \n )}\n {type === 1 && }\n {type === 2 && }\n \n )\n}\n\nexport default Liquidity\n","import {Box, Grid, Tab, Tabs, Typography, useTheme} from '@material-ui/core'\nimport {\n Chains,\n CHAIN_AVALANCHE,\n CHAIN_AVALANCHE_TESTNET,\n CHAIN_BSC,\n CHAIN_BSC_TESTNET,\n CHAIN_ETHER,\n CHAIN_ETHER_KOVAN,\n CHAIN_FANTOM,\n CHAIN_FANTOM_TESTNET,\n CHAIN_HARMONY_0,\n CHAIN_HARMONY_0_TESTNET,\n CHAIN_HECO,\n CHAIN_HECO_TESTNET,\n CHAIN_OK,\n CHAIN_OK_TESTNET,\n CHAIN_POLYGON,\n CHAIN_POLYGON_MUMBAI,\n CHAIN_XDAI,\n CHAIN_XDAI_TESTNET,\n CHAIN_ARBITRUM,\n CHAIN_OPTIMISM,\n CHAIN_BOBA,\n} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport React, {useCallback, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {useHistory} from 'react-router-dom'\n\nimport NotSupport from '../../assets/images/not_support.png'\nimport Backed from '../../components/Backed'\nimport Chart from '../../components/Chart'\nimport PegTokenMetaItem from '../../components/PegTokenMetaItem'\nimport Bridge from '../../components/peg/Bridge'\nimport Liquidity from '../../components/peg/Liquidity'\nimport {usePegTokens, useQuery} from '../../hooks'\nimport {emptyPegToken} from '../../modal/token'\n\nconst PegBridge = (): JSX.Element => {\n const query = useQuery()\n const tabValue = query.get('tab')\n const tabIndex = tabValue ? (tabValue === '1' || tabValue === '0' || tabValue === '2' ? tabValue : 0) : 0\n const [tab, setTab] = useState(Number(tabIndex))\n const [subTab, setSubTab] = useState(0)\n const {t} = useTranslation()\n const history = useHistory()\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTab(newValue)\n const params = new URLSearchParams()\n if (query) {\n params.append('tab', String(newValue))\n } else {\n params.delete('tab')\n }\n history.push({search: params.toString()})\n }\n const theme = useTheme()\n\n const {chainId} = useWeb3React()\n const chainID = chainId ?? CHAIN_ETHER\n\n const tokens = usePegTokens(chainID)\n\n const [tokenAddress, setTokenAddress] = useState((tokens && tokens.length > 0 && tokens[0].address) || '')\n const token = tokens.find((t) => t?.address === tokenAddress)\n\n const setST = useCallback((subTab) => setSubTab(subTab), [setSubTab])\n\n if (\n chainId !== undefined &&\n chainId !== CHAIN_ETHER &&\n chainId !== CHAIN_OK_TESTNET &&\n chainId !== CHAIN_BSC_TESTNET &&\n chainId !== CHAIN_OK &&\n chainId !== CHAIN_BSC &&\n chainId !== CHAIN_POLYGON_MUMBAI &&\n chainId !== CHAIN_POLYGON &&\n chainId !== CHAIN_AVALANCHE &&\n chainId !== CHAIN_AVALANCHE_TESTNET &&\n chainId !== CHAIN_ETHER_KOVAN &&\n chainId !== CHAIN_HECO &&\n chainId !== CHAIN_HECO_TESTNET &&\n chainId !== CHAIN_XDAI &&\n chainId !== CHAIN_XDAI_TESTNET &&\n chainId !== CHAIN_FANTOM &&\n chainId !== CHAIN_FANTOM_TESTNET &&\n chainId !== CHAIN_HARMONY_0 &&\n chainId !== CHAIN_HARMONY_0_TESTNET &&\n chainId !== CHAIN_ARBITRUM &&\n chainId !== CHAIN_OPTIMISM &&\n chainId !== CHAIN_BOBA\n ) {\n return (\n \n \n \n \n banner\n \n {t('not_support_notice', {\n current_chain_name: Chains[chainID].displayName,\n support_chain1: 'OEC',\n support_chain2: 'BSC',\n })}\n \n \n \n \n )\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n {tab === 0 && }\n {tab === 1 && }\n {tab === 2 && }\n \n \n \n \n \n )\n}\nexport default PegBridge\n","import {Box, Button, CircularProgress, Grid, InputBase, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ChefABI from '../../abi/BoringChef.json'\nimport ERC20ABI from '../../abi/ERC20.json'\nimport Max from '../../components/Max'\nimport {ApproveContent, CenterY, InputWrapper, Label, LPSingleToken} from '../../components/style'\nimport {CHEF_ADDRESSES} from '../../constants/chef'\nimport {displayBalance, getMaxValue, verifyNumericInput} from '../../helpers'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\nimport {useGlobalChef} from '../../hooks/useGlobelChef'\n\nconst Pool = (): JSX.Element => {\n const {library, chainId, account} = useWeb3React()\n const {result: pools} = useGlobalChef()\n const pool = pools.find((pool) => pool.token?.chainID === chainId)\n const {t} = useTranslation()\n const [amount, setAmount] = useState('')\n const [withdrawAmount, setWithdrawAmount] = useState('')\n const [doing, setDoing] = useState(false)\n\n const [approveDoing, setApproveDoing] = useState(false)\n const [withdrawDoing, setWithdrawDoing] = useState(false)\n const [claimDoing, setClaimDoing] = useState(false)\n\n const approving = async () => {\n try {\n setApproveDoing(true)\n const chefAddress = CHEF_ADDRESSES[chainId ?? CHAIN_ETHER]\n const tokenAddress = pool?.token?.pair\n const tokenContract = getContract(library, tokenAddress, ERC20ABI.abi, account)\n const tx = await tokenContract\n .approve(chefAddress, ethers.constants.MaxUint256)\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setApproveDoing(false)\n }\n\n const staking = async () => {\n try {\n setDoing(true)\n const chefAddress = CHEF_ADDRESSES[chainId ?? CHAIN_ETHER]\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract\n .deposit(pool?.token?.pid, ethers.utils.parseEther(amount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n setAmount('')\n close()\n }\n\n const withdrawing = async () => {\n try {\n setWithdrawDoing(true)\n const chefAddress = CHEF_ADDRESSES[chainId ?? CHAIN_ETHER]\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract\n .withdraw(pool?.token?.pid, ethers.utils.parseEther(withdrawAmount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setWithdrawDoing(false)\n setWithdrawAmount('')\n close()\n }\n\n const claiming = async () => {\n try {\n setClaimDoing(true)\n const chefAddress = CHEF_ADDRESSES[chainId ?? CHAIN_ETHER]\n const chefContract = getContract(library, chefAddress, ChefABI.abi, account)\n const tx = await chefContract.deposit(pool?.token?.pid, 0).catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setClaimDoing(false)\n close()\n }\n\n const approved = useMemo(() => new BigNumber(pool?.balance ?? '0').lt(pool?.allowance ?? '0'), [pool])\n\n return (\n \n \n \n \n \n \n {displayBalance(pool?.totalStaked)}\n \n \n {t('total_staked')}\n \n \n \n \n \n {displayBalance(pool?.yourStaked)}\n \n \n {t('your_staked')}\n \n \n \n \n \n \n \n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(pool?.balance ?? '0'))} />\n \n \n \n \n \n \n \n \n {doing && }\n {t('stake')}\n \n \n \n \n \n\n \n \n \n ) => verifyNumericInput(e, setWithdrawAmount)}\n />\n setWithdrawAmount(getMaxValue(pool?.yourStaked ?? '0'))} />\n \n \n \n {withdrawDoing && }\n {t('withdraw')}\n \n \n \n\n \n {t('claimable_rewards')}\n \n token\n \n {displayBalance(pool?.reward)}\n \n \n \n \n {claimDoing && }\n {t('claim')}\n \n \n )\n}\n\nexport default Pool\n","import {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useMemo, useState} from 'react'\n\nimport ERC20ABI from '../abi/ERC20.json'\nimport {Token} from '../modal/token'\nimport {useContract} from './contract'\nimport {useAllowance} from './useAllowances'\nimport {useTokenBalance} from './useTokenBalances'\n\nexport const useApproval = (token: Token, spender: string) => {\n const {account} = useWeb3React()\n const allowance = useAllowance(token, spender, account)\n const balance = useTokenBalance(token, account)\n const approved = new BigNumber(allowance).gt(balance)\n const [aprDoing, setAprDoing] = useState(false)\n\n const contract = useContract(token?.address, ERC20ABI.abi)\n\n return useMemo(() => {\n if (!balance || !allowance)\n return {\n balance: '',\n allowance: '',\n approved: false,\n aprDoing: false,\n approve: undefined,\n }\n\n return {\n balance,\n allowance,\n approved,\n aprDoing,\n approve: async () => {\n try {\n console.log(`Approve(tokenAddress: ${token?.address}, spender: ${spender}, account: ${account})`)\n setAprDoing(true)\n const tx = await contract?.approve(spender, ethers.constants.MaxUint256)\n await tx.wait()\n } catch (e) {\n console.error('Approve: ', e)\n }\n setAprDoing(false)\n },\n }\n }, [token, spender, balance, allowance])\n}\n","import BigNumber from 'bignumber.js'\n\nexport const getTwowayFeeStatus = (amount: string) => {\n const amountN = new BigNumber(amount)\n if (amountN.gt(500000 * 10 ** 18)) {\n return ['high', '0.05%']\n }\n\n if (amountN.lt(100000 * 10 ** 18)) {\n return ['low', '1%']\n }\n\n return ['sufficient', '0.3%']\n}\n","import {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useEffect, useState} from 'react'\n\nimport TwowayCenterABI from '../abi/TwoWayCenter.json'\nimport {TWOWAY_ADDRESSES} from '../constants/twoway'\nimport {getContract} from '../helpers/contract'\nimport {getTwowayFeeStatus} from '../helpers/typography'\nimport {useRelayChainID, useRelayChainProvider} from './useTwowayLockBalances'\n\nexport const useTwowayCalculateFee = (\n oTokenAddress: string | undefined,\n fromID: number,\n toID: number,\n amount: string,\n lockBalance: string\n) => {\n const {account} = useWeb3React()\n const relayChainProvider = useRelayChainProvider()\n const relayChainID = useRelayChainID()\n const relayChainTwowayAddress = TWOWAY_ADDRESSES[relayChainID]\n\n const [fee, setFee] = useState('')\n const [calcFee, setCalcFee] = useState('')\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n const query = async () => {\n setLoading(true)\n if (!oTokenAddress) return\n if (new BigNumber(amount).gt(0)) {\n const contract = getContract(relayChainProvider, relayChainTwowayAddress, TwowayCenterABI.abi)\n const feeResult = await contract?.calculateFee([\n account,\n oTokenAddress,\n fromID,\n toID,\n ethers.utils.parseEther(amount),\n ])\n\n const fixAmount = feeResult[0].toString()\n const ratioAmount = feeResult[1].toString()\n const remainAmount = feeResult[2].toString()\n const feeAmount = new BigNumber(fixAmount).plus(ratioAmount).toString()\n const calcFee = new BigNumber(ratioAmount)\n .div(new BigNumber(remainAmount).plus(ratioAmount))\n .times(100)\n .toString()\n setFee(feeAmount)\n setCalcFee(`${calcFee}%`)\n } else {\n const status = getTwowayFeeStatus(lockBalance)\n setFee('0')\n setCalcFee(status[1] ?? '')\n }\n setLoading(false)\n }\n\n query().catch((e) => {\n setFee('0')\n setLoading(false)\n console.error(e)\n })\n }, [amount, oTokenAddress, toID])\n\n return {calcFee, fee, loading}\n}\n","import {useWeb3React} from '@web3-react/core'\nimport {useEffect, useState} from 'react'\n\nimport TwowayCenterABI from '../abi/TwoWayCenter.json'\nimport TwowayChefABI from '../abi/TwoWayChef.json'\nimport {TWOWAY_ADDRESSES, TWOWAY_CHEF_ADDRESSES} from '../constants/twoway'\nimport {multicalls} from '../helpers'\nimport {getUrlProvider} from '../helpers/provider'\nimport {useContractWithProvider, useMulticallContractWithProvider} from './contract'\nimport {ContractInputs, useTwowayOTokens} from './index'\nimport {useRelayChainID} from './useTwowayLockBalances'\n\nexport const useTwowayFixFees = (fromID: number, toID: number) => {\n const {library, chainId} = useWeb3React()\n const relayChainID = useRelayChainID()\n const twowayAddress = TWOWAY_ADDRESSES[relayChainID]\n const provider = chainId === relayChainID ? library : getUrlProvider(relayChainID)\n const centerContract = useContractWithProvider(provider, twowayAddress, TwowayCenterABI.abi)\n const multicallContract = useMulticallContractWithProvider(provider, relayChainID)\n\n const oTokens = useTwowayOTokens()\n\n const [results, setResults] = useState()\n\n useEffect(() => {\n const query = async () => {\n try {\n const calls: ContractInputs[] = []\n oTokens.map((token, i) => {\n calls.push({contract: centerContract, method: 'fixFees2', args: [token?.address, fromID, toID]})\n })\n\n multicalls(multicallContract, calls)\n .then((values) => {\n setResults(values)\n })\n .catch((e: any) => {\n console.error(`Multicalls useTwowayFixFees chef(${relayChainID}):`, e)\n return ['0', '0', '0', ['0', '0'], ['0', '0'], '0', ['0', '0'], ['0', '0']]\n })\n } catch (e) {\n console.error('promise', e)\n }\n }\n query().catch((e) => console.error(e))\n }, [toID])\n\n return results\n}\n","import {Box} from '@material-ui/core'\nimport {CHAIN_BSC, CHAIN_POLYGON, Chains} from '@w3u/chains'\nimport React, {useState} from 'react'\n\nimport Arrow from '../../../assets/images/arrow.svg'\nimport Right from '../../../assets/images/right.svg'\nimport Time from '../../../assets/images/time.svg'\nimport Wrong from '../../../assets/images/wrong.svg'\nimport {getScanTxLink} from '../../../helpers'\nimport {useInterval} from '../../../hooks/useInterval'\nimport {CenterX, CrossNoticeEdge} from '../../style'\n\nconst BridgeNotice = ({\n fromID,\n toID,\n txHash,\n amount,\n symbol,\n receivedAmount,\n}: {\n fromID: number\n toID: number\n txHash: string\n amount: string\n symbol: string\n receivedAmount: string\n}) => {\n const [status, setStatus] = useState(0)\n const [secondStatus, setSecondStatus] = useState(0)\n const [secondHash, setSecondHash] = useState('')\n const [thirdHash, setThirdHash] = useState('')\n\n useInterval(\n () => {\n fetch(`https://oportal.boringdao-api.com/twoway/api/v1/steps?tx_id=${txHash}`)\n .then((res) => res.json())\n .then((data) => {\n console.log(data)\n if (fromID === CHAIN_POLYGON || toID === CHAIN_POLYGON) {\n if (data.total_steps !== 0 && data.events.length === data.total_steps) {\n setStatus(1)\n setSecondHash(data.events[data.total_steps - 1].transaction)\n }\n } else {\n if (data.total_steps !== 0 && data.events.length === 2) {\n setStatus(1)\n setSecondHash(data.events[1].transaction)\n }\n\n if (data.total_steps !== 0 && data.events.length === 3) {\n setSecondStatus(1)\n setThirdHash(data.events[2].transaction)\n }\n }\n })\n .catch((e) => console.error(e))\n },\n 3000,\n true\n )\n\n return (\n \n {fromID === CHAIN_POLYGON || toID === CHAIN_POLYGON ? (\n <>\n \n \n {status === 0 && time}\n {status === 1 && time}\n {status === 2 && time}\n arrow\n \n \n \n ) : (\n <>\n \n \n {status === 0 && time}\n {status === 1 && time}\n {status === 2 && time}\n arrow\n \n \n \n {secondStatus === 0 && time}\n {secondStatus === 1 && time}\n {secondStatus === 2 && time}\n arrow\n \n \n \n )}\n \n )\n}\n\nexport default BridgeNotice\n","import {from} from '@apollo/client'\nimport {Box, Button, CircularProgress, InputBase, MenuItem, Select, Skeleton, Typography} from '@material-ui/core'\nimport {HelpOutline} from '@material-ui/icons'\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward'\nimport {CHAIN_BLAST, CHAIN_BSC, CHAIN_ETHER, CHAIN_POLYGON, CHAIN_XDAI, Chains} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useModal} from 'mui-modal-provider'\nimport React, {ChangeEvent, ReactNode, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {useHistory} from 'react-router-dom'\nimport {toast} from 'react-toastify'\n\nimport TwowayCenterABI from '../../../abi/TwoWayCenter.json'\nimport Arrow from '../../../assets/images/arrow.svg'\nimport Right from '../../../assets/images/right.svg'\nimport {PRODUCTION_TWOWAY_CHAIN_IDS, TWOWAY_ADDRESSES, TWOWAY_CHAIN_IDS} from '../../../constants/twoway'\nimport {\n displayBalance,\n displayBalanceUp,\n get2WayLimit,\n get2WayTokenFixed,\n getMaxValue,\n isOriginToken,\n verifyNumericInput,\n} from '../../../helpers'\nimport {getIcon} from '../../../helpers/icon'\nimport {setupNetwork} from '../../../helpers/network'\nimport {isTestnet} from '../../../helpers/provider'\nimport {getTwowayFeeStatus} from '../../../helpers/typography'\nimport {useCommonTwowayTokens, useDebounce, useQuery, useTwowayOTokens} from '../../../hooks'\nimport {useContract} from '../../../hooks/contract'\nimport {useApproval} from '../../../hooks/useApproval'\nimport {useTwowayCalculateFee} from '../../../hooks/useTwowayCalculateFee'\nimport {useTwowayFee} from '../../../hooks/useTwowayFee'\nimport {useTwowayFixFees} from '../../../hooks/useTwowayFixFee'\nimport {useTwowayLockBalance} from '../../../hooks/useTwowayLockBalances'\nimport {twowayToken2Token} from '../../../modal/token'\nimport ChainSwitcher from '../../ChainSwitcher'\nimport Max from '../../Max'\nimport ToastContent from '../../ToastContent'\nimport WalletsModal from '../../modal/WalletsModal'\nimport BridgeNotice from '../../notice/BridgeNotice'\nimport {\n ApproveContent,\n Area,\n BoringTooltip,\n Center,\n CenterX,\n CenterY,\n CrossNoticeEdge,\n TokenWithName,\n WithoutStyleInput,\n} from '../../style'\n\nconst Bridge = ({handleNotice}: {handleNotice: (arg: ReactNode) => void}) => {\n const query = useQuery()\n const history = useHistory()\n\n const {t} = useTranslation()\n const {account, chainId} = useWeb3React()\n const chainID = chainId ?? CHAIN_ETHER\n\n const {showModal} = useModal()\n\n const twowayAddress = TWOWAY_ADDRESSES[chainID]\n const twowayContract = useContract(twowayAddress, TwowayCenterABI.abi)\n\n const tmpFromChainIDs = useMemo(() => (!isTestnet(chainId) ? PRODUCTION_TWOWAY_CHAIN_IDS : TWOWAY_CHAIN_IDS), [\n chainId,\n ])\n const fromChainIDs = useMemo(() => tmpFromChainIDs.filter((id) => id !== CHAIN_XDAI), [tmpFromChainIDs])\n\n const toChainIDs = useMemo(() => fromChainIDs.filter((chainID) => chainID !== chainId), fromChainIDs)\n const [toID, setToID] = useState(toChainIDs[0])\n\n const tokens = useCommonTwowayTokens(chainId, toID)\n const initTokenAddress = useMemo(() => {\n const ts = tokens?.map((t) => t.address)\n const t = query.get('token')\n if (t && ts?.findIndex((ti) => ti === t) > -1) {\n return t\n } else {\n return (tokens && tokens.length > 0 && tokens[0].address) || ''\n }\n }, [tokens])\n\n useEffect(() => {\n const f = query.get('from')\n query.delete('from')\n history.push({search: query.toString()})\n if (f && chainId && chainId > 0 && Number(f) !== chainId) {\n setupNetwork(Number(f))\n .then(() => {\n query.delete('from')\n history.push({search: query.toString()})\n window.location.reload()\n })\n .catch((e) => console.error('Setup network: ', e))\n }\n }, [])\n\n const [tokenAddress, setTokenAddress] = useState(initTokenAddress)\n useEffect(() => setTokenAddress(initTokenAddress), [initTokenAddress])\n const token = tokens.find((t) => t?.address === tokenAddress)\n\n const realToken = useMemo(() => twowayToken2Token(token), [token])\n const {balance, allowance, aprDoing, approved, approve} = useApproval(realToken, twowayAddress)\n\n const {lockBalance} = useTwowayLockBalance('o' + token?.symbol, toID)\n\n const diff0 = 18 - (token?.decimals ?? 18)\n const maxInput = BigNumber.minimum(\n new BigNumber(balance).multipliedBy(10 ** diff0),\n new BigNumber(lockBalance)\n ).toString()\n\n const [first, setFirst] = useState(true)\n const [amount, setAmount] = useState('')\n const debounceAmount = useDebounce(amount, 300)\n const [address, setAddress] = useState('')\n const debounceAddress = useDebounce(address, 300)\n const [addressNotice, setAddressNotice] = useState('')\n const [addressStatus, setAddressStatus] = useState(false)\n\n const newApproved = new BigNumber(allowance).gte(\n new BigNumber(amount === '' ? 0 : amount).multipliedBy(10 ** (token?.decimals ?? 18))\n )\n\n const [amountNotice, setAmountNotice] = useState('')\n const [amountStatus, setAmountStatus] = useState('')\n const [amountFlag, setAmountFlag] = useState(false)\n\n const [doing, setDoing] = useState(false)\n const [openAddress, setOpenAddress] = useState(false)\n\n const otokens = useTwowayOTokens()\n const otoken = otokens.find((otoken) => otoken.symbol === 'o' + token?.symbol)\n const oTokenIndex = otokens.findIndex((otoken) => otoken.symbol === 'o' + token?.symbol)\n\n const {calcFee, fee, loading} = useTwowayCalculateFee(otoken?.address, chainID, toID, debounceAmount, lockBalance)\n console.log(fee)\n\n const can = new BigNumber(amount).gt(0) && (openAddress ? addressStatus : true) && amountFlag\n const fees = useTwowayFee(otoken?.address, toID)\n\n const fixFees = useTwowayFixFees(chainID, toID)\n const fixFee = fixFees && fixFees[oTokenIndex]\n const switchToken = (e: React.ChangeEvent<{value: unknown}>) => {\n setTokenAddress(e.target.value as string)\n query.set('token', e.target.value as string)\n history.push({search: query.toString()})\n }\n\n const gained = new BigNumber(amount ?? '0')\n .multipliedBy(10 ** 18)\n .minus(fee)\n .toString()\n\n useEffect(() => {\n if (debounceAddress === '') return\n if (!ethers.utils.isAddress(debounceAddress)) {\n setAddressNotice(\n t('assigned_address_notice', {\n network_name: Chains[toID].displayName,\n })\n )\n setAddressStatus(false)\n } else {\n setAddressStatus(true)\n setAddressNotice('')\n }\n }, [debounceAddress])\n\n useEffect(() => {\n const amountN = new BigNumber(amount).multipliedBy(10 ** 18)\n const balanceN = new BigNumber(balance)\n if (balanceN.lt(0.01) && !first) {\n setAmountNotice(t('balance_is_0'))\n setAmountStatus('error')\n setAmountFlag(false)\n } else if (amountN.gt(new BigNumber(balance).multipliedBy(10 ** diff0))) {\n setAmountNotice(t('balance_is_insufficient'))\n setAmountStatus('error')\n setAmountFlag(false)\n } else if (amountN.gt(maxInput)) {\n setAmountNotice(\n t('cross_maximum_limit_notice', {amount: displayBalance(maxInput, 18, get2WayTokenFixed(token?.symbol))})\n )\n setAmountStatus('error')\n setAmountFlag(false)\n } else if (amountN.lte(fixFee)) {\n setAmountNotice(\n t('cross_minimum_limit_notice', {amount: displayBalanceUp(fixFee, 18, get2WayTokenFixed(token?.symbol))})\n )\n setAmountStatus('error')\n setAmountFlag(false)\n } else if (amountN.gt(new BigNumber(lockBalance).multipliedBy(0.8))) {\n setAmountStatus('info')\n setAmountNotice(t('twoway_cross_limit_notice'))\n setAmountFlag(true)\n } else {\n setAmountStatus('')\n setAmountNotice('')\n setAmountFlag(true)\n }\n }, [debounceAmount, fixFee, lockBalance, balance])\n\n useEffect(() => {\n // const status = getTwowayFeeStatus(lockBalance)\n handleNotice(\n <>\n \n {t('fee')}\n \n \n {t('network_fee')}: {displayBalance(fixFee, 18, get2WayTokenFixed(token?.symbol))} {token?.symbol}\n \n \n {t('tx_fee_rate')}: {calcFee}\n \n {token?.symbol !== 'IZI' && (\n <>\n \n {t('twoway_bridge_fee_notice_1')}\n \n \n \n ≥ {get2WayLimit(token?.symbol, 0)} {token?.symbol},{' '}\n {t('fee_rate', {fee: displayBalance(fees.fees[2], 16) + '%'})};\n \n \n ≥ {get2WayLimit(token?.symbol, 1)} {token?.symbol},{' '}\n {t('fee_rate', {fee: displayBalance(fees.fees[1], 16) + '%'})};\n \n \n {' '}\n < {get2WayLimit(token?.symbol, 1)} {token?.symbol},{' '}\n {t('fee_rate', {fee: displayBalance(fees.fees[0], 16) + '%'})}.\n \n \n \n )}\n \n }\n >\n \n \n \n {displayBalance(fee, 18, get2WayTokenFixed(token?.symbol))}\n \n \n \n {t('total_liquidity')}\n \n {displayBalance(lockBalance, 18, get2WayTokenFixed(token?.symbol))}\n \n \n \n )\n }, [fee, lockBalance, t, toID, fixFee, calcFee])\n\n const crossOut = async () => {\n try {\n const finalAddress = !openAddress ? account : address\n setDoing(true)\n console.log(\n `CrossOut(tokenAddress: ${token?.address}, twoway: ${twowayAddress}, amount: ${ethers.utils.parseUnits(\n amount,\n token?.decimals\n )}, to: ${finalAddress}, toID: ${toID})`\n )\n\n let args = {}\n if (isOriginToken(chainId, token)) {\n args = {\n value: ethers.utils.parseUnits(amount, token?.decimals),\n }\n }\n\n const tx = await twowayContract?.crossOut(\n token?.address,\n toID,\n finalAddress,\n ethers.utils.parseUnits(amount, token?.decimals),\n args\n )\n await tx.wait()\n toast(\n \n )\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n }\n\n return (\n \n {/* {!isTwowayChain(chainId) && (\n \n {!chainId && (\n \n )}\n {chainId && t('not_support_notice', {current_chain_name: Chains[chainID].displayName})}\n \n )} */}\n {/*Two-way Bridge on Metis is still under development and will come online shortly.*/}\n \n \n From\n \n {\n query.set('from', chainId?.toString())\n history.push({search: query.toString()})\n }}\n changeNetwork={true}\n chainIDs={fromChainIDs}\n onChange={(id: number) => setToID(id)}\n selectCurrentChain={true}\n />\n \n \n \n Send\n \n {t('balance')}: {displayBalance(balance, token?.decimals, get2WayTokenFixed(token?.symbol))}\n \n \n \n }\n >\n {tokens?.map((token) => {\n return (\n \n \n \n {chainID === CHAIN_BLAST && token?.symbol === 'USDC'\n ? 'USDB'\n : token?.displayName\n ? token?.displayName\n : token.symbol}\n \n \n )\n })}\n \n ) => {\n verifyNumericInput(e, setAmount)\n setFirst(false)\n }}\n />\n {\n setAmount(getMaxValue(maxInput, 18, get2WayTokenFixed(token?.symbol)))\n setFirst(false)\n }}\n />\n \n \n {amountNotice}\n
\n \n
\n \n \n To\n \n {\n query.set('to', id?.toString())\n history.push({search: query.toString()})\n setToID(id)\n }}\n />\n setOpenAddress(!openAddress)}\n sx={{\n cursor: 'pointer',\n color: 'primary.main',\n }}\n >\n {openAddress ? '- ' : '+ '}\n {t('send_to')}\n \n \n {openAddress && (\n <>\n \n \n Address\n \n \n ) => setAddress(e.target.value)}\n />\n \n \n {addressNotice}\n \n )}\n \n \n {t('receive_estimated')}\n \n \n \n \n {loading && }\n {!loading && displayBalance(gained, 18, get2WayTokenFixed(token?.symbol))}\n \n \n \n {!account && (\n \n )}\n {account && !newApproved && (\n \n \n \n )}\n {account && newApproved && (\n \n )}\n \n )\n}\n\nexport default Bridge\n","import {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {useEffect, useState} from 'react'\nimport {toast} from 'react-toastify'\n\nimport TwowayCenterABI from '../abi/TwoWayCenter.json'\nimport ToastContent from '../components/ToastContent'\nimport {TWOWAY_ADDRESSES} from '../constants/twoway'\nimport {multicalls} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {getTwowayFeeStatus} from '../helpers/typography'\nimport {useMulticallContract, useMulticallContractWithProvider} from './contract'\nimport {ContractInputs} from './index'\nimport {useRelayChainID, useRelayChainProvider} from './useTwowayLockBalances'\n\nexport const useTwowayFee = (oTokenAddress: string | undefined, toID: number) => {\n const relayChainProvider = useRelayChainProvider()\n const relayChainID = useRelayChainID()\n const relayChainTwowayAddress = TWOWAY_ADDRESSES[relayChainID]\n const multicallContract = useMulticallContractWithProvider(relayChainProvider, relayChainID)\n\n const [fees, setFees] = useState(['0', '0', '0'])\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n const query = async () => {\n setLoading(true)\n if (!oTokenAddress) return\n const contract = getContract(relayChainProvider, relayChainTwowayAddress, TwowayCenterABI.abi)\n const calls: ContractInputs[] = []\n calls.push({contract: contract, method: 'ratioFeesHigh', args: [oTokenAddress, toID]})\n calls.push({contract: contract, method: 'ratioFeesMedium', args: [oTokenAddress, toID]})\n calls.push({contract: contract, method: 'ratioFeesLow', args: [oTokenAddress, toID]})\n\n console.log(2)\n const fees = await multicalls(multicallContract, calls).catch((e: any) => {\n console.error('multicalls 1:', e)\n return []\n })\n console.log(fees)\n if (fees) {\n // @ts-ignore\n const o = fees ? fees[0].toString() : '0'\n // @ts-ignore\n const i = fees ? fees[1].toString() : '0'\n // @ts-ignore\n const j = fees ? fees[2].toString() : '0'\n setFees([o, i, j])\n }\n setLoading(false)\n }\n\n query().catch((e) => {\n setFees(['0', '0', '0'])\n setLoading(false)\n console.error(e)\n })\n }, [oTokenAddress, toID])\n\n return {fees, loading}\n}\n","import {Box} from '@material-ui/core'\nimport {CHAIN_BSC, CHAIN_POLYGON, Chains} from '@w3u/chains'\nimport React, {useState} from 'react'\n\nimport Arrow from '../../../assets/images/arrow.svg'\nimport Right from '../../../assets/images/right.svg'\nimport Time from '../../../assets/images/time.svg'\nimport Wrong from '../../../assets/images/wrong.svg'\nimport {getScanTxLink} from '../../../helpers'\nimport {useInterval} from '../../../hooks/useInterval'\nimport {CenterX, CrossNoticeEdge} from '../../style'\n\nconst AddLiquidityNotice = ({\n fromID,\n txHash,\n amount,\n symbol,\n receivedAmount,\n}: {\n fromID: number\n txHash: string\n amount: string\n symbol: string\n receivedAmount: string\n}) => {\n const [status, setStatus] = useState(0)\n const [secondHash, setSecondHash] = useState('')\n\n useInterval(\n () => {\n fetch(`https://oportal.boringdao-api.com/twoway/api/v1/steps?tx_id=${txHash}`)\n .then((res) => res.json())\n .then((data) => {\n console.log(data)\n if (data.total_steps !== 0 && data.events.length === data.total_steps) {\n setStatus(1)\n setSecondHash(data.events[1].transaction)\n }\n })\n .catch((e) => console.error(e))\n },\n 3000,\n true\n )\n\n return (\n \n \n \n {status === 0 && time}\n {status === 1 && time}\n {status === 2 && time}\n arrow\n \n \n \n )\n}\n\nexport default AddLiquidityNotice\n","import {Box, Button, CircularProgress, InputBase, MenuItem, Select, Typography} from '@material-ui/core'\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward'\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace'\nimport {CHAIN_BLAST, CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, ReactNode, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {useHistory} from 'react-router-dom'\nimport {toast} from 'react-toastify'\n\nimport TwowayEdgeABI from '../../../abi/TwoWayEdge.json'\nimport {TWOWAY_ADDRESSES} from '../../../constants/twoway'\nimport {\n displayBalance,\n get2WayLimit,\n get2WayTokenFixed,\n getMaxValue,\n isOriginToken,\n verifyNumericInput,\n} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getChainIcon, getIcon} from '../../../helpers/icon'\nimport {useDebounce, useQuery, useTwowayOTokens, useTwowayTokenChainIDs, useTwowayTokens} from '../../../hooks'\nimport {useApproval} from '../../../hooks/useApproval'\nimport {useTwowayCalculateReward} from '../../../hooks/useTwowayCalculateReward'\nimport {useTwowayLockBalances} from '../../../hooks/useTwowayLockBalances'\nimport {twowayToken2Token} from '../../../modal/token'\nimport Max from '../../Max'\nimport AddLiquidityNotice from '../../notice/AddLiquidityNotice'\nimport {ApproveContent, Area, Center, CenterY, TokenWithName, WithoutStyleInput} from '../../style'\n\nconst Add = ({handleNotice}: {handleNotice: (arg: ReactNode) => void}) => {\n const {t} = useTranslation()\n const query = useQuery()\n const tokenName = query.get('token') || 'USDT'\n const history = useHistory()\n const {library, account, chainId} = useWeb3React()\n const chainID = useMemo(() => chainId ?? CHAIN_ETHER, [chainId])\n const tokens = useTwowayTokens(chainId)\n const oTokens = useTwowayOTokens()\n\n const twowayAddress = TWOWAY_ADDRESSES[chainID]\n\n let initToken = tokens.find((t) => t?.symbol === tokenName)\n if (initToken === undefined) {\n initToken = tokens.find((t) => t?.symbol === 'USDC')\n }\n\n const [tokenAddress, setTokenAddress] = useState(initToken?.address)\n const token = useMemo(() => tokens.find((t) => t?.address === tokenAddress), [tokenAddress])\n const oToken = useMemo(() => oTokens.find((ot) => ot.symbol === 'o' + token?.symbol), [token])\n\n const [amount, setAmount] = useState('')\n const debounceAmount = useDebounce(amount, 300)\n const [doing, setDoing] = useState(false)\n\n const realToken = useMemo(() => twowayToken2Token(token), [token])\n const {balance, allowance, approved, aprDoing, approve} = useApproval(realToken, twowayAddress)\n const can =\n new BigNumber(amount).gt(0) && new BigNumber(amount).multipliedBy(10 ** (token?.decimals || 18)).lte(balance)\n\n const newApproved = new BigNumber(allowance).gte(\n new BigNumber(amount === '' ? 0 : amount).multipliedBy(10 ** (token?.decimals ?? 18))\n )\n\n const rewards = useTwowayCalculateReward(oToken?.address, chainID, debounceAmount)\n const reward = useMemo(() => rewards?.find((r) => r.chainID === chainID), [chainID, rewards])\n const [showReward, setShowReward] = useState(false)\n const {lockBalances, loading} = useTwowayLockBalances()\n const currentLockBalances = lockBalances.find((lock) => lock.tokenName === 'o' + token?.symbol)\n const lockBalance = currentLockBalances?.balances.find((l) => l.chainID === chainID)\n\n const ids = useTwowayTokenChainIDs(tokenName.replace('o', ''))\n\n useEffect(() => setShowReward(new BigNumber(lockBalance?.balance ?? '0').lte(50 * 10000 * 10 ** 18)), [lockBalance])\n\n useEffect(() => {\n const rs = rewards?.sort((f, t) => {\n if (new BigNumber(f.reward ?? '0').lte(t.reward ?? '0')) {\n return 1\n }\n return -1\n })\n handleNotice(\n <>\n \n {t('bonus_calculation')}\n \n \n {t('chain')}\n {t('liquidity')}\n {t('estimated_bonus')}\n \n {rs &&\n rs.map((reward) => {\n return (\n <>\n {ids.includes(reward.chainID) && (\n \n \n token\n \n \n \n token\n \n {displayBalance(\n currentLockBalances?.balances.find((b) => b.chainID === reward.chainID)?.balance,\n 18,\n get2WayTokenFixed(token?.symbol)\n )}\n \n \n \n\n \n \n {new BigNumber(amount == '' ? 0 : amount).eq(0) ? (\n 0\n ) : (\n <>\n token\n \n {displayBalance(reward.reward, 18, get2WayTokenFixed(token?.symbol))}\n \n \n )}\n \n \n \n )}\n \n )\n })}\n \n )\n }, [lockBalance, t, rewards])\n\n const switchToken = (e: React.ChangeEvent<{value: unknown}>) => {\n const to = tokens.find((token) => token.address === (e.target.value as string))\n query.set('token', to?.symbol || 'USDT')\n history.push({search: query.toString()})\n setTokenAddress(e.target.value as string)\n }\n\n const deposit = async () => {\n const twowayContract = getContract(library, twowayAddress, TwowayEdgeABI.abi, account)\n setDoing(true)\n try {\n const value = ethers.utils.parseUnits(amount, token?.decimals || 18)\n\n let args = {}\n if (isOriginToken(chainId, token)) {\n args = {\n value: value,\n }\n }\n\n console.log(\n `Deposit(tokenAddress: ${token?.address}, amount: ${value}), isOrigin: ${isOriginToken(\n chainID,\n token\n )}, value: ${value}`\n )\n const tx = await twowayContract?.deposit(token?.address, value, args)\n await tx.wait()\n setAmount('')\n toast(\n \n )\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n }\n\n return (\n <>\n \n {\n query.delete('action')\n query.delete('token')\n history.push({search: query.toString()})\n }}\n />\n {t('add_liquidity')}\n \n \n {t('twoway_add_notice_1')}\n \n \n {t('twoway_add_notice_2')}\n {t('twoway_add_notice_3')}\n \n\n \n \n Add\n \n {t('balance')}: {displayBalance(balance, token?.decimals, get2WayTokenFixed(token?.symbol))}\n \n \n \n }\n >\n {tokens?.map((token) => {\n return (\n \n \n \n {chainID === CHAIN_BLAST && token?.symbol === 'USDC' ? 'USDB' : token.symbol}\n \n \n )\n })}\n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(balance, token?.decimals, get2WayTokenFixed(token?.symbol)))} />\n \n \n
\n \n
\n\n \n \n {t('receive_on_polygon')}\n \n \n \n \n {amount || displayBalance('0', 18, get2WayTokenFixed(token?.symbol))}\n \n \n \n\n {showReward && (\n \n {t('twoway_reward_notice', {number: get2WayLimit(token?.symbol, 0) + ' ' + token?.symbol})}\n \n \n \n {displayBalance(reward?.reward, 18, get2WayTokenFixed(token?.symbol))}\n \n \n \n )}\n\n {!newApproved && (\n \n \n \n )}\n {newApproved && (\n \n )}\n \n )\n}\n\nexport default Add\n","import {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useEffect, useState} from 'react'\n\nimport TwowayCenterABI from '../abi/TwoWayCenter.json'\nimport {PRODUCTION_TWOWAY_CHAIN_IDS, TWOWAY_ADDRESSES, TWOWAY_CHAIN_IDS} from '../constants/twoway'\nimport {multicalls} from '../helpers'\nimport {getUrlProvider, isTestnet} from '../helpers/provider'\nimport {useContractWithProvider, useMulticallContractWithProvider} from './contract'\nimport {ContractInputs} from './index'\nimport {useRelayChainID} from './useTwowayLockBalances'\n\ninterface TwowayCalculateRewardInterface {\n chainID: number\n reward: string | undefined\n}\n\nexport const useTwowayCalculateReward = (oTokenAddress: string | undefined, fromID: number, amount: string) => {\n const {library, chainId} = useWeb3React()\n const relayChainID = useRelayChainID()\n const relayChainTwowayAddress = TWOWAY_ADDRESSES[relayChainID]\n const provider = chainId === relayChainID ? library : getUrlProvider(relayChainID)\n const multicallContract = useMulticallContractWithProvider(provider, relayChainID)\n const centerContract = useContractWithProvider(provider, relayChainTwowayAddress, TwowayCenterABI.abi)\n const ids = !isTestnet(chainId) ? PRODUCTION_TWOWAY_CHAIN_IDS : TWOWAY_CHAIN_IDS\n\n const [rewards, setRewards] = useState()\n\n useEffect(() => {\n const query = async () => {\n if (!oTokenAddress) return\n // if (new BigNumber(amount || '0').lte(0)) return\n const calls: ContractInputs[] = []\n ids.map((id) =>\n calls.push({\n contract: centerContract,\n method: 'calculateReward',\n args: [oTokenAddress, id, ethers.utils.parseEther(amount || '0')],\n })\n )\n multicalls(multicallContract, calls)\n .then((values) => {\n const results: TwowayCalculateRewardInterface[] = ids.map((id, i) => {\n return {\n chainID: id,\n reward: values[i]?.toString(),\n }\n })\n\n setRewards(results)\n })\n .catch((e: any) => {\n console.error(`Multicalls twoway calculate reward(${relayChainID}):`, e)\n return ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0']\n })\n }\n\n query().catch((e) => console.error(e))\n }, [amount, oTokenAddress, fromID])\n\n return rewards\n}\n","import {Box, createStyles, Dialog, makeStyles, Theme, DialogActions, Button} from '@material-ui/core'\nimport React, {ReactNode} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n main: {\n '& .MuiPaper-root': {\n maxWidth: '460px !important',\n },\n },\n wallet: {\n display: 'flex',\n alignItems: 'center',\n border: '1px solid #e0e0e0',\n borderRadius: '8px',\n padding: '16px 20px',\n cursor: 'pointer',\n position: 'relative',\n '&.active': {\n background: '#fafafa',\n borderColor: theme.palette.primary.main,\n '& span': {\n display: 'block',\n top: '10px',\n left: '20px',\n width: '8px',\n height: '8px',\n marginRight: '10px',\n borderRadius: '8px',\n background: '#BCE369',\n },\n },\n '&:hover': {\n border: `1px solid ${theme.palette.primary.main}`,\n },\n '& img': {\n marginLeft: 'auto',\n },\n },\n grow: {\n flexGrow: 1,\n },\n address: {\n '& img': {\n marginLeft: '5px',\n cursor: 'pointer',\n },\n },\n })\n)\n\nconst ConfirmModal = ({\n open,\n close,\n message,\n onConfirm,\n}: {\n open: boolean\n close: any\n message: ReactNode\n onConfirm: () => void\n}): JSX.Element => {\n const classes = useStyles()\n const {t} = useTranslation()\n const handleConfirm = () => {\n if (onConfirm) {\n onConfirm()\n }\n }\n\n return (\n \n {message}\n \n \n \n \n \n )\n}\n\nexport default ConfirmModal\n","import {Box} from '@material-ui/core'\nimport {CHAIN_BSC, CHAIN_POLYGON, Chains} from '@w3u/chains'\nimport React, {useState} from 'react'\n\nimport Arrow from '../../../assets/images/arrow.svg'\nimport Right from '../../../assets/images/right.svg'\nimport Time from '../../../assets/images/time.svg'\nimport Wrong from '../../../assets/images/wrong.svg'\nimport {getScanTxLink} from '../../../helpers'\nimport {useInterval} from '../../../hooks/useInterval'\nimport {CenterX, CrossNoticeEdge} from '../../style'\n\nconst RemoveLiquidityNotice = ({\n toID,\n txHash,\n amount,\n symbol,\n receivedAmount,\n}: {\n toID: number\n txHash: string\n amount: string\n symbol: string\n receivedAmount: string\n}) => {\n const [status, setStatus] = useState(0)\n const [secondHash, setSecondHash] = useState('')\n\n useInterval(\n () => {\n fetch(`https://oportal.boringdao-api.com/twoway/api/v1/steps?tx_id=${txHash}`)\n .then((res) => res.json())\n .then((data) => {\n console.log(data)\n if (data.total_steps !== 0 && data.events.length === data.total_steps) {\n setStatus(1)\n setSecondHash(data.events[1].transaction)\n }\n })\n .catch((e) => console.error(e))\n },\n 3000,\n true\n )\n\n return (\n \n \n \n {status === 0 && time}\n {status === 1 && time}\n {status === 2 && time}\n arrow\n \n \n \n )\n}\n\nexport default RemoveLiquidityNotice\n","import {Box, Button, CircularProgress, InputBase, MenuItem, Select, Typography} from '@material-ui/core'\nimport {HelpOutline} from '@material-ui/icons'\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward'\nimport KeyboardBackspaceIcon from '@material-ui/icons/KeyboardBackspace'\nimport {CHAIN_METIS, CHAIN_POLYGON, CHAIN_POLYGON_MUMBAI} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, ReactNode, useEffect, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {useHistory} from 'react-router-dom'\nimport {toast} from 'react-toastify'\n\nimport ERC20ABI from '../../../abi/ERC20.json'\nimport TwowayCenterABI from '../../../abi/TwoWayCenter.json'\nimport {PRODUCTION_TWOWAY_CHAIN_IDS, TWOWAY_ADDRESSES, TWOWAY_CHAIN_IDS} from '../../../constants/twoway'\nimport {displayBalance, get2WayLimit, get2WayTokenFixed, getMaxValue, verifyNumericInput} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getIcon} from '../../../helpers/icon'\nimport {setupNetwork} from '../../../helpers/network'\nimport {isTestnet} from '../../../helpers/provider'\nimport {useAllChainIdsFor2WayToken, useDebounce, useQuery, useTwowayOTokens} from '../../../hooks'\nimport {useAllowances} from '../../../hooks/useAllowances'\nimport {useTokenBalances} from '../../../hooks/useTokenBalances'\nimport {useTwowayCalculateFee} from '../../../hooks/useTwowayCalculateFee'\nimport {useTwowayFixFees} from '../../../hooks/useTwowayFixFee'\nimport {useTwowayLockBalance} from '../../../hooks/useTwowayLockBalances'\nimport ChainSwitcher from '../../ChainSwitcher'\nimport Max from '../../Max'\nimport ConfirmModal from '../../modal/ConfirmModal'\nimport AddLiquidityNotice from '../../notice/AddLiquidityNotice'\nimport RemoveLiquidityNotice from '../../notice/RemoveLiquidityNotice'\nimport RemoveLiquidity from '../../peg/RemoveLiquidity'\nimport {ApproveContent, Area, Center, CenterY, TokenWithName, WithoutStyleInput, BoringTooltip} from '../../style'\n\nconst Remove = ({handleNotice}: {handleNotice: (arg: ReactNode) => void}) => {\n const {t} = useTranslation()\n const query = useQuery()\n const tokenName = query.get('token') || 'oUSDT'\n const history = useHistory()\n const {library, account, chainId} = useWeb3React()\n const chainID = chainId ?? CHAIN_POLYGON\n const isCorrectNetwork = chainID === CHAIN_POLYGON\n const tokens = useTwowayOTokens()\n const balances = useTokenBalances(tokens, account)\n\n const twowayAddress = TWOWAY_ADDRESSES[chainID]\n\n const token = tokens.find((t) => t?.symbol === tokenName)\n const tokenIndex = tokens.findIndex((t) => t?.symbol === tokenName)\n const [tokenAddress, setTokenAddress] = useState(token?.address || '')\n const selectedToken = useMemo(() => tokens.find((t) => t.address === tokenAddress), [tokenAddress])\n const allChainIds = useAllChainIdsFor2WayToken(selectedToken?.symbol.replace('o', ''))\n const [amount, setAmount] = useState('')\n const debounceAmount = useDebounce(amount, 300)\n const [doing, setDoing] = useState(false)\n const [aprDoing, setAprDoing] = useState(false)\n\n const fromChainIDs = !isTestnet(chainId) ? PRODUCTION_TWOWAY_CHAIN_IDS : TWOWAY_CHAIN_IDS\n const toChainIDs = useMemo(() => allChainIds.filter((chainId) => fromChainIDs.includes(chainId)), [allChainIds])\n const [toID, setToID] = useState(toChainIDs[0])\n\n const allowances = useAllowances(tokens, twowayAddress, account)\n const approved = new BigNumber(allowances[tokenAddress]).gt(balances[tokenAddress])\n\n const can = new BigNumber(amount).gt(0) && new BigNumber(amount).multipliedBy(10 ** 18).lte(balances[tokenAddress])\n\n const {lockBalance} = useTwowayLockBalance(token?.symbol, toID)\n const {calcFee, fee} = useTwowayCalculateFee(token?.address, chainID, toID, debounceAmount, lockBalance)\n\n const [amountNotice, setAmountNotice] = useState('')\n const [amountStatus, setAmountStatus] = useState('')\n const [amountFlag, setAmountFlag] = useState(false)\n const [openNotice, setOpenNotice] = useState(false)\n\n const fixFees = useTwowayFixFees(chainID, toID)\n const fixFee = fixFees && fixFees[tokenIndex]\n\n const originTokenSymbol = token?.symbol.replace('o', '')\n\n const maxInput = BigNumber.minimum(\n new BigNumber(balances[tokenAddress] ?? '0'),\n new BigNumber(lockBalance)\n ).toString()\n\n const switchToken = (e: React.ChangeEvent<{value: unknown}>) => {\n const to = tokens.find((token) => token.address === (e.target.value as string))\n query.set('token', to?.symbol || 'oUSDT')\n history.push({search: query.toString()})\n setTokenAddress(e.target.value as string)\n }\n\n const gained = useMemo(\n () =>\n new BigNumber(amount ?? '0')\n .multipliedBy(10 ** 18)\n .minus(fee)\n .toString(),\n [fee]\n )\n\n useEffect(() => {\n handleNotice(\n <>\n \n {t('fee')}\n \n \n {t('network_fee')}: {displayBalance(fixFee, 18, get2WayTokenFixed(token?.symbol))} {originTokenSymbol}\n \n \n {t('tx_fee_rate')}: {calcFee}\n \n {originTokenSymbol !== 'IZI' && (\n <>\n \n {t('twoway_bridge_fee_notice_1')}\n \n \n \n ≥ {get2WayLimit(originTokenSymbol, 0)} {originTokenSymbol}, {t('fee_rate', {fee: '0.05%'})};\n \n \n ≥ {get2WayLimit(originTokenSymbol, 1)} {originTokenSymbol}, {t('fee_rate', {fee: '0.3%'})};\n \n \n {' '}\n < {get2WayLimit(originTokenSymbol, 1)} {originTokenSymbol}, {t('fee_rate', {fee: '1%'})}.\n \n \n \n )}\n \n }\n >\n \n \n \n {displayBalance(fee, 18, get2WayTokenFixed(token?.symbol))}\n \n \n \n {t('total_liquidity')}\n \n {displayBalance(lockBalance, 18, get2WayTokenFixed(token?.symbol))}\n \n \n \n )\n }, [lockBalance, fee, calcFee, t, token])\n\n const approving = async () => {\n const tokenContract = getContract(library, token?.address, ERC20ABI.abi, account)\n setAprDoing(true)\n try {\n console.log(`Approve(tokenAddress: ${token?.address}, spender: ${twowayAddress}, account: ${account})`)\n const tx = await tokenContract?.approve(twowayAddress, ethers.constants.MaxUint256)\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setAprDoing(false)\n }\n\n useEffect(() => {\n const amountN = new BigNumber(amount).multipliedBy(10 ** 18)\n if (amountN.gt(balances[tokenAddress]) || amountN.eq(0)) {\n setAmountNotice(t('insufficient_balance'))\n setAmountStatus('error')\n setAmountFlag(false)\n } else if (amountN.gt(lockBalance)) {\n setAmountStatus('error')\n setAmountNotice(\n t('twoway_remove_liquidity_maximum_notice', {\n maximum_amount: displayBalance(lockBalance, 18, get2WayTokenFixed(token?.symbol)),\n })\n )\n setAmountFlag(true)\n } else if (amountN.lte(fixFee)) {\n setAmountNotice(\n t('twoway_remove_liquidity_minimum_notice', {\n minimum_amount: displayBalance(fixFee, 18, get2WayTokenFixed(token?.symbol)),\n })\n )\n setAmountStatus('error')\n setAmountFlag(false)\n } else {\n setAmountStatus('')\n setAmountNotice('')\n setAmountFlag(true)\n }\n }, [debounceAmount, toID])\n\n const withdraw = async () => {\n setOpenNotice(false)\n const twowayContract = getContract(library, twowayAddress, TwowayCenterABI.abi, account)\n setDoing(true)\n try {\n console.log(`Withdraw(tokenAddress: ${token?.address}, toID: ${toID})`)\n const tx = await twowayContract?.withdraw(token?.address, toID, account, ethers.utils.parseEther(amount))\n await tx.wait()\n toast(\n \n )\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n }\n\n return (\n \n {/* {chainId !== CHAIN_POLYGON && chainId !== CHAIN_POLYGON_MUMBAI && (\n \n {t('only_polygon_remove')}\n \n )} */}\n setOpenNotice(false)}\n onConfirm={withdraw}\n message={\n <>\n Fee Notice\n {t('fee_notice', {fee: displayBalance(fee, 18, get2WayTokenFixed(token?.symbol)), symbol: tokenName})}\n \n }\n />\n \n {\n query.delete('action')\n query.delete('token')\n history.push({search: query.toString()})\n }}\n />\n {t('remove_liquidity')}\n \n \n {t('twoway_add_notice_1')}\n \n \n {t('twoway_add_notice_2')}\n {t('twoway_add_notice_3')}\n \n \n \n To\n \n setToID(id)} />\n \n \n \n {t('remove')}\n \n {t('balance')}: {displayBalance(balances[tokenAddress], token?.decimals, get2WayTokenFixed(token?.symbol))}\n \n \n \n }\n >\n {tokens?.map((token) => {\n return (\n \n token\n {token.symbol}\n \n )\n })}\n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(maxInput, token?.decimals, get2WayTokenFixed(token?.symbol)))} />\n \n \n {amountNotice}\n
\n \n
\n \n \n {t('receive_estimated')}\n \n \n \n {displayBalance(gained, 18, get2WayTokenFixed(token?.symbol))}\n \n \n {!isCorrectNetwork && (\n {\n setupNetwork(CHAIN_POLYGON)\n .then(() => {\n window.location.reload()\n })\n .catch((e) => console.error('Setup network: ', e))\n }}\n >\n Switch to Polygon\n \n )}\n {!approved && isCorrectNetwork && (\n \n )}\n {approved && isCorrectNetwork && (\n \n )}\n \n )\n}\n\nexport default Remove\n","import {Box, Button, CircularProgress, Typography} from '@material-ui/core'\nimport AddCircleOutlineIcon from '@material-ui/icons/AddCircleOutline'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport React, {ReactNode, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {NavLink, useHistory} from 'react-router-dom'\n\nimport ERC20ABI from '../../../abi/ERC20.json'\nimport LiquidityBG from '../../../assets/images/liquidity_bg.png'\nimport {displayBalance, get2WayTokenFixed} from '../../../helpers'\nimport {getContract} from '../../../helpers/contract'\nimport {getIcon} from '../../../helpers/icon'\nimport {useQuery, useTwowayOTokens} from '../../../hooks'\nimport {useMulticallContractWithProvider} from '../../../hooks/contract'\nimport {useInterval} from '../../../hooks/useInterval'\nimport {useTokenBalances, useTokenBalancesWithMulticallContract} from '../../../hooks/useTokenBalances'\nimport {useRelayChainID, useRelayChainProvider} from '../../../hooks/useTwowayLockBalances'\nimport {twowayToken2Token} from '../../../modal/token'\nimport {Area, Center, CenterY, TokenWithName} from '../../style'\nimport Add from '../Add'\nimport add from '../Add'\nimport Remove from '../Remove'\n\nconst Liquidity = ({handleNotice}: {handleNotice: (arg: ReactNode) => void}) => {\n const {t} = useTranslation()\n const {account} = useWeb3React()\n const query = useQuery()\n const action = query.get('action')\n const history = useHistory()\n\n const otokens = useTwowayOTokens()\n const tokens = useMemo(() => otokens.map((token) => twowayToken2Token(token)), [otokens])\n const relayChainID = useRelayChainID()\n const relayChainProvider = useRelayChainProvider()\n const multicall = useMulticallContractWithProvider(relayChainProvider, relayChainID)\n const balances = useTokenBalancesWithMulticallContract(multicall, tokens, account)\n\n const findToken = (address: string) => tokens.find((token) => token.address === address)\n\n let hadLiquidity = false\n for (const address in balances) {\n if (new BigNumber(balances[address]).gt(10 ** 16)) hadLiquidity = true\n }\n\n if (action === 'add') return \n\n if (action === 'remove') return \n\n return (\n <>\n \n {Object.keys(balances).length === 0 && }\n \n {Object.keys(balances).length === 0 && !hadLiquidity && (\n <>\n \n {t('user_havent_liquidity')}\n \n \n bg\n \n \n )}\n {\n query.append('action', 'add')\n history.push({search: query.toString()})\n }}\n sx={{\n background: 'rgba(0, 104, 255, .1)',\n borderRadius: '12px',\n height: '60px',\n color: 'rgba(0, 104, 255, 1)',\n cursor: 'pointer',\n }}\n >\n {t('add_liquidity')}\n \n \n {hadLiquidity && (\n \n {t('your_liquidity')}\n \n )}\n\n {Object.keys(balances).map((address) => {\n const token = findToken(address)\n const symbol = token?.symbol ?? ''\n\n if (new BigNumber(balances[address]).lte(10 ** 15)) return \n\n return (\n \n \n \n \n {displayBalance(balances[address], 18, get2WayTokenFixed(token?.symbol))}\n \n \n \n \n {\n query.append('action', 'add')\n query.append('token', symbol.replace('o', ''))\n history.push({search: query.toString()})\n }}\n >\n {t('add')}\n \n \n \n {\n query.append('action', 'remove')\n query.append('token', symbol)\n history.push({search: query.toString()})\n }}\n >\n {t('remove')}\n \n \n \n \n \n \n \n \n \n )\n })}\n \n )\n}\n\nexport default Liquidity\n","import {Box, Card, Tab, Tabs, useTheme} from '@material-ui/core'\nimport React, {ReactNode, useEffect, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {useHistory} from 'react-router-dom'\n\nimport {Center} from '../../components/style'\nimport Bridge from '../../components/twoway/Bridge'\nimport Liquidity from '../../components/twoway/Liquidity'\nimport {useQuery} from '../../hooks'\nimport {useSwitchChain} from '../../hooks/useSwitchChain'\n\nconst Twoway = () => {\n const query = useQuery()\n const history = useHistory()\n const tabValue = query.get('tab')\n const tabIndex = tabValue ? (tabValue === '1' || tabValue === '0' || tabValue === '2' ? tabValue : 0) : 0\n const [tab, setTab] = useState(Number(tabIndex))\n const theme = useTheme()\n const {t} = useTranslation()\n const action = query.get('action')\n\n useSwitchChain()\n\n const [notice, setNotice] = useState(null)\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTab(newValue)\n const params = new URLSearchParams()\n if (query) {\n params.append('tab', String(newValue))\n } else {\n params.delete('tab')\n }\n history.push({search: params.toString()})\n }\n\n return (\n \n \n \n \n \n \n {/**/}\n \n {tab % 2 === 0 && setNotice(children)} />}\n {tab % 2 === 1 && setNotice(children)} />}\n {/*{tab === 2 && }*/}\n \n {tab === 1 && action === 'add' && (\n \n \n {notice}\n \n \n )}\n {(tab % 2 === 0 || (tab === 1 && action === 'remove')) && (\n \n \n {notice}\n \n \n )}\n \n \n )\n}\n\nexport default Twoway\n","import {Box, Button, CircularProgress, Dialog, DialogProps, Grid, Typography} from '@material-ui/core'\nimport {CHAIN_POLYGON} from '@w3u/chains'\nimport React, {useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport TwowayChefABI from '../../../../abi/TwoWayChef.json'\nimport {TWOWAY_CHEF_ADDRESSES} from '../../../../constants/twoway'\nimport {displayBalance, hadBoringReward} from '../../../../helpers'\nimport {getIcon} from '../../../../helpers/icon'\nimport {useContract} from '../../../../hooks/contract'\nimport {useRelayChainID} from '../../../../hooks/useTwowayLockBalances'\nimport {TwowayChefInfo} from '../../../../modal/chef'\nimport {InputWrapper, LPSingleToken, TokenWithName} from '../../../style'\n\ntype Props = DialogProps & {\n poolInfo: TwowayChefInfo\n}\nconst TwowayChefClaimModal = ({poolInfo, ...props}: Props): JSX.Element => {\n const {t} = useTranslation()\n\n const [doing, setDoing] = useState(false)\n const relayChainID = useRelayChainID()\n const chefAddress = TWOWAY_CHEF_ADDRESSES[relayChainID]\n const chefContract = useContract(chefAddress, TwowayChefABI.abi)\n\n const claiming = async () => {\n try {\n setDoing(true)\n const tx = await chefContract?.deposit(poolInfo.token?.pid, 0).catch((e: any) => console.error(e))\n await tx.wait()\n if (props !== undefined) {\n // @ts-ignore\n props.onClose()\n }\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n close()\n }\n\n return (\n \n \n \n {t('claim')}\n \n {hadBoringReward(poolInfo) && (\n \n \n {displayBalance(poolInfo.earned[0])}\n \n )}\n \n \n {displayBalance(poolInfo.earned[1])}\n \n \n \n \n {\n if (props) {\n // @ts-ignore\n props.onClose()\n }\n }}\n size={'large'}\n fullWidth={true}\n variant={'contained'}\n color={'inherit'}\n >\n {t('cancel')}\n \n \n \n \n {doing && }\n {t('claim')}\n \n \n \n \n \n \n )\n}\n\nexport default TwowayChefClaimModal\n","import {Box, Button, CircularProgress, Dialog, DialogProps, Grid, InputBase, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport TwowayChefABI from '../../../../abi/TwoWayChef.json'\nimport {TWOWAY_CHEF_ADDRESSES} from '../../../../constants/twoway'\nimport {displayBalance, getMaxValue, verifyNumericInput} from '../../../../helpers'\nimport {getIcon} from '../../../../helpers/icon'\nimport {useContract} from '../../../../hooks/contract'\nimport {useRelayChainID} from '../../../../hooks/useTwowayLockBalances'\nimport {TwowayChefInfo} from '../../../../modal/chef'\nimport Max from '../../../Max'\nimport {InputWrapper, Label, LPSingleToken, TokenWithName} from '../../../style'\n\ntype Props = DialogProps & {\n poolInfo: TwowayChefInfo\n}\n\nconst TwowayChefStakeModal = ({poolInfo, ...props}: Props): JSX.Element => {\n const {t} = useTranslation()\n\n const [amount, setAmount] = useState('')\n const [doing, setDoing] = useState(false)\n const relayChainID = useRelayChainID()\n const chefAddress = TWOWAY_CHEF_ADDRESSES[relayChainID]\n const chefContract = useContract(chefAddress, TwowayChefABI.abi)\n\n const staking = async () => {\n try {\n setDoing(true)\n const tx = await chefContract\n ?.deposit(poolInfo.token?.pid, ethers.utils.parseEther(amount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n if (props !== undefined) {\n // @ts-ignore\n props.onClose()\n }\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n close()\n }\n\n return (\n \n \n \n {t('stake')}\n \n \n \n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(poolInfo.balance, 18))} />\n \n \n \n \n {\n if (props !== undefined) {\n // @ts-ignore\n props.onClose()\n }\n }}\n size={'large'}\n fullWidth={true}\n variant={'contained'}\n color={'inherit'}\n >\n {t('cancel')}\n \n \n \n \n {doing && }\n {t('stake')}\n \n \n \n \n \n \n )\n}\n\nexport default TwowayChefStakeModal\n","import {Box, Button, CircularProgress, Dialog, DialogProps, Grid, InputBase, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport TwowayChefABI from '../../../../abi/TwoWayChef.json'\nimport {TWOWAY_CHEF_ADDRESSES} from '../../../../constants/twoway'\nimport {displayBalance, getMaxValue, verifyNumericInput} from '../../../../helpers'\nimport {getIcon} from '../../../../helpers/icon'\nimport {useContract} from '../../../../hooks/contract'\nimport {useRelayChainID} from '../../../../hooks/useTwowayLockBalances'\nimport {TwowayChefInfo} from '../../../../modal/chef'\nimport Max from '../../../Max'\nimport {InputWrapper, Label, LPSingleToken, TokenWithName} from '../../../style'\n\ntype Props = DialogProps & {\n poolInfo: TwowayChefInfo\n}\n\nconst TwowayChefWithdrawModal = ({poolInfo, ...props}: Props): JSX.Element => {\n const {t} = useTranslation()\n\n const [amount, setAmount] = useState('')\n const [doing, setDoing] = useState(false)\n\n const relayChainID = useRelayChainID()\n const chefAddress = TWOWAY_CHEF_ADDRESSES[relayChainID]\n const chefContract = useContract(chefAddress, TwowayChefABI.abi)\n\n const withdrawing = async () => {\n try {\n setDoing(true)\n const tx = await chefContract\n ?.withdraw(poolInfo.token?.pid, ethers.utils.parseEther(amount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n if (props !== undefined) {\n // @ts-ignore\n props.onClose()\n }\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n close()\n }\n\n return (\n \n \n \n {t('withdraw')}\n \n \n \n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(poolInfo.yourStaked, 18))} />\n \n \n \n \n {\n if (props) {\n // @ts-ignore\n props.onClose()\n }\n }}\n size={'large'}\n fullWidth={true}\n variant={'contained'}\n color={'inherit'}\n >\n {t('cancel')}\n \n \n \n \n {doing && }\n {t('withdraw')}\n \n \n \n \n \n \n )\n}\n\nexport default TwowayChefWithdrawModal\n","import {Box, Button} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport {useModal} from 'mui-modal-provider'\nimport React, {useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ERC20ABI from '../../abi/ERC20.json'\nimport {TWOWAY_CHEF_ADDRESSES} from '../../constants/twoway'\nimport {displayBalance, hadBoringReward} from '../../helpers'\nimport {displayTwowayBoringAPY, displayTwowayOTokenAPY} from '../../helpers/calc'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\nimport {setupNetwork} from '../../helpers/network'\nimport {useRelayChainID} from '../../hooks/useTwowayLockBalances'\nimport {TwowayChefInfo} from '../../modal/chef'\nimport WalletsModal from '../modal/WalletsModal'\nimport TwowayChefClaimModal from '../modal/twoway/TwowayChefClaimModal'\nimport TwowayChefStakeModal from '../modal/twoway/TwowayChefStakeModal'\nimport TwowayChefWithdrawModal from '../modal/twoway/TwowayChefWithdrawModal'\nimport {ApproveContent, CenterY, TokenWithName} from '../style'\n\nconst TwowayChefItem = ({poolInfo, boringPrice}: {poolInfo: TwowayChefInfo; boringPrice: string}) => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const [approveDoing, setApproveDoing] = useState(false)\n\n const {showModal} = useModal()\n\n const relayChainID = useRelayChainID()\n const chefAddress = TWOWAY_CHEF_ADDRESSES[relayChainID]\n\n const approved = useMemo(() => new BigNumber(poolInfo.balance).lt(poolInfo.allowance), [poolInfo])\n\n const change = async (chainID: number) => {\n await setupNetwork(chainID)\n .then(() => window.location.reload())\n .catch((e) => console.error('Setup network: ', e))\n }\n\n const approving = async () => {\n try {\n setApproveDoing(true)\n const tokenAddress = poolInfo.token?.address\n console.debug(`Approve(token: ${tokenAddress}, spender: ${chefAddress})`)\n const tokenContract = getContract(library, tokenAddress, ERC20ABI.abi, account)\n const tx = await tokenContract\n .approve(chefAddress, ethers.constants.MaxUint256)\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setApproveDoing(false)\n }\n\n return (\n \n \n \n \n \n {hadBoringReward(poolInfo) && (\n \n Boring  \n {displayTwowayBoringAPY(poolInfo, boringPrice)}%\n \n )}\n \n \n {displayTwowayOTokenAPY(poolInfo)}%\n \n \n {displayBalance(poolInfo.totalStaked)}\n {displayBalance(poolInfo.balance)}\n {displayBalance(poolInfo.yourStaked)}\n showModal(TwowayChefClaimModal, {poolInfo: poolInfo})}\n sx={{\n cursor: 'pointer',\n '&:hover': {\n color: 'primary.main',\n },\n }}\n >\n {hadBoringReward(poolInfo) && (\n \n Boring  \n {displayBalance(poolInfo.earned[0])}\n \n )}\n \n \n {displayBalance(poolInfo.earned[1])}\n \n \n \n {chainId !== poolInfo.token?.chainID && account && (\n \n )}\n {account && approved && chainId === poolInfo.token?.chainID && (\n \n \n showModal(TwowayChefStakeModal, {poolInfo: poolInfo})}\n size={'small'}\n variant={'contained'}\n >\n {t('stake')}\n \n \n showModal(TwowayChefWithdrawModal, {poolInfo: poolInfo})}\n disabled={new BigNumber(poolInfo.yourStaked).lte(0)}\n size={'small'}\n variant={'outlined'}\n >\n {t('withdraw')}\n \n \n )}\n {account && !approved && chainId === poolInfo.token?.chainID && (\n \n )}\n {!account && (\n \n )}\n \n \n )\n}\n\nexport default TwowayChefItem\n","import {Box, Button} from '@material-ui/core'\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight'\nimport {CHAIN_ETHER, CHAIN_POLYGON} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {useModal} from 'mui-modal-provider'\nimport React, {useState} from 'react'\nimport {useTranslation} from 'react-i18next'\nimport {NavLink} from 'react-router-dom'\n\nimport PairV2ABI from '../../abi/SwapPairV2.json'\nimport {hadBoringReward} from '../../helpers'\nimport {displayAPY, displayTwowayBoringAPY, displayTwowayOTokenAPY} from '../../helpers/calc'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\nimport {setupNetwork} from '../../helpers/network'\nimport {useInterval} from '../../hooks/useInterval'\nimport {PoolInfo, TwowayChefInfo} from '../../modal/chef'\nimport ConvertModal from '../modal/ConvertModal'\nimport WalletsModal from '../modal/WalletsModal'\nimport {CenterY, LPSingleToken, TokenWithName} from '../style'\n\nconst TwowayChefItemMobile = ({poolInfo, boringPrice}: {poolInfo: TwowayChefInfo; boringPrice: string}) => {\n const {t} = useTranslation()\n const {library, chainId, account} = useWeb3React()\n\n const {showModal} = useModal()\n\n const change = async (chainID: number) => {\n await setupNetwork(chainID)\n .then(() => window.location.reload())\n .catch((e) => console.error('Setup network: ', e))\n }\n\n return (\n \n \n \n \n \n {hadBoringReward(poolInfo) && (\n \n Boring\n   {displayTwowayBoringAPY(poolInfo, boringPrice)}%\n \n )}\n \n \n {displayTwowayOTokenAPY(poolInfo)}%\n \n \n \n {chainId !== poolInfo.token?.chainID && account && (\n change(poolInfo.token?.chainID ?? CHAIN_ETHER)}>\n \n \n )}\n {chainId === poolInfo.token?.chainID && (\n \n \n \n )}\n {!account && (\n showModal(WalletsModal)}\n size={'small'}\n variant={'contained'}\n color={'primary'}\n disableElevation\n >\n Unlock\n \n )}\n \n \n )\n}\n\nexport default TwowayChefItemMobile\n","import {Box, Grid, Typography} from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport React, {useEffect, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport {displayBalance} from '../../../helpers'\nimport {getIcon} from '../../../helpers/icon'\nimport {TwowayChefInfo} from '../../../modal/chef'\nimport {Block, CenterY} from '../../style'\n\nconst ChefMeta = ({pools, boringPrice}: {pools: TwowayChefInfo[] | undefined; boringPrice: string}) => {\n const {t} = useTranslation()\n const [total, setTotal] = useState()\n const [your, setYour] = useState()\n const [reward, setReward] = useState()\n\n useEffect(() => {\n let total = new BigNumber(0)\n let your = new BigNumber(0)\n let rewards = new BigNumber(0)\n\n pools &&\n pools.map((pool) => {\n if (pool.token?.symbol === 'oIZI') {\n total = new BigNumber(pool.totalStaked).multipliedBy(0.09).plus(total)\n your = new BigNumber(pool.yourStaked).multipliedBy(0.09).plus(your)\n } else if (pool.token?.symbol === 'oETH') {\n total = new BigNumber(pool.totalStaked).multipliedBy(1000).plus(total)\n your = new BigNumber(pool.yourStaked).multipliedBy(1000).plus(your)\n } else if (pool.token?.symbol === 'oFIN') {\n total = new BigNumber(pool.totalStaked).multipliedBy(0.0166).plus(total)\n your = new BigNumber(pool.yourStaked).multipliedBy(0.0166).plus(your)\n } else {\n total = new BigNumber(pool.totalStaked).plus(total)\n your = new BigNumber(pool.yourStaked).plus(your)\n }\n\n rewards = new BigNumber(pool.earned[0]).plus(rewards)\n })\n\n setTotal(total.toString())\n setYour(your.toString())\n setReward(rewards.toString())\n }, [pools, boringPrice])\n\n return (\n \n \n \n \n \n \n \n \n \n {t('total_staked')}\n {displayBalance(total)}\n \n \n \n \n \n \n \n \n \n \n \n {t('your_staked')}\n {displayBalance(your)}\n \n \n \n \n \n \n \n \n dollar\n \n \n {t('rewards')}\n {displayBalance(reward)}\n \n \n \n \n \n \n )\n}\n\nexport default ChefMeta\n","import {useWeb3React} from '@web3-react/core'\nimport {useState} from 'react'\n\nimport ERC20ABI from '../abi/ERC20.json'\nimport TwowayChefABI from '../abi/TwoWayChef.json'\nimport {TWOWAY_CHEF_ADDRESSES} from '../constants/twoway'\nimport {multicalls} from '../helpers'\nimport {getContract} from '../helpers/contract'\nimport {getUrlProvider} from '../helpers/provider'\nimport {TwowayChefInfo} from '../modal/chef'\nimport {useContractWithProvider, useMulticallContractWithProvider} from './contract'\nimport {ContractInputs, useTwowayOTokens} from './index'\nimport {useInterval} from './useInterval'\nimport {useRelayChainID} from './useTwowayLockBalances'\n\nexport const useTwowayChef = (): TwowayChefInfo[] | undefined => {\n const {library, chainId, account} = useWeb3React()\n const defaultAccount = account ?? '0xffffffffffffffffffffffffffffffffffffffff'\n const relayChainID = useRelayChainID()\n const twowayChefAddress = TWOWAY_CHEF_ADDRESSES[relayChainID]\n const provider = chainId === relayChainID ? library : getUrlProvider(relayChainID)\n const chefContract = useContractWithProvider(provider, twowayChefAddress, TwowayChefABI.abi)\n const multicallContract = useMulticallContractWithProvider(provider, relayChainID)\n const oTokens = useTwowayOTokens()\n\n const [result, setResult] = useState()\n\n useInterval(\n async () => {\n try {\n const promises: Promise[] = []\n oTokens.map((token) => {\n const tokenContract = getContract(provider, token?.address, ERC20ABI.abi)\n const calls: ContractInputs[] = []\n calls.push({contract: tokenContract, method: 'balanceOf', args: [defaultAccount]})\n calls.push({contract: tokenContract, method: 'balanceOf', args: [twowayChefAddress]})\n calls.push({contract: tokenContract, method: 'allowance', args: [defaultAccount, twowayChefAddress]})\n calls.push({contract: chefContract, method: 'userInfo', args: [token?.pid, defaultAccount]})\n calls.push({contract: chefContract, method: 'poolInfo', args: [token?.pid]})\n calls.push({contract: chefContract, method: 'totalAllocPoint', args: []})\n calls.push({contract: chefContract, method: 'perSecond', args: [token?.pid]})\n calls.push({contract: chefContract, method: 'earned', args: [token?.pid, defaultAccount]})\n promises.push(\n multicalls(multicallContract, calls).catch((e: any) => {\n console.error(`Multicalls twoway chef(${relayChainID}):`, e)\n return ['0', '0', '0', ['0', '0'], ['0', '0'], '0', ['0', '0'], ['0', '0']]\n })\n )\n })\n\n Promise.all(promises)\n .then((values) => {\n console.log(values)\n setResult(\n values.map((value, i) => ({\n token: oTokens[i],\n totalStaked: value[1].toString(),\n yourStaked: value[3][0].toString(),\n point: value[4][1].toString(),\n totalPoint: value[5].toString(),\n rewardPerSecond: [value[6][0].toString(), value[6][1].toString()],\n balance: value[0].toString(),\n allowance: value[2].toString(),\n earned: [value[7][0].toString(), value[7][1].toString()],\n }))\n )\n })\n .catch((e) => console.error('useTwowayChef: ', e))\n } catch (e) {\n console.error('promise', e)\n }\n },\n 2000,\n true\n )\n\n return result\n}\n","import {Box, CircularProgress, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER} from '@w3u/chains'\nimport React from 'react'\nimport {isMobile} from 'react-device-detect'\nimport {useTranslation} from 'react-i18next'\n\nimport FarmItemMobile from '../../components/FarmItemMobile'\nimport OldFarmItemMobile from '../../components/OldFarmItemMobile'\nimport TwowayChefItem from '../../components/TwowayChefItem'\nimport TwowayChefItemMobile from '../../components/TwowayChefItemMobile'\nimport {Block, CenterY} from '../../components/style'\nimport ChefMeta from '../../components/twoway/ChefMeta'\nimport {usePrice} from '../../hooks/usePrice'\nimport {useTwowayChef} from '../../hooks/useTwowayChef'\n\nconst TwowayFarm = () => {\n const {t} = useTranslation()\n const results = useTwowayChef()\n const boringPrice = usePrice('BORING')\n\n if (isMobile)\n return (\n \n TwowayV2 LP\n \n {t('twoway_lp_farm_desc')}\n \n {results && results.length > 0 ? (\n <>\n {results.map((pool) => (\n \n ))}\n \n ) : (\n \n \n \n )}\n \n )\n\n return (\n \n \n \n  \n Pool\n APR\n {t('total_staked')}\n {t('balance')}\n {t('your_staked')}\n {t('rewards')}\n \n \n {results && results.length > 0 ? (\n <>\n \n TwowayV2 LP\n \n \n {results.map((pool) => (\n \n ))}\n \n \n ) : (\n \n \n \n )}\n \n \n )\n}\n\nexport default TwowayFarm\n","import {Box, Button, CircularProgress, Grid, InputBase, Typography} from '@material-ui/core'\nimport {CHAIN_ETHER, CHAIN_POLYGON} from '@w3u/chains'\nimport {useWeb3React} from '@web3-react/core'\nimport BigNumber from 'bignumber.js'\nimport {ethers} from 'ethers'\nimport React, {ChangeEvent, useMemo, useState} from 'react'\nimport {useTranslation} from 'react-i18next'\n\nimport ERC20ABI from '../../abi/ERC20.json'\nimport TwowayChefABI from '../../abi/TwoWayChef.json'\nimport Max from '../../components/Max'\nimport {ApproveContent, CenterY, InputWrapper, Label, LPSingleToken, TokenWithName} from '../../components/style'\nimport {TWOWAY_CHEF_ADDRESSES} from '../../constants/twoway'\nimport {displayBalance, getMaxValue, hadBoringReward, verifyNumericInput} from '../../helpers'\nimport {getContract} from '../../helpers/contract'\nimport {getIcon} from '../../helpers/icon'\nimport {useQuery} from '../../hooks'\nimport {useContract} from '../../hooks/contract'\nimport {useTwowayChef} from '../../hooks/useTwowayChef'\nimport {useRelayChainID} from '../../hooks/useTwowayLockBalances'\n\nconst TwowayPool = (): JSX.Element => {\n const query = useQuery()\n const tokenName = query.get('token') || 'oUSDT'\n const {library, chainId, account} = useWeb3React()\n const pools = useTwowayChef()\n const pool = pools && pools?.find((pool) => pool.token?.symbol === tokenName)\n const {t} = useTranslation()\n const [amount, setAmount] = useState('')\n const [withdrawAmount, setWithdrawAmount] = useState('')\n const [doing, setDoing] = useState(false)\n\n const [approveDoing, setApproveDoing] = useState(false)\n const [withdrawDoing, setWithdrawDoing] = useState(false)\n const [claimDoing, setClaimDoing] = useState(false)\n\n const relayChainID = useRelayChainID()\n const chefAddress = TWOWAY_CHEF_ADDRESSES[relayChainID]\n const chefContract = useContract(chefAddress, TwowayChefABI.abi)\n\n const approving = async () => {\n try {\n setApproveDoing(true)\n const tokenAddress = pool?.token?.address\n const tokenContract = getContract(library, tokenAddress, ERC20ABI.abi, account)\n const tx = await tokenContract\n .approve(chefAddress, ethers.constants.MaxUint256)\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setApproveDoing(false)\n }\n\n const staking = async () => {\n try {\n setDoing(true)\n const tx = await chefContract\n ?.deposit(pool?.token?.pid, ethers.utils.parseEther(amount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setDoing(false)\n setAmount('')\n close()\n }\n\n const withdrawing = async () => {\n try {\n console.log(chefContract)\n console.log(pool)\n setWithdrawDoing(true)\n const tx = await chefContract\n ?.withdraw(pool?.token?.pid, ethers.utils.parseEther(withdrawAmount))\n .catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setWithdrawDoing(false)\n setWithdrawAmount('')\n close()\n }\n\n const claiming = async () => {\n try {\n setClaimDoing(true)\n const tx = await chefContract?.deposit(pool?.token?.pid, 0).catch((e: any) => console.error(e))\n await tx.wait()\n } catch (e) {\n console.error(e)\n }\n setClaimDoing(false)\n close()\n }\n\n const approved = useMemo(() => new BigNumber(pool?.balance ?? '0').lt(pool?.allowance ?? '0'), [pool])\n\n return (\n \n \n \n \n \n token\n {displayBalance(pool?.totalStaked)}\n \n \n {t('total_staked')}\n \n \n \n \n token\n {displayBalance(pool?.yourStaked)}\n \n \n {t('your_staked')}\n \n \n \n \n \n \n \n \n ) => verifyNumericInput(e, setAmount)}\n />\n setAmount(getMaxValue(pool?.balance ?? '0'))} />\n \n \n \n \n \n \n \n \n {doing && }\n {t('stake')}\n \n \n \n \n \n\n \n \n \n ) => verifyNumericInput(e, setWithdrawAmount)}\n />\n setWithdrawAmount(getMaxValue(pool?.yourStaked ?? '0'))} />\n \n \n \n {withdrawDoing && }\n {t('withdraw')}\n \n \n \n\n \n {t('claimable_rewards')}\n {hadBoringReward(pool) && (\n \n Boring\n   \n {displayBalance(pool?.earned[0])}\n \n )}\n \n \n {displayBalance(pool?.earned[1])}\n \n \n \n {claimDoing && }\n {t('claim')}\n \n \n )\n}\n\nexport default TwowayPool\n","import {Card, Container, createStyles, makeStyles} from '@material-ui/core'\nimport React, {useContext} from 'react'\nimport {Redirect, Route, Switch} from 'react-router-dom'\n\nimport Backed from '../components/Backed'\nimport Bar from '../components/Bar'\nimport Header from '../components/Header'\nimport {CtrContext} from '../contexts/Controller'\n// import {useQuery} from '../hooks'\nimport Data from './Data'\nimport Farm from './Farm'\nimport History from './History'\nimport NFT from './NFT'\nimport NFTBridge from './NFTBridge'\nimport NativeBridgeV2 from './NativeBridgeV2'\nimport OldPool from './OldPool'\nimport PegBridge from './PegBridge'\nimport Pool from './Pool'\nimport Twoway from './Twoway'\nimport TwowayFarm from './TwowayFarm'\nimport TwowayPool from './TwowayPool'\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n main: {\n minHeight: 'calc(100vh - 200px)',\n marginTop: theme.spacing(6),\n padding: `${theme.spacing(8)} ${theme.spacing(10)}`,\n fontSize: '14px',\n [theme.breakpoints.down('sm')]: {\n padding: theme.spacing(4),\n },\n },\n })\n)\n\nfunction App(): JSX.Element {\n const classes = useStyles()\n // const query = useQuery()\n\n const {version} = useContext(CtrContext)\n\n return (\n <>\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {version === 'V1' && (\n <>\n \n \n \n \n \n )}\n {version === 'V2' && (\n <>\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n {version === 'V1' ? : }\n {version === 'V1' ? : }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default App\n","import {JsonRpcProvider, Web3Provider} from '@ethersproject/providers'\nimport {ExternalProvider, JsonRpcFetchFunc} from '@ethersproject/providers/src.ts/web3-provider'\nimport {CssBaseline} from '@material-ui/core'\nimport {CHAIN_POLYGON} from '@w3u/chains'\nimport {Web3ReactProvider} from '@web3-react/core'\nimport ModalProvider from 'mui-modal-provider'\nimport React from 'react'\nimport {CookiesProvider} from 'react-cookie'\nimport ReactDOM from 'react-dom'\nimport {BrowserRouter as Router} from 'react-router-dom'\nimport {ToastContainer} from 'react-toastify'\nimport 'react-toastify/dist/ReactToastify.css'\n\nimport ThemeManager from './components/ThemeManager'\nimport Web3ReactManager from './components/Web3ReactManager'\nimport Controller from './contexts/Controller'\nimport Updater from './contexts/Updater'\nimport {getUrlProvider} from './helpers/provider'\nimport './i18n'\nimport App from './pages/App'\nimport './wdyr.js'\n\nfunction getLibrary(provider: ExternalProvider | JsonRpcFetchFunc): Web3Provider | JsonRpcProvider {\n // @ts-ignore\n // if (provider.chainId == 0x89) {\n // const library = getUrlProvider(CHAIN_POLYGON)\n // library.pollingInterval = 15000\n // return library\n // }\n\n const library = new Web3Provider(provider, 'any')\n library.pollingInterval = 15000\n return library\n}\n\nif (window.ethereum) {\n window.ethereum.autoRefreshOnNetworkChange = true\n}\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n)\n"],"sourceRoot":""}