{"version":3,"sources":["config/index.ts","hooks/useWeb3.ts","hooks/useTokenBalance.ts","hooks/useFarmDayTradeVolumeAndFeeEarn.ts","utils/formatBalance.ts","views/Farms/components/types.ts","views/Farms/components/Tooltip/Tooltip.tsx","views/Farms/components/FarmTable/Farm.tsx","views/Farms/components/FarmTable/Earned.tsx","views/Farms/components/FarmTable/Details.tsx","views/Farms/components/FarmTable/Multiplier.tsx","views/Farms/components/FarmTable/Liquidity.tsx","views/Farms/components/FarmTable/Platform.tsx","views/Farms/components/FarmTable/DayTradeVolume.tsx","utils/getLiquidityUrlPathParts.ts","utils/getLiquidityUrlPathPartsForPancake.ts","utils/callHelpers.ts","hooks/useContract.ts","utils/rollbar.ts","views/Farms/components/FarmTable/Actions/HarvestAction.tsx","hooks/useHarvest.ts","components/UnlockButton.tsx","hooks/useStake.ts","hooks/useUnstake.ts","components/ModalActions/ModalActions.tsx","components/ModalInput/ModalInput.tsx","utils/getBscScanLink.ts","views/Farms/components/DepositModal.tsx","views/Farms/components/WithdrawModal.tsx","views/Farms/components/FarmTable/Actions/StakedAction.tsx","hooks/useApprove.ts","views/Farms/components/FarmTable/Actions/ActionPanel.tsx","views/Farms/components/FarmTable/CellLayout.tsx","views/Farms/components/FarmTable/Row.tsx","views/Farms/components/FarmTable/FarmTable.tsx","utils/wallet.ts","components/Icon/IconApe.tsx","components/Icon/IconDebank.tsx","views/Farms/components/ViewPortfolio/PortfolioLink.tsx","views/Farms/components/ViewPortfolio/ViewPortfolio.tsx","views/Farms/components/Reward.tsx","components/Header/ContactInfo.tsx","components/ConnectWalletModal/ConnectWalletModal.tsx","components/AccountModal/AccountModal.tsx","components/BaseSwitch/BaseSwitch.tsx","components/SettingModal/SettingModal.tsx","components/SwitchNetwork/SwitchNetworkList.tsx","components/SwitchNetwork/SwitchNetworkDropdown.tsx","components/Header/ConnectWalletButton.tsx","hooks/useActiveWeb3React.ts","components/SwitchNetwork/SwitchNetworkAndConnectWalletModal.tsx","components/Header/Header.tsx","components/ConnectWalletButtonOnMobile/ConnectWalletButtonOnMobile.tsx","views/Farms/components/PoolName.tsx","views/Farms/Farms.tsx","hooks/useFarmTVL.ts"],"names":["BigNumber","config","EXPONENTIAL_AT","DECIMAL_PLACES","CAKE_PER_BLOCK","BLOCKS_PER_YEAR","useWeb3","library","useWeb3React","refEth","useRef","web3","setweb3","useState","Web3","getWeb3NoAccount","useEffect","current","useTokenBalance","tokenAddress","balance","setBalance","account","fastRefresh","useRefresh","async","contract","getBep20Contract","res","methods","balanceOf","call","fetchBalance","getBalanceNumber","decimals","displayBalance","dividedBy","pow","toNumber","getFullDisplayBalance","toFixed","MobileColumnSchema","id","name","translationId","sortable","label","DesktopColumnSchema","ViewMode","TooltipContent","styled","div","theme","zIndices","modal","tooltip","background","Container","Tooltip","content","children","IconImage","img","mediaQueries","lg","IconImage1","WrapContent","Text","p","InactiveMultiplier","Farm","pid","multiplier","stakedBalance","useFarmUser","images","useI18n","split","isToken","includes","showingLabel","map","i","src","alt","width","height","style","marginLeft","Label","sm","Amount","earned","Earned","earnings","toLocaleString","ArrowIcon","ChevronDownIcon","toggled","xs","Details","actionPanelToggled","isXl","useMatchBreakpoints","isMobile","color","MultiplierWrapper","colors","text","Multiplier","displayMultipler","toLowerCase","TranslateString","LiquidityWrapper","Liquidity","liquidity","displayLiquidity","Number","undefined","maximumFractionDigits","PlatformFeeIconWrap","md","Platform","percentageFee","span","Title","DayTradeVolume","dayTradeVolume","displayDayTradeVolume","toFormat","getLiquidityUrlPathParts","quoteTokenAdresses","tokenAddresses","firstPart","chainId","getWbnbAddress","secondPart","approve","lpContract","masterChefContract","options","address","ethers","constants","MaxUint256","send","from","stake","amount","enterStaking","times","toString","gas","on","tx","transactionHash","deposit","unstake","leaveStaking","withdraw","harvest","useMasterchef","useMemo","getMasterchefContract","rollbar","Rollbar","accessToken","process","environment","logToRollbar","level","message","args","argsExpected","push","console","log","Button","ActiveButton","Content","HarvestAction","userData","earningsBigNumber","cakePrice","usePriceCakeBusd","earningsBusd","multipliedBy","pendingTx","setPendingTx","onReward","farmPid","dispatch","useDispatch","useCallback","farmData","farmsConfig","find","f","logData","Object","assign","senderAddress","lpSymbol","lpAddress","lpAddresses","txHash","fetchFarmUserDataAsync","error","code","functionName","useHarvest","countUp","update","useCountUp","start","end","duration","separator","updateValue","fontSize","fontWeight","marginTop","onClick","UnlockButton","props","login","logout","useAuth","onPresentConnectModal","useWalletModal","useStake","onStake","stakesAmount","info","useUnstake","onUnstake","unstakeAmount","StyledModalActions","primaryDark","spacing","StyledModalAction","ModalActions","React","Children","child","input","isWarning","shadows","warning","inset","StyledInput","ValueSelect","ValueSelectActive","ValueSelectDisabled","ModalInput","max","symbol","onChange","onSelectMax","value","addLiquidityUrl","inputTitle","parseFloat","parts","length","selectedList","position","display","justifyContent","alignItems","padding","border","borderRadius","backgroundColor","e","target","placeholder","s","getBscScanLink","data","type","prefix","CancelButton","DepositModal","visible","onHide","onConfirm","onDismiss","tokenName","fullBalance","val","setVal","isDone","setDone","setTxHash","handleSelectMax","handleChange","spaceMode","useSettingMode","className","header","textAlign","rel","href","result","WithdrawModal","InActiveButton","RowItem","DepositButton","WithdrawButton","Staked","requestedApproval","setRequestedApproval","allowance","tokenBalance","showDepositModal","setShowDepositModal","showWithdrawModal","setShowWithdrawModal","isApproved","isGreaterThan","isMockPancakePool","liquidityUrlPathParts","rawStakedBalance","onApprove","useApprove","handleApprove","margin","ActionPanel","details","farm","poolType","tokenSymbol","dual","lpLabel","toUpperCase","replace","PoolType","LP_PANCAKE","getLiquidityUrlPathPartsForPancake","bsc","communityFarms","addLink","STAKE","LP","addLabel","borderBottom","StakedAction","paddingBottom","verticalAlign","borderRight","minHeight","borderLeft","textSubtle","ContentContainer","CellLayout","cells","platform","CellInner","StyledTr","tr","InActiveTr","EarnedMobileCell","td","AprMobileCell","FarmMobileCell","Row","setActionPanelToggled","toggleActionPanel","UseTr","isXs","isSm","tableSchema","columnNames","column","keys","key","columnIndex","indexOf","createElement","colSpan","TableWrapper","StyledTable","table","card","dropShadow","TableBody","tbody","TableHeader","thead","TableContainer","SortContainer","SortUp","SortDown","FarmTable","sortColumn","setSort","sortOrder","setOrder","setSortColumn","col","setSortOrder","order","tableWrapperEl","columns","rows","useTable","selected","c","renderSort","colName","sort","a","b","original","ref","row","registerToken","tokenDecimals","tokenImage","window","ethereum","request","method","params","image","Wrapper","svg","IconApe","viewBox","fill","xmlns","rx","d","IconDebank","opacity","PortfolioLink","to","h4","PortfolioWrapper","ViewPortfolio","apeUrl","debankUrl","TokenLink","primary","Reward","sum","boxShadow","top","left","alignSelf","flexDirection","ContactInfo","ConnectorNames","styleOption","ConnectWalletModal","DisplayWalletProvider","modalPosition","onLogin","localStorage","setItem","dismissableMask","role","BSC","WalletConnect","Injected","truncate","fullStr","strLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","AccountModal","walletProvider","getItem","rtl","diameter","seed","jsNumberForAddress","navigator","clipboard","writeText","open","removeItem","BaseSwitch","checked","onToggle","htmlFor","Divider","SettingModal","muteMode","useSelector","state","setting","toggleTheme","getTheme","isSpaceMode","THEME","SPACE_MODE","setSpaceMode","document","body","setAttribute","redirectPath","location","history","pushState","toggleMute","mute","getMute","setMuteMode","audio","getElementById","play","SwitchNetworkList","query","isAlpha","REACT_APP_ENV","SwitchNetworkDropdown","ImgSetting","ConnectWalletButton","isCorrectNetwork","show","setShow","showAccount","setAccountShow","showSetting","setShowSetting","toggleDropdown","setToggleDropdown","useDetectClickOutside","onTriggered","flex","preventDefault","prevState","useActiveWeb3React","useWeb3ReactCore","SwitchNetworkModal","walletName","setWalletName","web3ReactContext","provider","connector","getProvider","getProviderInfo","handleWalletName","walleTypes","iconPath","displayText","walletNameSupport","wallet","Right","Header","menu","showSelectChain","setShowSelectChain","baseZIndex","paddingTop","SwitchNetworkAndConnectWalletModal","ConnectWalletButtonOnMobile","Icon","Name","PoolName","Farms","pathname","useLocation","farmsLP","useFarms","bnbPrice","usePriceBnbBusd","activeFarms","filter","pancakeFarms","ethPriceUsd","usePriceEthBusd","farmDayTradeVolumeAndFeeEarn","setData","oneDayAgo","moment","utc","subtract","startOf","unix","wardenFarm","Promise","all","gql","groupOfFarm","pairDayDatas","farmObj","forEach","lpFeesfeeInOneDay","dailyVolumeUSD","feeYearly","reserveUSD","utils","getAddress","pairAddress","isNaN","fetchData","useFarmDayTradeVolumeAndFeeEarn","farmTVL","farms","addresses","pairs","useFarmTVL","v","sortOption","setSortOption","setQuery","stackedOnly","setStackedOnly","tokenFarms","stackedOnlyFarms","farmsList","farmsToDisplay","farmDayTradeVolumeAndFeeEarnToDisplay","farmTVLToDisplay","cakePriceVsBNB","tokenPriceVsQuote","farmsToDisplayWithAPY","tokenAmount","lpTotalInQuoteToken","cakeRewardPerBlock","poolWeight","cakeRewardPerYear","apy","quoteTokenSymbol","QuoteToken","BUSD","UST","USDT","ETH","CAKE","cakeApy","dualApy","rewardPerBlock","plus","Reflect","ownKeys","fee","volume","lowercaseQuery","tokenStaked","lpStaked","lpStakedPancake","tokenRowData","mapFarm","lpRowData","lpRowDataPancake","m1","m2","substring","r","getWadAddress","_columns","JSON","parse","stringify","renderStaking"],"mappings":"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","file":"static/js/5.035b9e0f.chunk.js","sourcesContent":["import BigNumber from 'bignumber.js/bignumber';\n\nBigNumber.config({\n\tEXPONENTIAL_AT: 1000,\n\tDECIMAL_PLACES: 80,\n});\n\nexport const CAKE_PER_BLOCK = new BigNumber(0);\nexport const BLOCKS_PER_YEAR = new BigNumber(10512000);\nexport const BSC_BLOCK_TIME = 3;\nexport const CAKE_POOL_PID = 1;\nexport const BASE_URL = 'https://www.wardenswap.finance';\nexport const BASE_EXCHANGE_URL = 'https://www.wardenswap.finance';\nexport const BASE_ADD_LIQUIDITY_URL = `https://liquidity.wardenswap.finance`;\nexport const BASE_LIQUIDITY_POOL_URL = `https://liquidity.wardenswap.finance`;\nexport const LOTTERY_MAX_NUMBER_OF_TICKETS = 50;\nexport const LOTTERY_TICKET_PRICE = 1;\n","import { useEffect, useState, useRef } from 'react';\nimport Web3 from 'web3';\nimport { useWeb3React } from '@web3-react/core';\nimport { getWeb3NoAccount } from 'utils/web3';\n\n/**\n * Provides a web3 instance using the provider provided by useWallet\n * with a fallback of an httpProver\n * Recreate web3 instance only if the provider change\n */\nconst useWeb3 = () => {\n\tconst { library } = useWeb3React();\n\tconst refEth = useRef(library);\n\tconst [web3, setweb3] = useState(library ? new Web3(library) : getWeb3NoAccount());\n\n\tuseEffect(() => {\n\t\tif (library !== refEth.current) {\n\t\t\tsetweb3(library ? new Web3(library) : getWeb3NoAccount());\n\t\t\trefEth.current = library;\n\t\t}\n\t}, [library]);\n\n\treturn web3;\n};\n\nexport default useWeb3;\n","import { useEffect, useState } from 'react';\nimport BigNumber from 'bignumber.js';\nimport { useWeb3React } from '@web3-react/core';\nimport { getBep20Contract, getCakeContract } from 'utils/contractHelpers';\nimport useWeb3 from './useWeb3';\nimport useRefresh from './useRefresh';\n\nexport const useTokenBalance = (tokenAddress: string) => {\n\tconst [balance, setBalance] = useState(new BigNumber(0));\n\tconst { account } = useWeb3React();\n\tconst web3 = useWeb3();\n\tconst { fastRefresh } = useRefresh();\n\n\tuseEffect(() => {\n\t\tconst fetchBalance = async () => {\n\t\t\tconst contract = getBep20Contract(tokenAddress, web3);\n\t\t\tconst res = await contract.methods.balanceOf(account).call();\n\t\t\tsetBalance(new BigNumber(res));\n\t\t};\n\n\t\tif (account) {\n\t\t\tfetchBalance();\n\t\t}\n\t}, [account, tokenAddress, web3, fastRefresh]);\n\n\treturn balance;\n};\n\nexport const useTotalSupply = () => {\n\tconst { slowRefresh } = useRefresh();\n\tconst [totalSupply, setTotalSupply] = useState();\n\n\tuseEffect(() => {\n\t\tasync function fetchTotalSupply() {\n\t\t\tconst cakeContract = getCakeContract();\n\t\t\tconst supply = await cakeContract.methods.totalSupply().call();\n\t\t\tsetTotalSupply(new BigNumber(supply));\n\t\t}\n\n\t\tfetchTotalSupply();\n\t}, [slowRefresh]);\n\n\treturn totalSupply;\n};\n\nexport const useBurnedBalance = (tokenAddress: string) => {\n\tconst [balance, setBalance] = useState(new BigNumber(0));\n\tconst { slowRefresh } = useRefresh();\n\tconst web3 = useWeb3();\n\n\tuseEffect(() => {\n\t\tconst fetchBalance = async () => {\n\t\t\tconst contract = getBep20Contract(tokenAddress, web3);\n\t\t\tconst res = await contract.methods.balanceOf('0x000000000000000000000000000000000000dEaD').call();\n\t\t\tsetBalance(new BigNumber(res));\n\t\t};\n\n\t\tfetchBalance();\n\t}, [web3, tokenAddress, slowRefresh]);\n\n\treturn balance;\n};\n\nexport default useTokenBalance;\n","import { useEffect, useState } from 'react';\nimport { request, gql } from \"graphql-request\"\nimport moment from 'moment'\nimport { ethers } from 'ethers'\nimport BigNumber from 'bignumber.js'\n\nconst WARDEN_FARM_SUBGRAPH_URL = process.env.REACT_APP_WARDEN_FARM_SUBGRAPH_URL\nconst PANCAKE_FARM_SUBGRAPH_URL = process.env.REACT_APP_PANCAKE_FARM_SUBGRAPH_URL\n\nexport interface ApiStatResponse {\n\t[address: string]: {\n\t\tdailyVolumeUSD: number,\n\t\treserveUSD: number,\n\t\tfeeYearly: number\n\t}\n}\n\nexport const useFarmDayTradeVolumeAndFeeEarn = () => {\n\tconst [data, setData] = useState(null);\n\n\tuseEffect(() => {\n\t\tconst fetchData = async () => {\n\t\t\tconst oneDayAgo = moment.utc().subtract(1, 'days').startOf('day').unix()\n\n\t\t\ttry {\n\t\t\t\tconst [wardenFarm] = await Promise.all([\n\t\t\t\t\trequest(\n\t\t\t\t\t\tWARDEN_FARM_SUBGRAPH_URL,\n\t\t\t\t\t\tgql`{\n\t\t\t\t\t\t\t\tpairDayDatas(where:{ date: ${oneDayAgo} }) {\n\t\t\t\t\t\t\t\tdate\n\t\t\t\t\t\t\t\tpairAddress\n\t\t\t\t\t\t\t\tdailyVolumeUSD\n\t\t\t\t\t\t\t\treserveUSD\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}`,\n\t\t\t\t\t)\n\t\t\t\t]);\n\t\t\t\t// request(\n\t\t\t\t// \tPANCAKE_FARM_SUBGRAPH_URL,\n\t\t\t\t// \tgql`\n\t\t\t\t// \t\t{\n\t\t\t\t// \t\t\tpairDayDatas(\n\t\t\t\t// \t\t\t\twhere: {\n\t\t\t\t// \t\t\t\t\tpairAddress_in: [\n\t\t\t\t// \t\t\t\t\t\t\"0xf70a40749006c7952186666c92f32b8f5c2129f9\"\n\t\t\t\t// \t\t\t\t\t\t\"0x7d6195b212dee1ba7de8404cfd319446cf17d71b\"\n\t\t\t\t// \t\t\t\t\t]\n\t\t\t\t// \t\t\t\t\tdate: ${oneDayAgo}\n\t\t\t\t// \t\t\t\t}\n\t\t\t\t// \t\t\t) {\n\t\t\t\t// \t\t\t\tdate\n\t\t\t\t// \t\t\t\tdailyVolumeUSD\n\t\t\t\t// \t\t\t\treserveUSD\n\t\t\t\t// \t\t\t\tpairAddress {\n\t\t\t\t// \t\t\t\t\tid\n\t\t\t\t// \t\t\t\t}\n\t\t\t\t// \t\t\t}\n\t\t\t\t// \t\t}\n\t\t\t\t// \t`,\n\t\t\t\t// ),\n\t\t\t\tconst wardenFarmPairsDayDatas = wardenFarm.pairDayDatas\n\t\t\t\t// const pancakeFarmPairsDayDatas = pancakeFarm.pairDayDatas.map((val) => {\n\t\t\t\t// \tconst newData = { ...val, pairAddress: val.pairAddress.id }\n\n\t\t\t\t// \treturn newData;\n\t\t\t\t// })\n\n\t\t\t\tconst groupOfFarm = [...wardenFarmPairsDayDatas]\n\t\t\t\tconst farmObj = {}\n\t\t\t\tgroupOfFarm.forEach(farm => {\n\t\t\t\t\tconst lpFeesfeeInOneDay = new BigNumber(farm.dailyVolumeUSD).times(0.0017)\n\t\t\t\t\tconst feeYearly = new BigNumber(lpFeesfeeInOneDay).div(farm.reserveUSD).times(100).times(365).toString()\n\t\t\t\t\tfarmObj[ethers.utils.getAddress(farm.pairAddress)] = {\n\t\t\t\t\t\tdailyVolumeUSD: Number(farm.dailyVolumeUSD),\n\t\t\t\t\t\treserveUSD: Number(farm.reserveUSD),\n\t\t\t\t\t\tfeeYearly: new BigNumber(feeYearly).isNaN() ? 0 : feeYearly,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\tsetData(farmObj)\n\t\t\t} catch (error) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tconsole.error('Unable to fetch data:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchData();\n\t}, []);\n\n\treturn data;\n}","import BigNumber from 'bignumber.js';\n\nexport const getBalanceNumber = (balance: BigNumber, decimals = 18) => {\n\tconst displayBalance = new BigNumber(balance).dividedBy(new BigNumber(10).pow(decimals));\n\treturn displayBalance.toNumber();\n};\n\nexport const getFullDisplayBalance = (balance: BigNumber, decimals = 18) => {\n\treturn balance.dividedBy(new BigNumber(10).pow(decimals)).toFixed();\n};\n","export type TableProps = {\n\tdata?: TableDataTypes[];\n\tselectedFilters?: string;\n\tsortBy?: string;\n\tsortDir?: string;\n\tonSort?: (value: string) => void;\n};\n\nexport type ColumnsDefTypes = {\n\tid: number;\n\tlabel: string;\n\tname: string;\n\ttranslationId: number;\n\tsortable: boolean;\n};\n\nexport type ScrollBarProps = {\n\tref: string;\n\twidth: number;\n};\n\nexport type TableDataTypes = {\n\tPOOL: string;\n\tAPY: string;\n\tEARNED: string;\n\tSTAKED: string;\n\tDETAILS: string;\n\tLINKS: string;\n};\n\nexport const MobileColumnSchema: ColumnsDefTypes[] = [\n\t{\n\t\tid: 1,\n\t\tname: 'farm',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: '',\n\t},\n\t{\n\t\tid: 2,\n\t\tname: 'platform',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'Fees earned (yr.)',\n\t},\n\t{\n\t\tid: 3,\n\t\tname: 'earned',\n\t\ttranslationId: 1072,\n\t\tsortable: true,\n\t\tlabel: 'Earned',\n\t},\n\t{\n\t\tid: 4,\n\t\tname: 'dayTradeVolume',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'Volume 24H',\n\t},\n\t{\n\t\tid: 5,\n\t\tname: 'liquidity',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'TVL',\n\t},\n\t{\n\t\tid: 6,\n\t\tname: 'details',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: '',\n\t},\n];\n\nexport const DesktopColumnSchema: ColumnsDefTypes[] = [\n\t{\n\t\tid: 1,\n\t\tname: 'farm',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'LP Tokens Name',\n\t},\n\t{\n\t\tid: 2,\n\t\tname: 'earned',\n\t\ttranslationId: 1072,\n\t\tsortable: true,\n\t\tlabel: 'Earned',\n\t},\n\t{\n\t\tid: 3,\n\t\tname: 'platform',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'Fees earned (yr.)',\n\t},\n\t{\n\t\tid: 5,\n\t\tname: 'dayTradeVolume',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'Volume 24H',\n\t},\n\t{\n\t\tid: 6,\n\t\tname: 'liquidity',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'TVL',\n\t},\n\t// {\n\t// id: 4,\n\t// name: 'liquidity',\n\t// translationId: 999,\n\t// sortable: true,\n\t// label: 'Liquidity',\n\t// },\n\t// {\n\t// id: 5,\n\t// name: 'multiplier',\n\t// translationId: 999,\n\t// sortable: true,\n\t// label: 'Multiplier',\n\t// },\n\t{\n\t\tid: 6,\n\t\tname: 'details',\n\t\ttranslationId: 999,\n\t\tsortable: false,\n\t\tlabel: 'Detail',\n\t},\n];\n\nexport enum ViewMode {\n\t'TABLE' = 'TABLE',\n\t'CARD' = 'CARD',\n}\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport interface TooltipProps {\n\tcontent: React.ReactNode;\n}\n\nconst TooltipContent = styled.div`\n\tbackground: var(--color-background-tooltip);\n\tpadding: 16px;\n\tborder-radius: 16px;\n\tcolor: #ffffff;\n\twidth: max-content;\n\tdisplay: none;\n\tpadding: 16px;\n\tmax-height: 500px;\n\tz-index: ${({ theme }) => theme.zIndices.modal};\n\tposition: absolute;\n\tbottom: calc(100% + 16px);\n\ttransform: translate(34px, 0);\n\tright: 0;\n\tmax-width: 246px;\n\n\t&:after {\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-left: 10px solid transparent;\n\t\tborder-right: 10px solid transparent;\n\t\tborder-top: 10px solid ${({ theme }) => theme.tooltip.background};\n\t\tbottom: 0;\n\t\tposition: absolute;\n\t\ttransform: translate(-34px, 9px);\n\t\tright: 0;\n\t}\n`;\n\nconst Container = styled.div`\n\tposition: relative;\n\tdisplay: inline-block;\n\t&:hover ${TooltipContent}, &:focus-within ${TooltipContent} {\n\t\tdisplay: block;\n\t}\n`;\n\nconst Tooltip: React.FunctionComponent = ({ content, children }) => {\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\t{content}\n\t\t\n\t);\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useFarmUser } from 'state/hooks';\nimport useI18n from 'hooks/useI18n';\nimport { getBalanceNumber } from 'utils/formatBalance';\n\nexport interface FarmProps {\n\tlabel: string;\n\tpid: number;\n\tmultiplier: string;\n}\n\nconst IconImage = styled.img`\n\twidth: 15px;\n\theight: 15px;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 33px;\n\t\theight: 33px;\n\t}\n`;\n\nconst IconImage1 = styled.img`\n\twidth: 15px;\n\theight: 15px;\n\tleft: 4px;\n\tposition: absolute;\n\ttop: 15;\n\tz-index: 10;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 33px;\n\t\theight: 33px;\n\t\tleft: 6px;\n\t}\n`;\n\nconst Container = styled.div`\n\tposition: relative;\n\tdisplay: inline-flex;\n\tflex-direction: column;\n\talign-items: center;\n\tvertical-align: middle;\n\t@media (max-width: 575px) {\n\t\tflex-direction: row;\n\t}\n`;\n\nconst WrapContent = styled.div`\n\tposition: relative;\n\tpadding-left: 16px;\n\tdisplay: flex;\n\talign-items: center;\n\tvertical-align: middle;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tpadding-left: 32px;\n\t}\n\n\t@media (max-width: 768px) {\n\t\talign-items: left;\n\t}\n`\n\nconst Text = styled.p`\n\tcolor: var(--color-text-2);\n\tfont-size: 12px;\n\tfont-weight: 500;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tfont-size: 14px;\n\t\tfont-weight: 700;\n\t}\n`;\n\nconst InactiveMultiplier = styled.div`\n\twidth: 70px;\n\theight: 30px;\n\tbackground: #838386;\n\tpadding-left: 7px;\n\tpadding-right: 7px;\n\tborder-radius: 11px;\n\tcolor: #fff;\n\tfont-weight: bold;\n\tfont-size: 13px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-left: 52px;\n\n\t@media (max-width: 768px) {\n\t\tfont-size: 12px;\n\t\twidth: 65px;\n\t\theight: 25px;\n\t\tmargin-left: 12px;\n\t}\n\n\t@media (max-width: 575px) {\n\t\tmargin-left: 28px;\n\t}\n`;\nconst Multiplier = styled.div`\n\twidth: 40px;\n\theight: 30px;\n\tcolor: #fff;\n\tfont-weight: bold;\n\tfont-size: 13px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-left: 15px;\n`;\n\nconst MultiplierContainer = styled.div`\n\tposition: relative;\n\ttext-align: center;\n\tmargin-left: 6px;\n`\nconst MultiplierText = styled.div`\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n\tfont-size: 13px;\n\tfont-weight: bold;\n\tcolor: #ffff\n`\n\nconst Farm: React.FunctionComponent = ({ label, pid, multiplier }) => {\n\tconst { stakedBalance } = useFarmUser(pid);\n\tconst TranslateString = useI18n();\n\tconst rawStakedBalance = getBalanceNumber(stakedBalance);\n\n\tconst images = label.split('-');\n\tconst isToken = !label.includes('-');\n\tconst showingLabel = isToken ? `${label}` : `${label} LP`;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{images.map((img, i) => {\n\t\t\t\t\tif (i === 0) {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t}\n\t\t\t\t\treturn ;\n\t\t\t\t})}\n\t\t\t\t
\n\t\t\t\t\t{showingLabel}\n\t\t\t\t
\n\t\t\t
\n\t\t\t{label === 'BNB-BIDR' ? Inactive : null }\n\t\t
\n\t);\n};\n\nexport default Farm;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport interface EarnedProps {\n\tearnings: number;\n\tpid: number;\n}\n\nconst Label = styled.div`\n\tdisplay: block;\n\tfont-weight: 500;\n\tfont-size: 10px;\n\tline-height: 11px;\n\tcolor: var(--color-text-5);\n\tmargin-bottom: 5px;\n\ttext-align: center;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tdisplay: none;\n\t}\n`;\n\nconst Amount = styled.div<{ earned: number }>`\n\tcolor: ${({ earned }) => (earned ? 'var(--color-text-2)' : 'var(--color-text-3)')};\n\tfont-size: 14px;\n\tdisplay: block;\n\talign-items: center;\n\ttext-align: center;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tcolor: ${({ earned }) => (earned ? 'var(--color-text-2)' : 'var(--color-text-3)')};\n\t}\n`;\n\nconst Earned: React.FunctionComponent = ({ earnings }) => {\n\tconst displayBalance = earnings !== null ? earnings.toLocaleString() : '0';\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t{displayBalance}\n\t\t\n\t);\n};\n\nexport default Earned;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { ChevronDownIcon, useMatchBreakpoints } from '@pancakeswap-libs/uikit';\n\ninterface DetailsProps {\n\tactionPanelToggled: boolean;\n}\n\nconst Container = styled.div`\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: flex-end;\n\tpadding-right: 8px;\n\tcolor: var(--color-text);\n\tfont-size: 14px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tpadding-right: 0px;\n\t}\n`;\n\nconst ArrowIcon = styled(ChevronDownIcon)<{ toggled: boolean }>`\n\ttransform: ${({ toggled }) => (toggled ? 'rotate(180deg)' : 'rotate(0)')};\n\theight: 16px;\n\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\theight: 25px;\n\t\twidth: 30px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\theight: 25px;\n\t\twidth: 30px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\theight: 16px;\n\t}\n`;\n\nconst Details: React.FC = ({ actionPanelToggled }) => {\n\tconst { isXl } = useMatchBreakpoints();\n\tconst isMobile = !isXl;\n\n\treturn (\n\t\t\n\t\t\t{!isMobile && 'Info'}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Details;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { HelpIcon } from '@pancakeswap-libs/uikit';\nimport useI18n from 'hooks/useI18n';\n\nimport Tooltip from '../Tooltip/Tooltip';\n\nexport interface MultiplierProps {\n\tmultiplier: string;\n}\n\nconst MultiplierWrapper = styled.div`\n\tcolor: ${({ theme }) => theme.colors.text};\n\twidth: 36px;\n\ttext-align: right;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\ttext-align: left;\n\t}\n`;\n\nconst Container = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\n\tsvg {\n\t\tmargin-left: 14px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tsvg {\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n`;\n\nconst Multiplier: React.FunctionComponent = ({ multiplier }) => {\n\tconst displayMultipler = multiplier ? multiplier.toLowerCase() : '-';\n\tconst TranslateString = useI18n();\n\n\treturn (\n\t\t\n\t\t\t{displayMultipler}\n\t\t\t\n\t\t\t\t\t\t{TranslateString(999, 'The multiplier represents the amount of CAKE rewards each farm gets.')}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{TranslateString(\n\t\t\t\t\t\t\t999,\n\t\t\t\t\t\t\t'For example, if a 1x farm was getting 1 CAKE per block, a 40x farm would be getting 40 CAKE per block.',\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default Multiplier;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport interface LiquidityProps {\n\tliquidity: number;\n}\n\nconst Label = styled.p`\n\tfont-weight: 500;\n\tfont-size: 10px;\n\tcolor: var(--color-text-2);\n\tmargin-right: 5px;\n\ttext-align: center;\n\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\tfont-size: 10px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tfont-size: 10px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tfont-size: 14px;\n\t}\n`;\n\nconst LiquidityWrapper = styled.div`\n\tmin-width: 110px;\n\tfont-weight: 600;\n\ttext-align: center;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\ttext-align: center;\n\t}\n`;\n\nconst Container = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\ttext-align: center;\n\n\tsvg {\n\t\tmargin-left: 14px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tsvg {\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n`;\n\nconst Liquidity: React.FunctionComponent = ({ liquidity }) => {\n\tconst displayLiquidity = liquidity\n\t\t? `$${Number(liquidity).toLocaleString(undefined, { maximumFractionDigits: 0 })}`\n\t\t: '-';\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Liquidity;\n","import React from 'react';\nimport styled from 'styled-components';\nimport Tooltip from '../Tooltip/Tooltip';\n\nexport interface PlatformProps {\n\ttype: string;\n\tpercentageFee?: number;\n}\n\nconst Container = styled.div`\n\tposition: relative;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tvertical-align: middle;\n\n`;\n\nconst Label = styled.p`\n\tdisplay: block;\n\ttext-align: center;\n\tfont-weight: 500;\n\tfont-size: 10px;\n\tcolor: var(--color-text-5);\n\tmargin-right: 5px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tdisplay: none;\n\t}\n`;\n\nconst PlatformFeeIconWrap = styled.div`\n\tdisplay: inline-block;\n\tposition: relative;\n\tmargin-left: 8px;\n\twidth: 16px;\n\theight: auto;\n\ttop: 3px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tdisplay: none;\n\t}\n`;\n\nconst Text = styled.div`\n\tfont-size: 20px;\n\tfont-weight: bold;\n\tcolor: var(--color-text-8);\n\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\tfont-size: 12px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.md} {\n\t\tfont-size: 15px;\n\t}\n`;\n\n\nconst Platform: React.FunctionComponent = ({ percentageFee }) => {\n\treturn (\n\t\t\n\t\t\t{ percentageFee !== undefined\n\t\t\t\t?\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{percentageFee}%\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tAnnualized earning base on 24hr trading volume\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\"icon-info\"\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default Platform;\n","import React from 'react';\nimport styled from 'styled-components';\nimport BigNumber from 'bignumber.js';\n\nexport interface DayTradeVolumeProps {\n\tdayTradeVolume: any;\n}\n\nconst Label = styled.span`\n\tfont-weight: 500;\n\tfont-size: 10px;\n\tcolor: var(--color-text-2);\n\tmargin-right: 5px;\n\ttext-align: center;\n\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\tfont-size: 10px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tfont-size: 10px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tfont-size: 14px;\n\t}\n`;\n\nconst Title = styled.span`\n\tdisplay: block;\n\ttext-align: center;\n\tfont-weight: 500;\n\tfont-size: 10px;\n\tcolor: var(--color-text-5);\n\tmargin-right: 5px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tdisplay: none;\n\t}\n`;\n\nconst DayTradeVolumeWrapper = styled.div`\n\tdisplay: inline-block;\n\tmin-width: 110px;\n\tfont-weight: 600;\n\ttext-align: center;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\ttext-align: center;\n\t}\n`;\n\nconst Container = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\ttext-align: center;\n\n\tsvg {\n\t\tmargin-left: 14px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tsvg {\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n`;\n\nconst DayTradeVolume: React.FunctionComponent = ({ dayTradeVolume }) => {\n\tconst displayDayTradeVolume = dayTradeVolume\n\t\t? `$${new BigNumber(dayTradeVolume).toFormat(2)}`\n\t\t: '';\n\n\treturn (\n\t\t
\n\t\t\t{ dayTradeVolume !== undefined\n\t\t\t\t?\n\t\t\t\t\n\t\t\t\t\tVolume 24H\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t
\n\t);\n};\n\nexport default DayTradeVolume;\n","import { getWbnbAddress } from 'utils/addressHelpers';\n\n// Constructing the two forward-slash-separated parts of the 'Add Liquidity' URL\n// Each part of the url represents a different side of the LP pair.\nconst getLiquidityUrlPathParts = ({ quoteTokenAdresses, tokenAddresses }) => {\n\tconst chainId = process.env.REACT_APP_CHAIN_ID;\n\tlet firstPart;\n\tif (quoteTokenAdresses[chainId] === getWbnbAddress()) {\n\t\tfirstPart = 'ETH';\n\t} else {\n\t\tfirstPart = quoteTokenAdresses[chainId];\n\t}\n\tconst secondPart = tokenAddresses[chainId];\n\treturn `${firstPart}/${secondPart}`;\n};\n\nexport default getLiquidityUrlPathParts;\n","import { getWbnbAddress } from 'utils/addressHelpers';\n\n// Constructing the two forward-slash-separated parts of the 'Add Liquidity' URL\n// Each part of the url represents a different side of the LP pair.\nconst getLiquidityUrlPathParts = ({ quoteTokenAdresses, tokenAddresses }) => {\n\tconst chainId = process.env.REACT_APP_CHAIN_ID;\n\tlet firstPart;\n\tif (quoteTokenAdresses[chainId] === getWbnbAddress()) {\n\t\tfirstPart = 'BNB';\n\t} else {\n\t\tfirstPart = quoteTokenAdresses[chainId];\n\t}\n\tconst secondPart = tokenAddresses[chainId];\n\treturn `${firstPart}/${secondPart}`;\n};\n\nexport default getLiquidityUrlPathParts;\n","import BigNumber from 'bignumber.js';\nimport { ethers } from 'ethers';\n\nexport const approve = async (lpContract, masterChefContract, account) => {\n\treturn lpContract.methods\n\t\t.approve(masterChefContract.options.address, ethers.constants.MaxUint256)\n\t\t.send({ from: account });\n};\n\nexport const stake = async (masterChefContract, pid, amount, account) => {\n\tif (pid === 0) {\n\t\treturn masterChefContract.methods\n\t\t\t.enterStaking(new BigNumber(amount).times(new BigNumber(10).pow(18)).toString())\n\t\t\t.send({ from: account, gas: 200000 })\n\t\t\t.on('transactionHash', (tx) => {\n\t\t\t\treturn tx.transactionHash;\n\t\t\t});\n\t}\n\n\treturn masterChefContract.methods\n\t\t.deposit(pid, new BigNumber(amount).times(new BigNumber(10).pow(18)).toString())\n\t\t.send({ from: account, gas: 200000 })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n\nexport const sousStake = async (sousChefContract, amount, decimals = 18, account) => {\n\treturn sousChefContract.methods\n\t\t.deposit(new BigNumber(amount).times(new BigNumber(10).pow(decimals)).toString())\n\t\t.send({ from: account, gas: 200000 })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n\nexport const sousStakeBnb = async (sousChefContract, amount, account) => {\n\treturn sousChefContract.methods\n\t\t.deposit()\n\t\t.send({ from: account, gas: 200000, value: new BigNumber(amount).times(new BigNumber(10).pow(18)).toString() })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n\nexport const unstake = async (masterChefContract, pid, amount, account) => {\n\tif (pid === 0) {\n\t\treturn masterChefContract.methods\n\t\t\t.leaveStaking(new BigNumber(amount).times(new BigNumber(10).pow(18)).toString())\n\t\t\t.send({ from: account, gas: 200000 })\n\t\t\t.on('transactionHash', (tx) => {\n\t\t\t\treturn tx.transactionHash;\n\t\t\t});\n\t}\n\n\treturn masterChefContract.methods\n\t\t.withdraw(pid, new BigNumber(amount).times(new BigNumber(10).pow(18)).toString())\n\t\t.send({ from: account, gas: 200000 })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n\nexport const sousUnstake = async (sousChefContract, amount, decimals = 18, account) => {\n\t// shit code: hard fix for old CTK and BLK\n\tif (sousChefContract.options.address === '0x3B9B74f48E89Ebd8b45a53444327013a2308A9BC') {\n\t\treturn sousChefContract.methods\n\t\t\t.emergencyWithdraw()\n\t\t\t.send({ from: account })\n\t\t\t.on('transactionHash', (tx) => {\n\t\t\t\treturn tx.transactionHash;\n\t\t\t});\n\t}\n\tif (sousChefContract.options.address === '0xBb2B66a2c7C2fFFB06EA60BeaD69741b3f5BF831') {\n\t\treturn sousChefContract.methods\n\t\t\t.emergencyWithdraw()\n\t\t\t.send({ from: account })\n\t\t\t.on('transactionHash', (tx) => {\n\t\t\t\treturn tx.transactionHash;\n\t\t\t});\n\t}\n\n\treturn sousChefContract.methods\n\t\t.withdraw(new BigNumber(amount).times(new BigNumber(10).pow(decimals)).toString())\n\t\t.send({ from: account, gas: 200000 })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n\nexport const sousEmegencyUnstake = async (sousChefContract, amount, account) => {\n\treturn sousChefContract.methods\n\t\t.emergencyWithdraw()\n\t\t.send({ from: account })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n\nexport const harvest = async (masterChefContract, pid, account) => {\n\tif (pid === 0) {\n\t\treturn masterChefContract.methods\n\t\t\t.leaveStaking('0')\n\t\t\t.send({ from: account, gas: 200000 })\n\t\t\t.on('transactionHash', (tx) => {\n\t\t\t\treturn tx.transactionHash;\n\t\t\t});\n\t}\n\n\treturn masterChefContract.methods\n\t\t.deposit(pid, '0')\n\t\t.send({ from: account, gas: 200000 })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n\nexport const soushHarvest = async (sousChefContract, account) => {\n\treturn sousChefContract.methods\n\t\t.deposit('0')\n\t\t.send({ from: account, gas: 200000 })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n\nexport const soushHarvestBnb = async (sousChefContract, account) => {\n\treturn sousChefContract.methods\n\t\t.deposit()\n\t\t.send({ from: account, gas: 200000, value: new BigNumber(0) })\n\t\t.on('transactionHash', (tx) => {\n\t\t\treturn tx.transactionHash;\n\t\t});\n};\n","import { useMemo } from 'react';\nimport useWeb3 from 'hooks/useWeb3';\nimport {\n\tgetBep20Contract,\n\tgetCakeContract,\n\tgetBunnyFactoryContract,\n\tgetBunnySpecialContract,\n\tgetPancakeRabbitContract,\n\tgetProfileContract,\n\tgetIfoContract,\n\tgetLotteryContract,\n\tgetLotteryTicketContract,\n\tgetMasterchefContract,\n\tgetPointCenterIfoContract,\n\tgetSouschefContract,\n\t// getClaimRefundContract,\n} from 'utils/contractHelpers';\n\n/**\n * Helper hooks to get specific contracts (by ABI)\n */\n\nexport const useIfoContract = (address: string) => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getIfoContract(address, web3), [address, web3]);\n};\n\nexport const useERC20 = (address: string) => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getBep20Contract(address, web3), [address, web3]);\n};\n\nexport const useCake = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getCakeContract(web3), [web3]);\n};\n\nexport const useBunnyFactory = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getBunnyFactoryContract(web3), [web3]);\n};\n\nexport const usePancakeRabbits = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getPancakeRabbitContract(web3), [web3]);\n};\n\nexport const useProfile = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getProfileContract(web3), [web3]);\n};\n\nexport const useLottery = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getLotteryContract(web3), [web3]);\n};\n\nexport const useLotteryTicket = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getLotteryTicketContract(web3), [web3]);\n};\n\nexport const useMasterchef = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getMasterchefContract(web3), [web3]);\n};\n\nexport const useSousChef = (id) => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getSouschefContract(id, web3), [id, web3]);\n};\n\nexport const usePointCenterIfoContract = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getPointCenterIfoContract(web3), [web3]);\n};\n\nexport const useBunnySpecialContract = () => {\n\tconst web3 = useWeb3();\n\treturn useMemo(() => getBunnySpecialContract(web3), [web3]);\n};\n\n// export const useClaimRefundContract = () => {\n// const web3 = useWeb3()\n// return useMemo(() => getClaimRefundContract(web3), [web3])\n// }\n","import Rollbar, { Level } from 'rollbar';\n\nexport const rollbar = new Rollbar({\n\taccessToken: process.env.REACT_APP_ROLLBAR_POST_CLIENT_ITEM_TOKEN,\n\tenvironment: process.env.REACT_APP_ROLLBAR_ENV || 'production',\n});\n\nexport function logToRollbar(level: Level, message: string | null, args?: any) {\n\ttry {\n\t\tconst argsExpected = [];\n\t\tmessage ? argsExpected.push(message) : null;\n\t\targs ? argsExpected.push(args) : null;\n\t\trollbar[level](...argsExpected);\n\t} catch {\n\t\tconsole.log('rollbar error');\n\t}\n}\n","import React, { useState, useRef, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { useWeb3React } from '@web3-react/core';\nimport BigNumber from 'bignumber.js';\nimport { FarmWithStakedValue } from 'views/Farms/components/FarmCard/FarmCard';\nimport { getBalanceNumber } from 'utils/formatBalance';\nimport { useHarvest } from 'hooks/useHarvest';\nimport useI18n from 'hooks/useI18n';\nimport { usePriceCakeBusd } from 'state/hooks';\nimport { useCountUp } from 'react-countup';\n\nimport { ActionContainer, ActionTitles, Title, Subtle, ActionContent, Earned, Staked } from './styles';\n\nconst Button = styled.div`\n\twidth: 180px;\n\theight: 45px;\n\tbackground: var(--color-background-4);\n\tborder-radius: 15px;\n\tcolor: #bdbdbd;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: pointer;\n`;\n\nconst ActiveButton = styled.div`\n\twidth: 180px;\n\theight: 45px;\n\tbackground: #82affb;\n\tborder-radius: 15px;\n\tcolor: #fff;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: pointer;\n`;\n\nconst Container = styled.div`\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\tborder: 1px solid var(--color-border-2);\n\t\tborder-radius: 30px;\n\t\tmargin: 30px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tborder: 1px solid var(--color-border-2);\n\t\tborder-radius: 30px;\n\t\tmargin: 30px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tborder: 0;\n\t\tborder-radius: 0;\n\t\tmargin: 0;\n\t}\n`;\n\nconst Label = styled.div`\n\tfont-size: 13px;\n\tbackground: transparent;\n\twidth: 100%;\n\tpadding: 10px 0;\n\ttext-align: center;\n\tborder-right: 0;\n\tcolor: var(--color-text);\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tbackground: var(--color-background-8);\n\t\tborder-right: 1px solid var(--color-border-5);\n\t}\n`;\n\nconst Content = styled.div`\n\tmin-height: auto;\n\twidth: 100%;\n\tpadding: 30px 25px;\n\tborder-right: 0;\n\ttext-align: center;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tborder-right: 1px solid var(--color-border-5);\n\t\tmin-height: 200px;\n\t}\n`;\n\nconst HarvestAction: React.FunctionComponent = ({ pid, userData }) => {\n\tconst earningsBigNumber = userData ? new BigNumber(userData.earnings) : null;\n\tconst cakePrice = usePriceCakeBusd();\n\tlet earnings = null;\n\tlet earningsBusd = 0;\n\tlet displayBalance = '0';\n\n\tif (earningsBigNumber) {\n\t\tearnings = getBalanceNumber(earningsBigNumber);\n\t\tearningsBusd = new BigNumber(earnings).multipliedBy(cakePrice).toNumber();\n\t\tdisplayBalance = earnings.toLocaleString();\n\t}\n\n\tconst [pendingTx, setPendingTx] = useState(false);\n\tconst { account } = useWeb3React();\n\tconst { onReward } = useHarvest(pid);\n\tconst TranslateString = useI18n();\n\n\tconst { countUp, update } = useCountUp({\n\t\tstart: 0,\n\t\tend: earningsBusd,\n\t\tduration: 1,\n\t\tseparator: ',',\n\t\tdecimals: 3,\n\t});\n\tconst updateValue = useRef(update);\n\n\tuseEffect(() => {\n\t\tupdateValue.current(earningsBusd);\n\t}, [earningsBusd, updateValue]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t

{displayBalance}

\n\t\t\t\t

\n\t\t\t\t\t(~ ${countUp})\n\t\t\t\t

\n\t\t\t\t{!earnings || pendingTx || !account ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetPendingTx(true);\n\t\t\t\t\t\t\tawait onReward();\n\t\t\t\t\t\t\tsetPendingTx(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tHarvest\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default HarvestAction;\n","import { useCallback } from 'react';\nimport { useWeb3React } from '@web3-react/core';\nimport { useDispatch } from 'react-redux';\nimport { fetchFarmUserDataAsync, updateUserBalance, updateUserPendingReward } from 'state/actions';\nimport { soushHarvest, soushHarvestBnb, harvest } from 'utils/callHelpers';\nimport { useMasterchef, useSousChef } from './useContract';\nimport { logToRollbar } from '../utils/rollbar';\nimport farmsConfig from '../config/constants/farms';\n\nexport const useHarvest = (farmPid: number) => {\n\tconst dispatch = useDispatch();\n\tconst { account } = useWeb3React();\n\tconst masterChefContract = useMasterchef();\n\n\tconst handleHarvest = useCallback(async () => {\n\t\tconst farmData = farmsConfig.find((f) => f.pid === farmPid);\n\t\tconst logData = Object.assign(\n\t\t\t{},\n\t\t\t{ senderAddress: account },\n\t\t\tfarmData\n\t\t\t\t? {\n\t\t\t\t\t\tlpSymbol: farmData.lpSymbol,\n\t\t\t\t\t\tlpAddress: farmData.lpAddresses[process.env.REACT_APP_CHAIN_ID],\n\t\t\t\t }\n\t\t\t\t: null,\n\t\t);\n\t\ttry {\n\t\t\tconst txHash = await harvest(masterChefContract, farmPid, account);\n\t\t\tdispatch(fetchFarmUserDataAsync(account));\n\t\t\tlogToRollbar('info', 'Harvest success', logData);\n\t\t\treturn txHash;\n\t\t} catch (error) {\n\t\t\t// @ts-ignore\n\t\t\tif (error?.code !== 4001) {\n\t\t\t\tlogToRollbar('error', 'Harvest failed', {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t...error,\n\t\t\t\t\t...logData,\n\t\t\t\t\tfunctionName: 'useHarvest',\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn error;\n\t\t}\n\t}, [account, dispatch, farmPid, masterChefContract]);\n\n\treturn { onReward: handleHarvest };\n};\n\nexport const useAllHarvest = (farmPids: number[]) => {\n\tconst { account } = useWeb3React();\n\tconst masterChefContract = useMasterchef();\n\n\tconst handleHarvest = useCallback(async () => {\n\t\tconst harvestPromises = farmPids.reduce((accum, pid) => {\n\t\t\treturn [...accum, harvest(masterChefContract, pid, account)];\n\t\t}, []);\n\n\t\treturn Promise.all(harvestPromises);\n\t}, [account, farmPids, masterChefContract]);\n\n\treturn { onReward: handleHarvest };\n};\n\nexport const useSousHarvest = (sousId, isUsingBnb = false) => {\n\tconst dispatch = useDispatch();\n\tconst { account } = useWeb3React();\n\tconst sousChefContract = useSousChef(sousId);\n\tconst masterChefContract = useMasterchef();\n\n\tconst handleHarvest = useCallback(async () => {\n\t\tif (sousId === 0) {\n\t\t\tawait harvest(masterChefContract, 0, account);\n\t\t} else if (isUsingBnb) {\n\t\t\tawait soushHarvestBnb(sousChefContract, account);\n\t\t} else {\n\t\t\tawait soushHarvest(sousChefContract, account);\n\t\t}\n\t\tdispatch(updateUserPendingReward(sousId, account));\n\t\tdispatch(updateUserBalance(sousId, account));\n\t}, [account, dispatch, isUsingBnb, masterChefContract, sousChefContract, sousId]);\n\n\treturn { onReward: handleHarvest };\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useWalletModal } from '@pancakeswap-libs/uikit';\nimport useAuth from 'hooks/useAuth';\nimport useI18n from 'hooks/useI18n';\n\nconst ActiveButton = styled.div`\n\twidth: 80%;\n\theight: 45px;\n\tbackground: #82affb;\n\tborder-radius: 15px;\n\tcolor: #fff;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tmargin-top: 32px;\n\tcursor: pointer;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 180px;\n\t}\n`;\n\nconst UnlockButton = (props) => {\n\tconst TranslateString = useI18n();\n\tconst { login, logout } = useAuth();\n\tconst { onPresentConnectModal } = useWalletModal(login, logout);\n\n\treturn (\n\t\t\n\t\t\t{TranslateString(292, 'Unlock Wallet')}\n\t\t\n\t);\n};\n\nexport default UnlockButton;\n","import { useCallback } from 'react';\nimport { useWeb3React } from '@web3-react/core';\nimport { useDispatch } from 'react-redux';\nimport { fetchFarmUserDataAsync, updateUserStakedBalance, updateUserBalance } from 'state/actions';\nimport { stake, sousStake, sousStakeBnb } from 'utils/callHelpers';\nimport { useMasterchef, useSousChef } from './useContract';\nimport { logToRollbar } from '../utils/rollbar';\nimport farmsConfig from '../config/constants/farms';\n\nconst useStake = (pid: number) => {\n\tconst dispatch = useDispatch();\n\tconst { account } = useWeb3React();\n\tconst masterChefContract = useMasterchef();\n\n\tconst handleStake = useCallback(\n\t\tasync (amount: string) => {\n\t\t\tconst farmData = farmsConfig.find((f) => f.pid === pid);\n\t\t\tconst logData = Object.assign(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tsenderAddress: account,\n\t\t\t\t\tstakesAmount: amount,\n\t\t\t\t},\n\t\t\t\tfarmData\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tlpSymbol: farmData.lpSymbol,\n\t\t\t\t\t\t\tlpAddress: farmData.lpAddresses[process.env.REACT_APP_CHAIN_ID],\n\t\t\t\t\t }\n\t\t\t\t\t: null,\n\t\t\t);\n\t\t\ttry {\n\t\t\t\tconst txHash = await stake(masterChefContract, pid, amount, account);\n\t\t\t\tdispatch(fetchFarmUserDataAsync(account));\n\t\t\t\tlogToRollbar('info', 'Stake LP token success', logData);\n\t\t\t\tconsole.info(txHash);\n\t\t\t\treturn txHash;\n\t\t\t} catch (error) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (error?.code !== 4001) {\n\t\t\t\t\tlogToRollbar('error', 'Stake LP token failed', {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t...error,\n\t\t\t\t\t\t...logData,\n\t\t\t\t\t\tfunctionName: 'useStake',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t[account, dispatch, masterChefContract, pid],\n\t);\n\n\treturn { onStake: handleStake };\n};\n\nexport const useSousStake = (sousId, isUsingBnb = false) => {\n\tconst dispatch = useDispatch();\n\tconst { account } = useWeb3React();\n\tconst masterChefContract = useMasterchef();\n\tconst sousChefContract = useSousChef(sousId);\n\n\tconst handleStake = useCallback(\n\t\tasync (amount: string, decimals: number) => {\n\t\t\tif (sousId === 0) {\n\t\t\t\tawait stake(masterChefContract, 0, amount, account);\n\t\t\t} else if (isUsingBnb) {\n\t\t\t\tawait sousStakeBnb(sousChefContract, amount, account);\n\t\t\t} else {\n\t\t\t\tawait sousStake(sousChefContract, amount, decimals, account);\n\t\t\t}\n\t\t\tdispatch(updateUserStakedBalance(sousId, account));\n\t\t\tdispatch(updateUserBalance(sousId, account));\n\t\t},\n\t\t[account, dispatch, isUsingBnb, masterChefContract, sousChefContract, sousId],\n\t);\n\n\treturn { onStake: handleStake };\n};\n\nexport default useStake;\n","import { useCallback } from 'react';\nimport { useWeb3React } from '@web3-react/core';\nimport { useDispatch } from 'react-redux';\nimport {\n\tfetchFarmUserDataAsync,\n\tupdateUserStakedBalance,\n\tupdateUserBalance,\n\tupdateUserPendingReward,\n} from 'state/actions';\nimport { unstake, sousUnstake, sousEmegencyUnstake } from 'utils/callHelpers';\nimport { useMasterchef, useSousChef } from './useContract';\nimport { logToRollbar } from '../utils/rollbar';\nimport farmsConfig from '../config/constants/farms';\n\nconst useUnstake = (pid: number) => {\n\tconst dispatch = useDispatch();\n\tconst { account } = useWeb3React();\n\tconst masterChefContract = useMasterchef();\n\n\tconst handleUnstake = useCallback(\n\t\tasync (amount: string) => {\n\t\t\tconst farmData = farmsConfig.find((f) => f.pid === pid);\n\t\t\tconst logData = Object.assign(\n\t\t\t\t{},\n\t\t\t\t{\n\t\t\t\t\tsenderAddress: account,\n\t\t\t\t\tunstakeAmount: amount,\n\t\t\t\t},\n\t\t\t\tfarmData\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tlpSymbol: farmData.lpSymbol,\n\t\t\t\t\t\t\tlpAddress: farmData.lpAddresses[process.env.REACT_APP_CHAIN_ID],\n\t\t\t\t\t }\n\t\t\t\t\t: null,\n\t\t\t);\n\t\t\ttry {\n\t\t\t\tconst txHash = await unstake(masterChefContract, pid, amount, account);\n\t\t\t\tdispatch(fetchFarmUserDataAsync(account));\n\t\t\t\tlogToRollbar('info', 'Unstake LP token success', logData);\n\t\t\t\tconsole.info(txHash);\n\t\t\t\treturn txHash;\n\t\t\t} catch (error) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (error?.code !== 4001) {\n\t\t\t\t\tlogToRollbar('error', 'Unstake LP token failed', {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t...error,\n\t\t\t\t\t\t...logData,\n\t\t\t\t\t\tfunctionName: 'useUnstake',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t[account, dispatch, masterChefContract, pid],\n\t);\n\n\treturn { onUnstake: handleUnstake };\n};\n\nconst SYRUPIDS = [5, 6, 3, 1, 22, 23];\n\nexport const useSousUnstake = (sousId) => {\n\tconst dispatch = useDispatch();\n\tconst { account } = useWeb3React();\n\tconst masterChefContract = useMasterchef();\n\tconst sousChefContract = useSousChef(sousId);\n\tconst isOldSyrup = SYRUPIDS.includes(sousId);\n\n\tconst handleUnstake = useCallback(\n\t\tasync (amount: string, decimals: number) => {\n\t\t\tif (sousId === 0) {\n\t\t\t\tconst txHash = await unstake(masterChefContract, 0, amount, account);\n\t\t\t\tconsole.info(txHash);\n\t\t\t} else if (isOldSyrup) {\n\t\t\t\tconst txHash = await sousEmegencyUnstake(sousChefContract, amount, account);\n\t\t\t\tconsole.info(txHash);\n\t\t\t} else {\n\t\t\t\tconst txHash = await sousUnstake(sousChefContract, amount, decimals, account);\n\t\t\t\tconsole.info(txHash);\n\t\t\t}\n\t\t\tdispatch(updateUserStakedBalance(sousId, account));\n\t\t\tdispatch(updateUserBalance(sousId, account));\n\t\t\tdispatch(updateUserPendingReward(sousId, account));\n\t\t},\n\t\t[account, dispatch, isOldSyrup, masterChefContract, sousChefContract, sousId],\n\t);\n\n\treturn { onUnstake: handleUnstake };\n};\n\nexport default useUnstake;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst ModalActions: React.FC = ({ children }) => {\n\treturn (\n\t\t\n\t\t\t{React.Children.map(children, (child) => (\n\t\t\t\t<>\n\t\t\t\t\t{child}\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n};\n\nconst StyledModalActions = styled.div`\n\talign-items: center;\n\tbackground-color: ${(props) => props.theme.colors.primaryDark}00;\n\tdisplay: flex;\n\tmargin: 0;\n\tpadding: ${(props) => props.theme.spacing[4]}px 0;\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\tdisplay: block;\n\t\tpadding: 0;\n\t\tpadding-top: 56px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tdisplay: block;\n\t\tpadding: 0;\n\t\tpadding-top: 56px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tdisplay: flex;\n\t\tpadding: ${(props) => props.theme.spacing[4]}px 0;\n\t}\n`;\n\nconst StyledModalAction = styled.div`\n\tflex: 1;\n`;\n\nexport default ModalActions;\n","import React from 'react';\nimport styled from 'styled-components';\nimport BigNumber from 'bignumber.js';\nimport { Text, Button, Input, InputProps, Flex, Link } from '@pancakeswap-libs/uikit';\nimport useI18n from '../../hooks/useI18n';\n\ninterface ModalInputProps {\n\tmax: string;\n\tsymbol: string;\n\tonSelectMax?: () => void;\n\tonChange: (value) => void;\n\tplaceholder?: string;\n\tvalue: string;\n\taddLiquidityUrl?: string;\n\tinputTitle?: string;\n}\n\nconst getBoxShadow = ({ isWarning = false, theme }) => {\n\tif (isWarning) {\n\t\treturn theme.shadows.warning;\n\t}\n\n\treturn theme.shadows.inset;\n};\n\nconst StyledTokenInput = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tbackground-color: ${({ theme }) => theme.colors.input};\n\tborder-radius: 16px;\n\tbox-shadow: ${getBoxShadow};\n\tcolor: ${({ theme }) => theme.colors.text};\n\tpadding: 8px 16px 8px 0;\n\twidth: 100%;\n`;\n\nconst StyledInput = styled.input`\n\tfont-size: 25px;\n\tfont-weight: 500;\n\tcolor: var(--color-text-2);\n\tmargin-left: 15px;\n\tborder: none;\n\twidth: 35%;\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 70%;\n\t}\n`;\n\nconst StyledErrorMessage = styled(Text)`\n\tposition: absolute;\n\tbottom: -22px;\n\ta {\n\t\tdisplay: inline;\n\t}\n`;\n\nconst IconImage = styled.img`\n\twidth: 33px;\n\theight: 33px;\n\tposition: absolute;\n\tleft: 25px;\n`;\n\nconst IconImage1 = styled.img`\n\twidth: 33px;\n\theight: 33px;\n\tz-index: 10;\n`;\n\nconst ValueSelect = styled.div`\n\tcursor: pointer;\n\tmargin: 0 5px;\n\tborder: 1px solid var(--color-border-2);\n\tborder-radius: 10px;\n\tpadding: 8px;\n\twidth: 55px;\n\ttext-align: center;\n\tfont-weight: 500;\n\tfont-size: 12px;\n\tcolor: var(--color-text-btn);\n\tbackground: var(--color-background-3);\n`;\n\nconst ValueSelectActive = styled.div`\n\tcursor: pointer;\n\tmargin: 0 5px;\n\tbackground: var(--color-background-9);\n\tborder-radius: 10px;\n\tpadding: 8px;\n\twidth: 55px;\n\ttext-align: center;\n\tfont-weight: 500;\n\tfont-size: 12px;\n\tcolor: var(--color-text-btn-hover);\n`;\nconst ValueSelectDisabled = styled.div`\n\tcursor: not-allowed;\n\tmargin: 0 5px;\n\tbackground: #eaeaea;\n\tborder-radius: 10px;\n\tpadding: 8px;\n\twidth: 55px;\n\ttext-align: center;\n\tfont-weight: 500;\n\tfont-size: 12px;\n\tcolor: #9e9e9e;\n`;\n\nconst ModalInput: React.FC = ({\n\tmax,\n\tsymbol,\n\tonChange,\n\tonSelectMax,\n\tvalue,\n\taddLiquidityUrl,\n\tinputTitle,\n}) => {\n\tconst TranslateString = useI18n();\n\tconst isBalanceZero = max === '0' || !max;\n\n\tconst displayBalance = isBalanceZero ? '0' : parseFloat(max).toFixed(4);\n\tconst displayValue =\n\t\tvalue && value !== null && value !== '' ? parseFloat(value).toFixed(4) : parseFloat(max).toFixed(4);\n\n\tlet images = [];\n\tconst parts = symbol.split(' ');\n\tconsole.log('parts', parts);\n\tif (parts.length === 2) {\n\t\timages = parts[0].split('-');\n\t} else if (parts.length === 1) {\n\t\timages = [parts[0]];\n\t}\n\n\tconst selectedList = [\n\t\t{ label: '25%', value: new BigNumber(parseFloat(max) * 0.25) },\n\t\t{ label: '50%', value: new BigNumber(parseFloat(max) * 0.5) },\n\t\t{ label: '75%', value: new BigNumber(parseFloat(max) * 0.75) },\n\t\t{ label: '100%', value: new BigNumber(max) },\n\t];\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t

{inputTitle}

\n\t\t\t\t

\n\t\t\t\t\t{TranslateString(1120, 'Balance')}: {displayBalance.toLocaleString()}\n\t\t\t\t

\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t{images[1] ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t
\n\t\t\t\t

{symbol}

\n\t\t\t\t onChange(e.target.value)} placeholder=\"0\" value={value} />\n\t\t\t
\n\t\t\t
\n\t\t\t\t{selectedList.map((s) => {\n\t\t\t\t\tif (parseFloat(max) === 0) {\n\t\t\t\t\t\treturn null}>{s.label};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (s.value.toString() === value) {\n\t\t\t\t\t\treturn null}>{s.label};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn onChange(s.value.toString())}>{s.label};\n\t\t\t\t})}\n\t\t\t
\n\t\t\t{/* \n \n {inputTitle}\n \n {TranslateString(1120, 'Balance')}: {displayBalance.toLocaleString()}\n \n \n \n \n \n {symbol}\n \n \n {isBalanceZero && (\n \n No tokens to stake:{' '}\n \n {TranslateString(999, 'get')} {symbol}\n \n \n )} */}\n\t\t\n\t);\n};\n\nexport default ModalInput;\n","export default function getBscScanLink(data: string, type: 'transaction' | 'token' | 'address'): string {\n\tconst prefix = `https://bscscan.com`;\n\n\tswitch (type) {\n\t\tcase 'transaction': {\n\t\t\treturn `${prefix}/tx/${data}`;\n\t\t}\n\t\tcase 'token': {\n\t\t\treturn `${prefix}/token/${data}`;\n\t\t}\n\t\tcase 'address':\n\t\tdefault: {\n\t\t\treturn `${prefix}/address/${data}`;\n\t\t}\n\t}\n}\n","import BigNumber from 'bignumber.js';\nimport styled from 'styled-components';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Dialog } from 'primereact/dialog';\nimport { useMatchBreakpoints } from '@pancakeswap-libs/uikit';\nimport ModalActions from 'components/ModalActions';\nimport ModalInput from 'components/ModalInput';\nimport useI18n from 'hooks/useI18n';\nimport { getFullDisplayBalance } from 'utils/formatBalance';\nimport getBscScanLink from 'utils/getBscScanLink';\nimport { useSettingMode } from 'state/hooks';\n\ninterface DepositModalProps {\n\tmax: BigNumber;\n\tonConfirm: (amount: string) => Promise;\n\tonDismiss?: () => void;\n\ttokenName?: string;\n\taddLiquidityUrl?: string;\n\tvisible?: boolean;\n\tonHide(): any;\n}\n\nconst ActiveButton = styled.div`\n\twidth: 100%;\n\theight: 55px;\n\tbackground: #18b2a1;\n\tborder-radius: 15px;\n\tcolor: #fff;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: pointer;\n\tfont-weight: bold;\n\tfont-size: 18px;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 90%;\n\t}\n`;\nconst CancelButton = styled.div`\n\twidth: 100%;\n\theight: 55px;\n\tbackground: var(--color-background-4);\n\tborder-radius: 15px;\n\tcolor: #bdbdbd;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: pointer;\n\tfont-weight: bold;\n\tfont-size: 18px;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 90%;\n\t}\n`;\n\nconst DepositModal: React.FC = ({\n\tvisible,\n\tonHide,\n\tmax,\n\tonConfirm,\n\tonDismiss,\n\ttokenName = '',\n\taddLiquidityUrl,\n}) => {\n\tconst fullBalance = useMemo(() => {\n\t\treturn getFullDisplayBalance(max);\n\t}, [max]);\n\tconst [val, setVal] = useState(fullBalance);\n\tconst [pendingTx, setPendingTx] = useState(false);\n\tconst [isDone, setDone] = useState(false);\n\tconst [txHash, setTxHash] = useState('');\n\tconst TranslateString = useI18n();\n\n\tconst handleSelectMax = useCallback(() => {\n\t\tsetVal(fullBalance);\n\t}, [fullBalance, setVal]);\n\n\tconst handleChange = useCallback(\n\t\t(value) => {\n\t\t\tsetVal(value);\n\t\t},\n\t\t[setVal],\n\t);\n\n\tconst { spaceMode } = useSettingMode();\n\tconst { isXl } = useMatchBreakpoints();\n\tconst isMobile = !isXl;\n\n\tconst getContent = () => {\n\t\tif (pendingTx) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\tWaiting for confirmation from your wallet\n\t\t\t\t\t

\n\t\t\t\t\t\"loading\"\n\t\t\t\t\t

\n\t\t\t\t\t\tDeposit {val} {tokenName}\n\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\tWaiting for confirmation from your wallet\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\t\tif (isDone) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t\"loading\"\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tView on BSC Scan\n\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{pendingTx || fullBalance === '0' || val === '0' ? (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetPendingTx(true);\n\t\t\t\t\t\t\t\tawait onConfirm(val);\n\t\t\t\t\t\t\t\tsetPendingTx(false);\n\t\t\t\t\t\t\t\tsetDone(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{pendingTx ? TranslateString(488, 'Pending Confirmation') : TranslateString(464, 'Deposit')}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetPendingTx(true);\n\t\t\t\t\t\t\t\tconst result = await onConfirm(val);\n\t\t\t\t\t\t\t\tsetTxHash(result.transactionHash);\n\t\t\t\t\t\t\t\tsetPendingTx(false);\n\t\t\t\t\t\t\t\tsetDone(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{pendingTx ? TranslateString(488, 'Pending Confirmation') : TranslateString(464, 'Deposit')}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{TranslateString(462, 'Cancel')}\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t};\n\treturn (\n\t\t
\n\t\t\t {\n\t\t\t\t\tsetDone(false);\n\t\t\t\t\tonHide();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{getContent()}\n\t\t\t\t{/* \n {TranslateString(999, 'Get')} {tokenName}\n */}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default DepositModal;\n","import BigNumber from 'bignumber.js';\nimport styled from 'styled-components';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { Dialog } from 'primereact/dialog';\nimport { useMatchBreakpoints } from '@pancakeswap-libs/uikit';\nimport ModalActions from 'components/ModalActions';\nimport ModalInput from 'components/ModalInput';\nimport useI18n from 'hooks/useI18n';\nimport { getFullDisplayBalance } from 'utils/formatBalance';\nimport getBscScanLink from 'utils/getBscScanLink';\nimport { useSettingMode } from 'state/hooks';\n\ninterface WithdrawModalProps {\n\tmax: BigNumber;\n\tonConfirm: (amount: string) => Promise;\n\tonDismiss?: () => void;\n\ttokenName?: string;\n\tvisible?: boolean;\n\tonHide(): any;\n}\n\nconst ActiveButton = styled.div`\n\twidth: 90%;\n\theight: 55px;\n\tbackground: #fb7979;\n\tborder-radius: 15px;\n\tcolor: #fff;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: pointer;\n\tfont-weight: bold;\n\tfont-size: 18px;\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\twidth: 100%;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\twidth: 100%;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 90%;\n\t}\n`;\nconst CancelButton = styled.div`\n\twidth: 90%;\n\theight: 55px;\n\tbackground: #e9e9e9;\n\tborder-radius: 15px;\n\tcolor: #bdbdbd;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: pointer;\n\tfont-weight: bold;\n\tfont-size: 18px;\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\twidth: 100%;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\twidth: 100%;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 90%;\n\t}\n`;\n\nconst WithdrawModal: React.FC = ({\n\tvisible,\n\tonHide,\n\tonConfirm,\n\tonDismiss,\n\tmax,\n\ttokenName = '',\n}) => {\n\tconst fullBalance = useMemo(() => {\n\t\treturn getFullDisplayBalance(max);\n\t}, [max]);\n\tconst [val, setVal] = useState(fullBalance);\n\tconst [pendingTx, setPendingTx] = useState(false);\n\tconst [isDone, setDone] = useState(false);\n\tconst [txHash, setTxHash] = useState('');\n\tconst TranslateString = useI18n();\n\tconst { spaceMode } = useSettingMode();\n\n\tconst handleSelectMax = useCallback(() => {\n\t\tsetVal(fullBalance);\n\t}, [fullBalance, setVal]);\n\n\tconst handleChange = useCallback(\n\t\t(value) => {\n\t\t\tsetVal(value);\n\t\t},\n\t\t[setVal],\n\t);\n\n\tconst { isXl } = useMatchBreakpoints();\n\tconst isMobile = !isXl;\n\n\tconst getContent = () => {\n\t\tif (pendingTx) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\tWaiting for confirmation from your wallet\n\t\t\t\t\t

\n\t\t\t\t\t\"loading\"\n\t\t\t\t\t

\n\t\t\t\t\t\tWithdraw {val} {tokenName}\n\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\tWaiting for confirmation from your wallet\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\t\tif (isDone) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t\"loading\"\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tView on BSC Scan\n\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{pendingTx ? (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetPendingTx(true);\n\t\t\t\t\t\t\t\tawait onConfirm(val);\n\t\t\t\t\t\t\t\tsetPendingTx(false);\n\t\t\t\t\t\t\t\tsetDone(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{pendingTx\n\t\t\t\t\t\t\t\t? TranslateString(488, 'Pending Confirmation')\n\t\t\t\t\t\t\t\t: TranslateString(464, 'Withdraw')}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetPendingTx(true);\n\t\t\t\t\t\t\t\tconst result = await onConfirm(val);\n\t\t\t\t\t\t\t\tsetTxHash(result.transactionHash);\n\t\t\t\t\t\t\t\tsetPendingTx(false);\n\t\t\t\t\t\t\t\tsetDone(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{pendingTx\n\t\t\t\t\t\t\t\t? TranslateString(488, 'Pending Confirmation')\n\t\t\t\t\t\t\t\t: TranslateString(464, 'Withdraw')}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{TranslateString(462, 'Cancel')}\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t {\n\t\t\t\t\tsetDone(false);\n\t\t\t\t\tonHide();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{getContent()}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default WithdrawModal;\n","import React, { useState, useCallback } from 'react';\nimport styled from 'styled-components';\nimport { useModal, IconButton, AddIcon, MinusIcon } from '@pancakeswap-libs/uikit';\nimport UnlockButton from 'components/UnlockButton';\nimport { useWeb3React } from '@web3-react/core';\nimport { useFarmUser } from 'state/hooks';\nimport { FarmWithStakedValue } from 'views/Farms/components/FarmCard/FarmCard';\nimport useI18n from 'hooks/useI18n';\nimport { useApprove } from 'hooks/useApprove';\nimport { getBep20Contract } from 'utils/contractHelpers';\nimport { BASE_ADD_LIQUIDITY_URL } from 'config';\nimport getLiquidityUrlPathParts from 'utils/getLiquidityUrlPathParts';\nimport { getBalanceNumber } from 'utils/formatBalance';\nimport useStake from 'hooks/useStake';\nimport useUnstake from 'hooks/useUnstake';\nimport useWeb3 from 'hooks/useWeb3';\n\nimport DepositModal from '../../DepositModal';\nimport WithdrawModal from '../../WithdrawModal';\nimport { ActionContainer, ActionTitles, ActionContent, Earned, Title, Subtle } from './styles';\n\nconst ActiveButton = styled.div`\n\twidth: 180px;\n\theight: 45px;\n\tbackground: #82affb;\n\tborder-radius: 15px;\n\tcolor: #fff;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: pointer;\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\twidth: 80%;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\twidth: 80%;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 180px;\n\t}\n`;\n\nconst InActiveButton = styled.div`\n\twidth: 180px;\n\theight: 45px;\n\tbackground: var(--color-background-4);\n\tborder-radius: 15px;\n\tcolor: #fff;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: not-allowed;\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\twidth: 80%;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\twidth: 80%;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\twidth: 180px;\n\t}\n`;\n\nconst RowItem = styled.div`\n\tdisplay: block;\n\twidth: 100%;\n\tmargin: 16px auto;\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tdisplay: inline-flex;\n\t}\n`;\n\nconst DepositButton = styled.div`\n\twidth: 180px;\n\theight: 45px;\n\tbackground: var(--color-background-4);\n\tborder-radius: 15px;\n\tcolor: #fff;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: not-allowed;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tdisplay: inline-flex;\n\t\twidth: 130px;\n\t\tmargin: 15px 10px;\n\t}\n`;\n\nconst WithdrawButton = styled.div`\n\twidth: 180px;\n\theight: 45px;\n\tbackground: #fb7979;\n\tborder-radius: 15px;\n\tcolor: #fff;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin: 15px auto;\n\tcursor: pointer;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tdisplay: inline-flex;\n\t\tmargin: 15px 10px;\n\t\twidth: 130px;\n\t}\n`;\n\nconst Container = styled.div`\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\tborder: 1px solid var(--color-border-2);\n\t\tborder-radius: 30px;\n\t\tmargin: 30px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tborder: 1px solid var(--color-border-2);\n\t\tborder-radius: 30px;\n\t\tmargin: 30px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tborder: 0;\n\t\tborder-radius: 0;\n\t\tmargin: 0;\n\t}\n`;\n\nconst Label = styled.div`\n\tfont-size: 13px;\n\tbackground: var(--color-background-8);\n\twidth: 100%;\n\tpadding: 10px 0;\n\ttext-align: center;\n\tborder-right: 1px solid var(--color-border-5);\n\tcolor: var(--color-text);\n\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\tbackground: transparent;\n\t\tborder-right: 0;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tbackground: transparent;\n\t\tborder-right: 0;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tbackground: var(--color-background-8);\n\t\tborder-right: 1px solid var(--color-border-5);\n\t}\n`;\n\nconst Content = styled.div`\n\tborder-right: 0;\n\tmin-height: auto;\n\twidth: 100%;\n\tpadding: 30px 25px;\n\ttext-align: center;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tborder-right: 1px solid var(--color-border-5);\n\t\tmin-height: 200px;\n\t}\n`;\n\nconst Staked: React.FunctionComponent = ({\n\tpid,\n\tlpSymbol,\n\tlpAddresses,\n\tquoteTokenAdresses,\n\ttokenAddresses,\n}) => {\n\tconst TranslateString = useI18n();\n\tconst { account } = useWeb3React();\n\tconst [requestedApproval, setRequestedApproval] = useState(false);\n\tconst { allowance, tokenBalance, stakedBalance } = useFarmUser(pid);\n\tconst { onStake } = useStake(pid);\n\tconst { onUnstake } = useUnstake(pid);\n\tconst [showDepositModal, setShowDepositModal] = useState(false);\n\tconst [showWithdrawModal, setShowWithdrawModal] = useState(false);\n\tconst web3 = useWeb3();\n\n\tconst isApproved = account && allowance && allowance.isGreaterThan(0);\n\n\n\tconst lpAddress = lpAddresses[process.env.REACT_APP_CHAIN_ID];\n\n\tconst isMockPancakePool = lpAddress === '0xf70a40749006c7952186666c92f32b8f5c2129f9' // WAD-BNB\n\n\tconst liquidityUrlPathParts = getLiquidityUrlPathParts({ quoteTokenAdresses, tokenAddresses });\n\tconst addLiquidityUrl = `${BASE_ADD_LIQUIDITY_URL}/${liquidityUrlPathParts}`;\n\tconst rawStakedBalance = getBalanceNumber(stakedBalance);\n\tconst displayBalance = rawStakedBalance.toLocaleString();\n\n\tconst lpContract = getBep20Contract(lpAddress, web3);\n\n\tconst { onApprove } = useApprove(lpContract, lpAddress);\n\n\tconst handleApprove = useCallback(async () => {\n\t\ttry {\n\t\t\tsetRequestedApproval(true);\n\t\t\tawait onApprove();\n\t\t\tsetRequestedApproval(false);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}, [onApprove]);\n\n\tif (!account) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{displayBalance}

\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\tif (isApproved) {\n\t\tif (rawStakedBalance) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t setShowDepositModal(false)}\n\t\t\t\t\t/>\n\t\t\t\t\t setShowWithdrawModal(false)}\n\t\t\t\t\t\tmax={stakedBalance}\n\t\t\t\t\t\tonConfirm={onUnstake}\n\t\t\t\t\t\ttokenName={lpSymbol}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

{displayBalance}

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setShowDepositModal(false)}>Deposit\n\t\t\t\t\t\t\t\t setShowWithdrawModal(true)}>Withdraw\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t setShowDepositModal(false)}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

{lpSymbol}

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setShowDepositModal(false)}>Deposit\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t}\n\tif (isMockPancakePool) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{displayBalance}

\n\t\t\t\t\t
\n\t\t\t\t\t\tEnable\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t

{displayBalance}

\n\t\t\t\t
\n\t\t\t\t\tEnable\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Staked;\n","import { useCallback } from 'react';\nimport { useWeb3React } from '@web3-react/core';\nimport { Contract } from 'web3-eth-contract';\nimport { ethers } from 'ethers';\nimport { useDispatch } from 'react-redux';\nimport { updateUserAllowance, fetchFarmUserDataAsync } from 'state/actions';\nimport { approve } from 'utils/callHelpers';\nimport { useMasterchef, useCake, useSousChef, useLottery } from './useContract';\nimport { logToRollbar } from '../utils/rollbar';\nimport farmsConfig from '../config/constants/farms';\n\n// Approve a Farm\nexport const useApprove = (lpContract: Contract, lpAddress?: string) => {\n\tconst dispatch = useDispatch();\n\tconst { account } = useWeb3React();\n\tconst masterChefContract = useMasterchef();\n\n\tconst handleApprove = useCallback(async () => {\n\t\tconst farmData = farmsConfig.find((f) => f.lpAddresses[process.env.REACT_APP_CHAIN_ID] === lpAddress);\n\t\tconst logData = Object.assign(\n\t\t\t{},\n\t\t\t{\n\t\t\t\tlpAddress,\n\t\t\t\tsenderAddress: account,\n\t\t\t},\n\t\t\tfarmData ? { lpSymbol: farmData.lpSymbol } : null,\n\t\t);\n\t\ttry {\n\t\t\tconst tx = await approve(lpContract, masterChefContract, account);\n\t\t\tdispatch(fetchFarmUserDataAsync(account));\n\t\t\tlogToRollbar('info', 'Approved farm success', logData);\n\t\t\treturn tx;\n\t\t} catch (error) {\n\t\t\t// @ts-ignore\n\t\t\tif (error?.code !== 4001) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tlogToRollbar('error', 'Error: Function useApprove', { ...error, ...logData });\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}, [account, dispatch, lpContract, lpAddress, masterChefContract]);\n\n\treturn { onApprove: handleApprove };\n};\n\n// Approve a Pool\nexport const useSousApprove = (lpContract: Contract, sousId) => {\n\tconst dispatch = useDispatch();\n\tconst { account } = useWeb3React();\n\tconst sousChefContract = useSousChef(sousId);\n\n\tconst handleApprove = useCallback(async () => {\n\t\ttry {\n\t\t\tconst tx = await approve(lpContract, sousChefContract, account);\n\t\t\tdispatch(updateUserAllowance(sousId, account));\n\t\t\treturn tx;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}, [account, dispatch, lpContract, sousChefContract, sousId]);\n\n\treturn { onApprove: handleApprove };\n};\n\n// Approve the lottery\nexport const useLotteryApprove = () => {\n\tconst { account } = useWeb3React();\n\tconst cakeContract = useCake();\n\tconst lotteryContract = useLottery();\n\n\tconst handleApprove = useCallback(async () => {\n\t\ttry {\n\t\t\tconst tx = await approve(cakeContract, lotteryContract, account);\n\t\t\treturn tx;\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t}, [account, cakeContract, lotteryContract]);\n\n\treturn { onApprove: handleApprove };\n};\n\n// Approve an IFO\nexport const useIfoApprove = (tokenContract: Contract, spenderAddress: string) => {\n\tconst { account } = useWeb3React();\n\tconst onApprove = useCallback(async () => {\n\t\tconst tx = await tokenContract.methods\n\t\t\t.approve(spenderAddress, ethers.constants.MaxUint256)\n\t\t\t.send({ from: account });\n\t\treturn tx;\n\t}, [account, spenderAddress, tokenContract]);\n\n\treturn onApprove;\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport useI18n from 'hooks/useI18n';\nimport { LinkExternal, useMatchBreakpoints } from '@pancakeswap-libs/uikit';\nimport { FarmWithStakedValue } from 'views/Farms/components/FarmCard/FarmCard';\nimport getLiquidityUrlPathParts from 'utils/getLiquidityUrlPathParts';\nimport getLiquidityUrlPathPartsForPancake from 'utils/getLiquidityUrlPathPartsForPancake';\nimport { communityFarms } from 'config/constants';\nimport { CommunityTag, CoreTag, DualTag } from 'components/Tags';\nimport { useSettingMode } from 'state/hooks';\n\nimport HarvestAction from './HarvestAction';\nimport StakedAction from './StakedAction';\nimport Apr, { AprProps } from '../Apr';\nimport Multiplier, { MultiplierProps } from '../Multiplier';\nimport Liquidity, { LiquidityProps } from '../Liquidity';\n\nimport { PoolType } from '../../../../../config/constants/types';\n\nexport interface ActionPanelProps {\n\tmultiplier: MultiplierProps;\n\tliquidity: LiquidityProps;\n\tdetails: FarmWithStakedValue;\n}\n\nconst ActionPanel: React.FunctionComponent = ({ details, multiplier, liquidity }) => {\n\tconst farm = details;\n\tconst poolType = farm?.poolType;\n\n\tconst { spaceMode } = useSettingMode();\n\n\tconst TranslateString = useI18n();\n\tconst { quoteTokenAdresses, tokenAddresses, tokenSymbol, dual, pid } = farm;\n\tconst lpLabel = farm.lpSymbol && farm.lpSymbol.toUpperCase().replace('PANCAKE', '');\n\n\tlet liquidityUrlPathParts = ''\n\tif(poolType === PoolType.LP_PANCAKE && pid === 999) {\n\t\tliquidityUrlPathParts = getLiquidityUrlPathPartsForPancake({ quoteTokenAdresses, tokenAddresses })\n\t} else {\n\t\tliquidityUrlPathParts = getLiquidityUrlPathParts({ quoteTokenAdresses, tokenAddresses });\n\t}\n\n\tconst lpAddress = farm.lpAddresses[process.env.REACT_APP_CHAIN_ID];\n\tconst bsc = `https://bscscan.com/address/${lpAddress}`;\n\t// Unused\n\tconst info = `https://pancakeswap.info/pair/${lpAddress}`;\n\tconst isCommunityFarm = communityFarms.includes(tokenSymbol);\n\n\tconst { isXl } = useMatchBreakpoints();\n\tconst isMobile = !isXl;\n\n\tlet addLink = '';\n\tswitch (poolType) {\n\t\tcase PoolType.STAKE:\n\t\t\taddLink =\n\t\t\t\t'htps://wtww.wardenswap.finance/#/best-rate-swap?from=0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee&to=0x0fEAdcC3824E7F3c12f40E324a60c23cA51627fc';\n\t\t\tbreak;\n\t\tcase PoolType.LP:\n\t\t\taddLink = `https://liquidity.wardenswap.finance/#/${liquidityUrlPathParts}`;\n\t\t\tbreak;\n\t\tcase PoolType.LP_PANCAKE:\n\t\t\taddLink = `https://pancakeswap.finance/add/${liquidityUrlPathParts}`;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\taddLink =\n\t\t\t\t'htps://wtww.wardenswap.finance/#/best-rate-swap?from=0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee&to=0x0fEAdcC3824E7F3c12f40E324a60c23cA51627fc';\n\t}\n\tconst addLabel = details.pid === 0 ? 'Buy WAD' : `Add ${lpLabel}`;\n\n\tif (!isMobile) {\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tInformation\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{addLabel}\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{details.pid === 0 ? 'Token Contract' : 'Farm Contract'}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\tAdd {lpLabel}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t

\n\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\tFarm Contract\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t

\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default ActionPanel;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Label = styled.div`\n\tfont-size: 12px;\n\tcolor: ${({ theme }) => theme.colors.textSubtle};\n\ttext-align: left;\n`;\n\nconst ContentContainer = styled.div`\n\tmin-height: 24px;\n\tdisplay: block;\n\talign-items: center;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tdisplay: inline-flex;\n\t}\n`;\n\ninterface CellLayoutProps {\n\tlabel?: string;\n}\n\nconst CellLayout: React.FC = ({ label = '', children }) => {\n\treturn (\n\t\t
\n\t\t\t{/* {label && } */}\n\t\t\t{children}\n\t\t
\n\t);\n};\n\nexport default CellLayout;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { FarmWithStakedValue } from 'views/Farms/components/FarmCard/FarmCard';\nimport { useMatchBreakpoints } from '@pancakeswap-libs/uikit';\nimport useI18n from 'hooks/useI18n';\n\nimport Apr, { AprProps } from './Apr';\nimport Farm, { FarmProps } from './Farm';\nimport Earned, { EarnedProps } from './Earned';\nimport Details from './Details';\nimport Multiplier, { MultiplierProps } from './Multiplier';\nimport Liquidity, { LiquidityProps } from './Liquidity';\nimport Platform, { PlatformProps } from './Platform';\nimport DayTradeVolume, { DayTradeVolumeProps } from './DayTradeVolume';\nimport ActionPanel from './Actions/ActionPanel';\nimport CellLayout from './CellLayout';\nimport { DesktopColumnSchema, MobileColumnSchema } from '../types';\n\nexport interface RowProps {\n\tfarm: FarmProps;\n\tearned: EarnedProps;\n\tmultiplier: MultiplierProps;\n\tliquidity: LiquidityProps;\n\tdetails: FarmWithStakedValue;\n\tplatform?: PlatformProps;\n\tdayTradeVolume?: string;\n}\n\nconst cells = {\n\tfarm: Farm,\n\tearned: Earned,\n\tdetails: Details,\n\tmultiplier: Multiplier,\n\tliquidity: Liquidity,\n\tplatform: Platform,\n};\n\nconst CellInner = styled.div`\n\tbackground: var(--color-background);\n\tpadding: 24px 0px;\n\tdisplay: block;\n\twidth: 100%;\n\talign-items: center;\n\ttext-align: center;\n`;\n\nconst StyledTr = styled.tr`\n\tbackground: var(--color-background);\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-bottom: 1px solid var(--color-border-2);\n\n\t:last-of-type {\n\t\tborder-bottom: none;\n\t}\n`;\n\nconst InActiveTr = styled.tr`\n\tpadding: 0;\n\tcursor: pointer;\n\tborder-bottom: 1px solid var(--color-border-2);\n\n\t:last-of-type {\n\t\tborder-bottom: none;\n\t}\n`;\n\nconst EarnedMobileCell = styled.td`\n\tbackground: var(--color-background);\n\tpadding: 16px 16px 24px 0;\n`;\n\nconst AprMobileCell = styled.div`\n\tpadding-left: 40px;\n`;\n\nconst FarmMobileCell = styled.td`\n\tbackground: var(--color-background);\n\tpadding: 16px 0 16px 20px !important;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tpadding: 0;\n\t}\n`;\n\nconst Row: React.FunctionComponent = (props) => {\n\tconst { details, farm } = props;\n\tconst [actionPanelToggled, setActionPanelToggled] = useState(false);\n\tconst TranslateString = useI18n();\n\n\tconst toggleActionPanel = () => {\n\t\tsetActionPanelToggled(!actionPanelToggled);\n\t};\n\n\tlet UseTr = StyledTr;\n\tif (farm.multiplier === '0X') {\n\t\tUseTr = InActiveTr;\n\t}\n\n\tconst { isXl, isXs, isSm } = useMatchBreakpoints();\n\n\tconst isMobile = !isXl;\n\tconst tableSchema = isMobile ? MobileColumnSchema : DesktopColumnSchema;\n\tconst columnNames = tableSchema.map((column) => column.name);\n\n\tconst handleRenderRow = () => {\n\t\tif (!isXs && !isSm) {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{Object.keys(props).map((key) => {\n\t\t\t\t\t\tconst columnIndex = columnNames.indexOf(key);\n\t\t\t\t\t\tif (columnIndex === -1) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch (key) {\n\t\t\t\t\t\t\tcase 'details':\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tcase 'liquidity':\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tcase 'platform':\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tcase 'dayTradeVolume':\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{React.createElement(cells[key], props[key])}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tprops.dayTradeVolume !== undefined && props.platform.percentageFee !== undefined\n\t\t\t\t\t\t?\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t: null\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{handleRenderRow()}\n\t\t\t{actionPanelToggled && details && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Row;\n","import React, { useRef, useState, useCallback } from 'react';\nimport styled from 'styled-components';\nimport { useTable, ColumnType } from '@pancakeswap-libs/uikit';\nimport { useSettingMode } from 'state/hooks';\nimport Tooltip from '../Tooltip/Tooltip';\nimport Row, { RowProps } from './Row';\nimport { PoolType } from '../../../../config/constants/types'\n\nexport interface ITableProps {\n\tdata: RowProps[];\n\tcolumns: ColumnType[];\n\tsortColumn?: string;\n}\n\nconst Container = styled.div`\n\n\twidth: 100%;\n`;\n\nconst TableWrapper = styled.div`\n\toverflow: visible;\n\n\t&::-webkit-scrollbar {\n\t\tdisplay: none;\n\t}\n`;\n\nconst StyledTable = styled.table`\n\t${({ theme }) => theme.mediaQueries.md} {\n\t\ttable-layout:fixed;\n\t}\n\tborder-collapse: collapse;\n\tfont-size: 14px;\n\tborder-radius: 4px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\twidth: 100%;\n\tfilter: ${({ theme }) => theme.card.dropShadow};\n`;\n\nconst TableBody = styled.tbody`\n\t& tr {\n\t\ttd {\n\t\t\tfont-size: 16px;\n\t\t\tvertical-align: middle;\n\t\t\tpadding: 0px;\n\t\t}\n\t}\n\ttr:last-of-type td:first-of-type {\n\t\t${({ theme }) => theme.mediaQueries.md} {\n\t\t\tpadding: unset;\n\t\t}\n\t\tborder-bottom-left-radius: 30px;\n\t\toverflow: hidden;\n\t}\n\ttr:last-of-type td:last-of-type {\n\t\t${({ theme }) => theme.mediaQueries.md} {\n\t\t\tpadding: unset;\n\t\t}\n\t\tborder-bottom-right-radius: 30px;\n\t\toverflow: hidden;\n\t}\n\n\t@media screen and (max-width: 768px) {\n\t\ttr:first-of-type td:first-of-type {\n\t\t\tborder-top-left-radius: 30px;\n\t\t}\n\n\t\ttr:first-of-type td:last-of-type {\n\t\t\tborder-top-right-radius: 30px;\n\n\t\t\tdiv {\n\t\t\t\tborder-top-right-radius: 30px;\n\t\t\t}\n\t\t}\n\t}\n`;\n\nconst TableHeader = styled.thead`\n\t& tr {\n\t\tdisplay: none;\n\t\tbackground: var(--color-background);\n\t\tpadding: 36px 64px;\n\t\theight: 73px;\n\t\tborder-bottom: 1px solid var(--color-border-2);\n\n\t\tth:first-of-type {\n border-top-left-radius: 30px;\n }\n th:last-of-type {\n border-top-right-radius: 30px;\n }\n\n\t\tth {\n\t\t\tbackground: var(--color-background);\n\t\t\tfont-size: 13px;\n\t\t\tfont-weight: 400;\n\t\t\tvertical-align: middle;\n\t\t\tcolor: var(--color-text-2);\n\n\t\t\t&:nth-child(1) {\n\t\t\t\twidth: 25%\n\t\t\t}\n\n\t\t\t&:nth-child(3) {\n\t\t\t\twidth: 15%\n\t\t\t}\n\t\t}\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\t& tr {\n\t\t\tdisplay: table-row;\n\t\t}\n\t}\n`;\n\nconst TableContainer = styled.div`\n\tposition: relative;\n\tbackground: var(--color-background-2);\n\tborder-radius: 30px;\n`;\n\nconst SortContainer = styled.div`\n\tdisplay: inline-block;\n\tposition: relative;\n\theight: 15px;\n\twidth: 15px;\n\tcursor: pointer;\n`;\n\nconst PlatformFeeIconWrap = styled.div`\n\tdisplay: inline-block;\n\tposition: relative;\n\tmargin-left: 10px;\n\theight: auto;\n\ttop: 6px;\n`;\n\nconst SortUp = styled.img`\n\twidth: 8px;\n\theight: 6px;\n\tposition: absolute;\n\ttop: 4px;\n\tleft: 10px;\n`;\n\nconst SortDown = styled.img`\n\twidth: 8px;\n\theight: 6px;\n\tposition: absolute;\n\tbottom: -4px;\n\tleft: 10px;\n`;\n\nconst FarmTable: React.FC = (props) => {\n\tconst [sortColumn, setSort] = useState('');\n\tconst [sortOrder, setOrder] = useState('desc');\n\tconst setSortColumn = useCallback((col) => setSort(col), [setSort]);\n\tconst setSortOrder = useCallback((order) => setOrder(order), [setOrder]);\n\tconst tableWrapperEl = useRef(null);\n\tconst { data, columns } = props;\n\tconst { rows } = useTable(columns, data, { sortable: true, sortColumn });\n\tconst { spaceMode } = useSettingMode();\n\tconst selected = columns.find((c) => c.name === sortColumn);\n\n\tconst renderSort = (colName, type) => {\n\t\tif (spaceMode) {\n\t\t\treturn type === 'up' ? '/images/sort_up-space.svg' : '/images/sort_down-space.svg';\n\t\t}\n\n\t\tif (sortColumn === colName && sortOrder === 'desc') {\n\t\t\treturn type === 'up' ? '/images/sort_up_selected.svg' : '/images/sort_down_selected.svg';\n\t\t}\n\n\t\treturn type === 'up' ? '/images/sort_up.svg' : '/images/sort_down.svg';\n\t};\n\n\tif (selected) {\n\t\trows.sort((a, b) => {\n\t\t\tif (a.original.farm.label < b.original.farm.label) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\treturn 1;\n\t\t});\n\n\t\trows.sort((a, b) => {\n\t\t\tif (sortOrder === 'asc') {\n\t\t\t\treturn selected.sort(a, b);\n\t\t\t}\n\t\t\treturn selected.sort(b, a);\n\t\t});\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{columns.map((col) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\tdata[0].platform.type === PoolType.STAKE && ['Fees earned (yr.)', 'Volume 24H'].includes(col.label)\n\t\t\t\t\t\t\t\t\t\t\t?\n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{col.label}\n\t\t\t\t\t\t\t\t\t\t\t\t{col.name !== 'details' && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSortColumn(col.name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSortOrder('desc');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc={renderSort(col.name, 'up')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSortColumn(col.name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSortOrder('asc');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc={renderSort(col.name, 'down')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{col.name === 'platform' && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAnnualized earning base on 24hr trading volume\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"icon-info\"\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{rows.map((row) => {\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default FarmTable;\n","// Set of helper functions to facilitate wallet setup\n\nimport { nodes } from './getRpcUrl';\n\n/**\n * Prompt the user to add BSC as a network on Metamask, or switch to BSC if the wallet is on a different network\n * @returns {[boolean, string]} [true, \"\"] if the setup succeeded, [false, \"some error\"] otherwise\n */\nexport const setupNetwork = async () => {\n\tconst provider = (window as WindowChain).ethereum;\n\tif (provider) {\n\t\tconst chainId = parseInt(process.env.REACT_APP_CHAIN_ID, 10);\n\t\ttry {\n\t\t\tawait provider.request({\n\t\t\t\tmethod: 'wallet_addEthereumChain',\n\t\t\t\tparams: [\n\t\t\t\t\t{\n\t\t\t\t\t\tchainId: `0x${chainId.toString(16)}`,\n\t\t\t\t\t\tchainName: 'BNB Chain Mainnet',\n\t\t\t\t\t\tnativeCurrency: {\n\t\t\t\t\t\t\tname: 'BNB',\n\t\t\t\t\t\t\tsymbol: 'bnb',\n\t\t\t\t\t\t\tdecimals: 18,\n\t\t\t\t\t\t},\n\t\t\t\t\t\trpcUrls: nodes,\n\t\t\t\t\t\tblockExplorerUrls: ['https://bscscan.com/'],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\treturn true;\n\t\t} catch (error) {\n\t\t\t// @ts-ignore\n\t\t\tconsole.error(error);\n\t\t\treturn false;\n\t\t}\n\t} else {\n\t\tconsole.error(\"Can't setup the BSC network on metamask because window.ethereum is undefined\");\n\t\treturn false;\n\t}\n};\n\n/**\n * Prompt the user to add a custom token to metamask\n * @param tokenAddress\n * @param tokenSymbol\n * @param tokenDecimals\n * @param tokenImage\n * @returns {boolean} true if the token has been added, false otherwise\n */\nexport const registerToken = async (\n\ttokenAddress: string,\n\ttokenSymbol: string,\n\ttokenDecimals: number,\n\ttokenImage: string,\n) => {\n\tconst tokenAdded = await (window as WindowChain).ethereum.request({\n\t\tmethod: 'wallet_watchAsset',\n\t\tparams: {\n\t\t\ttype: 'ERC20',\n\t\t\toptions: {\n\t\t\t\taddress: tokenAddress,\n\t\t\t\tsymbol: tokenSymbol,\n\t\t\t\tdecimals: tokenDecimals,\n\t\t\t\timage: tokenImage,\n\t\t\t},\n\t\t},\n\t});\n\n\treturn tokenAdded;\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.svg``;\n\nconst IconApe: React.FC = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default IconApe;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.svg``;\n\nconst IconDebank: React.FC = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default IconDebank;\n","import React, { ReactNode } from 'react';\nimport styled from 'styled-components';\n\ninterface PortfolioLinkProps {\n\tto: string;\n\n\tclassName?: string;\n\tchildren?: ReactNode;\n}\n\nconst Wrapper = styled.a`\n\theight: 60px;\n\twidth: 60px;\n\n\tbackground-color: #202251;\n\tborder-radius: 10px;\n`;\n\nconst PortfolioLink: React.FC = ({ to, className, children }) => {\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default PortfolioLink;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useWeb3React } from '@web3-react/core';\n\n// components\nimport IconApe from 'components/Icon/IconApe';\nimport IconDebank from 'components/Icon/IconDebank';\nimport PortfolioLink from './PortfolioLink';\n\nconst Wrapper = styled.div`\n\twidth: 100%;\n\tmargin: 60px auto auto;\n\n\t@media (min-width: 768px) {\n\t\twidth: 180px;\n\t\tmargin: auto;\n\t}\n`;\n\nconst Title = styled.h4`\n\tfont-size: 15px;\n\tfont-weight: 500;\n\tcolor: var(--color-text-2);\n\ttext-align: center;\n\tmargin-bottom: 18px;\n\n\t@media (min-width: 768px) {\n\t\tfont-size: 18px;\n\t\ttext-align: left;\n\n\t\tmargin-bottom: 15px;\n\t}\n`;\n\nconst PortfolioWrapper = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\n\t.portfolio-item {\n\t\tmargin-right: 30px;\n\n\t\t&:last-child {\n\t\t\tmargin-right: 0;\n\t\t}\n\t}\n\n\t@media (min-width: 768px) {\n\t\tjustify-content: flex-start;\n\t}\n`;\n\nconst ViewPortfolio: React.FC = () => {\n\tconst { account } = useWeb3React();\n\n\tconst apeUrl = account ? `https://apeboard.finance/dashboard/${account}?chain=BSC` : 'https://apeboard.finance/';\n\tconst debankUrl = account ? `https://debank.com/profile/${account}?chain=bsc` : 'https://debank.com/';\n\n\treturn (\n\t\t\n\t\t\tView your portfolio\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ViewPortfolio;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useMatchBreakpoints } from '@pancakeswap-libs/uikit';\nimport { registerToken } from 'utils/wallet';\n\n// components\nimport ViewPortfolio from './ViewPortfolio';\n\nconst Container = styled.div`\n\tfilter: ${({ theme }) => theme.card.dropShadow};\n\twidth: 100%;\n\tmargin: 0px 0px 42px;\n\tpadding: 0;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n`;\n\nconst Title = styled.p`\n\tfont-size: 15px;\n\tfont-weight: 700;\n\tcolor: var(--color-text);\n\tmargin-bottom: 10px;\n`;\n\nconst TokenLink = styled.a`\n\tfont-size: 14px;\n\ttext-decoration: none;\n\tcolor: ${(props) => props.theme.colors.primary};\n\tcursor: pointer;\n`;\n\nconst Content = styled.div`\n\tdisplay: block;\n\tmargin-top: 30px;\n\tposition: relative;\n\n\t& > div:first-child {\n\t\twidth: 100%;\n\t\tposition: relative;\n\t\tbox-shadow: 0px 0px 25px 2px rgba(0, 0, 0, 0.05);\n\t}\n\n\t& > div:last-child {\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin-top: 15px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tdisplay: flex;\n\t\t& > div:first-child {\n\t\t\twidth: 50%;\n\t\t}\n\t\t& > div:last-child {\n\t\t\twidth: 50%;\n\t\t\theight: 300px;\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n`;\n\ninterface RewardProps {\n\tsum?: string;\n\tbalance?: string;\n}\n\nconst Reward: React.FC = ({ sum, balance }) => {\n\tconst { isXl } = useMatchBreakpoints();\n\tconst isMobile = !isXl;\n\n\treturn (\n\t\t\n\t\t\tYour Reward Summary{' '}\n\t\t\t\n\t\t\t\t{' '}\n\t\t\t\t
\n\t\t\t\t\t{' '}\n\t\t\t\t\t{isMobile ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\"reward\"\n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tWAD earned :\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{sum}\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tYour WAD wallet balance :\n\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\t{balance}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tregisterToken(\n\t\t\t\t\t\t\t\t\t\t'0x0fEAdcC3824E7F3c12f40E324a60c23cA51627fc',\n\t\t\t\t\t\t\t\t\t\t'WAD',\n\t\t\t\t\t\t\t\t\t\t18,\n\t\t\t\t\t\t\t\t\t\t'https://image.wardenswap.finance/WAD-Token.png',\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\"plus\"\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tWarden Tokens\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tDetail here\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Reward;\n","import React from 'react';\nimport { useSettingMode } from 'state/hooks';\n\ninterface ContactInfoProps {\n\tstyleOption?: string;\n}\n\nconst ContactInfo: React.FC = ({ styleOption }) => {\n\tconst { spaceMode } = useSettingMode();\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default ContactInfo;\n","import React from 'react';\nimport { Dialog } from 'primereact/dialog';\nimport useAuth from 'hooks/useAuth';\nimport './style.scss';\nimport { DialogPositionType } from '../types'\n\ninterface WalletProps {\n\tvisible?: boolean;\n\tisMobile?: boolean;\n\tmodalPosition?: DialogPositionType;\n\tonHide(): any;\n}\n\nenum ConnectorNames {\n\tInjected = 'injected',\n\tWalletConnect = 'walletconnect',\n\tBSC = 'bsc',\n}\n\nconst ConnectWalletModal: React.FC = ({ visible, modalPosition, isMobile, onHide }) => {\n\tconst { login } = useAuth();\n\tconst onLogin = (key) => {\n\t\tlogin(key);\n\t\twindow.localStorage.setItem('connectorId', key);\n\t\tonHide();\n\t};\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{!isMobile && (\n\t\t\t\t\t\t onLogin(ConnectorNames.BSC)}\n\t\t\t\t\t\t\tclassName=\"border-2 rounded-lg text-left p-3 w-full grid grid-cols-6 cursor-pointer wallet-btn\"\n\t\t\t\t\t\t\tstyle={{ border: '2px solid' }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
Binance Chain Wallet
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{!isMobile ? (\n\t\t\t\t\t\t onLogin(ConnectorNames.Injected)}\n\t\t\t\t\t\t\tclassName=\"border-2 rounded-lg text-left p-3 w-full grid grid-cols-6 cursor-pointer wallet-btn\"\n\t\t\t\t\t\t\tstyle={{ border: '2px solid' }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
MetaMask
\n\t\t\t\t\t\t
\n\t\t\t\t\t) : (\n\t\t\t\t\t\t onLogin(ConnectorNames.WalletConnect)}\n\t\t\t\t\t\t\tclassName=\"border-2 rounded-lg text-left p-3 w-full grid grid-cols-6 cursor-pointer wallet-btn\"\n\t\t\t\t\t\t\tstyle={{ border: '2px solid' }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
MetaMask
\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t onLogin(ConnectorNames.WalletConnect)}\n\t\t\t\t\t\tclassName=\"border-2 rounded-lg text-left p-3 w-full grid grid-cols-6 cursor-pointer wallet-btn\"\n\t\t\t\t\t\tstyle={{ border: '2px solid' }}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
WalletConnect
\n\t\t\t\t\t\n\t\t\t\t\t onLogin(ConnectorNames.WalletConnect)}\n\t\t\t\t\t\tclassName=\"border-2 rounded-lg text-left p-3 w-full grid grid-cols-6 cursor-pointer wallet-btn\"\n\t\t\t\t\t\tstyle={{ border: '2px solid' }}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
Trust Wallet
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ConnectWalletModal;\n","/* eslint-disable no-nested-ternary */\nimport React from 'react';\nimport { Dialog } from 'primereact/dialog';\nimport { Button } from 'primereact/button';\nimport { Skeleton } from 'primereact/skeleton';\nimport { registerToken } from 'utils/wallet';\nimport { usePriceCakeBusd, useSettingMode } from 'state/hooks';\nimport Jazzicon, { jsNumberForAddress } from 'react-jazzicon';\nimport { useWeb3React } from '@web3-react/core';\nimport useAuth from 'hooks/useAuth';\nimport './style.scss';\nimport { DialogPositionType } from '../types'\n\ninterface WalletProps {\n\tvisible?: boolean;\n\tisMobile?: boolean;\n\tmodalPosition?: DialogPositionType;\n\tsum?: number;\n\tbalance?: number;\n\tonHide(): any;\n}\n\nenum DisplayWalletProvider {\n\tinjected = 'MetaMask',\n\twalletconnect = 'Wallet Connect',\n\tbsc = 'Binance Chain Wallet',\n}\n\nconst truncate = (fullStr, strLen) => {\n\tif (fullStr.length <= strLen) return fullStr;\n\tconst separator = '...';\n\n\tconst sepLen = separator.length;\n\tconst charsToShow = strLen - sepLen;\n\tconst frontChars = Math.ceil(charsToShow / 2);\n\tconst backChars = Math.floor(charsToShow / 2);\n\n\treturn fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nconst AccountModal: React.FC = ({ visible, modalPosition, isMobile, onHide, sum, balance }) => {\n\tconst { logout } = useAuth();\n\tconst { account } = useWeb3React();\n\tconst walletProvider = window.localStorage.getItem('connectorId');\n\tconst cakePrice = usePriceCakeBusd();\n\tconst { spaceMode } = useSettingMode();\n\n\treturn (\n\t\t\n\t\t\t

\n\t\t\t

\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{DisplayWalletProvider[walletProvider]} Connected\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{truncate(account, 13)}\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (navigator.clipboard) {\n\t\t\t\t\t\t\t\t\t\t\t\tnavigator.clipboard.writeText(account);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\"copy\"\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t window.open(`https://bscscan.com/address/${account}`, '_blank')}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t\t\tBSC Scan\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tlogout();\n\t\t\t\t\t\t\t\t\twindow.localStorage.removeItem('connectorId');\n\t\t\t\t\t\t\t\t\tonHide();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t\t\tDisconnect\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\"coin\"\n\t\t\t\t\t{sum && balance ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{(sum + balance).toLocaleString()} WAD\n\t\t\t\t\t\t\n\t\t\t\t\t) : sum === 0 ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{balance.toLocaleString()} WAD\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t\t
Balance
\n\t\t\t\t\t\t{balance ? (\n\t\t\t\t\t\t\t
{balance.toLocaleString()} WAD
\n\t\t\t\t\t\t) : balance === 0 ? (\n\t\t\t\t\t\t\t
0 WAD
\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tUnclaimed\n\t\t\t\t\t\t{sum ? (\n\t\t\t\t\t\t\t{sum.toLocaleString()} WAD\n\t\t\t\t\t\t) : sum === 0 ? (\n\t\t\t\t\t\t\t0 WAD\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
WAD Price
\n\t\t\t\t\t\t{cakePrice ?
$ {cakePrice.toFixed(3)}
: }\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\tregisterToken(\n\t\t\t\t\t\t\t\t'0x0fEAdcC3824E7F3c12f40E324a60c23cA51627fc',\n\t\t\t\t\t\t\t\t'WAD',\n\t\t\t\t\t\t\t\t18,\n\t\t\t\t\t\t\t\t'https://image.wardenswap.finance/WAD-Token.png',\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\tAdd WAD Token\n\t\t\t\t\t\t\"wad\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default AccountModal;\n","import React from 'react';\nimport './style.scss';\n\ninterface BaseSwitchProps {\n\tname: string;\n\tchecked?: boolean;\n\tonToggle(): any;\n}\n\nconst BaseSwitch: React.FC = ({ name, checked, onToggle }) => {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t<>{/* eslint-disable-next-line jsx-a11y/label-has-associated-control */}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default BaseSwitch;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Dialog } from 'primereact/dialog';\nimport { useMatchBreakpoints } from '@pancakeswap-libs/uikit';\nimport './style.scss';\nimport { setSpaceMode, setMuteMode } from 'state/setting';\nimport { getMute, getTheme, toggleMute, toggleTheme } from '../../utils/helper';\nimport THEME from '../../enums/theme';\nimport { State } from '../../state/types';\n\n// components\nimport BaseSwitch from '../BaseSwitch';\n\ninterface SettingProps {\n\tvisible?: boolean;\n\tisMobile?: boolean;\n\tmodalPosition?: string;\n\tonHide(): any;\n}\n\nconst Divider = styled.div`\n\theight: 1px;\n\twidth: 100%;\n\tbackground-color: var(--color-border-2);\n`;\n\nconst SettingModal: React.FC = ({ visible, onHide }) => {\n\tconst dispatch = useDispatch();\n\tconst { spaceMode, muteMode } = useSelector((state: State) => state.setting);\n\n\tconst { isXl } = useMatchBreakpoints();\n\tconst isMobile = !isXl;\n\n\tconst onToggleMute = () => {\n\t\ttoggleMute();\n\n\t\tconst mute = getMute();\n\t\tdispatch(setMuteMode(mute));\n\n\t\tif (!mute) {\n\t\t\tconst audio = document.getElementById('bgMusic') as HTMLAudioElement;\n\n\t\t\tif (audio) {\n\t\t\t\taudio.play();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onToggleTheme = () => {\n\t\ttoggleTheme();\n\n\t\tconst theme = getTheme();\n\t\tconst isSpaceMode = theme === THEME.SPACE_MODE;\n\t\tdispatch(setSpaceMode(isSpaceMode));\n\n\t\tdocument.body.setAttribute('data-theme', theme);\n\n\t\tconst url = window.location.href;\n\t\tconst isFarm = url.indexOf('farm') !== -1;\n\t\tconst redirectPath = isFarm ? '/#/farm' : '/';\n\t\twindow.history.pushState('', '', redirectPath);\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\"space\"\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Space Mode

\n\t\t\t\t\t

\n\t\t\t\t\t\tWhen your eyes are burning, we would like to invite you to join us on a space trip.\n\t\t\t\t\t\t\"smile\"\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\"sound\"\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Silent Mode

\n\t\t\t\t\t

\n\t\t\t\t\t\tIf you are annoyed by the “pew pew” noise during token exchange. You can turn off the sound\n\t\t\t\t\t\t\"mute\"\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SettingModal;\n","import React from 'react';\nimport { useSettingMode } from 'state/hooks';\nimport './style.scss';\n\ninterface SwitchNetworkProps {\n padding?: string;\n}\n\nconst SwitchNetworkList: React.FC = ({ padding ='8px 25px' }) => {\n\n\tconst { spaceMode, muteMode } = useSettingMode();\n\tconst query = `&t=${spaceMode ? '1' : '0'}&s=${muteMode ? '1' : '0'}`;\n\n\tconst isAlpha = process.env.REACT_APP_ENV === 'alpha';\n\n\treturn (\n
\n \n
\n
\n \n
\n \n Ethereum\n \n
\n \n \n
\n
\n \n \n
\n \n BNB Chain\n \n
\n
\n \n
\n
\n \n
\n \n Polygon\n \n
\n \n \n
\n
\n \n
\n \n Avalanche\n \n
\n \n \n
\n
\n \n
\n \n Arbitrum\n \n
\n

L2

\n
\n
\n \n \n
\n
\n \n
\n \n Optimism\n \n
\n

L2

\n
\n
\n \n \n\t);\n};\n\nexport default SwitchNetworkList;\n","import React from 'react';\nimport SwitchNetworkList from './SwitchNetworkList'\nimport './style.scss';\n\ninterface SwitchNetworkProps {\n\tcloseToggle?: any;\n}\n\nconst SwitchNetworkDropdown: React.FC = () => {\n\treturn (\n
\n \n
\n\t);\n};\n\n\n\nexport default SwitchNetworkDropdown;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { Flex } from '@pancakeswap-libs/uikit';\nimport Jazzicon, { jsNumberForAddress } from 'react-jazzicon';\nimport { useWeb3React } from '@web3-react/core';\nimport { useDetectClickOutside } from \"react-detect-click-outside\";\nimport { useSettingMode } from 'state/hooks';\nimport ConnectWalletModal from '../ConnectWalletModal';\nimport AccountModal from '../AccountModal';\nimport SettingModal from '../SettingModal';\nimport SwitchNetworkDropdown from '../SwitchNetwork/SwitchNetworkDropdown';\nimport './style.scss';\n\ninterface WalletProps {\n\tisCorrectNetwork?: boolean;\n\tsum?: number;\n\tbalance?: number;\n}\n\nconst Wrapper = styled.div`\n\tdisplay: flex;\n`;\n\nconst ImgSetting = styled.img`\n\tmargin-left: 8px;\n\tcursor: pointer;\n`;\n\nconst truncate = (fullStr, strLen) => {\n\tif (fullStr.length <= strLen) return fullStr;\n\tconst separator = '...';\n\n\tconst sepLen = separator.length;\n\tconst charsToShow = strLen - sepLen;\n\tconst frontChars = Math.ceil(charsToShow / 2);\n\tconst backChars = Math.floor(charsToShow / 2);\n\n\treturn fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nconst ConnectWalletButton: React.FC = ({ isCorrectNetwork, sum, balance }) => {\n\tconst [show, setShow] = useState(false);\n\tconst { spaceMode } = useSettingMode();\n\tconst [showAccount, setAccountShow] = useState(false);\n\tconst [showSetting, setShowSetting] = useState(false);\n\tconst { account } = useWeb3React();\n\tconst [toggleDropdown, setToggleDropdown] = useState(false);\n\n\tconst handleToggle = (e) => {\n e.preventDefault();\n setToggleDropdown((prevState) => !prevState);\n }\n\tconst closeToggle = () => {\n setToggleDropdown(false);\n };\n\n\tconst ref = useDetectClickOutside({ onTriggered: closeToggle });\n\n\treturn (\n\t\t\n\t\t\t setShow(false)} />\n\t\t\t setShowSetting(false)}\n\t\t\t/>\n\t\t\t{account && (\n\t\t\t\t setAccountShow(false)}\n\t\t\t\t\tsum={sum}\n\t\t\t\t\tbalance={balance}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{!account ? (\n\t\t\t\t {\n\t\t\t\t\t\tsetShow(true);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tConnect wallet\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t {\n\t\t\t\t\t\tsetAccountShow(true);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{truncate(account, 13)}\n\t\t\t\t\t\"icon\"\n\t\t\t\t\n\t\t\t)}\n\t\t\t{!isCorrectNetwork && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t {\n\t\t\t\t\tsetShowSetting(true);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t{toggleDropdown && }\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default ConnectWalletButton;\n","import { Web3Provider } from '@ethersproject/providers';\nimport { useWeb3React as useWeb3ReactCore } from '@web3-react/core';\n\nconst useActiveWeb3React = () => {\n\tconst context = useWeb3ReactCore();\n\treturn context\n}\n\nexport default useActiveWeb3React\n","import React, { useState } from 'react';\nimport { useMatchBreakpoints, ConnectorNames } from '@pancakeswap-libs/uikit';\nimport { getProviderInfo } from 'web3modal'\nimport { Dialog } from 'primereact/dialog';\nimport { useSettingMode } from 'state/hooks';\nimport SwitchNetworkList from './SwitchNetworkList'\nimport useActiveWeb3React from '../../hooks/useActiveWeb3React'\nimport useAuth from '../../hooks/useAuth';\nimport './style.scss';\n\ninterface SwitchNetworkProps {\n\tvisible?: boolean;\n\tonHide(): any;\n}\n\nconst SwitchNetworkModal: React.FC = ({ visible, onHide }) => {\n const [walletName, setWalletName] = useState('');\n const web3ReactContext = useActiveWeb3React();\n\tconst { isXl } = useMatchBreakpoints();\n\tconst isMobile = !isXl;\n const walletProvider = window.localStorage.getItem('connectorId');\n\n\tconst { spaceMode, muteMode } = useSettingMode();\n\tconst query = `&t=${spaceMode ? '1' : '0'}&s=${muteMode ? '1' : '0'}`;\n\n\tconst isAlpha = process.env.REACT_APP_ENV === 'alpha';\n\n const handleWalletName = async () => {\n\t\tconst provider = await web3ReactContext?.connector?.getProvider()\n\t\tconst { name } = getProviderInfo(provider)\n\t\tsetWalletName(name)\n\t}\n\n const { login } = useAuth();\n\tconst onLogin = (key) => {\n\t\tlogin(key);\n onHide();\n\t};\n\n\thandleWalletName()\n\n const walleTypes = [\n {\n iconPath: '/images/icon-metamask.svg',\n displayText: 'MetaMask',\n walletNameSupport: 'MetaMask',\n walletProvider: ConnectorNames.Injected,\n },\n {\n iconPath: '/images/icon-walletconnect.svg',\n displayText: 'WalletConnect',\n walletProvider: ConnectorNames.WalletConnect,\n },\n {\n iconPath: '/images/icon-safepal.svg',\n displayText: 'SafePal',\n walletNameSupport: 'Web3',\n walletProvider: ConnectorNames.Injected,\n },\n {\n iconPath: '/images/icon-trust-wallet.svg',\n displayText: 'Trust Wallet',\n walletNameSupport: 'Trust',\n walletProvider: ConnectorNames.Injected,\n }\n ]\n\treturn (\n\t\t\n\t\t\t\n
\n
\n

Select Wallet

\n
\n {walleTypes.map(wallet => {\n return (\n onLogin(wallet.walletProvider)}\n className=\"flex flex-col justify-center items-center space-y-2\"\n >\n
\n \"icon-wallet\"/\n \n
\n
{ wallet.displayText }
\n
\n )\n })}\n
\n
\n\t\t\n\t);\n};\n\nexport default SwitchNetworkModal;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { Sidebar } from 'primereact/sidebar';\nimport { useSettingMode } from 'state/hooks';\nimport ConnectWalletButton from './ConnectWalletButton';\nimport ContactInfo from './ContactInfo';\nimport SettingModal from '../SettingModal';\nimport SwitchNetworkAndConnectWalletModal from '../SwitchNetwork/SwitchNetworkAndConnectWalletModal';\nimport './style.scss';\n\ninterface HeaderProps {\n\tsum?: number;\n\tbalance?: number;\n\tmenu?: string;\n}\n\nconst Right = styled.div`\n\tdisplay: flex;\n\tposition: relative;\n`;\n\nconst ImgSetting = styled.img`\n\twidth: 30px;\n\tcursor: pointer;\n\tmargin-right: 16px;\n`;\n\nconst Header: React.FC = ({ sum, balance, menu }) => {\n\tconst [show, setShow] = useState(false);\n\tconst [showSetting, setShowSetting] = useState(false);\n\tconst [showSelectChain, setShowSelectChain] = useState(false);\n\tconst { spaceMode, muteMode } = useSettingMode();\n\tconst query = `?t=${spaceMode ? '1' : '0'}&s=${muteMode ? '1' : '0'}`;\n\tconst isAlpha = process.env.REACT_APP_ROLLBAR_ENV === 'alpha';\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tBest Rate Swap\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLiquidity\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tFarms\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNFT\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDashboard\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetShowSelectChain(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetShowSetting(true);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t setShow(true)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t setShow(false)}>\n\t\t\t\t\t\t false} className=\"router-link-active\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\tBest Rate Swap\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\tLiquidity\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\tFarms\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\tNFT\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\tDashboard\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t setShowSetting(false)}\n\t\t\t/>\n\n\t\t\t setShowSelectChain(false)} />\n\t\t\n\t);\n};\n\nexport default Header;\n","import React, { useState } from 'react';\nimport Jazzicon, { jsNumberForAddress } from 'react-jazzicon';\nimport { useWeb3React } from '@web3-react/core';\nimport { useSettingMode } from 'state/hooks';\nimport ConnectWalletModal from '../ConnectWalletModal';\nimport SwitchNetworkAndConnectWalletModal from '../SwitchNetwork/SwitchNetworkAndConnectWalletModal';\nimport AccountModal from '../AccountModal';\nimport './style.scss';\n\ninterface WalletProps {\n\tisCorrectNetwork?: boolean;\n\tsum?: number;\n\tbalance?: number;\n}\n\nconst truncate = (fullStr, strLen) => {\n\tif (fullStr.length <= strLen) return fullStr;\n\tconst separator = '...';\n\n\tconst sepLen = separator.length;\n\tconst charsToShow = strLen - sepLen;\n\tconst frontChars = Math.ceil(charsToShow / 2);\n\tconst backChars = Math.floor(charsToShow / 2);\n\n\treturn fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nconst ConnectWalletButtonOnMobile: React.FC = ({ isCorrectNetwork, sum, balance }) => {\n\tconst [show, setShow] = useState(false);\n\tconst [showAccount, setAccountShow] = useState(false);\n\tconst { account } = useWeb3React();\n\tconst { spaceMode } = useSettingMode();\n\n\treturn (\n\t\t
\n\t\t\t setShow(false)} />\n\t\t\t setShow(false)} />\n\t\t\t{account && (\n\t\t\t\t setAccountShow(false)}\n\t\t\t\t\tsum={sum}\n\t\t\t\t\tbalance={balance}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{!account ? (\n\t\t\t\t setShow(true)}\n\t\t\t\t>\n\t\t\t\t\tConnect Wallet\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t setAccountShow(true)}\n\t\t\t\t>\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{truncate(account, 13)}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{!isCorrectNetwork && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default ConnectWalletButtonOnMobile;\n","import React, { ReactNode } from 'react';\nimport styled from 'styled-components';\n\ninterface Props {\n\tchildren: ReactNode;\n\tname: string;\n}\n\nconst Container = styled.div`\n\tmax-width: 960px;\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\n\tmargin: 40px 0 24px;\n\n\t@media only screen and (max-width: 768px) {\n\t\tjustify-content: center;\n\t}\n`;\n\nconst Icon = styled.div``;\n\nconst Name = styled.div`\n\tfont-size: 20px;\n\tfont-weight: bold;\n\tcolor: var(--color-text);\n\n\tmargin-left: 12px;\n\n\t@media only screen and (max-width: 768px) {\n\t\tfont-size: 17px;\n\t}\n`;\n\nconst PoolName: React.FC = ({ children, name }) => {\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\t{name}\n\t\t\n\t);\n};\n\nexport default PoolName;\n","import React, { useEffect, useCallback, useState } from 'react';\n\nimport useRefresh from 'hooks/useRefresh';\nimport BigNumber from 'bignumber.js';\nimport { ethers } from 'ethers'\nimport { RowType } from '@pancakeswap-libs/uikit';\n\nimport { BLOCKS_PER_YEAR, CAKE_PER_BLOCK, CAKE_POOL_PID } from 'config';\nimport { QuoteToken } from 'config/constants/types';\nimport { useLocation } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { useFarms, usePriceBnbBusd, usePriceCakeBusd, usePriceEthBusd, useSettingMode } from 'state/hooks';\nimport { useWeb3React } from '@web3-react/core';\nimport { fetchFarmUserDataAsync } from 'state/actions';\nimport { Toast } from 'primereact/toast';\nimport { orderBy } from 'lodash';\nimport { useTokenBalance } from 'hooks/useTokenBalance';\nimport { useFarmTVL } from 'hooks/useFarmTVL';\nimport { useFarmDayTradeVolumeAndFeeEarn } from 'hooks/useFarmDayTradeVolumeAndFeeEarn';\nimport { getBalanceNumber } from 'utils/formatBalance';\nimport { getWadAddress } from 'utils/addressHelpers';\nimport { FarmWithStakedValue } from './components/FarmCard/FarmCard';\nimport { DesktopColumnSchema } from './components/types';\nimport { RowProps } from './components/FarmTable/Row';\nimport Table from './components/FarmTable/FarmTable';\nimport Reward from './components/Reward';\nimport ContactInfo from '../../components/Header/ContactInfo';\nimport Header from '../../components/Header';\nimport ConnectWalletButtonOnMobile from '../../components/ConnectWalletButtonOnMobile';\nimport PoolName from './components/PoolName';\nimport './style.scss';\n\nimport { PoolType } from '../../config/constants/types';\n\nconst Farms: React.FC = () => {\n\tconst { pathname } = useLocation();\n\n\tconst farmsLP = useFarms();\n\n\tconst cakePrice = usePriceCakeBusd();\n\tconst bnbPrice = usePriceBnbBusd();\n\tconst { spaceMode } = useSettingMode();\n\n\tconst activeFarms = farmsLP.filter((farm) => farm.poolType === PoolType.LP);\n\n\tconst inactiveFarms = farmsLP.filter((farm) => farm.poolType === PoolType.LP && farm.multiplier === '0X');\n\tconst pancakeFarms = farmsLP.filter((farm) => farm.poolType === PoolType.LP_PANCAKE);\n\n\tconst ethPriceUsd = usePriceEthBusd();\n\tconst { account } = useWeb3React();\n\tconst farmDayTradeVolumeAndFeeEarn = useFarmDayTradeVolumeAndFeeEarn()\n\tconst activeFarmsContractAddress = activeFarms\n\t\t.filter((v): string => {\n\t\t\treturn v.lpAddresses['56'] ?? null\n\t\t})\n\t\t.map(v => v.lpAddresses['56'].toLowerCase())\n\n\tconst farmTVL = useFarmTVL(activeFarmsContractAddress)\n\n\tconst [sortOption, setSortOption] = useState('');\n\tconst [query, setQuery] = useState('');\n\tconst [stackedOnly, setStackedOnly] = useState(false);\n\n\n\tconst dispatch = useDispatch();\n\tconst { fastRefresh } = useRefresh();\n\tuseEffect(() => {\n\t\tif (account) {\n\t\t\tdispatch(fetchFarmUserDataAsync(account));\n\t\t}\n\t}, [account, dispatch, fastRefresh]);\n\n\n\n\tconst tokenFarms = farmsLP.filter((farm) => farm.poolType === PoolType.STAKE);\n\n\tconst stackedOnlyFarms = activeFarms.filter(\n\t\t(farm) => farm.userData && new BigNumber(farm.userData.stakedBalance).isGreaterThan(0),\n\t);\n\n\tconst sortFarms = (farms: FarmWithStakedValue[]): FarmWithStakedValue[] => {\n\t\tswitch (sortOption) {\n\t\t\tcase 'apr':\n\t\t\t\treturn orderBy(farms, 'apy', 'desc');\n\t\t\tcase 'multiplier':\n\t\t\t\treturn orderBy(farms, (farm: FarmWithStakedValue) => Number(farm.multiplier.slice(0, -1)), 'desc');\n\t\t\tcase 'earned':\n\t\t\t\treturn orderBy(\n\t\t\t\t\tfarms,\n\t\t\t\t\t(farm: FarmWithStakedValue) => (farm.userData ? farm.userData.earnings : 0),\n\t\t\t\t\t'desc',\n\t\t\t\t);\n\t\t\tcase 'liquidity':\n\t\t\t\treturn orderBy(farms, (farm: FarmWithStakedValue) => Number(farm.liquidity), 'desc');\n\t\t\tcase 'fees':\n\t\t\t\treturn orderBy(farms, (farm: FarmWithStakedValue) => Number(farm.percentageFee), 'desc');\n\t\t\tdefault:\n\t\t\t\treturn farms;\n\t\t}\n\t};\n\n\tconst farmsList = useCallback(\n\t\t(farmsToDisplay, farmDayTradeVolumeAndFeeEarnToDisplay, farmTVLToDisplay): FarmWithStakedValue[] => {\n\t\t\tconst cakePriceVsBNB = new BigNumber(\n\t\t\t\tfarmsLP.find((farm) => farm.pid === CAKE_POOL_PID)?.tokenPriceVsQuote || 0,\n\t\t\t);\n\t\t\tlet farmsToDisplayWithAPY: FarmWithStakedValue[] = farmsToDisplay.map((farm) => {\n\t\t\t\tif (!farm.tokenAmount || !farm.lpTotalInQuoteToken) {\n\t\t\t\t\treturn farm;\n\t\t\t\t}\n\t\t\t\tconst cakeRewardPerBlock = CAKE_PER_BLOCK.times(farm.poolWeight);\n\t\t\t\tconst cakeRewardPerYear = cakeRewardPerBlock.times(BLOCKS_PER_YEAR);\n\n\t\t\t\t// cakePriceInQuote * cakeRewardPerYear / lpTotalInQuoteToken\n\t\t\t\tlet apy = cakePriceVsBNB.times(cakeRewardPerYear).div(farm.lpTotalInQuoteToken);\n\n\t\t\t\tif (\n\t\t\t\t\tfarm.quoteTokenSymbol === QuoteToken.BUSD ||\n\t\t\t\t\tfarm.quoteTokenSymbol === QuoteToken.UST ||\n\t\t\t\t\tfarm.quoteTokenSymbol === QuoteToken.USDT\n\t\t\t\t) {\n\t\t\t\t\tapy = cakePriceVsBNB.times(cakeRewardPerYear).div(farm.lpTotalInQuoteToken).times(bnbPrice);\n\t\t\t\t} else if (farm.quoteTokenSymbol === QuoteToken.ETH) {\n\t\t\t\t\tapy = cakePrice.div(ethPriceUsd).times(cakeRewardPerYear).div(farm.lpTotalInQuoteToken);\n\t\t\t\t} else if (farm.quoteTokenSymbol === QuoteToken.CAKE) {\n\t\t\t\t\tapy = cakeRewardPerYear.div(farm.lpTotalInQuoteToken);\n\t\t\t\t} else if (farm.dual) {\n\t\t\t\t\tconst cakeApy =\n\t\t\t\t\t\tfarm &&\n\t\t\t\t\t\tcakePriceVsBNB.times(cakeRewardPerBlock).times(BLOCKS_PER_YEAR).div(farm.lpTotalInQuoteToken);\n\t\t\t\t\tconst dualApy =\n\t\t\t\t\t\tfarm.tokenPriceVsQuote &&\n\t\t\t\t\t\tnew BigNumber(farm.tokenPriceVsQuote)\n\t\t\t\t\t\t\t.times(farm.dual.rewardPerBlock)\n\t\t\t\t\t\t\t.times(BLOCKS_PER_YEAR)\n\t\t\t\t\t\t\t.div(farm.lpTotalInQuoteToken);\n\n\t\t\t\t\tapy = cakeApy && dualApy && cakeApy.plus(dualApy);\n\t\t\t\t}\n\t\t\t\tlet liquidity\n\n\t\t\t\tif (farmTVLToDisplay && Reflect.ownKeys(farmTVLToDisplay).length) {\n\t\t\t\t\tliquidity = farmTVLToDisplay[ethers.utils.getAddress(farm.lpAddresses['56'])]?.reserveUSD ?? 0\n\t\t\t\t}\n\n\n\t\t\t\tlet percentageFee\n\t\t\t\t// Manage percentage fee\n\n\t\t\t\tif (farmDayTradeVolumeAndFeeEarnToDisplay && Reflect.ownKeys(farmDayTradeVolumeAndFeeEarnToDisplay).length) {\n\t\t\t\t\tconst fee = farmDayTradeVolumeAndFeeEarnToDisplay[ethers.utils.getAddress(farm.lpAddresses['56'])]?.feeYearly ?? 0\n\n\t\t\t\t\tpercentageFee = new BigNumber(fee).toFixed(2)\n\t\t\t\t}\n\n\t\t\t\tlet dayTradeVolume\n\t\t\t\t// Manage day trade volume\n\t\t\t\tif (farmDayTradeVolumeAndFeeEarnToDisplay && Reflect.ownKeys(farmDayTradeVolumeAndFeeEarnToDisplay).length) {\n\t\t\t\t\tconst volume = farmDayTradeVolumeAndFeeEarnToDisplay[ethers.utils.getAddress(farm.lpAddresses['56'])]?.dailyVolumeUSD ?? 0\n\n\t\t\t\t\tdayTradeVolume = new BigNumber(volume).toFixed(2)\n\t\t\t\t}\n\n\t\t\t\treturn { ...farm, apy, liquidity, percentageFee, dayTradeVolume };\n\t\t\t});\n\n\t\t\tif (query) {\n\t\t\t\tconst lowercaseQuery = query.toLowerCase();\n\t\t\t\tfarmsToDisplayWithAPY = farmsToDisplayWithAPY.filter((farm: FarmWithStakedValue) => {\n\t\t\t\t\tif (farm.lpSymbol.toLowerCase().includes(lowercaseQuery)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn farmsToDisplayWithAPY;\n\t\t},\n\t\t[bnbPrice, farmsLP, query, cakePrice, ethPriceUsd],\n\t);\n\n\tlet tokenStaked = [];\n\tlet lpStaked = [];\n\tlet lpStakedPancake = [];\n\n\tlpStaked = stackedOnly ? farmsList(stackedOnlyFarms, farmDayTradeVolumeAndFeeEarn, farmTVL) : farmsList(activeFarms, farmDayTradeVolumeAndFeeEarn, farmTVL);\n\tlpStakedPancake = farmsList(pancakeFarms, farmDayTradeVolumeAndFeeEarn, farmTVL);\n\ttokenStaked = farmsList(tokenFarms, farmDayTradeVolumeAndFeeEarn, farmTVL);\n\n\tconst tokenRowData = tokenStaked.map((farm) => {\n\t\tconst { quoteTokenAdresses, quoteTokenSymbol, tokenAddresses, poolType, dayTradeVolume } = farm;\n\t\tconst lpLabel = farm.lpSymbol && farm.lpSymbol.split(' ')[0].toUpperCase().replace('PANCAKE', '');\n\n\t\tconst row: RowProps = {\n\t\t\tfarm: {\n\t\t\t\tlabel: lpLabel,\n\t\t\t\tpid: farm.pid,\n\t\t\t\tmultiplier: farm.multiplier,\n\t\t\t},\n\t\t\tearned: {\n\t\t\t\tearnings: farm.userData ? getBalanceNumber(new BigNumber(farm.userData.earnings)) : null,\n\t\t\t\tpid: farm.pid,\n\t\t\t},\n\t\t\tliquidity: {\n\t\t\t\tliquidity: farm.liquidity,\n\t\t\t},\n\t\t\tmultiplier: {\n\t\t\t\tmultiplier: farm.multiplier,\n\t\t\t},\n\t\t\tdetails: { ...farm, poolType },\n\t\t\tplatform: { type: poolType },\n\t\t\tdayTradeVolume\n\t\t};\n\t\treturn row;\n\t});\n\n\tconst mapFarm = (farm) => {\n\t\tconst { quoteTokenAdresses, quoteTokenSymbol, tokenAddresses, dayTradeVolume } = farm;\n\t\tconst lpLabel = farm.lpSymbol && farm.lpSymbol.split(' ')[0].toUpperCase().replace('PANCAKE', '');\n\n\t\tconst row: RowProps = {\n\t\t\tfarm: {\n\t\t\t\tlabel: lpLabel,\n\t\t\t\tpid: farm.pid,\n\t\t\t\tmultiplier: farm.multiplier,\n\t\t\t},\n\t\t\tearned: {\n\t\t\t\tearnings: farm.userData ? getBalanceNumber(new BigNumber(farm.userData.earnings)) : null,\n\t\t\t\tpid: farm.pid,\n\t\t\t},\n\t\t\tliquidity: {\n\t\t\t\tliquidity: farm.liquidity,\n\t\t\t},\n\t\t\tmultiplier: {\n\t\t\t\tmultiplier: farm.multiplier,\n\t\t\t},\n\t\t\tdetails: { ...farm, poolType: farm.poolType },\n\t\t\tplatform: Object.assign(\n\t\t\t\t{ type: farm.poolType },\n\t\t\t\tfarm?.percentageFee && farm?.percentageFee !== undefined ?\t{percentageFee: farm.percentageFee } : null\n\t\t\t),\n\t\t\tdayTradeVolume\n\t\t};\n\n\t\treturn row;\n\t};\n\n\tconst lpRowData = lpStaked.map(mapFarm);\n\n\tconst lpRowDataPancake = lpStakedPancake.map(mapFarm);\n\n\tconst columnSchema = DesktopColumnSchema;\n\tconst columns = columnSchema.map((column) => ({\n\t\tid: column.id,\n\t\tname: column.name,\n\t\tlabel: column.label,\n\t\tsort: (a: RowType, b: RowType) => {\n\t\t\tconst m1 = a.original.farm.multiplier ? a.original.farm.multiplier : '';\n\t\t\tconst m2 = b.original.farm.multiplier ? b.original.farm.multiplier : '';\n\t\t\tswitch (column.name) {\n\t\t\t\tcase 'farm':\n\t\t\t\t\treturn Number(m1.substring(0, m1.length - 1)) - Number(m2.substring(0, m2.length - 1));\n\t\t\t\tcase 'earned':\n\t\t\t\t\treturn a.original.earned.earnings - b.original.earned.earnings;\n\t\t\t\tcase 'liquidity':\n\t\t\t\t\treturn Number(a.original.liquidity.liquidity) - Number(b.original.liquidity.liquidity);\n\t\t\t\tcase 'platform':\n\t\t\t\t\treturn Number(a.original.platform?.percentageFee) - Number(b.original.platform?.percentageFee);\n\t\t\t\tcase 'dayTradeVolume':\n\t\t\t\t\treturn Number(a.original.dayTradeVolume) - Number(b.original.dayTradeVolume);\n\t\t\t\tdefault:\n\t\t\t\t\treturn 1;\n\t\t\t}\n\t\t},\n\t\tsortable: column.sortable,\n\t}));\n\n\tconst renderLP = (): JSX.Element => {\n\t\treturn ;\n\t};\n\n\tconst renderLPPancake = (): JSX.Element => {\n\t\treturn
;\n\t};\n\n\tconst renderStaking = (): JSX.Element => {\n\t\tconst _columns = [];\n\t\t// TODO pass by reference\n\t\tcolumns.forEach((val) => _columns.push(JSON.parse(JSON.stringify(val))));\n\t\t_columns[0].label = 'Tokens Names';\n\t\treturn
;\n\t};\n\n\tlet sum = 0;\n\tconst sumLpRowData = [...lpRowData, ...lpRowDataPancake];\n\tsumLpRowData.map((r) => {\n\t\tsum += r.earned && r.earned.earnings ? r.earned.earnings : 0;\n\t\treturn true;\n\t});\n\n\ttokenRowData.map((r) => {\n\t\tsum += r.earned && r.earned.earnings ? r.earned.earnings : 0;\n\t\treturn true;\n\t});\n\n\tconst balance = getBalanceNumber(useTokenBalance(getWadAddress()));\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
{renderStaking()}
\n\t\t\t\t\t
{renderLP()}
\n\t\t\t\t\t\n\t\t\t\t\t\t\"pancake-stake\"\n\t\t\t\t\t\n\t\t\t\t\t
{renderLPPancake()}
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\"icon\"\n\t\t\t\t\t\t\tAudited by\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Farms;\n","import { useEffect, useState } from 'react';\nimport { request, gql } from \"graphql-request\"\nimport { ethers } from 'ethers'\n\nconst WARDEN_FARM_SUBGRAPH_URL = process.env.REACT_APP_WARDEN_FARM_SUBGRAPH_URL\nconst PANCAKE_FARM_SUBGRAPH_URL = process.env.REACT_APP_PANCAKE_FARM_SUBGRAPH_URL\n\nexport interface ApiStatResponse {\n\t[address: string]: {\n\t\treserveUSD: number,\n\t}\n}\n\nexport const useFarmTVL = (farms: string[]) => {\n\tconst [data, setData] = useState(null);\n\n\tuseEffect(() => {\n\t\tconst fetchData = async () => {\n\t\t\ttry {\n\t\t\t\tconst [wardenFarm] = await Promise.all([\n\t\t\t\t\trequest(\n\t\t\t\t\t\tWARDEN_FARM_SUBGRAPH_URL,\n\t\t\t\t\t\tgql`\n\t\t\t\t\t\t\tquery pairs($addresses: [String]!) {\n\t\t\t\t\t\t\t\tpairs(where: { id_in: $addresses }) {\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\treserveUSD\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t{ addresses: farms }\n\t\t\t\t\t)\n\t\t\t\t]);\n\n\n\t\t\t\t// request(\n\t\t\t\t// \tPANCAKE_FARM_SUBGRAPH_URL,\n\t\t\t\t// \tgql`\n\t\t\t\t// \t\t{\n\t\t\t\t// \t\t\tpairs(\n\t\t\t\t// \t\t\t\twhere: {\n\t\t\t\t// \t\t\t\t\tid_in: [\n\t\t\t\t// \t\t\t\t\t\t\"0xf70a40749006c7952186666c92f32b8f5c2129f9\"\n\t\t\t\t// \t\t\t\t\t\t\"0x7d6195b212dee1ba7de8404cfd319446cf17d71b\"\n\t\t\t\t// \t\t\t\t\t]\n\t\t\t\t// \t\t\t\t}\n\t\t\t\t// \t\t\t) {\n\t\t\t\t// \t\t\t\tid\n\t\t\t\t// \t\t\t\treserveUSD\n\t\t\t\t// \t\t\t}\n\t\t\t\t// \t\t}\n\t\t\t\t// \t`,\n\t\t\t\t// )\n\n\t\t\t\tconst groupOfFarm = [...wardenFarm.pairs]\n\t\t\t\tconst farmObj = {}\n\t\t\t\tgroupOfFarm.forEach(farm => {\n\t\t\t\t\tfarmObj[ethers.utils.getAddress(farm.id)] = {\n\t\t\t\t\t\treserveUSD: Number(farm.reserveUSD),\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\tsetData(farmObj)\n\t\t\t} catch (error) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tconsole.error('Unable to fetch data:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchData();\n\t}, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n\treturn data;\n}"],"sourceRoot":""}