{"version":3,"sources":["uikit-foodcourt/components/Svg/Svg.tsx","uikit-foodcourt/widgets/Modal/styles.tsx","uikit-foodcourt/widgets/Modal/Modal.tsx","uikit-foodcourt/widgets/Modal/ModalContext.tsx","uikit-foodcourt/widgets/Modal/useModal.ts","state/pools/fetchPoolsUser.ts","state/pools/index.ts","uikit-foodcourt/components/Box/Box.tsx","components/UnlockButton.tsx","hooks/useApprove.ts","hooks/useStake.ts","utils/getLiquidityUrlPathParts.ts","config/constants/farms.ts","uikit-foodcourt/components/Alert/types.ts","uikit-foodcourt/components/Alert/Alert.tsx","hooks/useRefresh.ts","uikit-foodcourt/components/Link/Link.tsx","uikit-foodcourt/components/Button/IconButton.tsx","uikit-foodcourt/components/Button/ExpandableButton.tsx","uikit-foodcourt/components/Text/TooltipText.tsx","uikit-foodcourt/components/Table/utils.ts","config/constants/endpoints.ts","uikit-foodcourt/components/Box/index.tsx","hooks/useHarvest.ts","hooks/useAuth.ts","utils/getRpcUrl.ts","utils/wallet.ts","utils/farmHelpers.ts","components/ApyCalculatorModal/index.tsx","hooks/useUnstake.ts","uikit-foodcourt/components/Checkbox/types.ts","state/farms/fetchFarms.ts","state/farms/fetchFarmUser.ts","state/farms/index.ts","views/Farms/components/types.ts","uikit-foodcourt/theme/colors.ts","uikit-foodcourt/components/Alert/theme.ts","uikit-foodcourt/components/Card/theme.ts","uikit-foodcourt/components/PancakeToggle/theme.ts","uikit-foodcourt/components/Radio/theme.ts","uikit-foodcourt/components/Toggle/theme.ts","uikit-foodcourt/widgets/Menu/theme.ts","uikit-foodcourt/widgets/Modal/theme.ts","uikit-foodcourt/components/Tooltip/theme.ts","uikit-foodcourt/theme/dark.ts","uikit-foodcourt/theme/light.ts","contexts/Localization/helpers.ts","contexts/Localization/Provider.tsx","contexts/Localization/useTranslation.ts","utils/latinise.ts","config/constants/meta.ts","components/layout/Page.tsx","utils/formatBalance.ts","uikit-foodcourt/components/Svg/Icons/CheckmarkCircle.tsx","uikit-foodcourt/components/Svg/Icons/Error.tsx","uikit-foodcourt/components/Svg/Icons/Block.tsx","uikit-foodcourt/components/Svg/Icons/Info.tsx","uikit-foodcourt/components/Svg/Icons/ChevronRight.tsx","uikit-foodcourt/components/Svg/Icons/Logo.tsx","uikit-foodcourt/components/Svg/Icons/OpenNew.tsx","uikit-foodcourt/components/Dropdown/Dropdown.tsx","utils/apr.ts","state/block/index.ts","uikit-foodcourt/widgets/WalletModal/types.ts","uikit-foodcourt/widgets/WalletModal/icons/Metamask.tsx","uikit-foodcourt/widgets/WalletModal/icons/MathWallet.tsx","uikit-foodcourt/widgets/WalletModal/icons/TokenPocket.tsx","uikit-foodcourt/widgets/WalletModal/icons/TrustWallet.tsx","uikit-foodcourt/widgets/WalletModal/icons/WalletConnect.tsx","uikit-foodcourt/widgets/WalletModal/icons/SafePalWallet.tsx","uikit-foodcourt/widgets/WalletModal/config.tsx","uikit-foodcourt/widgets/WalletModal/WalletCard.tsx","uikit-foodcourt/widgets/WalletModal/ConnectModal.tsx","uikit-foodcourt/widgets/WalletModal/CopyToClipboard.tsx","uikit-foodcourt/widgets/WalletModal/AccountModal.tsx","uikit-foodcourt/widgets/WalletModal/useWalletModal.tsx","uikit-foodcourt/hooks/useMatchBreakpoints.ts","uikit-foodcourt/hooks/useKonamiCheatCode.ts","uikit-foodcourt/hooks/useTooltip/StyledTooltip.tsx","uikit-foodcourt/hooks/useTooltip/useTooltip.tsx","uikit-foodcourt/components/Link/LinkExternal.tsx","uikit-foodcourt/components/Input/types.ts","uikit-foodcourt/components/Input/Input.tsx","uikit-foodcourt/util/getThemeValue.ts","uikit-foodcourt/util/getExternalLinkProps.ts","uikit-foodcourt/components/Overlay/Overlay.tsx","utils/web3React.ts","contexts/RefreshContext.tsx","components/layout/Container.tsx","hooks/useDelayedUnmount.ts","config/constants/contracts.ts","utils/addressHelpers.ts","views/Farms/components/DepositModal.tsx","views/Farms/components/WithdrawModal.tsx","views/Farms/components/FarmCard/ApyButton.tsx","components/ExpandableSectionButton/ExpandableSectionButton.tsx","views/Farms/components/FarmCard/DetailsSection.tsx","views/Farms/components/FarmCard/CardHeading.tsx","views/Farms/components/FarmCard/StakeAction.tsx","views/Farms/components/FarmCard/HarvestAction.tsx","views/Farms/components/FarmCard/CardActionsContainer.tsx","views/Farms/components/FarmCard/FarmCard.tsx","components/Spacer/Spacer.tsx","components/ModalActions/ModalActions.tsx","config/constants/campaigns.ts","state/achievements/helpers.ts","state/achievements/index.ts","contexts/ToastsContext/Provider.tsx","config/constants/rsafe2wsafe.ts","state/prices/index.ts","components/ModalInput/ModalInput.tsx","utils/bigNumber.ts","config/constants/index.ts","hooks/usePersistState.ts","components/layout/Flex.tsx","uikit-foodcourt/index.ts","views/Home/components/CardValue.tsx","views/Home/components/CardBusdValue.tsx","uikit-foodcourt/components/Dropdown/index.tsx","uikit-foodcourt/components/Input/index.tsx","uikit-foodcourt/components/Table/index.tsx","uikit-foodcourt/components/Table/hooks.tsx","uikit-foodcourt/ResetCSS.tsx","config/index.ts","state/pools/helpers.ts","state/hooks.ts","config/constants/tokens.ts","components/Select/Select.tsx","uikit-foodcourt/widgets/Menu/icons/Farm.tsx","uikit-foodcourt/widgets/Menu/icons/Groups.tsx","uikit-foodcourt/widgets/Menu/icons/Hamburger.tsx","uikit-foodcourt/widgets/Menu/icons/HamburgerClose.tsx","uikit-foodcourt/widgets/Menu/icons/Home.tsx","uikit-foodcourt/widgets/Menu/icons/Ifo.tsx","uikit-foodcourt/widgets/Menu/icons/Info.tsx","uikit-foodcourt/widgets/Menu/icons/Language.tsx","uikit-foodcourt/widgets/Menu/icons/Logo.tsx","uikit-foodcourt/widgets/Menu/icons/Moon.tsx","uikit-foodcourt/widgets/Menu/icons/More.tsx","uikit-foodcourt/widgets/Menu/icons/Nft.tsx","uikit-foodcourt/widgets/Menu/icons/Pool.tsx","uikit-foodcourt/widgets/Menu/icons/Predictions.tsx","uikit-foodcourt/widgets/Menu/icons/Sun.tsx","uikit-foodcourt/widgets/Menu/icons/TeamBattle.tsx","uikit-foodcourt/widgets/Menu/icons/Telegram.tsx","uikit-foodcourt/widgets/Menu/icons/Ticket.tsx","uikit-foodcourt/widgets/Menu/icons/Trade.tsx","uikit-foodcourt/widgets/Menu/icons/Twitter.tsx","uikit-foodcourt/widgets/Menu/icons/Book.tsx","uikit-foodcourt/widgets/Menu/components/MenuButton.tsx","uikit-foodcourt/widgets/Menu/components/Logo.tsx","uikit-foodcourt/widgets/Menu/config.ts","uikit-foodcourt/widgets/Menu/components/MenuEntry.tsx","uikit-foodcourt/widgets/Menu/components/Accordion.tsx","uikit-foodcourt/widgets/Menu/components/MenuLink.tsx","uikit-foodcourt/widgets/Menu/components/PanelBody.tsx","uikit-foodcourt/widgets/Menu/components/SocialLinks.tsx","uikit-foodcourt/components/CouponPrice/index.tsx","uikit-foodcourt/components/ChainSelectButton/ChainSelectModal.tsx","uikit-foodcourt/components/ChainSelectButton/index.tsx","uikit-foodcourt/widgets/Menu/components/PanelFooter.tsx","uikit-foodcourt/widgets/Menu/components/Panel.tsx","uikit-foodcourt/widgets/Menu/components/UserBlock.tsx","uikit-foodcourt/widgets/Menu/Menu.tsx","views/Farms/components/FarmTable/Apr.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/Actions/styles.ts","views/Farms/components/FarmTable/Actions/HarvestAction.tsx","views/Farms/components/FarmTable/Actions/StakedAction.tsx","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","uikit-foodcourt/components/Card/StyledCard.tsx","uikit-foodcourt/components/Card/Card.tsx","uikit-foodcourt/components/Card/CardBody.tsx","uikit-foodcourt/components/Card/CardHeader.tsx","uikit-foodcourt/components/Card/CardFooter.tsx","uikit-foodcourt/components/Card/CardRibbon.tsx","uikit-foodcourt/components/Progress/types.ts","uikit-foodcourt/components/Progress/themes.ts","uikit-foodcourt/components/Progress/StyledProgress.tsx","uikit-foodcourt/components/Progress/ProgressBunnyWrapper.tsx","uikit-foodcourt/components/Slider/svg/bunnyhead-main.svg","uikit-foodcourt/components/Slider/svg/bunnyhead-max.svg","uikit-foodcourt/components/Slider/svg/bunnybutt.svg","uikit-foodcourt/components/Slider/styles.ts","uikit-foodcourt/components/Slider/Slider.tsx","uikit-foodcourt/components/Image/options.ts","uikit-foodcourt/components/Image/Wrapper.tsx","uikit-foodcourt/components/Image/Image.tsx","uikit-foodcourt/components/Tag/types.ts","uikit-foodcourt/components/Tag/theme.ts","uikit-foodcourt/components/Tag/StyledTag.tsx","uikit-foodcourt/components/Tag/Tag.tsx","state/predictions/index.ts","state/index.ts","uikit-foodcourt/components/ButtonMenu/StyledButtonMenu.tsx","uikit-foodcourt/components/ButtonMenu/ButtonMenu.tsx","uikit-foodcourt/components/ButtonMenu/ButtonMenuItem.tsx","uikit-foodcourt/components/PancakeToggle/types.ts","uikit-foodcourt/components/PancakeToggle/StyledPancakeToggle.tsx","uikit-foodcourt/components/PancakeToggle/PancakeToggle.tsx","uikit-foodcourt/components/Toggle/StyledToggle.tsx","uikit-foodcourt/components/Toggle/types.ts","uikit-foodcourt/components/Toggle/Toggle.tsx","uikit-foodcourt/widgets/Toast/types.ts","uikit-foodcourt/widgets/Toast/Toast.tsx","uikit-foodcourt/widgets/Toast/ToastContainer.tsx","uikit-foodcourt/components/BalanceInput/styles.tsx","uikit-foodcourt/components/BalanceInput/BalanceInput.tsx","uikit-foodcourt/components/Heading/types.ts","uikit-foodcourt/components/Heading/Heading.tsx","uikit-foodcourt/components/Layouts/BaseLayout.tsx","uikit-foodcourt/components/Layouts/CardsLayout.tsx","uikit-foodcourt/components/Radio/types.ts","uikit-foodcourt/components/Radio/Radio.tsx","uikit-foodcourt/components/Skeleton/types.ts","uikit-foodcourt/components/Skeleton/Skeleton.tsx","uikit-foodcourt/components/Spinner/PanIcon.tsx","uikit-foodcourt/components/Spinner/Spinner.tsx","state/actions.ts","uikit-foodcourt/components/Stepper/Stepper.tsx","uikit-foodcourt/components/Stepper/Step.tsx","uikit-foodcourt/components/TabMenu/TabMenu.tsx","uikit-foodcourt/components/TabMenu/Tab.tsx","uikit-foodcourt/components/Breadcrumbs/Breadcrumbs.tsx","uikit-foodcourt/components/Checkbox/Checkbox.tsx","uikit-foodcourt/components/FallingBunnies/FallingBunnies.tsx","uikit-foodcourt/components/NotificationDot/NotificationDot.tsx","components/PageHeader/PageHeader.tsx","hooks/useContract.ts","uikit-foodcourt/components/Button/types.ts","utils/callHelpers.ts","uikit-foodcourt/components/Box/Flex.tsx","utils/multicall.ts","uikit-foodcourt/components/Svg/Icons/Add.tsx","uikit-foodcourt/components/Svg/Icons/ArrowBack.tsx","uikit-foodcourt/components/Svg/Icons/ArrowDropDown.tsx","uikit-foodcourt/components/Svg/Icons/ArrowDropUp.tsx","uikit-foodcourt/components/Svg/Icons/AutoRenew.tsx","uikit-foodcourt/components/Svg/Icons/Binance.tsx","uikit-foodcourt/components/Svg/Icons/CardView.tsx","uikit-foodcourt/components/Svg/Icons/Calculate.tsx","uikit-foodcourt/components/Svg/Icons/ChevronDown.tsx","uikit-foodcourt/components/Svg/Icons/ChevronUp.tsx","uikit-foodcourt/components/Svg/Icons/Close.tsx","uikit-foodcourt/components/Svg/Icons/Community.tsx","uikit-foodcourt/components/Svg/Icons/Help.tsx","uikit-foodcourt/components/Svg/Icons/ListView.tsx","uikit-foodcourt/components/Svg/Icons/Metamask.tsx","uikit-foodcourt/components/Svg/Icons/Minus.tsx","uikit-foodcourt/components/Svg/Icons/Verified.tsx","uikit-foodcourt/components/Svg/Icons/ProgressBunny.tsx","uikit-foodcourt/components/Svg/Icons/Timer.tsx","uikit-foodcourt/components/Svg/Icons/Refresh.tsx","uikit-foodcourt/components/Text/Text.tsx","config/constants/pools.ts","uikit-foodcourt/theme/base.ts","utils/contractHelpers.ts","utils/web3.ts","components/Tags.tsx","config/localization/languages.ts","state/types.ts","utils/compoundApyHelpers.ts","state/predictions/helpers.ts","state/predictions/queries.ts","config/constants/types.ts","hooks/useEagerConnect.ts","style/Global.ts","contexts/ThemeContext.tsx","hooks/useTheme.ts","components/Menu/config.ts","components/Menu/index.tsx","components/SuspenseWithChunkError/index.tsx","components/ToastListener/index.tsx","components/PageLoader.tsx","components/EasterEgg/EasterEgg.tsx","components/SearchInput/SearchInput.tsx","components/Balance.tsx","views/Pools/helpers.tsx","views/Pools/components/PoolCard/AprRow.tsx","views/Pools/components/PoolCard/StyledCard.tsx","views/Pools/components/PoolCard/CardFooter/ExpandedFooter.tsx","views/Pools/components/PoolCard/CardFooter/index.tsx","views/Pools/components/PoolCard/StyledCardHeader.tsx","views/Pools/components/ToggleView/ToggleView.tsx","views/Pools/components/PoolCard/CardActions/ApprovalAction.tsx","views/Pools/components/PoolCard/Modals/NotEnoughTokensModal.tsx","views/Pools/components/PoolCard/Modals/PercentageButton.tsx","views/Pools/components/PoolCard/Modals/StakeModal.tsx","views/Pools/components/PoolCard/CardActions/StakeActions.tsx","views/Pools/components/PoolCard/Modals/CollectModal.tsx","views/Pools/components/PoolCard/CardActions/HarvestActions.tsx","views/Pools/components/PoolCard/CardActions/index.tsx","views/Pools/components/PoolCard/index.tsx","views/Pools/components/PoolTabButtons.tsx","views/Pools/components/PoolsTable/Cells/BaseCell.tsx","views/Pools/components/PoolsTable/Cells/NameCell.tsx","views/Pools/components/PoolsTable/Cells/EarningsCell.tsx","views/Pools/components/PoolsTable/Apr.tsx","views/Pools/components/PoolsTable/Cells/AprCell.tsx","views/Pools/components/PoolsTable/Cells/TotalStakedCell.tsx","utils/bscscan.ts","views/Pools/components/PoolsTable/Cells/EndsInCell.tsx","views/Pools/components/PoolsTable/Cells/ExpandActionCell.tsx","views/Pools/components/PoolsTable/ActionPanel/styles.ts","views/Pools/components/PoolsTable/ActionPanel/Harvest.tsx","views/Pools/components/PoolsTable/ActionPanel/Stake.tsx","views/Pools/components/PoolsTable/ActionPanel/ActionPanel.tsx","views/Pools/components/PoolsTable/PoolRow.tsx","views/Pools/components/PoolsTable/PoolsTable.tsx","views/Pools/index.tsx","routerHistory.ts","Embed.tsx","App.tsx","Providers.tsx","index.tsx","uikit-foodcourt/components/Button/theme.ts","uikit-foodcourt/components/Button/StyledButton.tsx","uikit-foodcourt/components/Button/Button.tsx","hooks/useToast.ts","hooks/useWeb3.ts"],"names":["rotate","keyframes","spinStyle","css","Svg","styled","svg","theme","color","getThemeValue","spin","space","defaultProps","width","xmlns","ModalHeader","div","background","colors","borderColor","ModalTitle","Flex","ModalBody","ModalBackButton","onBack","variant","onClick","area-label","mr","ModalContainer","Box","modal","zIndices","mediaQueries","xs","minWidth","Modal","title","onDismiss","children","hideCloseButton","bodyPadding","headerBackground","props","className","p","ModalWrapper","Context","createContext","onPresent","setCloseOnOverlayClick","ModalProvider","useState","isOpen","setIsOpen","modalNode","setModalNode","closeOnOverlayClick","handleDismiss","undefined","Provider","value","node","Overlay","show","React","isValidElement","cloneElement","useModal","useContext","onPresentCallback","useCallback","useEffect","nonMasterPools","poolsConfig","filter","sousId","nonReiPools","stakingToken","symbol","ReiPools","web3","getWeb3NoAccount","cafeteriaV3Contract","eth","Contract","cafeteriaV3ABI","getCafeteriaV3Address","fetchPoolsAllowance","account","a","calls","map","address","getAddress","name","params","contractAddress","multicall","erc20ABI","allowances","reduce","acc","pool","index","BigNumber","toJSON","fetchUserBalances","tokenBalancesRaw","tokenBalances","getBalance","reiBalance","reiBalances","fetchUserStakeBalances","sousChefABI","userInfo","stakedBalances","amount","_hex","methods","call","masterPoolAmount","0","fetchUserPendingRewards","res","pendingRewards","pendingCoupon","pendingReward","initialState","data","userDataLoaded","cakeVault","totalShares","pricePerFullShare","totalCakeInVault","estimatedCakeBountyReward","totalpendingCouponHarvest","fees","performanceFee","callFee","withdrawalFee","withdrawalFeePeriod","userData","isLoading","userShares","cakeAtLastUserAction","lastDepositedTime","lastUserActionTime","fetchPoolsUserDataAsync","dispatch","stakingTokenBalances","allowance","stakingTokenBalance","stakedBalance","setPoolsUserData","updateUserAllowance","updatePoolsUserData","field","updateUserBalance","updateUserStakedBalance","updateUserPendingReward","PoolsSlice","createSlice","reducers","setPoolsPublicData","state","action","livePoolsData","payload","livePoolData","find","entry","userPoolData","findIndex","actions","border","layout","position","UnlockButton","t","useTranslation","useAuth","login","logout","onPresentConnectModal","useWalletModal","useApprove","lpContract","useWeb3React","masterChefContract","useCafeteriaV3","onApprove","approve","tx","useSousApprove","earningTokenSymbol","requestedApproval","setRequestedApproval","useToast","toastSuccess","toastError","useAppDispatch","snackBarContract","useSnackBar","handleApprove","console","error","useStake","pid","onStake","stake","txHash","fetchFarmUserDataAsync","info","useSousStake","isUsingBnb","sousChefContract","handleStake","decimals","sousStakeBnb","sousStake","getLiquidityUrlPathParts","quoteTokenAddress","tokenAddress","wBNBAddressString","getWReiAddress","quoteTokenAddressString","chainId","tokenAddressString","secondPart","farms","lpSymbol","imageName","lpAddresses","55555","token","tokens","coupon","quoteToken","isSinglePool","kBUSD","wrei","kCRAFT","bnb","near","kub","matic","kuma","kcs","kryc","variants","INFO","DANGER","SUCCESS","WARNING","IconLabel","failure","warning","success","secondary","alert","Details","hasHandler","CloseHandler","StyledAlert","Alert","Icon","BlockIcon","ErrorIcon","CheckmarkCircleIcon","InfoIcon","getIcon","hasDescription","Text","bold","as","scale","useRefresh","RefreshContext","fastRefresh","fast","slowRefresh","slow","StyledLink","Link","external","internalProps","getExternalLinkProps","IconButton","Button","ExpandableLabel","expanded","aria-label","endIcon","TooltipText","textSubtle","byTextAscending","getTextProperty","objectA","objectB","upperA","toUpperCase","upperB","byTextDescending","GRAPH_API_PROFILE","process","GRAPH_API_PREDICTION","REACT_APP_GRAPH_WS_PREDICTIONS","REACT_APP_GRAPH_API_PREDICTION","useHarvest","farmPid","onReward","harvest","useHarvestAll","harvestAll","useSousHarvest","handleHarvest","soushHarvestBnb","soushHarvest","activate","deactivate","connectorID","connector","connectorsByName","UnsupportedChainIdError","setupNetwork","window","localStorage","removeItem","connectorLocalStorageKey","NoEthereumProviderError","NoBscProviderError","UserRejectedRequestErrorInjected","UserRejectedRequestErrorWalletConnect","WalletConnectConnector","walletConnectProvider","message","nodes","getNodeUrl","randomIndex","random","length","provider","ethereum","parseInt","request","method","toString","chainName","nativeCurrency","rpcUrls","blockExplorerUrls","registerToken","tokenSymbol","tokenDecimals","tokenImage","type","options","image","tokenAdded","isArchivedPid","Grid","GridItem","ApyCalculatorModal","tokenPrice","apr","linkLabel","linkHref","roundingDecimals","compoundFrequency","oneThousandDollarsWorthOfToken","tokenEarnedPerThousand1D","tokenEarnedPerThousandDollarsCompounding","numberOfDays","farmApr","tokenEarnedPerThousand7D","tokenEarnedPerThousand30D","tokenEarnedPerThousand365D","fontSize","textTransform","mb","getRoi","amountEarned","amountInvested","toFixed","maxWidth","freq","toLocaleString","mt","fee","justifyContent","href","useUnstakeV2","isWithdrawFee100","cafeteriaV2Contract","handleUnstake","unstake","onUnstake","useSousUnstake","enableEmergencyWithdraw","sousEmergencyUnstake","sousUnstake","scales","SM","MD","fetchFarms","farmsToFetch","Promise","all","farmConfig","lpAddress","balanceAddress","erc20","tokenBalanceLP","quoteTokenBalanceLP","lpTokenBalanceMC","lpTotalSupply","quoteTokenDecimals","lpTokenRatio","lpTotalInQuoteToken","BIG_TEN","pow","DEFAULT_TOKEN_DECIMAL","times","tokenAmount","quoteTokenAmount","cafeteriaV3Abi","totalAllocPoint","allocPoint","poolWeight","valueInQuotePer1LP","tokenPriceVsQuote","multiplier","fetchFarmUserAllowances","masterChefAddress","farm","rawLpAllowances","parsedLpAllowances","lpBalance","fetchFarmUserTokenBalances","rawTokenBalances","parsedTokenBalances","tokenBalance","fetchFarmUserStakedBalances","masterchefABI","rawStakedBalances","parsedStakedBalances","fetchFarmUserEarnings","rawEarnings","parsedEarnings","earnings","nonArchivedFarms","farmsConfig","loadArchivedFarmsData","farmsSlice","setFarmsPublicData","liveFarmsData","liveFarmData","f","setFarmUserData","arrayOfUserDataObjects","forEach","userDataEl","setLoadArchivedFarmsData","fetchFarmsPublicDataAsync","getState","fetchArchived","log","userFarmAllowances","userFarmTokenBalances","userStakedBalances","userFarmEarnings","farmAllowance","ViewMode","MobileColumnSchema","id","translationId","sortable","label","DesktopColumnSchema","baseColors","primary","primaryBright","primaryDark","brandColors","binance","lightColors","backgroundDisabled","backgroundAlt","cardBorder","contrast","dropdown","dropdownDeep","invertedContrast","input","inputSecondary","tertiary","text","textDisabled","gradients","bubblegum","inverseBubblegum","cardHeader","blue","violet","violetAlt","darkColors","light","dark","boxShadow","boxShadowActive","shadows","active","boxShadowSuccess","boxShadowWarning","cardHeaderBackground","default","dropShadow","handleBackground","handleShadow","hover","darkTheme","base","isDark","darkAlert","card","darkCard","toggle","darkToggle","nav","darkNav","darkModal","pancakeToggle","darkPancakeToggle","radio","darkRadio","tooltip","darkTooltip","lightTheme","lightAlert","lightCard","lightToggle","lightNav","lightModal","lightPancakeToggle","lightRadio","lightTooltip","LS_KEY","fetchLocale","locale","fetch","response","json","getLanguageCodeFromLS","getItem","EN","isFetching","currentLanguage","languageMap","Map","set","translations","LanguageContext","LanguageProvider","codeFromStorage","languages","setState","enLocale","get","currentLocale","prevState","fetchInitialLocales","setLanguage","language","has","setItem","translate","key","translatedText","match","interpolatedText","Object","keys","dataKey","templateKey","RegExp","replace","languageContext","Error","Latinise","latin_map","τ","Τ","latinise","x","DEFAULT_META","description","customMeta","StyledPage","Container","sm","lg","PageMeta","pathname","useLocation","couponPriceUsd","usePriceCouponkBUSD","couponPriceUsdDisplay","eq","toNumber","minimumFractionDigits","maximumFractionDigits","pageMeta","pageTitle","join","property","content","Page","getDecimalAmount","getBalanceAmount","dividedBy","getBalanceNumber","balance","getFullDisplayBalance","decimalsToAppear","formatNumber","number","minPrecision","maxPrecision","viewBox","d","fillRule","clipRule","fill","DropdownContent","level1","radii","small","Dropdown","target","getPoolApr","stakingTokenPrice","rewardTokenPrice","totalStaked","tokenPerSecond","totalRewardPricePerYear","SECOND_IN_YEAR","totalStakingTokenInPool","isNaN","isFinite","getFarmApr","poolLiquidityUsd","yearlyCakeRewardAllocation","COUPON_PER_SECOND","blockSlice","currentBlock","initialBlock","setBlock","ConnectorNames","cx","cy","r","uniqueId","clipPath","height","connectors","icon","Metamask","connectorId","Injected","TrustWallet","MathWallet","TokenPocket","WalletConnect","SafePalWallet","WalletCard","walletConfig","style","toLocaleLowerCase","ConnectModal","config","Tooltip","attrs","role","isTooltipDisplayed","CopyToClipboard","toCopy","setIsTooltipDisplayed","displayTooltip","setTimeout","navigator","clipboard","permissions","writeText","then","document","queryCommandSupported","el","createElement","body","appendChild","select","execCommand","removeChild","copyToClipboardWithCommand","AccountModal","whiteSpace","overflow","textOverflow","marginBottom","onPresentAccountModal","prevMinWidth","breakpointMap","accum","size","breakpoint","getKey","charAt","slice","useMatchBreakpoints","mql","matchMedia","matches","handlers","handler","matchMediaQuery","addEventListener","removeEventListener","unsubscribe","useKonamiCheatCode","matchedCodeHandler","pattern","currentIndex","onKeyUpHandler","event","Arrow","StyledTooltip","invertTheme","currentTheme","useTooltip","placement","trigger","arrowPadding","tooltipPadding","left","right","tooltipOffset","targetElement","setTargetElement","tooltipElement","setTooltipElement","arrowElement","setArrowElement","visible","setVisible","isHoveringOverTooltip","useRef","hideTimeout","hideTooltip","e","hide","stopPropagation","preventDefault","current","clearTimeout","showTooltip","toggleTooltip","maxTouchPoints","msMaxTouchPoints","handleClickOutside","Node","contains","usePopper","modifiers","element","padding","offset","styles","attributes","targetRef","ref","popper","arrow","tooltipVisible","LinkExternal","OpenNew","ml","Input","isSuccess","isWarning","inset","focus","path","fallback","rel","zIndex","rpcUrl","injected","InjectedConnector","supportedChainIds","walletconnect","rpc","bridge","qrcode","pollingInterval","getLibrary","RefreshContextProvider","setSlow","setFast","interval","setInterval","prev","clearInterval","useDelayedUnmount","isMounted","delayTime","shouldRender","setShouldRender","timeoutId","getCouponAddress","getCakeAddress","addresses","getMulticallAddress","DepositModal","max","onConfirm","tokenName","addLiquidityUrl","val","setVal","pendingTx","setPendingTx","fullBalance","useMemo","valNumber","fullBalanceNumber","handleChange","currentTarget","validity","valid","handleSelectMax","onSelectMax","onChange","inputTitle","disabled","gt","confirm","adjustedVal","alignSelf","WithdrawModal","marginLeft","ApyButton","lpLabel","couponPrice","onPresentApyModal","Wrapper","ExpandableSectionButton","StyledLinkExternal","DetailsSection","single","bscScanAddress","removed","infoAddress","totalValueFormatted","myValueFormatted","MultiplierTag","Tag","CardHeading","isCommunityFarm","farmImage","withdraw100fee","alignItems","src","alt","flexDirection","split","IconButtonWrapper","StakeAction","location","displayBalance","stakedBalanceNumber","onPresentDeposit","onPresentWithdraw","some","item","includes","HarvestAction","rawEarningsBalance","earningsBusd","multipliedBy","CardBusdValue","Action","CardActions","allowanceAsString","tokenBalanceAsString","stakedBalanceAsString","earningsAsString","lpName","isApproved","isGreaterThan","useWeb3","getBep20Contract","pr","RainbowLight","StyledCardAccent","FCard","Divider","ExpandingWrapper","FarmCard","useFarmUser","showExpandableSection","setShowExpandableSection","liquidity","lpValueInUsd","earnLabel","dual","farmAPR","liquidityUrlPathParts","BASE_ADD_LIQUIDITY_URL","isCommunity","display","marginTop","CardActionsContainer","StyledSpacer","Spacer","s","spacing","ThemeContext","StyledModalActions","StyledModalAction","ModalActions","l","Children","toArray","child","i","campaigns","badge","campaignMap","campaign","getUserPointIncreaseEvents","gql","toLowerCase","user","points","getAchievements","pointIncreaseEvents","userPoint","campaignMeta","campaignId","Number","achievementSlice","addAchievement","push","addAchievements","setAchievements","clearAchievements","fetchAchievements","achievements","ToastsContext","ToastsProvider","toasts","setToasts","toast","prevToasts","kebabCase","currentToasts","prevToast","clear","remove","toastTypes","toastInfo","toastWarning","rsafe2wsafe","fetchPrices","createAsyncThunk","rsafe","result","updated_at","parseFloat","price","pricesSlice","lastUpdated","extraReducers","builder","addCase","pending","fulfilled","StyledTokenInput","StyledInput","ModalInput","isBalanceZero","pl","balanceNumber","inputMode","step","min","placeholder","BIG_ZERO","usePersistState","initialValue","localStorageKey","valueFromLS","JSON","parse","setValue","stringify","FlexLayout","CardValue","lineHeight","prefix","useCountUp","start","end","duration","separator","countUp","update","updateValue","getPaginatedData","rows","perPage","page","getColumnsByName","columns","columnsByName","column","col","render","hidden","createReducer","nextPage","prevPage","isAscending","sortedRows","columnCopy","filteredRows","selectedRowsById","stateCopy","rowIds","sortColumn","sorted","asc","sort","reverse","object","original","sortByColumn","paginationEnabled","pagination","on","originalRows","canNext","canPrev","columnName","isAscOverride","selectedRows","row","selected","filterOn","newRow","rowId","toggleAllState","cells","cell","searchString","makeRender","makeHeaderRender","useTable","columnsWithSorting","tableData","sortDataInOrder","idx","entries","reducer","useReducer","noop","headers","headerRender","selectRow","toggleAll","toggleSort","setSearchString","ResetCSS","createGlobalStyle","EXPONENTIAL_AT","DECIMAL_PLACES","BASE_URL","BASE_EXCHANGE_URL","BASE_REI_SCAN_URL","getCafeteriaV3Contract","couponPerSecond","reload","loadCouponPerSecond","transformUserData","transformPool","stakingLimit","rest","useFetchPublicData","getBlockNumber","blockNumber","useFarms","useSelector","useFarmFromPid","usePools","pools","useCakeVault","totalSharesAsString","pricePerFullShareAsString","totalCakeInVaultAsString","estimatedCakeBountyRewardAsString","totalpendingCouponHarvestAsString","userSharesAsString","cakeAtLastUserActionAsString","useBlock","block","useFetchPriceList","useGetApiPrices","prices","couponkBUSDFarm","rei","projectLink","eth_aurora","usdc_bsc","usdc_matic","usdc_aurora","DropDownHeader","DropDownListContainer","DropDownContainer","DropDownList","ul","ListItem","li","Select","containerRef","dropdownRef","selectedOption","setSelectedOption","containerSize","setContainerSize","toggling","onOptionClicked","option","offsetWidth","offsetHeight","Logo","memo","next","MenuButton","blink","isPushed","togglePush","isAbsoluteUrl","startsWith","innerLogo","HamburgerClose","Hamburger","to","socials","items","SIDEBAR_WIDTH_FULL","rainbowAnimation","LinkLabel","MenuEntry","isActive","LinkStatus","LinkLabelMemo","AccordionContent","maxHeight","Accordion","status","pushNav","initialOpenState","count","MenuLink","otherProps","isHttpLink","NavLink","Icons","IconModule","PanelBody","isMobile","links","handleClick","iconElement","calloutClass","itemsMatchIndex","classMap","subtitle","version","stroke","strokeWidth","textShadow","backgroundColor","SocialLinks","social","iconProps","cursor","CouponPrice","open","transform","defaultOnDismiss","ChainSelectModal","ChainSelectButton","onPresentChainSelect","SocialEntry","PanelFooter","toggleTheme","currentLang","langs","setLang","StyledPanel","showMenu","Panel","UserBlock","accountEllipsis","substring","prevProps","nextProps","StyledNav","MENU_HEIGHT","BodyWrapper","Inner","MobileOnlyOverlay","Menu","profile","isXl","setIsPushed","setShowMenu","refPrevOffset","pageYOffset","throttledHandleScroll","throttle","currentOffset","isBottomOfPage","clientHeight","innerHeight","homeLink","link","AprWrapper","Apr","originalValue","hideButton","IconImage","Image","Farm","rawStakedBalance","Amount","span","earned","Earned","userDataReady","ArrowIcon","ChevronDownIcon","toggled","actionPanelToggled","ReferenceElement","MultiplierWrapper","Multiplier","displayMultiplier","tooltipContent","LiquidityWrapper","Liquidity","displayLiquidity","ActionContainer","xl","ActionTitles","Title","Subtle","ActionContent","Staked","earningsBigNumber","isZero","expandAnimation","collapseAnimation","StakeContainer","TagsContainer","InfoContainer","ValueContainer","ValueWrapper","ActionPanel","details","bsc","StakedAction","Label","ContentContainer","CellLayout","CellInner","StyledTr","tr","EarnedMobileCell","td","AprMobileCell","FarmMobileCell","Row","hasStakedAmount","actionPanelExpanded","setActionPanelExpanded","shouldRenderChild","toggleActionPanel","isXs","tableSchema","columnNames","columnIndex","indexOf","colSpan","TableWrapper","StyledTable","table","TableBody","tbody","TableContainer","ScrollButtonContainer","FarmTable","tableWrapperEl","scrollIntoView","behavior","StyledCard","isDisabled","Card","ribbon","CardBody","CardHeader","CardFooter","StyledCardRibbon","variantColor","ribbonPosition","CardRibbon","styleVariants","borderRadius","styleScales","Bar","StyledSystemVariant","prop","getCursorStyle","getBaseThumbStyles","isMax","bunnyHeadMax","bunnyHeadMain","SliderLabelContainer","SliderLabel","progress","BunnyButt","bunnyButt","BunnySlider","BarBackground","BarProgress","Slider","onValueChanged","valueLabel","progressPercentage","progressWidth","labelProgress","displayValueLabel","root","rootMargin","threshold","responsive","StyledImage","img","Placeholder","imgRef","isLoaded","setIsLoaded","observer","IntersectionObserver","isIntersecting","disconnect","observerOptions","observe","scaleVariants","StyledTag","outline","themeColorKey","startIcon","PredictionStatus","INITIAL","isHistoryPaneOpen","isChartPaneOpen","isFetchingHistory","historyFilter","HistoryFilter","ALL","currentEpoch","currentRoundStartBlockNumber","intervalBlocks","bufferBlocks","minBetAmount","rounds","history","bets","lastOraclePrice","fetchBet","getBet","bet","transformBetResponse","fetchRoundBet","roundId","getBetHistory","round","betResponses","betResponse","fetchHistory","claimed","predictionsSlice","setPredictionStatus","setHistoryPaneState","setChartPaneState","setHistoryFilter","initialize","updateMarketData","market","newRoundData","makeRoundData","incomingCurrentRound","maxBy","epoch","newestRound","futureRound","transformRoundResponse","makeFutureRoundResponse","startBlock","paused","PAUSED","LIVE","setCurrentEpoch","markBetAsCollected","betId","betIndex","markPositionAsEntered","partialBet","currentBet","rejected","store","configureStore","devTools","achievementsReducer","blockReducer","farmsReducer","poolsReducer","pricesReducer","predictions","predictionsReducer","useDispatch","StyledButtonMenu","SUBTLE","ButtonMenu","activeIndex","PRIMARY","onItemClick","InactiveButton","ButtonMenuItem","forwardedAs","scaleKeyValues","pancakeSize","travelDistance","toggleHeight","toggleWidth","pancakeThickness","pancakeTwoOffset","pancakeThreeOffset","butterTop","butterLeft","butterWidth","butterHeight","butterThickness","butterRadius","butterSmearOneTop","butterSmearOneLeft","butterSmearTwoTop","butterSmearTwoRight","md","getScale","PancakeStack","PancakeInput","PancakeLabel","checked","PancakeToggle","htmlFor","handleHeight","handleWidth","handleLeft","handleTop","checkedLeft","Handle","StyledToggle","Toggle","isChecked","types","alertTypeMap","alertVariants","StyledToast","Toast","onRemove","ttl","timer","removeHandler","handleRemove","CSSTransition","nodeRef","timeout","onMouseEnter","onMouseLeave","StyledToastContainer","ToastContainer","stackSpacing","TransitionGroup","top","StyledBalanceInput","BalanceInput","onUserInput","currencyValue","inputProps","textAlign","fontSizeLg","Heading","GridLayout","BaseLayout","getCheckedScale","Radio","m","animation","waves","pulse","Root","VARIANT","circle","Pulse","Waves","Skeleton","ANIMATION","FoodSpin","PanIcon","Spinner","ChildrenWrapper","isVisible","Tab","button","ChevronRight","Checkbox","bunnyFall","Bunny","iterations","String","FallingBunnies","Infinity","bunnies","Array","_","Math","NotificationDotRoot","Dot","NotificationDot","Outer","PageHeader","useERC20","getSnackBarContract","XS","SECONDARY","TERTIARY","TEXT","ethers","constants","MaxUint256","send","from","deposit","gas","transactionHash","emergencyWithdraw","withdraw","flexbox","abi","multi","MultiCallAbi","itf","Interface","calldata","encodeFunctionData","aggregate","returnData","decodeFunctionResult","rx","ry","typography","breakpoints","values","siteWidth","getContract","web3NoAccount","bep20Abi","getErc721Contract","erc721Abi","getSouschefV2Contract","sousChefV2","getCouponContract","couponAbi","snackbar","RPC_URL","getRpcUrl","httpProvider","Web3","providers","HttpProvider","CoreTag","CommunityTag","DualTag","ManualPoolTag","CompoundingPoolTag","code","languageList","BetPosition","timesCompounded","aprAsDecimal","daysAsDecimalOfYear","principal","finalAmount","Result","numberOrNull","valueNum","failed","startAt","lockAt","lockBlock","lockPrice","endBlock","closePrice","totalBets","totalAmount","bearBets","bullBets","bearAmount","bullAmount","hash","BULL","BEAR","totalBNB","roundResponse","positionResponse","getCanClaim","where","first","skip","PoolIds","PoolCategory","NftType","useEagerConnect","GlobalStyle","CACHE_KEY","ThemeContextProvider","isDarkUserSetting","setIsDark","useTheme","StyledThemeContext","SuspenseWithChunkError","hasError","isJsChunkLoadError","isCssChunkLoadError","isChunkLoadError","isRecoveringFromChunkError","nextState","replaceState","this","Component","ToastListener","PageLoader","EasterEgg","setShow","startFalling","onAnimationEnd","InputWrapper","SearchInput","onChangeCallback","setToggled","searchText","setSearchText","debouncedOnChange","debounce","onBlur","Balance","unit","previousValue","showPrefix","Boolean","showUnit","convertSharesToCake","shares","cakePerFullShare","decimalsToRound","sharePriceNumber","amountInCake","cakeAsNumberBalance","cakeAsBigNumber","cakeAsDisplayBalance","getAprData","isAutoVault","earningTokenPrice","isHighValueToken","getPoolBlockInfo","isFinished","shouldShowBlockCountdown","blocksUntilStart","blocksRemaining","hasPoolStarted","blocksToDisplay","AprRow","earningToken","earningsPercentageToDisplay","apyModalLink","PromotedGradient","isPromoted","isDesktop","StyledCardInner","isPromotedPool","ExpandedWrapper","ExpandedFooter","poolContractAddress","imageSrc","isMetaMaskInScope","isMetaMask","isManualCakePool","manualCakeTotalMinusAutoVault","minus","getTotalStakedBalance","ExpandableButtonWrapper","Footer","isExpanded","setIsExpanded","manualTooltipText","autoTooltipText","StyledCardHeader","stakingTokenSymbol","isStaking","poolImageSrc","isCakePool","ApprovalAction","stakingTokenContract","NotEnoughTokensModal","StyledButton","PercentageButton","mx","StakeModal","isBnbPool","isRemovingStake","stakeAmount","setStakeAmount","hasReachedStakeLimit","setHasReachedStakedLimit","percent","setPercent","getCalculatedStakingLimit","usdValueStaked","fullDecimalStakeAmount","plus","handleChangePercent","sliderPercent","percentageOfStakingMax","amountToStake","handleConfirmClick","convertedInput","percentage","floor","isStaked","stakedTokenBalance","stakedTokenDollarBalance","onPresentTokenRequired","onPresentStake","onPresentUnstake","reachStakingLimit","gte","CollectModal","formattedBalance","earningsDollarValue","isCompoundPool","shouldCompound","setShouldCompound","handleHarvestConfirm","pb","HarvestActions","earningTokenBalance","earningTokenDollarBalance","hasEarnings","onPresentCollect","InlineText","poolCategory","BINANCE","needsApproval","StakeActions","PoolCard","accountHasStakedBalance","ToggleView","viewMode","onToggle","handleToggle","mode","CARD","TABLE","PoolTabButtons","stakedOnly","setStakedOnly","hasStakeInFinishedPools","setViewMode","useRouteMatch","url","isExact","isSm","viewModeToggle","liveOrFinishedSwitch","stakedOnlySwitch","BaseCell","CellContent","StyledCell","NameCell","iconFile","showStakedTag","showSubtitle","HelpIconWrapper","EarningsCell","hasAutoEarnings","autoCakeProfit","autoCakeToDisplay","autoUsdProfit","autoUsdToDisplay","getCakeVaultEarnings","lastActionInMs","dateStringToDisplay","Date","labelText","asset","showIcon","openRoiModal","AprCell","TotalStakedCell","totalStakedBalance","getBscScanBlockCountdownUrl","EndsInCell","renderBlocks","flex","showLoading","isFullLayout","actionTitle","pt","isNotVaultAndHasStake","hasSharesStaked","isVaultWithShares","stakedAutoDollarValue","StyledActionPanel","InfoSection","isMd","performanceFeeAsDecimal","totalStakedTargetRef","totalStakedTooltip","totalStakedTooltipVisible","tagTargetRef","tagTooltip","tagTooltipVisible","maxStakeRow","blocksRow","aprRow","totalStakedRow","Harvest","Stake","StyledRow","PoolRow","isLg","setExpanded","shouldRenderActionPanel","ExpandActionCell","StyledTableBorder","PoolsTable","CardLayout","PoolControls","SearchSortContainer","ControlStretch","TypeTitleText","Pools","poolsWithoutAutoVault","poolUserDataLoaded","numberOfPoolsVisible","setNumberOfPoolsVisible","observerIsSet","setObserverIsSet","loadMoreRef","searchQuery","setSearchQuery","sortOption","setSortOption","farmsLP","farmUserDataLoaded","cakePool","partition","finishedPools","openPools","stakedOnlyFinishedPools","stakedOnlyOpenPools","poolsCurrentlyVisible","showFinishedPools","poolsToShow","chosenPools","lowercaseQuery","poolsToSort","orderBy","sortPools","c","cardLayout","tableLayout","isArchived","isInactive","farmsList","farmsToDisplay","farmsToDisplayWithAPR","quoteTokenPriceUsd","totalLiquidity","activeFarms","inactiveFarms","archivedFarms","stakedOnlyFarms","stakedInactiveFarms","stakedArchivedFarms","farmsStakedMemoized","farmsStaked","sortFarms","rowData","b","exact","renderFarmContent","createBrowserHistory","Embed","Home","lazy","Farms","NotFound","App","warn","Global","component","Providers","ReactDOM","StrictMode","getElementById","$isLoading","classNames","toastContext","library","refEth","setweb3"],"mappings":"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","file":"static/js/main.e4274740.chunk.js","sourcesContent":["import styled, { css, keyframes } from 'styled-components'\nimport { space } from 'styled-system'\nimport getThemeValue from '../../util/getThemeValue'\nimport { SvgProps } from './types'\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst spinStyle = css`\n\tanimation: ${rotate} 2s linear infinite;\n`\n\nconst Svg = styled.svg`\n\talign-self: center; // Safari fix\n\tfill: ${({ theme, color }) => getThemeValue(`colors.${color}`, color)(theme)};\n\tflex-shrink: 0;\n\t${({ spin }) => spin && spinStyle}\n\t${space}\n`\n\nSvg.defaultProps = {\n\tcolor: 'text',\n\twidth: '20px',\n\txmlns: 'http://www.w3.org/2000/svg',\n\tspin: false,\n}\n\nexport default Svg\n","import React from 'react'\nimport styled from 'styled-components'\nimport Flex from '../../components/Box/Flex'\nimport { Box } from '../../components/Box'\nimport { ArrowBackIcon, CloseIcon } from '../../components/Svg'\nimport { IconButton } from '../../components/Button'\nimport { ModalProps } from './types'\n\nexport const ModalHeader = styled.div<{ background?: string }>`\n\talign-items: center;\n\tbackground: ${({ background }) => background || 'transparent'};\n\tborder-bottom: 1px solid ${({ theme }) => theme.colors.borderColor};\n\tdisplay: flex;\n\tpadding: 12px 24px;\n`\n\nexport const ModalTitle = styled(Flex)`\n\talign-items: center;\n\tflex: 1;\n`\n\nexport const ModalBody = styled(Flex)`\n\tflex-direction: column;\n`\n\nexport const ModalCloseButton: React.FC<{ onDismiss: ModalProps['onDismiss'] }> = ({\n\tonDismiss,\n}) => (\n\t\n\t\t\n\t\n)\n\nexport const ModalBackButton: React.FC<{ onBack: ModalProps['onBack'] }> = ({ onBack }) => (\n\t\n\t\t\n\t\n)\n\nexport const ModalContainer = styled(Box)<{ minWidth: string }>`\n\toverflow: hidden;\n\tbackground: ${({ theme }) => theme.modal.background};\n\tbox-shadow: 0px 20px 36px -8px rgba(14, 14, 44, 0.1), 0px 1px 1px rgba(0, 0, 0, 0.05);\n\tborder: 1px solid ${({ theme }) => theme.colors.borderColor};\n\tborder-radius: 8px;\n\twidth: 100%;\n\tz-index: ${({ theme }) => theme.zIndices.modal};\n\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\twidth: auto;\n\t\tmin-width: ${({ minWidth }) => minWidth};\n\t\tmax-width: 100%;\n\t}\n`\n","import React from 'react'\nimport Heading from '../../components/Heading/Heading'\nimport {\n\tModalBody,\n\tModalHeader,\n\tModalTitle,\n\tModalContainer,\n\tModalCloseButton,\n\tModalBackButton,\n} from './styles'\nimport { ModalProps } from './types'\n\nconst Modal: React.FC = ({\n\ttitle,\n\tonDismiss,\n\tonBack,\n\tchildren,\n\thideCloseButton = false,\n\tbodyPadding = '24px',\n\theaderBackground = 'transparent',\n\tminWidth = '320px',\n\t...props\n}) => (\n\t\n\t\t\n\t\t\t\n\t\t\t\t{onBack && }\n\t\t\t\t
{title}
\n\t\t\t
\n\t\t\t{!hideCloseButton && (\n\t\t\t\t onDismiss()}\n\t\t\t\t\tclassName=\"_dp-f _alit-ct _jtfct-ct _bdrd-max _bgcl-gray-100 _w-32px _h-32px _cs-pt _bgcl-gray-200-hover\"\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\t{children}\n\t
\n)\n\nexport default Modal\n","import React, { createContext, useState } from 'react'\nimport styled from 'styled-components'\nimport Overlay from '../../components/Overlay/Overlay'\nimport { Handler } from './types'\n\ninterface ModalsContext {\n\tonPresent: (node: React.ReactNode, key?: string) => void\n\tonDismiss: Handler\n\tsetCloseOnOverlayClick: React.Dispatch>\n}\n\nconst ModalWrapper = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: ${({ theme }) => theme.zIndices.modal - 1};\n`\n\nexport const Context = createContext({\n\tonPresent: () => null,\n\tonDismiss: () => null,\n\tsetCloseOnOverlayClick: () => true,\n})\n\nconst ModalProvider: React.FC = ({ children }) => {\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst [modalNode, setModalNode] = useState()\n\tconst [closeOnOverlayClick, setCloseOnOverlayClick] = useState(true)\n\n\tconst handlePresent = (node: React.ReactNode) => {\n\t\tsetModalNode(node)\n\t\tsetIsOpen(true)\n\t}\n\n\tconst handleDismiss = () => {\n\t\tsetModalNode(undefined)\n\t\tsetIsOpen(false)\n\t}\n\n\tconst handleOverlayDismiss = () => {\n\t\tif (closeOnOverlayClick) {\n\t\t\thandleDismiss()\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t{isOpen && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{React.isValidElement(modalNode) &&\n\t\t\t\t\t\tReact.cloneElement(modalNode, {\n\t\t\t\t\t\t\tonDismiss: handleDismiss,\n\t\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t)}\n\t\t\t{children}\n\t\t\n\t)\n}\n\nexport default ModalProvider\n","import { useCallback, useContext, useEffect } from 'react'\nimport { Context } from './ModalContext'\nimport { Handler } from './types'\n\nconst useModal = (modal: React.ReactNode, closeOnOverlayClick = true): [Handler, Handler] => {\n\tconst { onPresent, onDismiss, setCloseOnOverlayClick } = useContext(Context)\n\tconst onPresentCallback = useCallback(() => {\n\t\tonPresent(modal)\n\t}, [modal, onPresent])\n\n\tuseEffect(() => {\n\t\tsetCloseOnOverlayClick(closeOnOverlayClick)\n\t}, [closeOnOverlayClick, setCloseOnOverlayClick])\n\n\treturn [onPresentCallback, onDismiss]\n}\n\nexport default useModal\n","import poolsConfig from 'config/constants/pools'\nimport erc20ABI from 'config/abi/erc20.json'\nimport multicall from 'utils/multicall'\nimport { getAddress, getCafeteriaV3Address } from 'utils/addressHelpers'\nimport { getWeb3NoAccount } from 'utils/web3'\nimport sousChefABI from 'config/abi/sousChef.json'\nimport cafeteriaV3ABI from 'config/abi/cafeteriaV3.json'\nimport BigNumber from 'bignumber.js'\nimport { AbiItem } from 'web3-utils'\n\n// Pool 0, Cake / Cake is a different kind of contract (master chef)\n// REI pools use the native REI token (wrapping ? unwrapping is done at the contract level)\nconst nonMasterPools = poolsConfig.filter((p) => p.sousId !== 0)\nconst nonReiPools = poolsConfig.filter((p) => p.stakingToken.symbol !== 'REI')\nconst ReiPools = poolsConfig.filter((p) => p.stakingToken.symbol === 'REI')\nconst web3 = getWeb3NoAccount()\nconst cafeteriaV3Contract = new web3.eth.Contract(\n\t(cafeteriaV3ABI as unknown) as AbiItem,\n\tgetCafeteriaV3Address(),\n)\n\nexport const fetchPoolsAllowance = async (account) => {\n\tconst calls = nonReiPools.map((p) => ({\n\t\taddress: getAddress(p.stakingToken.address),\n\t\tname: 'allowance',\n\t\tparams: [account, getAddress(p.contractAddress)],\n\t}))\n\n\tconst allowances = await multicall(erc20ABI, calls)\n\treturn nonReiPools.reduce(\n\t\t(acc, pool, index) => ({ ...acc, [pool.sousId]: new BigNumber(allowances[index]).toJSON() }),\n\t\t{},\n\t)\n}\n\nexport const fetchUserBalances = async (account) => {\n\t// Non BNB pools\n\tconst calls = nonReiPools.map((p) => ({\n\t\taddress: getAddress(p.stakingToken.address),\n\t\tname: 'balanceOf',\n\t\tparams: [account],\n\t}))\n\tconst tokenBalancesRaw = await multicall(erc20ABI, calls)\n\tconst tokenBalances = nonReiPools.reduce(\n\t\t(acc, pool, index) => ({\n\t\t\t...acc,\n\t\t\t[pool.sousId]: new BigNumber(tokenBalancesRaw[index]).toJSON(),\n\t\t}),\n\t\t{},\n\t)\n\n\t// BNB pools\n\tconst reiBalance = await web3.eth.getBalance(account)\n\tconst reiBalances = ReiPools.reduce(\n\t\t(acc, pool) => ({ ...acc, [pool.sousId]: new BigNumber(reiBalance).toJSON() }),\n\t\t{},\n\t)\n\n\treturn { ...tokenBalances, ...reiBalances }\n}\n\nexport const fetchUserStakeBalances = async (account) => {\n\tconst calls = nonMasterPools.map((p) => ({\n\t\taddress: getAddress(p.contractAddress),\n\t\tname: 'userInfo',\n\t\tparams: [account],\n\t}))\n\tconst userInfo = await multicall(sousChefABI, calls)\n\tconst stakedBalances = nonMasterPools.reduce(\n\t\t(acc, pool, index) => ({\n\t\t\t...acc,\n\t\t\t[pool.sousId]: new BigNumber(userInfo[index].amount._hex).toJSON(),\n\t\t}),\n\t\t{},\n\t)\n\n\t// Cake / Cake pool\n\tconst { amount: masterPoolAmount } = await cafeteriaV3Contract.methods\n\t\t.userInfo('0', account)\n\t\t.call()\n\n\treturn { ...stakedBalances, 0: new BigNumber(masterPoolAmount).toJSON() }\n}\n\nexport const fetchUserPendingRewards = async (account) => {\n\tconst calls = nonMasterPools.map((p) => ({\n\t\taddress: getAddress(p.contractAddress),\n\t\tname: 'pendingReward',\n\t\tparams: [account],\n\t}))\n\tconst res = await multicall(sousChefABI, calls)\n\tconst pendingRewards = nonMasterPools.reduce(\n\t\t(acc, pool, index) => ({\n\t\t\t...acc,\n\t\t\t[pool.sousId]: new BigNumber(res[index]).toJSON(),\n\t\t}),\n\t\t{},\n\t)\n\n\t// Cake / Cake pool\n\tconst pendingReward = await cafeteriaV3Contract.methods.pendingCoupon('0', account).call()\n\n\treturn { ...pendingRewards, 0: new BigNumber(pendingReward).toJSON() }\n}\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit'\nimport BigNumber from 'bignumber.js'\nimport poolsConfig from 'config/constants/pools'\nimport { BIG_ZERO } from 'utils/bigNumber'\nimport { PoolsState, Pool } from 'state/types'\nimport { getPoolApr } from 'utils/apr'\nimport { getBalanceNumber } from 'utils/formatBalance'\nimport { getAddress } from 'utils/addressHelpers'\nimport {\n\tfetchPoolsBlockLimits,\n\tfetchPoolsTotalStaking,\n\tfetchPoolsStakingLimits,\n} from './fetchPools'\nimport {\n\tfetchPoolsAllowance,\n\tfetchUserBalances,\n\tfetchUserStakeBalances,\n\tfetchUserPendingRewards,\n} from './fetchPoolsUser'\n\nconst initialState: PoolsState = {\n\tdata: [...poolsConfig],\n\tuserDataLoaded: false,\n\tcakeVault: {\n\t\ttotalShares: null,\n\t\tpricePerFullShare: null,\n\t\ttotalCakeInVault: null,\n\t\testimatedCakeBountyReward: null,\n\t\ttotalpendingCouponHarvest: null,\n\t\tfees: {\n\t\t\tperformanceFee: null,\n\t\t\tcallFee: null,\n\t\t\twithdrawalFee: null,\n\t\t\twithdrawalFeePeriod: null,\n\t\t},\n\t\tuserData: {\n\t\t\tisLoading: true,\n\t\t\tuserShares: null,\n\t\t\tcakeAtLastUserAction: null,\n\t\t\tlastDepositedTime: null,\n\t\t\tlastUserActionTime: null,\n\t\t},\n\t},\n}\n\n// Thunks\nexport const fetchPoolsPublicDataAsync = (currentBlock: number, prices) => async (\n\tdispatch,\n\tgetState,\n) => {\n\tconst blockLimits = await fetchPoolsBlockLimits()\n\tconst totalStakings = await fetchPoolsTotalStaking()\n\n\t// const prices = getTokenPricesFromFarm(getState().farms.data)\n\n\t// console.log(prices)\n\n\tconst liveData = poolsConfig.map((pool) => {\n\t\tconst blockLimit = blockLimits.find((entry) => entry.sousId === pool.sousId)\n\t\tconst totalStaking = totalStakings.find((entry) => entry.sousId === pool.sousId)\n\t\tconst isPoolEndBlockExceeded =\n\t\t\tcurrentBlock > 0 && blockLimit ? currentBlock > Number(blockLimit.endBlock) : false\n\t\tconst isPoolFinished = pool.isFinished || isPoolEndBlockExceeded\n\n\t\tconst stakingTokenAddress = pool.stakingToken.address\n\t\t\t? getAddress(pool.stakingToken.address).toLowerCase()\n\t\t\t: null\n\t\tconst stakingTokenPrice = stakingTokenAddress ? prices[stakingTokenAddress] : 0\n\n\t\tconst earningTokenAddress = pool.earningToken.address\n\t\t\t? getAddress(pool.earningToken.address).toLowerCase()\n\t\t\t: null\n\t\tconst earningTokenPrice = earningTokenAddress ? prices[earningTokenAddress] : 0\n\t\tconst apr = !isPoolFinished\n\t\t\t? getPoolApr(\n\t\t\t\t\tstakingTokenPrice,\n\t\t\t\t\tearningTokenPrice,\n\t\t\t\t\tgetBalanceNumber(new BigNumber(totalStaking.totalStaked), pool.stakingToken.decimals),\n\t\t\t\t\tparseFloat(pool.tokenPerBlock),\n\t\t\t )\n\t\t\t: 0\n\n\t\treturn {\n\t\t\t...blockLimit,\n\t\t\t...totalStaking,\n\t\t\tstakingTokenPrice,\n\t\t\tearningTokenPrice,\n\t\t\tapr,\n\t\t\tisFinished: isPoolFinished,\n\t\t}\n\t})\n\n\tdispatch(setPoolsPublicData(liveData))\n}\n\nexport const fetchPoolsStakingLimitsAsync = () => async (dispatch, getState) => {\n\tconst poolsWithStakingLimit = getState()\n\t\t.pools.data.filter(({ stakingLimit }) => stakingLimit !== null && stakingLimit !== undefined)\n\t\t.map((pool) => pool.sousId)\n\n\tconst stakingLimits = await fetchPoolsStakingLimits(poolsWithStakingLimit)\n\n\tconst stakingLimitData = poolsConfig.map((pool) => {\n\t\tif (poolsWithStakingLimit.includes(pool.sousId)) {\n\t\t\treturn { sousId: pool.sousId }\n\t\t}\n\t\tconst stakingLimit = stakingLimits[pool.sousId] || BIG_ZERO\n\t\treturn {\n\t\t\tsousId: pool.sousId,\n\t\t\tstakingLimit: stakingLimit.toJSON(),\n\t\t}\n\t})\n\n\tdispatch(setPoolsPublicData(stakingLimitData))\n}\n\nexport const fetchPoolsUserDataAsync = (account) => async (dispatch) => {\n\tconst allowances = await fetchPoolsAllowance(account)\n\tconst stakingTokenBalances = await fetchUserBalances(account)\n\tconst stakedBalances = await fetchUserStakeBalances(account)\n\tconst pendingRewards = await fetchUserPendingRewards(account)\n\n\tconst userData = poolsConfig.map((pool) => ({\n\t\tsousId: pool.sousId,\n\t\tallowance: allowances[pool.sousId],\n\t\tstakingTokenBalance: stakingTokenBalances[pool.sousId],\n\t\tstakedBalance: stakedBalances[pool.sousId],\n\t\tpendingReward: pendingRewards[pool.sousId],\n\t}))\n\n\tdispatch(setPoolsUserData(userData))\n}\n\nexport const updateUserAllowance = (sousId: number, account: string) => async (dispatch) => {\n\tconst allowances = await fetchPoolsAllowance(account)\n\tdispatch(updatePoolsUserData({ sousId, field: 'allowance', value: allowances[sousId] }))\n}\n\nexport const updateUserBalance = (sousId: number, account: string) => async (dispatch) => {\n\tconst tokenBalances = await fetchUserBalances(account)\n\tdispatch(\n\t\tupdatePoolsUserData({ sousId, field: 'stakingTokenBalance', value: tokenBalances[sousId] }),\n\t)\n}\n\nexport const updateUserStakedBalance = (sousId: number, account: string) => async (dispatch) => {\n\tconst stakedBalances = await fetchUserStakeBalances(account)\n\tdispatch(updatePoolsUserData({ sousId, field: 'stakedBalance', value: stakedBalances[sousId] }))\n}\n\nexport const updateUserPendingReward = (sousId: number, account: string) => async (dispatch) => {\n\tconst pendingRewards = await fetchUserPendingRewards(account)\n\tdispatch(updatePoolsUserData({ sousId, field: 'pendingReward', value: pendingRewards[sousId] }))\n}\n\nexport const PoolsSlice = createSlice({\n\tname: 'Pools',\n\tinitialState,\n\treducers: {\n\t\tsetPoolsPublicData: (state, action) => {\n\t\t\tconst livePoolsData: Pool[] = action.payload\n\t\t\tstate.data = state.data.map((pool) => {\n\t\t\t\tconst livePoolData = livePoolsData.find((entry) => entry.sousId === pool.sousId)\n\t\t\t\treturn { ...pool, ...livePoolData }\n\t\t\t})\n\t\t},\n\t\tsetPoolsUserData: (state, action) => {\n\t\t\tconst userData = action.payload\n\t\t\tstate.data = state.data.map((pool) => {\n\t\t\t\tconst userPoolData = userData.find((entry) => entry.sousId === pool.sousId)\n\t\t\t\treturn { ...pool, userData: userPoolData }\n\t\t\t})\n\t\t\tstate.userDataLoaded = true\n\t\t},\n\t\tupdatePoolsUserData: (state, action) => {\n\t\t\tconst { field, value, sousId } = action.payload\n\t\t\tconst index = state.data.findIndex((p) => p.sousId === sousId)\n\n\t\t\tif (index >= 0) {\n\t\t\t\tstate.data[index] = {\n\t\t\t\t\t...state.data[index],\n\t\t\t\t\tuserData: { ...state.data[index].userData, [field]: value },\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n})\n\n// Actions\nexport const { setPoolsPublicData, setPoolsUserData, updatePoolsUserData } = PoolsSlice.actions\n\nexport default PoolsSlice.reducer\n","import styled from 'styled-components'\nimport { background, border, layout, position, space } from 'styled-system'\nimport { BoxProps } from './types'\n\nconst Box = styled.div`\n\t${background}\n\t${border}\n ${layout}\n ${position}\n ${space}\n`\n\nexport default Box\n","import React from 'react'\nimport { Button, useWalletModal } from '../uikit-foodcourt'\nimport useAuth from 'hooks/useAuth'\nimport { useTranslation } from 'contexts/Localization'\n\nconst UnlockButton = (props) => {\n\tconst { t } = useTranslation()\n\tconst { login, logout } = useAuth()\n\tconst { onPresentConnectModal } = useWalletModal(login, logout)\n\n\treturn (\n\t\t\n\t)\n}\n\nexport default UnlockButton\n","import { useCallback, useState } from 'react'\nimport { useWeb3React } from '@web3-react/core'\nimport { Contract } from 'web3-eth-contract'\nimport { ethers } from 'ethers'\nimport { useAppDispatch } from 'state'\nimport { updateUserAllowance } from 'state/actions'\nimport { approve } from 'utils/callHelpers'\nimport { useTranslation } from 'contexts/Localization'\nimport { useCafeteriaV3, useSnackBar } from './useContract'\nimport useToast from './useToast'\n\n// Approve a Farm\nexport const useApprove = (lpContract: Contract) => {\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\n\n\tconst handleApprove = useCallback(async () => {\n\t\ttry {\n\t\t\tconst tx = await approve(lpContract, masterChefContract, account)\n\t\t\treturn tx\n\t\t} catch (e) {\n\t\t\treturn false\n\t\t}\n\t}, [account, lpContract, masterChefContract])\n\n\treturn { onApprove: handleApprove }\n}\n\n// Approve a Pool\nexport const useSousApprove = (lpContract: Contract, sousId, earningTokenSymbol) => {\n\tconst [requestedApproval, setRequestedApproval] = useState(false)\n\tconst { toastSuccess, toastError } = useToast()\n\tconst { t } = useTranslation()\n\tconst dispatch = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst snackBarContract = useSnackBar(sousId)\n\n\tconst handleApprove = useCallback(async () => {\n\t\ttry {\n\t\t\tsetRequestedApproval(true)\n\t\t\tconst tx = await approve(lpContract, snackBarContract, account)\n\t\t\tdispatch(updateUserAllowance(sousId, account))\n\t\t\tif (tx) {\n\t\t\t\ttoastSuccess(\n\t\t\t\t\tt('Contract Enabled'),\n\t\t\t\t\tt('You can now stake in the %symbol% pool!', { symbol: earningTokenSymbol }),\n\t\t\t\t)\n\t\t\t\tsetRequestedApproval(false)\n\t\t\t} else {\n\t\t\t\t// user rejected tx or didn't go thru\n\t\t\t\ttoastError(\n\t\t\t\t\t`${t('Error')}`,\n\t\t\t\t\t`${t(\n\t\t\t\t\t\t`Please try again. Confirm the transaction and make sure you are paying enough gas!`,\n\t\t\t\t\t)}`,\n\t\t\t\t)\n\t\t\t\tsetRequestedApproval(false)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\ttoastError('Error', e)\n\t\t}\n\t}, [\n\t\taccount,\n\t\tdispatch,\n\t\tlpContract,\n\t\tsnackBarContract,\n\t\tsousId,\n\t\tearningTokenSymbol,\n\t\tt,\n\t\ttoastError,\n\t\ttoastSuccess,\n\t])\n\n\treturn { handleApprove, requestedApproval }\n}\n","import { useCallback } from 'react'\nimport { useWeb3React } from '@web3-react/core'\nimport { useAppDispatch } from 'state'\nimport { useCafeteriaV3, useSnackBar } from './useContract'\nimport { fetchFarmUserDataAsync, updateUserStakedBalance, updateUserBalance } from 'state/actions'\nimport { stake, sousStake, sousStakeBnb } from 'utils/callHelpers'\n\nexport const useStake = (pid: number) => {\n\tconst dispatch = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\n\n\tconst handleStake = useCallback(\n\t\tasync (amount: string) => {\n\t\t\tconst txHash = await stake(masterChefContract, pid, amount, account)\n\t\t\tdispatch(fetchFarmUserDataAsync(account))\n\t\t\tconsole.info(txHash)\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 = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\n\tconst sousChefContract = useSnackBar(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","// 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.\nimport { getWReiAddress } from './addressHelpers'\n\nconst getLiquidityUrlPathParts = ({ quoteTokenAddress, tokenAddress }) => {\n\tconst chainId = process.env.REACT_APP_CHAIN_ID\n\tconst wBNBAddressString = getWReiAddress()\n\tconst quoteTokenAddressString: string = quoteTokenAddress ? quoteTokenAddress[chainId] : null\n\tconst tokenAddressString: string = tokenAddress ? tokenAddress[chainId] : null\n\tconst firstPart =\n\t\t!quoteTokenAddressString || quoteTokenAddressString === wBNBAddressString\n\t\t\t? 'BNB'\n\t\t\t: quoteTokenAddressString\n\tconst secondPart =\n\t\t!tokenAddressString || tokenAddressString === wBNBAddressString ? 'BNB' : tokenAddressString\n\treturn `${firstPart}/${secondPart}`\n}\n\nexport default getLiquidityUrlPathParts\n","import tokens from './tokens'\nimport { FarmConfig } from './types'\n\nconst farms: FarmConfig[] = [\n\t{\n\t\tpid: 0,\n\t\tlpSymbol: 'COUPON',\n\t\timageName: 'coupon-coupon',\n\t\tlpAddresses: {\n\t\t\t55555: '0xbC09220a8e461880DBE5517ecF53bC1b12cAa05D',\n\t\t},\n\t\ttoken: tokens.coupon,\n\t\tquoteToken: tokens.coupon,\n\t\tisSinglePool: true,\n\t},\n\t{\n\t\tpid: 1,\n\t\tlpSymbol: 'REI-kBUSD LP',\n\t\timageName: 'rei-kbusd',\n\t\tlpAddresses: {\n\t\t\t55555: '0x89Cf01fa711f29FAB9C2874Cebc2065E3EdCEF6D',\n\t\t},\n\t\ttoken: tokens.kBUSD,\n\t\tquoteToken: tokens.wrei,\n\t},\n\t{\n\t\tpid: 2,\n\t\tlpSymbol: 'COUPON-REI LP',\n\t\timageName: 'coupon-rei',\n\t\tlpAddresses: {\n\t\t\t55555: '0xaE1E354036b85BDc5FB41947c99c120D9d237981',\n\t\t},\n\t\ttoken: tokens.coupon,\n\t\tquoteToken: tokens.wrei,\n\t},\n\t{\n\t\tpid: 3,\n\t\tlpSymbol: 'COUPON-kBUSD LP',\n\t\timageName: 'coupon-kbusd',\n\t\tlpAddresses: {\n\t\t\t55555: '0x1Dc3c273b2954CEdC72Ab03d7F0D4FFE781505C1',\n\t\t},\n\t\ttoken: tokens.coupon,\n\t\tquoteToken: tokens.kBUSD,\n\t},\n\t{\n\t\tpid: 4,\n\t\tlpSymbol: 'kCRAFT-kBUSD LP',\n\t\timageName: 'kcraft-kbusd',\n\t\tlpAddresses: {\n\t\t\t55555: '0x0F0f020b5Fad4e2fC81442F32dbC211Da7Cae493',\n\t\t},\n\t\ttoken: tokens.kCRAFT,\n\t\tquoteToken: tokens.kBUSD,\n\t},\n\t{\n\t\tpid: 5,\n\t\tlpSymbol: 'REI-BNB LP',\n\t\timageName: 'rei-bnb',\n\t\tlpAddresses: {\n\t\t\t55555: '0xc0391eb21B4aa46B0DA398B6202b1FBC4a626C54',\n\t\t},\n\t\ttoken: tokens.bnb,\n\t\tquoteToken: tokens.wrei,\n\t},\n\t{\n\t\tpid: 6,\n\t\tlpSymbol: 'REI-NEAR LP',\n\t\timageName: 'rei-near',\n\t\tlpAddresses: {\n\t\t\t55555: '0x2Fc8B5A1D5240322aaDEff436b96D565432CB9F5',\n\t\t},\n\t\ttoken: tokens.near,\n\t\tquoteToken: tokens.wrei,\n\t},\n\t{\n\t\tpid: 7,\n\t\tlpSymbol: 'REI-KUB LP',\n\t\timageName: 'rei-kub',\n\t\tlpAddresses: {\n\t\t\t55555: '0xe8e87CfCA4D564B423b256473a47E9D21bfa8bc3',\n\t\t},\n\t\ttoken: tokens.kub,\n\t\tquoteToken: tokens.wrei,\n\t},\n\t{\n\t\tpid: 8,\n\t\tlpSymbol: 'REI-MATIC LP',\n\t\timageName: 'rei-matic',\n\t\tlpAddresses: {\n\t\t\t55555: '0x0976463fb096D66a414e98ebBaDfFbCb5113f750',\n\t\t},\n\t\ttoken: tokens.matic,\n\t\tquoteToken: tokens.wrei,\n\t},\n\t{\n\t\tpid: 9,\n\t\tlpSymbol: 'REI-KUMA LP',\n\t\timageName: 'rei-kuma',\n\t\tlpAddresses: {\n\t\t\t55555: '0xb498Aa4E8Cdb8d6874188c22BAf8500ae09c002a',\n\t\t},\n\t\ttoken: tokens.kuma,\n\t\tquoteToken: tokens.wrei,\n\t},\n\t{\n\t\tpid: 10,\n\t\tlpSymbol: 'KUMA-kBUSD LP',\n\t\timageName: 'kuma-kbusd',\n\t\tlpAddresses: {\n\t\t\t55555: '0xff23b87b0d5C04C4023f0944613e6df858145249',\n\t\t},\n\t\ttoken: tokens.kBUSD,\n\t\tquoteToken: tokens.kuma,\n\t},\n\t{\n\t\tpid: 11,\n\t\tlpSymbol: 'COUPON-KUMA LP',\n\t\timageName: 'coupon-kuma',\n\t\tlpAddresses: {\n\t\t\t55555: '0xdd59248dB1a6FE20E93E1682bD3721dE75cd6EA4',\n\t\t},\n\t\ttoken: tokens.coupon,\n\t\tquoteToken: tokens.kuma,\n\t},\n\t{\n\t\tpid: 12,\n\t\tlpSymbol: 'REI-KCS LP',\n\t\timageName: 'rei-kcs',\n\t\tlpAddresses: {\n\t\t\t55555: '0xB51a0343f4E5DC529e4F0CECCa1C49178C65BbC2',\n\t\t},\n\t\ttoken: tokens.kcs,\n\t\tquoteToken: tokens.wrei,\n\t},\n\t{\n\t\tpid: 13,\n\t\tlpSymbol: 'REI-kRYC LP',\n\t\timageName: 'rei-kryc',\n\t\tlpAddresses: {\n\t\t\t55555: '0x20a50f7c07326CAA23247aF553296a9d620495A7',\n\t\t},\n\t\ttoken: tokens.kryc,\n\t\tquoteToken: tokens.wrei,\n\t},\n]\n\nexport default farms\n","import { MouseEvent, ReactNode } from 'react'\n\nexport type AlertTheme = {\n\tbackground: string\n}\n\nexport const variants = {\n\tINFO: 'info',\n\tDANGER: 'danger',\n\tSUCCESS: 'success',\n\tWARNING: 'warning',\n} as const\n\nexport type Variants = typeof variants[keyof typeof variants]\n\nexport interface AlertProps {\n\tvariant?: Variants\n\ttitle: string\n\tchildren?: ReactNode\n\tonClick?: (evt: MouseEvent) => void\n}\n","import React from 'react'\nimport styled, { DefaultTheme } from 'styled-components'\nimport CheckmarkCircleIcon from '../Svg/Icons/CheckmarkCircle'\nimport ErrorIcon from '../Svg/Icons/Error'\nimport BlockIcon from '../Svg/Icons/Block'\nimport InfoIcon from '../Svg/Icons/Info'\nimport { Text } from '../Text'\nimport { IconButton } from '../Button'\nimport { CloseIcon } from '../Svg'\nimport Flex from '../Box/Flex'\nimport { AlertProps, variants } from './types'\n\ninterface ThemedIconLabel {\n\tvariant: AlertProps['variant']\n\ttheme: DefaultTheme\n\thasDescription: boolean\n}\n\nconst getThemeColor = ({ theme, variant = variants.INFO }: ThemedIconLabel) => {\n\tswitch (variant) {\n\t\tcase variants.DANGER:\n\t\t\treturn theme.colors.failure\n\t\tcase variants.WARNING:\n\t\t\treturn theme.colors.warning\n\t\tcase variants.SUCCESS:\n\t\t\treturn theme.colors.success\n\t\tcase variants.INFO:\n\t\tdefault:\n\t\t\treturn theme.colors.secondary\n\t}\n}\n\nconst getIcon = (variant: AlertProps['variant'] = variants.INFO) => {\n\tswitch (variant) {\n\t\tcase variants.DANGER:\n\t\t\treturn BlockIcon\n\t\tcase variants.WARNING:\n\t\t\treturn ErrorIcon\n\t\tcase variants.SUCCESS:\n\t\t\treturn CheckmarkCircleIcon\n\t\tcase variants.INFO:\n\t\tdefault:\n\t\t\treturn InfoIcon\n\t}\n}\n\nconst IconLabel = styled.div`\n\tbackground-color: ${getThemeColor};\n\tborder-radius: 16px 0 0 16px;\n\tcolor: ${({ theme }) => theme.alert.background};\n\tpadding: 12px;\n`\n\nconst withHandlerSpacing = 32 + 12 + 8 // button size + inner spacing + handler position\nconst Details = styled.div<{ hasHandler: boolean }>`\n\tflex: 1;\n\tpadding-bottom: 12px;\n\tpadding-left: 12px;\n\tpadding-right: ${({ hasHandler }) => (hasHandler ? `${withHandlerSpacing}px` : '12px')};\n\tpadding-top: 12px;\n`\n\nconst CloseHandler = styled.div`\n\tborder-radius: 0 16px 16px 0;\n\tright: 8px;\n\tposition: absolute;\n\ttop: 8px;\n`\n\nconst StyledAlert = styled(Flex)`\n\tposition: relative;\n\tbackground-color: ${({ theme }) => theme.alert.background};\n\tborder-radius: 16px;\n\tbox-shadow: 0px 20px 36px -8px rgba(14, 14, 44, 0.1), 0px 1px 1px rgba(0, 0, 0, 0.05);\n`\n\nconst Alert: React.FC = ({ title, children, variant, onClick }) => {\n\tconst Icon = getIcon(variant)\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{title}\n\t\t\t\t{typeof children === 'string' ? {children} : children}\n\t\t\t
\n\t\t\t{onClick && (\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 Alert\n","import { useContext } from 'react'\nimport { RefreshContext } from 'contexts/RefreshContext'\n\nconst useRefresh = () => {\n\tconst { fast, slow } = useContext(RefreshContext)\n\treturn { fastRefresh: fast, slowRefresh: slow }\n}\n\nexport default useRefresh\n","import React from 'react'\nimport styled from 'styled-components'\nimport getExternalLinkProps from '../../util/getExternalLinkProps'\nimport Text from '../Text/Text'\nimport { LinkProps } from './types'\n\nconst StyledLink = styled(Text)`\n\tdisplay: flex;\n\talign-items: center;\n\twidth: fit-content;\n\t&:hover {\n\t\ttext-decoration: underline;\n\t}\n`\n\nconst Link: React.FC = ({ external, ...props }) => {\n\tconst internalProps = external ? getExternalLinkProps() : {}\n\treturn \n}\n\nLink.defaultProps = {\n\tcolor: 'primary',\n}\n\nexport default Link\n","import styled from 'styled-components'\nimport Button from './Button'\nimport { BaseButtonProps, PolymorphicComponent } from './types'\n\nconst IconButton: PolymorphicComponent = styled(Button)`\n\tpadding: 0;\n\twidth: ${({ scale }) => (scale === 'sm' ? '32px' : '48px')};\n`\n\nexport default IconButton\n","import React from 'react'\nimport { ChevronDownIcon, ChevronUpIcon } from '../Svg'\nimport Button from './Button'\nimport IconButton from './IconButton'\n\ninterface Props {\n\tonClick?: () => void\n\texpanded?: boolean\n}\n\nexport const ExpandableButton: React.FC = ({ onClick, expanded, children }) => (\n\t\n\t\t{children}\n\t\t{expanded ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t)}\n\t\n)\nExpandableButton.defaultProps = {\n\texpanded: false,\n}\n\nexport const ExpandableLabel: React.FC = ({ onClick, expanded, children }) => (\n\t : }\n\t>\n\t\t{children}\n\t\n)\nExpandableLabel.defaultProps = {\n\texpanded: false,\n}\n","import styled from 'styled-components'\nimport Text from './Text'\n\nconst TooltipText = styled(Text)`\n\ttext-decoration: ${({ theme }) => `underline dotted ${theme.colors.textSubtle}`};\n\ttext-underline-offset: 0.1em;\n`\n\nexport default TooltipText\n","export const byTextAscending = (getTextProperty: (object: T) => string) => (\n\tobjectA: T,\n\tobjectB: T,\n): number => {\n\tconst upperA = getTextProperty(objectA).toUpperCase()\n\tconst upperB = getTextProperty(objectB).toUpperCase()\n\tif (upperA < upperB) {\n\t\treturn -1\n\t}\n\tif (upperA > upperB) {\n\t\treturn 1\n\t}\n\treturn 0\n}\n\nexport const byTextDescending = (getTextProperty: (object: T) => string) => (\n\tobjectA: T,\n\tobjectB: T,\n): number => {\n\tconst upperA = getTextProperty(objectA).toUpperCase()\n\tconst upperB = getTextProperty(objectB).toUpperCase()\n\tif (upperA > upperB) {\n\t\treturn -1\n\t}\n\tif (upperA < upperB) {\n\t\treturn 1\n\t}\n\treturn 0\n}\n","export const GRAPH_API_PROFILE = process.env.REACT_APP_GRAPH_API_PROFILE\nexport const GRAPH_API_PREDICTIONS = process.env.REACT_APP_GRAPH_API_PREDICTIONS\nexport const GRAPH_WS_PREDICTIONS = process.env.REACT_APP_GRAPH_WS_PREDICTIONS\nexport const GRAPH_API_PREDICTION = process.env.REACT_APP_GRAPH_API_PREDICTION\n\n","export { default as Box } from './Box'\nexport { default as Flex } from './Flex'\nexport type { BoxProps, FlexProps } from './types'\n","import { useCallback } from 'react'\nimport { useWeb3React } from '@web3-react/core'\nimport { useAppDispatch } from 'state'\nimport { fetchFarmUserDataAsync, updateUserBalance, updateUserPendingReward } from 'state/actions'\nimport { useCafeteriaV3, useSnackBar } from './useContract'\nimport { soushHarvest, soushHarvestBnb, harvest, harvestAll } from 'utils/callHelpers'\n\nexport const useHarvest = (farmPid: number) => {\n\tconst dispatch = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\n\n\tconst handleHarvest = useCallback(async () => {\n\t\tconst txHash = await harvest(masterChefContract, farmPid, account)\n\t\tdispatch(fetchFarmUserDataAsync(account))\n\t\treturn txHash\n\t}, [account, dispatch, farmPid, masterChefContract])\n\n\treturn { onReward: handleHarvest }\n}\n\nexport const useHarvestAll = () => {\n\tconst dispatch = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\n\n\tconst handleHarvest = useCallback(async () => {\n\t\tconst txHash = await harvestAll(masterChefContract, account)\n\t\tdispatch(fetchFarmUserDataAsync(account))\n\t\treturn txHash\n\t}, [account, dispatch, masterChefContract])\n\n\treturn { onReward: handleHarvest }\n}\n\nexport const useAllHarvest = (farmPids: number[]) => {\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\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 = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst sousChefContract = useSnackBar(sousId)\n\tconst masterChefContract = useCafeteriaV3()\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 { useCallback } from 'react'\nimport { useWeb3React, UnsupportedChainIdError } from '@web3-react/core'\nimport { NoBscProviderError } from '@binance-chain/bsc-connector'\nimport {\n\tNoEthereumProviderError,\n\tUserRejectedRequestError as UserRejectedRequestErrorInjected,\n} from '@web3-react/injected-connector'\nimport {\n\tUserRejectedRequestError as UserRejectedRequestErrorWalletConnect,\n\tWalletConnectConnector,\n} from '@web3-react/walletconnect-connector'\nimport { ConnectorNames, connectorLocalStorageKey } from '../uikit-foodcourt'\nimport { connectorsByName } from 'utils/web3React'\nimport { setupNetwork } from 'utils/wallet'\nimport useToast from 'hooks/useToast'\nimport { useAppDispatch } from 'state'\n\nconst useAuth = () => {\n\tconst dispatch = useAppDispatch()\n\tconst { activate, deactivate } = useWeb3React()\n\tconst { toastError } = useToast()\n\n\tconst login = useCallback((connectorID: ConnectorNames) => {\n\t\tconst connector = connectorsByName[connectorID]\n\t\tif (connector) {\n\t\t\tactivate(connector, async (error: Error) => {\n\t\t\t\tif (error instanceof UnsupportedChainIdError) {\n\t\t\t\t\tconst hasSetup = await setupNetwork()\n\t\t\t\t\tif (hasSetup) {\n\t\t\t\t\t\tactivate(connector)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.removeItem(connectorLocalStorageKey)\n\t\t\t\t\tif (error instanceof NoEthereumProviderError || error instanceof NoBscProviderError) {\n\t\t\t\t\t\ttoastError('Provider Error', 'No provider was found')\n\t\t\t\t\t} else if (\n\t\t\t\t\t\terror instanceof UserRejectedRequestErrorInjected ||\n\t\t\t\t\t\terror instanceof UserRejectedRequestErrorWalletConnect\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (connector instanceof WalletConnectConnector) {\n\t\t\t\t\t\t\tconst walletConnector = connector as WalletConnectConnector\n\t\t\t\t\t\t\twalletConnector.walletConnectProvider = null\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttoastError('Authorization Error', 'Please authorize to access your account')\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttoastError(error.name, error.message)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t} else {\n\t\t\ttoastError(\"Can't find connector\", 'The connector config is wrong')\n\t\t}\n\t}, [])\n\n\tconst logout = useCallback(() => {\n\t\tdeactivate()\n\t}, [deactivate, dispatch])\n\n\treturn { login, logout }\n}\n\nexport default useAuth\n","import random from 'lodash/random'\n\n// Array of available nodes to connect to\nexport const nodes = [\n\tprocess.env.REACT_APP_NODE_1,\n\tprocess.env.REACT_APP_NODE_2,\n\tprocess.env.REACT_APP_NODE_3,\n]\n\nconst getNodeUrl = () => {\n\tconst randomIndex = random(0, nodes.length - 1)\n\treturn nodes[randomIndex]\n}\n\nexport default getNodeUrl\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} true if the setup succeeded, false 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: 'Binance Smart 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://reiscan.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\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","const ARCHIVED_FARMS_START_PID = 139\nconst ARCHIVED_FARMS_END_PID = 250\n\nconst isArchivedPid = (pid: number) =>\n\tpid >= ARCHIVED_FARMS_START_PID && pid <= ARCHIVED_FARMS_END_PID\n\nexport default isArchivedPid\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Modal, Text, LinkExternal, Flex, Box } from '../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport { tokenEarnedPerThousandDollarsCompounding, getRoi } from 'utils/compoundApyHelpers'\n\ninterface ApyCalculatorModalProps {\n\tonDismiss?: () => void\n\ttokenPrice: number\n\tapr: number\n\tlinkLabel: string\n\tlinkHref: string\n\tearningTokenSymbol?: string\n\troundingDecimals?: number\n\tcompoundFrequency?: number\n\tperformanceFee?: number\n}\n\nconst Grid = styled.div`\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, 1fr);\n\tgrid-template-rows: repeat(4, auto);\n\tmargin-bottom: 24px;\n`\n\nconst GridItem = styled.div`\n\tmargin-bottom: '10px';\n`\n\nconst ApyCalculatorModal: React.FC = ({\n\tonDismiss,\n\ttokenPrice,\n\tapr,\n\tlinkLabel,\n\tlinkHref,\n\tearningTokenSymbol = 'COUPON',\n\troundingDecimals = 2,\n\tcompoundFrequency = 1,\n\tperformanceFee = 0,\n}) => {\n\tconst { t } = useTranslation()\n\tconst oneThousandDollarsWorthOfToken = 1000 / tokenPrice\n\n\tconst tokenEarnedPerThousand1D = tokenEarnedPerThousandDollarsCompounding({\n\t\tnumberOfDays: 1,\n\t\tfarmApr: apr,\n\t\ttokenPrice,\n\t\troundingDecimals,\n\t\tcompoundFrequency,\n\t\tperformanceFee,\n\t})\n\tconst tokenEarnedPerThousand7D = tokenEarnedPerThousandDollarsCompounding({\n\t\tnumberOfDays: 7,\n\t\tfarmApr: apr,\n\t\ttokenPrice,\n\t\troundingDecimals,\n\t\tcompoundFrequency,\n\t\tperformanceFee,\n\t})\n\tconst tokenEarnedPerThousand30D = tokenEarnedPerThousandDollarsCompounding({\n\t\tnumberOfDays: 30,\n\t\tfarmApr: apr,\n\t\ttokenPrice,\n\t\troundingDecimals,\n\t\tcompoundFrequency,\n\t\tperformanceFee,\n\t})\n\tconst tokenEarnedPerThousand365D = tokenEarnedPerThousandDollarsCompounding({\n\t\tnumberOfDays: 365,\n\t\tfarmApr: apr,\n\t\ttokenPrice,\n\t\troundingDecimals,\n\t\tcompoundFrequency,\n\t\tperformanceFee,\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{t('Timeframe')}\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{t('ROI')}\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{earningTokenSymbol} {t('per')} $1000\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{/* 1 day row */}\n\t\t\t\t\n\t\t\t\t\t1d\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{getRoi({\n\t\t\t\t\t\t\tamountEarned: tokenEarnedPerThousand1D,\n\t\t\t\t\t\t\tamountInvested: oneThousandDollarsWorthOfToken,\n\t\t\t\t\t\t}).toFixed(roundingDecimals)}\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{tokenEarnedPerThousand1D}\n\t\t\t\t\n\t\t\t\t{/* 7 day row */}\n\t\t\t\t\n\t\t\t\t\t7d\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{getRoi({\n\t\t\t\t\t\t\tamountEarned: tokenEarnedPerThousand7D,\n\t\t\t\t\t\t\tamountInvested: oneThousandDollarsWorthOfToken,\n\t\t\t\t\t\t}).toFixed(roundingDecimals)}\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{tokenEarnedPerThousand7D}\n\t\t\t\t\n\t\t\t\t{/* 30 day row */}\n\t\t\t\t\n\t\t\t\t\t30d\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{getRoi({\n\t\t\t\t\t\t\tamountEarned: tokenEarnedPerThousand30D,\n\t\t\t\t\t\t\tamountInvested: oneThousandDollarsWorthOfToken,\n\t\t\t\t\t\t}).toFixed(roundingDecimals)}\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{tokenEarnedPerThousand30D}\n\t\t\t\t\n\t\t\t\t{/* 365 day / APY row */}\n\t\t\t\t\n\t\t\t\t\t365d(APY)\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{getRoi({\n\t\t\t\t\t\t\tamountEarned: tokenEarnedPerThousand365D,\n\t\t\t\t\t\t\tamountInvested: oneThousandDollarsWorthOfToken,\n\t\t\t\t\t\t}).toFixed(roundingDecimals)}\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{tokenEarnedPerThousand365D}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t(\n\t\t\t\t\t\t`Calculated based on current rates. Compounding %freq%x daily. Rates are estimates provided for your convenience only, and by no means represent guaranteed returns.`,\n\t\t\t\t\t\t{ freq: compoundFrequency.toLocaleString() },\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{performanceFee > 0 && (\n\t\t\t\t\t\n\t\t\t\t\t\t{t(`All estimated rates take into account this pool's %fee%% performance fee`, {\n\t\t\t\t\t\t\tfee: performanceFee,\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{linkLabel}\n\t\t\t\n\t\t\n\t)\n}\n\nexport default ApyCalculatorModal\n","import { useCallback } from 'react'\nimport { useWeb3React } from '@web3-react/core'\nimport { useAppDispatch } from 'state'\nimport {\n\tfetchFarmUserDataAsync,\n\tupdateUserStakedBalance,\n\tupdateUserBalance,\n\tupdateUserPendingReward,\n} from 'state/actions'\nimport { unstake, sousUnstake, sousEmergencyUnstake, emergencyWithdraw } from 'utils/callHelpers'\nimport { useCafeteriaV3, useSnackBar } from './useContract'\n\nexport const useUnstake = (pid: number, isWithdrawFee100 = false) => {\n\tconst dispatch = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\n\n\tconst handleUnstake = useCallback(\n\t\tasync (amount: string) => {\n\t\t\tconst txHash = await unstake(masterChefContract, pid, amount, account, isWithdrawFee100)\n\t\t\tdispatch(fetchFarmUserDataAsync(account))\n\t\t\tconsole.info(txHash)\n\t\t},\n\t\t[account, dispatch, masterChefContract, pid],\n\t)\n\n\treturn { onUnstake: handleUnstake }\n}\n\nexport const useUnstakeV2 = (pid: number, isWithdrawFee100 = false) => {\n\tconst dispatch = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst cafeteriaV2Contract = useCafeteriaV3()\n\n\tconst handleUnstake = useCallback(\n\t\tasync (amount: string) => {\n\t\t\tconst txHash = await unstake(cafeteriaV2Contract, pid, amount, account, isWithdrawFee100)\n\t\t\tdispatch(fetchFarmUserDataAsync(account))\n\t\t\tconsole.info(txHash)\n\t\t},\n\t\t[account, dispatch, cafeteriaV2Contract, pid],\n\t)\n\n\treturn { onUnstake: handleUnstake }\n}\n\nexport const useEmergencyWithdraw = (pid: number) => {\n\tconst dispatch = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\n\n\tconst handleEmergencyWithdraw = useCallback(async () => {\n\t\tconst txHash = await emergencyWithdraw(masterChefContract, pid, account)\n\t\tdispatch(fetchFarmUserDataAsync(account))\n\t\tconsole.info(txHash)\n\t}, [account, dispatch, masterChefContract, pid])\n\n\treturn { onEmergencyWithdraw: handleEmergencyWithdraw }\n}\n\nexport const useSousUnstake = (sousId, enableEmergencyWithdraw = false) => {\n\tconst dispatch = useAppDispatch()\n\tconst { account } = useWeb3React()\n\tconst masterChefContract = useCafeteriaV3()\n\tconst sousChefContract = useSnackBar(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 (enableEmergencyWithdraw) {\n\t\t\t\tconst txHash = await sousEmergencyUnstake(sousChefContract, 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, enableEmergencyWithdraw, masterChefContract, sousChefContract, sousId],\n\t)\n\n\treturn { onUnstake: handleUnstake }\n}\n","export const scales = {\n\tSM: 'sm',\n\tMD: 'md',\n} as const\n\nexport type Scales = typeof scales[keyof typeof scales]\n\nexport interface CheckboxProps {\n\tscale?: Scales\n}\n","import BigNumber from 'bignumber.js'\nimport erc20 from 'config/abi/erc20.json'\nimport cafeteriaV3Abi from 'config/abi/cafeteriaV3.json'\nimport multicall from 'utils/multicall'\nimport { BIG_TEN } from 'utils/bigNumber'\nimport { getAddress, getCafeteriaV3Address } from 'utils/addressHelpers'\nimport { FarmConfig } from 'config/constants/types'\nimport { DEFAULT_TOKEN_DECIMAL } from 'config'\n\nconst fetchFarms = async (farmsToFetch: FarmConfig[]) => {\n\tconst data = await Promise.all(\n\t\tfarmsToFetch.map(async (farmConfig) => {\n\t\t\tconst lpAddress = getAddress(farmConfig.lpAddresses)\n\t\t\t// console.log(lpAddress)\n\t\t\tconst balanceAddress = farmConfig.isSinglePool ? getCafeteriaV3Address() : lpAddress\n\t\t\tconst calls = [\n\t\t\t\t// Balance of token in the LP contract\n\t\t\t\t{\n\t\t\t\t\taddress: getAddress(farmConfig.token.address),\n\t\t\t\t\tname: 'balanceOf',\n\t\t\t\t\tparams: [balanceAddress],\n\t\t\t\t},\n\t\t\t\t// Balance of quote token on LP contract\n\t\t\t\t{\n\t\t\t\t\taddress: getAddress(farmConfig.quoteToken.address),\n\t\t\t\t\tname: 'balanceOf',\n\t\t\t\t\tparams: [balanceAddress],\n\t\t\t\t},\n\t\t\t\t// Balance of LP tokens in the master chef contract\n\t\t\t\t{\n\t\t\t\t\taddress: lpAddress,\n\t\t\t\t\tname: 'balanceOf',\n\t\t\t\t\tparams: [getCafeteriaV3Address()],\n\t\t\t\t},\n\t\t\t\t// Total supply of LP tokens\n\t\t\t\t{\n\t\t\t\t\taddress: lpAddress,\n\t\t\t\t\tname: 'totalSupply',\n\t\t\t\t},\n\t\t\t\t// Token decimals\n\t\t\t\t{\n\t\t\t\t\taddress: getAddress(farmConfig.token.address),\n\t\t\t\t\tname: 'decimals',\n\t\t\t\t},\n\t\t\t\t// Quote token decimals\n\t\t\t\t{\n\t\t\t\t\taddress: getAddress(farmConfig.quoteToken.address),\n\t\t\t\t\tname: 'decimals',\n\t\t\t\t},\n\t\t\t]\n\n\t\t\tconst [\n\t\t\t\ttokenBalanceLP,\n\t\t\t\tquoteTokenBalanceLP,\n\t\t\t\tlpTokenBalanceMC,\n\t\t\t\tlpTotalSupply,\n\t\t\t\ttokenDecimals,\n\t\t\t\tquoteTokenDecimals,\n\t\t\t] = await multicall(erc20, calls)\n\n\t\t\t// Ratio in % a LP tokens that are in staking, vs the total number in circulation\n\t\t\tconst lpTokenRatio = new BigNumber(lpTokenBalanceMC).div(new BigNumber(lpTotalSupply))\n\n\t\t\t// Total value in staking in quote token value\n\t\t\tconst lpTotalInQuoteToken = new BigNumber(quoteTokenBalanceLP)\n\t\t\t\t.div(farmConfig.isSinglePool ? BIG_TEN.pow(quoteTokenDecimals) : DEFAULT_TOKEN_DECIMAL)\n\t\t\t\t.times(new BigNumber(2))\n\t\t\t\t.times(farmConfig.isSinglePool ? 1 : lpTokenRatio)\n\t\t\t\t.div(farmConfig.isSinglePool ? 2 : 1)\n\n\t\t\t// Amount of token in the LP that are considered staking (i.e amount of token * lp ratio)\n\t\t\tconst tokenAmount = new BigNumber(tokenBalanceLP)\n\t\t\t\t.div(BIG_TEN.pow(tokenDecimals))\n\t\t\t\t.times(lpTokenRatio)\n\t\t\tconst quoteTokenAmount = new BigNumber(quoteTokenBalanceLP)\n\t\t\t\t.div(BIG_TEN.pow(quoteTokenDecimals))\n\t\t\t\t.times(lpTokenRatio)\n\n\t\t\tconst [info, totalAllocPoint] = await multicall(cafeteriaV3Abi, [\n\t\t\t\t{\n\t\t\t\t\taddress: getCafeteriaV3Address(),\n\t\t\t\t\tname: 'poolInfo',\n\t\t\t\t\tparams: [farmConfig.pid],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\taddress: getCafeteriaV3Address(),\n\t\t\t\t\tname: 'totalAllocPoint',\n\t\t\t\t},\n\t\t\t])\n\n\t\t\tconst allocPoint = new BigNumber(info.allocPoint._hex)\n\t\t\tconst poolWeight = allocPoint.div(new BigNumber(totalAllocPoint))\n\n\t\t\t// console.log(farmConfig.pid, balanceAddress, 'tokenBalanceLP:', tokenBalanceLP.toString())\n\t\t\t// console.log(farmConfig.pid, balanceAddress, 'lpTotalSupply:', lpTotalSupply.toString())\n\t\t\tconst valueInQuotePer1LP = new BigNumber(quoteTokenBalanceLP)\n\t\t\t\t.div(lpTotalSupply)\n\t\t\t\t.times(new BigNumber(2)) // จำนวน Quote Tokenx2 ต่อ LP\n\t\t\t// console.log(\"Quote LP\", getAddress(farmConfig.lpAddresses), getAddress(farmConfig.quoteToken.address), quoteTokenBalanceLP.toString());\n\n\t\t\treturn {\n\t\t\t\t...farmConfig,\n\t\t\t\ttokenAmount: tokenAmount.toJSON(),\n\t\t\t\tquoteTokenAmount: quoteTokenAmount.toJSON(),\n\t\t\t\tlpTotalSupply: new BigNumber(lpTotalSupply).toJSON(),\n\t\t\t\tlpTotalInQuoteToken: lpTotalInQuoteToken.toJSON(),\n\t\t\t\ttokenPriceVsQuote: new BigNumber(quoteTokenBalanceLP).div(tokenBalanceLP).toJSON(),\n\t\t\t\tpoolWeight: poolWeight.toJSON(),\n\t\t\t\tmultiplier: `${allocPoint.div(100).toString()}X`,\n\t\t\t\tvalueInQuotePer1LP: valueInQuotePer1LP.toJSON(),\n\t\t\t}\n\t\t}),\n\t)\n\treturn data\n}\n\nexport default fetchFarms\n","import BigNumber from 'bignumber.js'\nimport erc20ABI from 'config/abi/erc20.json'\nimport masterchefABI from 'config/abi/masterchef.json'\nimport multicall from 'utils/multicall'\nimport { getAddress, getCafeteriaV3Address } from 'utils/addressHelpers'\nimport { FarmConfig } from 'config/constants/types'\n\nexport const fetchFarmUserAllowances = async (account: string, farmsToFetch: FarmConfig[]) => {\n\tconst masterChefAddress = getCafeteriaV3Address()\n\n\tconst calls = farmsToFetch.map((farm) => {\n\t\tconst lpContractAddress = getAddress(farm.lpAddresses)\n\t\treturn { address: lpContractAddress, name: 'allowance', params: [account, masterChefAddress] }\n\t})\n\n\tconst rawLpAllowances = await multicall(erc20ABI, calls)\n\tconst parsedLpAllowances = rawLpAllowances.map((lpBalance) => {\n\t\treturn new BigNumber(lpBalance).toJSON()\n\t})\n\treturn parsedLpAllowances\n}\n\nexport const fetchFarmUserTokenBalances = async (account: string, farmsToFetch: FarmConfig[]) => {\n\tconst calls = farmsToFetch.map((farm) => {\n\t\tconst lpContractAddress = getAddress(farm.lpAddresses)\n\t\treturn {\n\t\t\taddress: lpContractAddress,\n\t\t\tname: 'balanceOf',\n\t\t\tparams: [account],\n\t\t}\n\t})\n\n\tconst rawTokenBalances = await multicall(erc20ABI, calls)\n\tconst parsedTokenBalances = rawTokenBalances.map((tokenBalance) => {\n\t\treturn new BigNumber(tokenBalance).toJSON()\n\t})\n\treturn parsedTokenBalances\n}\n\nexport const fetchFarmUserStakedBalances = async (account: string, farmsToFetch: FarmConfig[]) => {\n\tconst masterChefAddress = getCafeteriaV3Address()\n\n\tconst calls = farmsToFetch.map((farm) => {\n\t\treturn {\n\t\t\taddress: masterChefAddress,\n\t\t\tname: 'userInfo',\n\t\t\tparams: [farm.pid, account],\n\t\t}\n\t})\n\n\tconst rawStakedBalances = await multicall(masterchefABI, calls)\n\tconst parsedStakedBalances = rawStakedBalances.map((stakedBalance) => {\n\t\treturn new BigNumber(stakedBalance[0]._hex).toJSON()\n\t})\n\treturn parsedStakedBalances\n}\n\nexport const fetchFarmUserEarnings = async (account: string, farmsToFetch: FarmConfig[]) => {\n\tconst masterChefAddress = getCafeteriaV3Address()\n\n\tconst calls = farmsToFetch.map((farm) => {\n\t\treturn {\n\t\t\taddress: masterChefAddress,\n\t\t\tname: 'pendingCoupon',\n\t\t\tparams: [farm.pid, account],\n\t\t}\n\t})\n\n\tconst rawEarnings = await multicall(masterchefABI, calls)\n\tconst parsedEarnings = rawEarnings.map((earnings) => {\n\t\treturn new BigNumber(earnings).toJSON()\n\t})\n\treturn parsedEarnings\n}\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit'\nimport farmsConfig from 'config/constants/farms'\nimport isArchivedPid from 'utils/farmHelpers'\nimport fetchFarms from './fetchFarms'\nimport {\n\tfetchFarmUserEarnings,\n\tfetchFarmUserAllowances,\n\tfetchFarmUserTokenBalances,\n\tfetchFarmUserStakedBalances,\n} from './fetchFarmUser'\nimport { FarmsState, Farm } from '../types'\n\nexport const nonArchivedFarms = farmsConfig.filter(({ pid }) => !isArchivedPid(pid))\n\nconst noAccountFarmConfig = farmsConfig.map((farm) => ({\n\t...farm,\n\tuserData: {\n\t\tallowance: '0',\n\t\ttokenBalance: '0',\n\t\tstakedBalance: '0',\n\t\tearnings: '0',\n\t},\n}))\n\nconst initialState: FarmsState = {\n\tdata: noAccountFarmConfig,\n\tloadArchivedFarmsData: false,\n\tuserDataLoaded: false,\n}\n\nexport const farmsSlice = createSlice({\n\tname: 'Farms',\n\tinitialState,\n\treducers: {\n\t\tsetFarmsPublicData: (state, action) => {\n\t\t\tconst liveFarmsData: Farm[] = action.payload\n\t\t\tstate.data = state.data.map((farm) => {\n\t\t\t\tconst liveFarmData = liveFarmsData.find((f) => f.pid === farm.pid)\n\t\t\t\treturn { ...farm, ...liveFarmData }\n\t\t\t})\n\t\t},\n\t\tsetFarmUserData: (state, action) => {\n\t\t\tconst { arrayOfUserDataObjects } = action.payload\n\t\t\tarrayOfUserDataObjects.forEach((userDataEl) => {\n\t\t\t\tconst { pid } = userDataEl\n\t\t\t\tconst index = state.data.findIndex((farm) => farm.pid === pid)\n\t\t\t\tstate.data[index] = { ...state.data[index], userData: userDataEl }\n\t\t\t})\n\t\t\tstate.userDataLoaded = true\n\t\t},\n\t\tsetLoadArchivedFarmsData: (state, action) => {\n\t\t\tconst loadArchivedFarmsData = action.payload\n\t\t\tstate.loadArchivedFarmsData = loadArchivedFarmsData\n\t\t},\n\t},\n})\n\n// Actions\nexport const { setFarmsPublicData, setFarmUserData, setLoadArchivedFarmsData } = farmsSlice.actions\n\n// Thunks\nexport const fetchFarmsPublicDataAsync = () => async (dispatch, getState) => {\n\t// console.log(\"Public data async\")\n\tconst fetchArchived = getState().farms.loadArchivedFarmsData\n\tconsole.log('farmsConfig', farmsConfig)\n\tconst farmsToFetch = fetchArchived ? farmsConfig : nonArchivedFarms\n\tconsole.log('farmsToFetch', farmsToFetch)\n\tconst farms = await fetchFarms(farmsToFetch)\n\tdispatch(setFarmsPublicData(farms))\n}\n\nexport const fetchFarmUserDataAsync = (account: string) => async (dispatch, getState) => {\n\t// console.log(\"User data async\")\n\tconst fetchArchived = getState().farms.loadArchivedFarmsData\n\tconst farmsToFetch = fetchArchived ? farmsConfig : nonArchivedFarms\n\tconst userFarmAllowances = await fetchFarmUserAllowances(account, farmsToFetch)\n\tconst userFarmTokenBalances = await fetchFarmUserTokenBalances(account, farmsToFetch)\n\tconst userStakedBalances = await fetchFarmUserStakedBalances(account, farmsToFetch)\n\tconst userFarmEarnings = await fetchFarmUserEarnings(account, farmsToFetch)\n\n\tconst arrayOfUserDataObjects = userFarmAllowances.map((farmAllowance, index) => {\n\t\treturn {\n\t\t\tpid: farmsToFetch[index].pid,\n\t\t\tallowance: userFarmAllowances[index],\n\t\t\ttokenBalance: userFarmTokenBalances[index],\n\t\t\tstakedBalance: userStakedBalances[index],\n\t\t\tearnings: userFarmEarnings[index],\n\t\t}\n\t})\n\n\tdispatch(setFarmUserData({ arrayOfUserDataObjects }))\n}\n\nexport default farmsSlice.reducer\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\tAPR: 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: 'earned',\n\t\ttranslationId: 1072,\n\t\tsortable: true,\n\t\tlabel: 'Earned',\n\t},\n\t{\n\t\tid: 3,\n\t\tname: 'apr',\n\t\ttranslationId: 736,\n\t\tsortable: true,\n\t\tlabel: 'APR',\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: '',\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: 'apr',\n\t\ttranslationId: 736,\n\t\tsortable: true,\n\t\tlabel: 'APR',\n\t},\n\t{\n\t\tid: 4,\n\t\tname: 'liquidity',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'Liquidity',\n\t},\n\t{\n\t\tid: 5,\n\t\tname: 'multiplier',\n\t\ttranslationId: 999,\n\t\tsortable: true,\n\t\tlabel: 'Multiplier',\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 enum ViewMode {\n\t'TABLE' = 'TABLE',\n\t'CARD' = 'CARD',\n}\n","import { Colors } from './types'\n\nexport const baseColors = {\n\tfailure: 'hsl(9, 95%, 66%)',\n\tprimary: 'hsl(9, 95%, 66%)',\n\tprimaryBright: '#fa4d2e',\n\tprimaryDark: '#fc8c79',\n\tsecondary: '#febc2f',\n\tsuccess: '#31D0AA',\n\twarning: '#FFB237',\n}\n\nexport const brandColors = {\n\tbinance: '#F0B90B',\n}\n\nexport const lightColors: Colors = {\n\t...baseColors,\n\t...brandColors,\n\tbackground: '#FAF9FA',\n\tbackgroundDisabled: '#E9EAEB',\n\tbackgroundAlt: '#FFFFFF',\n\tcardBorder: '#E7E3EB',\n\tcontrast: '#191326',\n\tdropdown: '#F6F6F6',\n\tdropdownDeep: '#EEEEEE',\n\tinvertedContrast: '#FFFFFF',\n\tinput: 'hsl(41, 99%, 94%)', // NOTE: can't use css var here. it error!\n\tinputSecondary: '#fecd62',\n\ttertiary: '#EFF4F5',\n\ttext: '#604200',\n\ttextDisabled: '#BDC2C4',\n\ttextSubtle: 'hsl(41, 99%, 39%)', // NOTE: can't use css var here. it error!\n\tborderColor: '#E9EAEB',\n\tgradients: {\n\t\tbubblegum: `linear-gradient(139.73deg, var(--color-accent-100) 0%, var(--color-primary-100) 100%)`,\n\t\tinverseBubblegum: 'linear-gradient(139.73deg, #F3EFFF 0%, #E5FDFF 100%)',\n\t\tcardHeader: 'linear-gradient(111.68deg, #F2ECF2 0%, #E8F2F6 100%)',\n\t\tblue: 'linear-gradient(180deg, #A7E8F1 0%, #94E1F2 100%)',\n\t\tviolet: 'linear-gradient(180deg, #E2C9FB 0%, #CDB8FA 100%)',\n\t\tvioletAlt: 'linear-gradient(180deg, #CBD7EF 0%, #9A9FD0 100%)',\n\t},\n}\n\nexport const darkColors: Colors = {\n\t...baseColors,\n\t...brandColors,\n\tsecondary: '#9A6AFF',\n\tbackground: '#08060B',\n\tbackgroundDisabled: '#3c3742',\n\tbackgroundAlt: '#27262c',\n\tcardBorder: '#383241',\n\tcontrast: '#FFFFFF',\n\tdropdown: '#1E1D20',\n\tdropdownDeep: '#100C18',\n\tinvertedContrast: '#191326',\n\tinput: '#372F47',\n\tinputSecondary: '#262130',\n\tprimaryDark: '#0098A1',\n\ttertiary: '#353547',\n\ttext: '#F4EEFF',\n\ttextDisabled: '#666171',\n\ttextSubtle: '#B8ADD2',\n\tborderColor: '#524B63',\n\tgradients: {\n\t\tbubblegum: 'linear-gradient(139.73deg, #313D5C 0%, #3D2A54 100%)',\n\t\tinverseBubblegum: 'linear-gradient(139.73deg, #3D2A54 0%, #313D5C 100%)',\n\t\tcardHeader: 'linear-gradient(166.77deg, #3B4155 0%, #3A3045 100%)',\n\t\tblue: 'linear-gradient(180deg, #00707F 0%, #19778C 100%)',\n\t\tviolet: 'linear-gradient(180deg, #6C4999 0%, #6D4DB2 100%)',\n\t\tvioletAlt: 'linear-gradient(180deg, #434575 0%, #66578D 100%)',\n\t},\n}\n","import { darkColors, lightColors } from '../../theme/colors'\nimport { AlertTheme } from './types'\n\nexport const light: AlertTheme = {\n\tbackground: lightColors.backgroundAlt,\n}\n\nexport const dark: AlertTheme = {\n\tbackground: darkColors.backgroundAlt,\n}\n","import { darkColors, lightColors } from '../../theme/colors'\nimport { shadows } from '../../theme/base'\nimport { CardTheme } from './types'\n\nexport const light: CardTheme = {\n\tbackground: lightColors.backgroundAlt,\n\tboxShadow: '0px 2px 12px -8px rgba(25, 19, 38, 0.1), 0px 1px 1px rgba(25, 19, 38, 0.05)',\n\tboxShadowActive: shadows.active,\n\tboxShadowSuccess: shadows.success,\n\tboxShadowWarning: shadows.warning,\n\tcardHeaderBackground: {\n\t\tdefault: lightColors.gradients.cardHeader,\n\t\tblue: lightColors.gradients.blue,\n\t\tviolet: lightColors.gradients.violet,\n\t},\n\tdropShadow: 'drop-shadow(0px 1px 4px rgba(25, 19, 38, 0.15))',\n}\n\nexport const dark: CardTheme = {\n\tbackground: darkColors.backgroundAlt,\n\tboxShadow: '0px 2px 12px -8px rgba(25, 19, 38, 0.1), 0px 1px 1px rgba(25, 19, 38, 0.05)',\n\tboxShadowActive: shadows.active,\n\tboxShadowSuccess: shadows.success,\n\tboxShadowWarning: shadows.warning,\n\tcardHeaderBackground: {\n\t\tdefault: darkColors.gradients.cardHeader,\n\t\tblue: darkColors.gradients.blue,\n\t\tviolet: darkColors.gradients.violet,\n\t},\n\tdropShadow: 'drop-shadow(0px 1px 4px rgba(25, 19, 38, 0.15))',\n}\n","import { darkColors, lightColors } from '../../theme/colors'\nimport { PancakeToggleTheme } from './types'\n\nexport const light: PancakeToggleTheme = {\n\thandleBackground: lightColors.backgroundAlt,\n\thandleShadow: lightColors.textDisabled,\n}\n\nexport const dark: PancakeToggleTheme = {\n\thandleBackground: darkColors.backgroundAlt,\n\thandleShadow: darkColors.textDisabled,\n}\n","import { darkColors, lightColors } from '../../theme/colors'\nimport { RadioTheme } from './types'\n\nexport const light: RadioTheme = {\n\thandleBackground: lightColors.backgroundAlt,\n}\n\nexport const dark: RadioTheme = {\n\thandleBackground: darkColors.backgroundAlt,\n}\n","import { darkColors, lightColors } from '../../theme/colors'\nimport { ToggleTheme } from './types'\n\nexport const light: ToggleTheme = {\n\thandleBackground: lightColors.backgroundAlt,\n}\n\nexport const dark: ToggleTheme = {\n\thandleBackground: darkColors.backgroundAlt,\n}\n","import { darkColors, lightColors } from '../../theme/colors'\nimport { NavTheme } from './types'\n\nexport const light: NavTheme = {\n\tbackground: lightColors.backgroundAlt,\n\thover: '#EEEAF4',\n}\n\nexport const dark: NavTheme = {\n\tbackground: darkColors.backgroundAlt,\n\thover: '#473d5d',\n}\n","import { darkColors, lightColors } from '../../theme/colors'\nimport { ModalTheme } from './types'\n\nexport const light: ModalTheme = {\n\tbackground: lightColors.backgroundAlt,\n}\n\nexport const dark: ModalTheme = {\n\tbackground: darkColors.backgroundAlt,\n}\n","import { darkColors, lightColors } from '../../theme/colors'\nimport { TooltipTheme } from './types'\n\nexport const light: TooltipTheme = {\n\tbackground: darkColors.backgroundAlt,\n\ttext: darkColors.text,\n\tboxShadow: '0px 0px 2px rgba(0, 0, 0, 0.2), 0px 4px 12px -8px rgba(14, 14, 44, 0.1)',\n}\n\nexport const dark: TooltipTheme = {\n\tbackground: lightColors.backgroundAlt,\n\ttext: lightColors.text,\n\tboxShadow: '0px 0px 2px rgba(0, 0, 0, 0.2), 0px 4px 12px -8px rgba(14, 14, 44, 0.1)',\n}\n","import { DefaultTheme } from 'styled-components'\nimport { dark as darkAlert } from '../components/Alert/theme'\nimport { dark as darkCard } from '../components/Card/theme'\nimport { dark as darkPancakeToggle } from '../components/PancakeToggle/theme'\nimport { dark as darkRadio } from '../components/Radio/theme'\nimport { dark as darkToggle } from '../components/Toggle/theme'\nimport { dark as darkNav } from '../widgets/Menu/theme'\nimport { dark as darkModal } from '../widgets/Modal/theme'\nimport { dark as darkTooltip } from '../components/Tooltip/theme'\nimport base from './base'\nimport { darkColors } from './colors'\n\nconst darkTheme: DefaultTheme = {\n\t...base,\n\tisDark: true,\n\talert: darkAlert,\n\tcolors: darkColors,\n\tcard: darkCard,\n\ttoggle: darkToggle,\n\tnav: darkNav,\n\tmodal: darkModal,\n\tpancakeToggle: darkPancakeToggle,\n\tradio: darkRadio,\n\ttooltip: darkTooltip,\n}\n\nexport default darkTheme\n","import { DefaultTheme } from 'styled-components'\nimport { light as lightAlert } from '../components/Alert/theme'\nimport { light as lightCard } from '../components/Card/theme'\nimport { light as lightPancakeToggle } from '../components/PancakeToggle/theme'\nimport { light as lightRadio } from '../components/Radio/theme'\nimport { light as lightToggle } from '../components/Toggle/theme'\nimport { light as lightTooltip } from '../components/Tooltip/theme'\nimport { light as lightNav } from '../widgets/Menu/theme'\nimport { light as lightModal } from '../widgets/Modal/theme'\nimport base from './base'\nimport { lightColors } from './colors'\n\nconst lightTheme: DefaultTheme = {\n\t...base,\n\tisDark: false,\n\talert: lightAlert,\n\tcolors: lightColors,\n\tcard: lightCard,\n\ttoggle: lightToggle,\n\tnav: lightNav,\n\tmodal: lightModal,\n\tpancakeToggle: lightPancakeToggle,\n\tradio: lightRadio,\n\ttooltip: lightTooltip,\n}\n\nexport default lightTheme\n","import { EN } from '../../config/localization/languages'\n\nconst publicUrl = process.env.PUBLIC_URL\n\nexport const LS_KEY = 'pancakeswap_language'\n\nexport const fetchLocale = async (locale) => {\n\tconst response = await fetch(`${publicUrl}/locales/${locale}.json`)\n\tconst data = await response.json()\n\treturn data\n}\n\nexport const getLanguageCodeFromLS = () => {\n\ttry {\n\t\tconst codeFromStorage = localStorage.getItem(LS_KEY)\n\n\t\treturn codeFromStorage || EN.locale\n\t} catch {\n\t\treturn EN.locale\n\t}\n}\n","import React, { createContext, useCallback, useEffect, useState } from 'react'\nimport { Language } from '../../uikit-foodcourt'\nimport { EN, languages } from '../../config/localization/languages'\nimport translations from '../../config/localization/translations.json'\nimport { ContextApi, ContextData, ProviderState } from './types'\nimport { LS_KEY, fetchLocale, getLanguageCodeFromLS } from './helpers'\n\nconst initialState: ProviderState = {\n\tisFetching: true,\n\tcurrentLanguage: EN,\n}\n\n// Export the translations directly\nexport const languageMap = new Map>()\nlanguageMap.set(EN.locale, translations)\n\nexport const LanguageContext = createContext(undefined)\n\nexport const LanguageProvider: React.FC = ({ children }) => {\n\tconst [state, setState] = useState(() => {\n\t\tconst codeFromStorage = getLanguageCodeFromLS()\n\n\t\treturn {\n\t\t\t...initialState,\n\t\t\tcurrentLanguage: languages[codeFromStorage],\n\t\t}\n\t})\n\tconst { currentLanguage } = state\n\n\tuseEffect(() => {\n\t\tconst fetchInitialLocales = async () => {\n\t\t\tconst codeFromStorage = getLanguageCodeFromLS()\n\n\t\t\tif (codeFromStorage !== EN.locale) {\n\t\t\t\tconst enLocale = languageMap.get(EN.locale)\n\t\t\t\tconst currentLocale = await fetchLocale(codeFromStorage)\n\t\t\t\tlanguageMap.set(codeFromStorage, { ...enLocale, ...currentLocale })\n\t\t\t}\n\n\t\t\tsetState((prevState) => ({\n\t\t\t\t...prevState,\n\t\t\t\tisFetching: false,\n\t\t\t}))\n\t\t}\n\n\t\tfetchInitialLocales()\n\t}, [setState])\n\n\tconst setLanguage = async (language: Language) => {\n\t\tif (!languageMap.has(language.locale)) {\n\t\t\tsetState((prevState) => ({\n\t\t\t\t...prevState,\n\t\t\t\tisFetching: true,\n\t\t\t}))\n\n\t\t\tconst locale = await fetchLocale(language.locale)\n\t\t\tconst enLocale = languageMap.get(EN.locale)\n\n\t\t\t// Merge the EN locale to ensure that any locale fetched has all the keys\n\t\t\tlanguageMap.set(language.locale, { ...enLocale, ...locale })\n\t\t\tlocalStorage.setItem(LS_KEY, language.locale)\n\n\t\t\tsetState((prevState) => ({\n\t\t\t\t...prevState,\n\t\t\t\tisFetching: false,\n\t\t\t\tcurrentLanguage: language,\n\t\t\t}))\n\t\t} else {\n\t\t\tlocalStorage.setItem(LS_KEY, language.locale)\n\t\t\tsetState((prevState) => ({\n\t\t\t\t...prevState,\n\t\t\t\tisFetching: false,\n\t\t\t\tcurrentLanguage: language,\n\t\t\t}))\n\t\t}\n\t}\n\n\tconst translate = useCallback(\n\t\t(key: string, data?: ContextData) => {\n\t\t\tconst translationSet = languageMap.has(currentLanguage.locale)\n\t\t\t\t? languageMap.get(currentLanguage.locale)\n\t\t\t\t: languageMap.get(EN.locale)\n\t\t\tconst translatedText = translationSet[key] || key\n\n\t\t\t// Check the existence of at least one combination of %%, separated by 1 or more non space characters\n\t\t\tconst includesVariable = translatedText.match(/%\\S+?%/gm)\n\n\t\t\tif (includesVariable && data) {\n\t\t\t\tlet interpolatedText = translatedText\n\t\t\t\tObject.keys(data).forEach((dataKey) => {\n\t\t\t\t\tconst templateKey = new RegExp(`%${dataKey}%`, 'g')\n\t\t\t\t\tinterpolatedText = interpolatedText.replace(templateKey, data[dataKey].toString())\n\t\t\t\t})\n\n\t\t\t\treturn interpolatedText\n\t\t\t}\n\n\t\t\treturn translatedText\n\t\t},\n\t\t[currentLanguage],\n\t)\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t)\n}\n","import { useContext } from 'react'\nimport { LanguageContext } from './Provider'\n\nconst useTranslation = () => {\n\tconst languageContext = useContext(LanguageContext)\n\n\tif (languageContext === undefined) {\n\t\tthrow new Error('Language context is undefined')\n\t}\n\n\treturn languageContext\n}\n\nexport default useTranslation\n","export const Latinise = {\n\tlatin_map: {\n\t\tτ: 't',\n\t\tΤ: 'T',\n\t},\n}\n\nexport const latinise = (input: string) => {\n\treturn input.replace(/[^A-Za-z0-9[\\] ]/g, (x) => Latinise.latin_map[x] || x)\n}\n","import { PageMeta } from './types'\n\nexport const DEFAULT_META: PageMeta = {\n\ttitle: 'FoodcourtFinance',\n\tdescription:\n\t\t'The most popular AMM on BSC by user count! Earn COUPON through yield farming or win it in the Lottery, then stake it in Syrup Pools to earn more tokens! Initial Farm Offerings (new token launch model pioneered by FoodcourtFinance), NFTs, and more, on a platform you can trust.',\n\timage: 'https://foodcourt.finance/images/hero.png',\n}\n\nexport const customMeta: { [key: string]: PageMeta } = {\n\t'/': {\n\t\ttitle: 'Home | FoodcourtFinance',\n\t},\n\t'/competition': {\n\t\ttitle: 'Trading Battle | FoodcourtFinance',\n\t},\n\t'/prediction': {\n\t\ttitle: 'Prediction | FoodcourtFinance',\n\t},\n\t'/farms': {\n\t\ttitle: 'Farms | FoodcourtFinance',\n\t},\n\t'/pools': {\n\t\ttitle: 'Pools | FoodcourtFinance',\n\t},\n\t'/lottery': {\n\t\ttitle: 'Lottery | FoodcourtFinance',\n\t},\n\t'/collectibles': {\n\t\ttitle: 'Collectibles | FoodcourtFinance',\n\t},\n\t'/ifo': {\n\t\ttitle: 'Initial Farm Offering | FoodcourtFinance',\n\t},\n\t'/teams': {\n\t\ttitle: 'Leaderboard | FoodcourtFinance',\n\t},\n\t'/profile/tasks': {\n\t\ttitle: 'Task Center | FoodcourtFinance',\n\t},\n\t'/profile': {\n\t\ttitle: 'Your Profile | FoodcourtFinance',\n\t},\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Helmet } from 'react-helmet-async'\nimport { useLocation } from 'react-router'\nimport { customMeta, DEFAULT_META } from 'config/constants/meta'\nimport { usePriceCouponkBUSD } from 'state/hooks'\nimport Container from './Container'\n\nconst StyledPage = styled(Container)`\n\tmin-height: calc(100vh - 64px);\n\tpadding-top: 16px;\n\tpadding-bottom: 16px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tpadding-top: 24px;\n\t\tpadding-bottom: 24px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tpadding-top: 32px;\n\t\tpadding-bottom: 32px;\n\t}\n`\n\nconst PageMeta = () => {\n\tconst { pathname } = useLocation()\n\tconst couponPriceUsd = usePriceCouponkBUSD()\n\tconst couponPriceUsdDisplay = couponPriceUsd.eq(0)\n\t\t? ''\n\t\t: `$${couponPriceUsd.toNumber().toLocaleString(undefined, {\n\t\t\t\tminimumFractionDigits: 3,\n\t\t\t\tmaximumFractionDigits: 3,\n\t\t })}`\n\tconst pageMeta = customMeta[pathname] || {}\n\tconst { title, description, image } = { ...DEFAULT_META, ...pageMeta }\n\tconst pageTitle = couponPriceUsdDisplay ? [title, couponPriceUsdDisplay].join(' - ') : title\n\n\treturn (\n\t\t\n\t\t\t{pageTitle}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nconst Page: React.FC> = ({ children, ...props }) => {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t{children}\n\t\t\n\t)\n}\n\nexport default Page\n","import BigNumber from 'bignumber.js'\nimport { BIG_TEN } from './bigNumber'\n\n/**\n * Take a formatted amount, e.g. 15 BNB and convert it to full decimal value, e.g. 15000000000000000\n */\nexport const getDecimalAmount = (amount: BigNumber, decimals = 18) => {\n\treturn new BigNumber(amount).times(BIG_TEN.pow(decimals))\n}\n\nexport const getBalanceAmount = (amount: BigNumber, decimals = 18) => {\n\treturn new BigNumber(amount).dividedBy(BIG_TEN.pow(decimals))\n}\n\n/**\n * This function is not really necessary but is used throughout the site.\n */\nexport const getBalanceNumber = (balance: BigNumber, decimals = 18) => {\n\treturn getBalanceAmount(balance, decimals).toNumber()\n}\n\nexport const getFullDisplayBalance = (\n\tbalance: BigNumber,\n\tdecimals = 18,\n\tdecimalsToAppear?: number,\n) => {\n\treturn balance.dividedBy(BIG_TEN.pow(decimals)).toFixed(decimalsToAppear)\n}\n\nexport const formatNumber = (number: number, minPrecision = 2, maxPrecision = 2) => {\n\tconst options = {\n\t\tminimumFractionDigits: minPrecision,\n\t\tmaximumFractionDigits: maxPrecision,\n\t}\n\treturn number.toLocaleString(undefined, options)\n}\n","import React from 'react'\nimport Svg from '../Svg'\nimport { SvgProps } from '../types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../Svg'\nimport { SvgProps } from '../types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../Svg'\nimport { SvgProps } from '../types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../Svg'\nimport { SvgProps } from '../types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../Svg'\nimport { SvgProps } from '../types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../Svg'\nimport { SvgProps } from '../types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../Svg'\nimport { SvgProps } from '../types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport styled from 'styled-components'\nimport { DropdownProps, PositionProps, Position } from './types'\n\nconst getLeft = ({ position }: PositionProps) => {\n\tif (position === 'top-right') {\n\t\treturn '100%'\n\t}\n\treturn '50%'\n}\n\nconst getBottom = ({ position }: PositionProps) => {\n\tif (position === 'top' || position === 'top-right') {\n\t\treturn '100%'\n\t}\n\treturn 'auto'\n}\n\nconst DropdownContent = styled.div<{ position: Position }>`\n\twidth: max-content;\n\tdisplay: none;\n\tflex-direction: column;\n\tposition: absolute;\n\ttransform: translate(-50%, 0);\n\tleft: ${getLeft};\n\tbottom: ${getBottom};\n\tbackground-color: ${({ theme }) => theme.nav.background};\n\tbox-shadow: ${({ theme }) => theme.shadows.level1};\n\tpadding: 16px;\n\tmax-height: 500px;\n\toverflow-y: auto;\n\tz-index: ${({ theme }) => theme.zIndices.dropdown};\n\tborder-radius: ${({ theme }) => theme.radii.small};\n`\n\nconst Container = styled.div`\n\tposition: relative;\n\t&:hover ${DropdownContent}, &:focus-within ${DropdownContent} {\n\t\tdisplay: flex;\n\t}\n`\n\nconst Dropdown: React.FC = ({ target, position = 'bottom', children }) => (\n\t\n\t\t{target}\n\t\t{children}\n\t\n)\nDropdown.defaultProps = {\n\tposition: 'bottom',\n}\n\nexport default Dropdown\n","import BigNumber from 'bignumber.js'\nimport { SECOND_IN_YEAR, COUPON_PER_SECOND } from 'config'\n\n/**\n * Get the APR value in %\n * @param stakingTokenPrice Token price in the same quote currency\n * @param rewardTokenPrice Token price in the same quote currency\n * @param totalStaked Total amount of stakingToken in the pool\n * @param tokenPerSecond Amount of new cake allocated to the pool for each new block\n * @returns Null if the APR is NaN or infinite.\n */\nexport const getPoolApr = (\n\tstakingTokenPrice: number,\n\trewardTokenPrice: number,\n\ttotalStaked: number,\n\ttokenPerSecond: number,\n): number => {\n\tconst totalRewardPricePerYear = new BigNumber(rewardTokenPrice)\n\t\t.times(tokenPerSecond)\n\t\t.times(SECOND_IN_YEAR)\n\tconst totalStakingTokenInPool = new BigNumber(stakingTokenPrice).times(totalStaked)\n\tconst apr = totalRewardPricePerYear.div(totalStakingTokenInPool).times(100)\n\treturn apr.isNaN() || !apr.isFinite() ? null : apr.toNumber()\n}\n\n/**\n * Get farm APR value in %\n * @param poolWeight allocationPoint / totalAllocationPoint\n * @param couponPriceUsd Cake price in USD\n * @param poolLiquidityUsd Total pool liquidity in USD\n * @returns\n */\nexport const getFarmApr = (\n\tpoolWeight: BigNumber,\n\tcouponPriceUsd: BigNumber,\n\tpoolLiquidityUsd: BigNumber,\n): number => {\n\tconst yearlyCakeRewardAllocation = COUPON_PER_SECOND.times(SECOND_IN_YEAR).times(poolWeight)\n\tconsole.log('yearlyCakeRewardAllocation', yearlyCakeRewardAllocation.toString())\n\tconsole.log('couponPriceUsd', couponPriceUsd.toString())\n\tconsole.log('poolLiquidityUsd', poolLiquidityUsd.toString())\n\tconst apr = yearlyCakeRewardAllocation.times(couponPriceUsd).div(poolLiquidityUsd).times(100)\n\tconsole.log('Farm APR', apr.toString())\n\treturn apr.isNaN() || !apr.isFinite() ? null : apr.toNumber()\n}\n\nexport default null\n","/* eslint-disable no-param-reassign */\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { BlockState } from '../types'\n\nconst initialState: BlockState = { currentBlock: 0, initialBlock: 0 }\n\nexport const blockSlice = createSlice({\n\tname: 'Block',\n\tinitialState,\n\treducers: {\n\t\tsetBlock: (state, action: PayloadAction) => {\n\t\t\tif (state.initialBlock === 0) {\n\t\t\t\tstate.initialBlock = action.payload\n\t\t\t}\n\n\t\t\tstate.currentBlock = action.payload\n\t\t},\n\t},\n})\n\n// Actions\nexport const { setBlock } = blockSlice.actions\n\nexport default blockSlice.reducer\n","import { FC } from 'react'\nimport { SvgProps } from '../../components/Svg/types'\n\nexport enum ConnectorNames {\n\tInjected = 'injected',\n\tWalletConnect = 'walletconnect',\n}\n\nexport type Login = (connectorId: ConnectorNames) => void\n\nexport interface Config {\n\ttitle: string\n\ticon: FC\n\tconnectorId: ConnectorNames\n}\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport uniqueId from 'lodash/uniqueId'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => {\n\tconst id = uniqueId('svg')\n\n\treturn (\n\t\t\n\t\t\t\n\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\n\t\t\n\t)\n}\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import Metamask from './icons/Metamask'\nimport MathWallet from './icons/MathWallet'\nimport TokenPocket from './icons/TokenPocket'\nimport TrustWallet from './icons/TrustWallet'\nimport WalletConnect from './icons/WalletConnect'\nimport BinanceChain from './icons/BinanceChain'\nimport SafePalWallet from './icons/SafePalWallet'\nimport { Config, ConnectorNames } from './types'\n\nconst connectors: Config[] = [\n\t{\n\t\ttitle: 'Metamask',\n\t\ticon: Metamask,\n\t\tconnectorId: ConnectorNames.Injected,\n\t},\n\t{\n\t\ttitle: 'TrustWallet',\n\t\ticon: TrustWallet,\n\t\tconnectorId: ConnectorNames.Injected,\n\t},\n\t{\n\t\ttitle: 'MathWallet',\n\t\ticon: MathWallet,\n\t\tconnectorId: ConnectorNames.Injected,\n\t},\n\t{\n\t\ttitle: 'TokenPocket',\n\t\ticon: TokenPocket,\n\t\tconnectorId: ConnectorNames.Injected,\n\t},\n\t{\n\t\ttitle: 'WalletConnect',\n\t\ticon: WalletConnect,\n\t\tconnectorId: ConnectorNames.WalletConnect,\n\t},\n\t{\n\t\ttitle: 'SafePal Wallet',\n\t\ticon: SafePalWallet,\n\t\tconnectorId: ConnectorNames.Injected,\n\t},\n]\n\nexport default connectors\nexport const connectorLocalStorageKey = 'connectorId'\n","import React from 'react'\nimport Button from '../../components/Button/Button'\nimport Text from '../../components/Text/Text'\nimport { connectorLocalStorageKey } from './config'\nimport { Login, Config } from './types'\n\ninterface Props {\n\twalletConfig: Config\n\tlogin: Login\n\tonDismiss: () => void\n\tmb: string\n}\n\nconst WalletCard: React.FC = ({ login, walletConfig, onDismiss, mb }) => {\n\tconst { title, icon: Icon } = walletConfig\n\treturn (\n\t\t {\n\t\t\t\tlogin(walletConfig.connectorId)\n\t\t\t\twindow.localStorage.setItem(connectorLocalStorageKey, walletConfig.connectorId)\n\t\t\t\tonDismiss()\n\t\t\t}}\n\t\t\tstyle={{ justifyContent: 'space-between' }}\n\t\t\tid={`wallet-connect-${title.toLocaleLowerCase()}`}\n\t\t>\n\t\t\t
{title}
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t)\n}\n\nexport default WalletCard\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Link } from '../../components/Link'\nimport { HelpIcon } from '../../components/Svg'\nimport { Modal } from '../Modal'\nimport WalletCard from './WalletCard'\nimport config from './config'\nimport { Login } from './types'\n\ninterface Props {\n\tlogin: Login\n\tonDismiss?: () => void\n}\n\nconst HelpLink = styled(Link)`\n\tdisplay: flex;\n\talign-self: center;\n\talign-items: center;\n\tmargin-top: 24px;\n`\n\nconst ConnectModal: React.FC = ({ login, onDismiss = () => null }) => (\n\t\n\t\t{config.map((entry, index) => (\n\t\t\t\n\t\t))}\n\t\n)\n\nexport default ConnectModal\n","import React, { useState } from 'react'\nimport styled from 'styled-components'\nimport Text from '../../components/Text/Text'\nimport { CopyIcon } from '../../components/Svg'\n\ninterface Props {\n\ttoCopy: string\n}\n\nconst StyleButton = styled(Text).attrs({ role: 'button' })`\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tcolor: ${({ theme }) => theme.colors.primary};\n`\n\nconst Tooltip = styled.div<{ isTooltipDisplayed: boolean }>`\n\tdisplay: ${({ isTooltipDisplayed }) => (isTooltipDisplayed ? 'block' : 'none')};\n\tposition: absolute;\n\tbottom: -22px;\n\tright: 0;\n\tleft: 0;\n\ttext-align: center;\n\tbackground-color: ${({ theme }) => theme.colors.contrast};\n\tcolor: ${({ theme }) => theme.colors.invertedContrast};\n\tborder-radius: 16px;\n\topacity: 0.7;\n`\n\nconst CopyToClipboard: React.FC = ({ toCopy, children, ...props }) => {\n\tconst [isTooltipDisplayed, setIsTooltipDisplayed] = useState(false)\n\n\tconst copyToClipboardWithCommand = (content: string) => {\n\t\tconst el = document.createElement('textarea')\n\t\tel.value = content\n\t\tdocument.body.appendChild(el)\n\t\tel.select()\n\t\tdocument.execCommand('copy')\n\t\tdocument.body.removeChild(el)\n\t}\n\n\tfunction displayTooltip() {\n\t\tsetIsTooltipDisplayed(true)\n\t\tsetTimeout(() => {\n\t\t\tsetIsTooltipDisplayed(false)\n\t\t}, 1000)\n\t}\n\n\treturn (\n\t\t {\n\t\t\t\tif (navigator.clipboard && navigator.permissions) {\n\t\t\t\t\tnavigator.clipboard.writeText(toCopy).then(() => displayTooltip())\n\t\t\t\t} else if (document.queryCommandSupported('copy')) {\n\t\t\t\t\tcopyToClipboardWithCommand(toCopy)\n\t\t\t\t\tdisplayTooltip()\n\t\t\t\t}\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children} \n\t\t\tCopied\n\t\t\n\t)\n}\n\nexport default CopyToClipboard\n","import React from 'react'\nimport Button from '../../components/Button/Button'\nimport Text from '../../components/Text/Text'\nimport LinkExternal from '../../components/Link/LinkExternal'\nimport Flex from '../../components/Box/Flex'\nimport { Modal } from '../Modal'\nimport CopyToClipboard from './CopyToClipboard'\nimport { connectorLocalStorageKey } from './config'\n\ninterface Props {\n\taccount: string\n\tlogout: () => void\n\tonDismiss?: () => void\n}\n\nconst AccountModal: React.FC = ({ account, logout, onDismiss = () => null }) => (\n\t\n\t\t\n\t\t\t
{account}
\n\t\t\n\t\t
\n\t\t\tCopy Address\n\t\t
\n\t\t
\n\t\t\t {\n\t\t\t\t\tlogout()\n\t\t\t\t\twindow.localStorage.removeItem(connectorLocalStorageKey)\n\t\t\t\t\tonDismiss()\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tLogout\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 { useModal } from '../Modal'\nimport ConnectModal from './ConnectModal'\nimport AccountModal from './AccountModal'\nimport { Login } from './types'\n\ninterface ReturnType {\n\tonPresentConnectModal: () => void\n\tonPresentAccountModal: () => void\n}\n\nconst useWalletModal = (login: Login, logout: () => void, account?: string): ReturnType => {\n\tconst [onPresentConnectModal] = useModal()\n\tconst [onPresentAccountModal] = useModal()\n\treturn { onPresentConnectModal, onPresentAccountModal }\n}\n\nexport default useWalletModal\n","import { useEffect, useState } from 'react'\nimport { breakpointMap } from '../theme/base'\n\ntype State = {\n\t[key: string]: boolean\n}\n\ntype MediaQueries = {\n\t[key: string]: string\n}\n\n/**\n * Can't use the media queries from \"base.mediaQueries\" because of how matchMedia works\n * In order for the listener to trigger we need have have the media query with a range, e.g.\n * (min-width: 370px) and (max-width: 576px)\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList\n */\nconst mediaQueries: MediaQueries = (() => {\n\tlet prevMinWidth = 0\n\n\treturn Object.keys(breakpointMap).reduce((accum, size, index) => {\n\t\t// Largest size is just a min-width of second highest max-width\n\t\tif (index === Object.keys(breakpointMap).length - 1) {\n\t\t\treturn { ...accum, [size]: `(min-width: ${prevMinWidth}px)` }\n\t\t}\n\n\t\tconst minWidth = prevMinWidth\n\t\tconst breakpoint = breakpointMap[size]\n\n\t\t// Min width for next iteration\n\t\tprevMinWidth = breakpoint + 1\n\n\t\treturn { ...accum, [size]: `(min-width: ${minWidth}px) and (max-width: ${breakpoint}px)` }\n\t}, {})\n})()\n\nconst getKey = (size: string) => `is${size.charAt(0).toUpperCase()}${size.slice(1)}`\n\nconst useMatchBreakpoints = (): State => {\n\tconst [state, setState] = useState(() =>\n\t\tObject.keys(mediaQueries).reduce((accum, size) => {\n\t\t\tconst key = getKey(size)\n\t\t\tconst mql = window.matchMedia(mediaQueries[size])\n\t\t\treturn { ...accum, [key]: mql.matches }\n\t\t}, {}),\n\t)\n\n\tuseEffect(() => {\n\t\t// Create listeners for each media query returning a function to unsubscribe\n\t\tconst handlers = Object.keys(mediaQueries).map((size) => {\n\t\t\tconst mql = window.matchMedia(mediaQueries[size])\n\n\t\t\tconst handler = (matchMediaQuery: MediaQueryListEvent) => {\n\t\t\t\tconst key = getKey(size)\n\t\t\t\tsetState((prevState) => ({\n\t\t\t\t\t...prevState,\n\t\t\t\t\t[key]: matchMediaQuery.matches,\n\t\t\t\t}))\n\t\t\t}\n\n\t\t\t// Safari < 14 fix\n\t\t\tif (mql.addEventListener) {\n\t\t\t\tmql.addEventListener('change', handler)\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\t// Safari < 14 fix\n\t\t\t\tif (mql.removeEventListener) {\n\t\t\t\t\tmql.removeEventListener('change', handler)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\treturn () => {\n\t\t\thandlers.forEach((unsubscribe) => {\n\t\t\t\tunsubscribe()\n\t\t\t})\n\t\t}\n\t}, [setState])\n\n\treturn state\n}\n\nexport default useMatchBreakpoints\n","import { useEffect } from 'react'\n\nconst useKonamiCheatCode = (matchedCodeHandler: () => void): void => {\n\tuseEffect(() => {\n\t\tconst pattern = [\n\t\t\t'ArrowUp',\n\t\t\t'ArrowUp',\n\t\t\t'ArrowDown',\n\t\t\t'ArrowDown',\n\t\t\t'ArrowLeft',\n\t\t\t'ArrowRight',\n\t\t\t'ArrowLeft',\n\t\t\t'ArrowRight',\n\t\t]\n\n\t\tlet currentIndex = 0\n\n\t\tconst onKeyUpHandler = (event: KeyboardEvent) => {\n\t\t\tconst { key } = event\n\t\t\t// is key in correct order otherwise reset\n\t\t\tif (key !== pattern[currentIndex]) {\n\t\t\t\tcurrentIndex = 0\n\t\t\t\treturn\n\t\t\t}\n\t\t\tcurrentIndex += 1\n\t\t\tif (pattern.length === currentIndex) {\n\t\t\t\tcurrentIndex = 0\n\t\t\t\tmatchedCodeHandler()\n\t\t\t}\n\t\t}\n\n\t\tdocument.addEventListener('keyup', onKeyUpHandler)\n\t\treturn () => document.removeEventListener('keyup', onKeyUpHandler)\n\t}, [matchedCodeHandler])\n}\n\nexport default useKonamiCheatCode\n","import styled from 'styled-components'\n\nexport const Arrow = styled.div`\n\t&,\n\t&::before {\n\t\tposition: absolute;\n\t\twidth: 10px;\n\t\theight: 10px;\n\t\tborder-radius: 2px;\n\t\tz-index: -1;\n\t}\n\n\t&::before {\n\t\tcontent: '';\n\t\ttransform: rotate(45deg);\n\t\tbackground: ${({ theme }) => theme.tooltip.background};\n\t}\n`\n\nexport const StyledTooltip = styled.div`\n\tpadding: 16px;\n\tfont-size: 16px;\n\tline-height: 130%;\n\tborder-radius: 16px;\n\tmax-width: 320px;\n\tz-index: 10;\n\tbackground: ${({ theme }) => theme.tooltip.background};\n\tcolor: ${({ theme }) => theme.tooltip.text};\n\tbox-shadow: ${({ theme }) => theme.tooltip.boxShadow};\n\n\t&[data-popper-placement^='top'] > ${Arrow} {\n\t\tbottom: -4px;\n\t}\n\n\t&[data-popper-placement^='bottom'] > ${Arrow} {\n\t\ttop: -4px;\n\t}\n\n\t&[data-popper-placement^='left'] > ${Arrow} {\n\t\tright: -4px;\n\t}\n\n\t&[data-popper-placement^='right'] > ${Arrow} {\n\t\tleft: -4px;\n\t}\n`\n","import React, { useState, useEffect, useCallback, useRef } from 'react'\nimport { usePopper } from 'react-popper'\nimport { ThemeProvider, DefaultTheme } from 'styled-components'\nimport { light, dark } from '../../theme'\nimport { StyledTooltip, Arrow } from './StyledTooltip'\nimport { TooltipOptions, TooltipRefs } from './types'\n\nfunction isTouchDevice() {\n\treturn 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0\n}\n\nconst invertTheme = (currentTheme: DefaultTheme) => {\n\tif (currentTheme.isDark) {\n\t\treturn light\n\t}\n\treturn dark\n}\n\nconst useTooltip = (content: React.ReactNode, options: TooltipOptions): TooltipRefs => {\n\tconst {\n\t\tplacement = 'auto',\n\t\ttrigger = 'hover',\n\t\tarrowPadding = 16,\n\t\ttooltipPadding = { left: 16, right: 16 },\n\t\ttooltipOffset = [0, 10],\n\t} = options\n\tconst [targetElement, setTargetElement] = useState(null)\n\tconst [tooltipElement, setTooltipElement] = useState(null)\n\tconst [arrowElement, setArrowElement] = useState(null)\n\n\tconst [visible, setVisible] = useState(false)\n\tconst isHoveringOverTooltip = useRef(false)\n\tconst hideTimeout = useRef()\n\n\tconst hideTooltip = useCallback(\n\t\t(e: Event) => {\n\t\t\tconst hide = () => {\n\t\t\t\te.stopPropagation()\n\t\t\t\te.preventDefault()\n\t\t\t\tsetVisible(false)\n\t\t\t}\n\n\t\t\tif (trigger === 'hover') {\n\t\t\t\tif (hideTimeout.current) {\n\t\t\t\t\twindow.clearTimeout(hideTimeout.current)\n\t\t\t\t}\n\t\t\t\tif (e.target === tooltipElement) {\n\t\t\t\t\tisHoveringOverTooltip.current = false\n\t\t\t\t}\n\t\t\t\tif (!isHoveringOverTooltip.current) {\n\t\t\t\t\thideTimeout.current = window.setTimeout(() => {\n\t\t\t\t\t\tif (!isHoveringOverTooltip.current) {\n\t\t\t\t\t\t\thide()\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 100)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thide()\n\t\t\t}\n\t\t},\n\t\t[tooltipElement, trigger],\n\t)\n\n\tconst showTooltip = useCallback(\n\t\t(e: Event) => {\n\t\t\te.stopPropagation()\n\t\t\te.preventDefault()\n\t\t\tsetVisible(true)\n\t\t\tif (trigger === 'hover') {\n\t\t\t\tif (e.target === targetElement) {\n\t\t\t\t\t// If we were about to close the tooltip and got back to it\n\t\t\t\t\t// then prevent closing it.\n\t\t\t\t\tclearTimeout(hideTimeout.current)\n\t\t\t\t}\n\t\t\t\tif (e.target === tooltipElement) {\n\t\t\t\t\tisHoveringOverTooltip.current = true\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[tooltipElement, targetElement, trigger],\n\t)\n\n\tconst toggleTooltip = useCallback(\n\t\t(e: Event) => {\n\t\t\te.stopPropagation()\n\t\t\tsetVisible(!visible)\n\t\t},\n\t\t[visible],\n\t)\n\n\t// Trigger = hover\n\tuseEffect(() => {\n\t\tif (targetElement === null || trigger !== 'hover') return undefined\n\n\t\tif (isTouchDevice()) {\n\t\t\ttargetElement.addEventListener('touchstart', showTooltip)\n\t\t\ttargetElement.addEventListener('touchend', hideTooltip)\n\t\t} else {\n\t\t\ttargetElement.addEventListener('mouseenter', showTooltip)\n\t\t\ttargetElement.addEventListener('mouseleave', hideTooltip)\n\t\t}\n\t\treturn () => {\n\t\t\ttargetElement.removeEventListener('touchstart', showTooltip)\n\t\t\ttargetElement.removeEventListener('touchend', hideTooltip)\n\t\t\ttargetElement.removeEventListener('mouseenter', showTooltip)\n\t\t\ttargetElement.removeEventListener('mouseleave', showTooltip)\n\t\t}\n\t}, [trigger, targetElement, hideTooltip, showTooltip])\n\n\t// Keep tooltip open when cursor moves from the targetElement to the tooltip\n\tuseEffect(() => {\n\t\tif (tooltipElement === null || trigger !== 'hover') return undefined\n\n\t\ttooltipElement.addEventListener('mouseenter', showTooltip)\n\t\ttooltipElement.addEventListener('mouseleave', hideTooltip)\n\t\treturn () => {\n\t\t\ttooltipElement.removeEventListener('mouseenter', showTooltip)\n\t\t\ttooltipElement.removeEventListener('mouseleave', hideTooltip)\n\t\t}\n\t}, [trigger, tooltipElement, hideTooltip, showTooltip])\n\n\t// Trigger = click\n\tuseEffect(() => {\n\t\tif (targetElement === null || trigger !== 'click') return undefined\n\n\t\ttargetElement.addEventListener('click', toggleTooltip)\n\n\t\treturn () => targetElement.removeEventListener('click', toggleTooltip)\n\t}, [trigger, targetElement, visible, toggleTooltip])\n\n\t// Handle click outside\n\tuseEffect(() => {\n\t\tif (trigger !== 'click') return undefined\n\n\t\tconst handleClickOutside = ({ target }: Event) => {\n\t\t\tif (target instanceof Node) {\n\t\t\t\tif (\n\t\t\t\t\ttooltipElement != null &&\n\t\t\t\t\ttargetElement != null &&\n\t\t\t\t\t!tooltipElement.contains(target) &&\n\t\t\t\t\t!targetElement.contains(target)\n\t\t\t\t) {\n\t\t\t\t\tsetVisible(false)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdocument.addEventListener('mousedown', handleClickOutside)\n\n\t\treturn () => document.removeEventListener('mousedown', handleClickOutside)\n\t}, [trigger, targetElement, tooltipElement])\n\n\t// Trigger = focus\n\tuseEffect(() => {\n\t\tif (targetElement === null || trigger !== 'focus') return undefined\n\n\t\ttargetElement.addEventListener('focus', showTooltip)\n\t\ttargetElement.addEventListener('blur', hideTooltip)\n\t\treturn () => {\n\t\t\ttargetElement.removeEventListener('focus', showTooltip)\n\t\t\ttargetElement.removeEventListener('blur', hideTooltip)\n\t\t}\n\t}, [trigger, targetElement, showTooltip, hideTooltip])\n\n\t// On small screens Popper.js tries to squeeze the tooltip to available space without overflowing beyound the edge\n\t// of the screen. While it works fine when the element is in the middle of the screen it does not handle well the\n\t// cases when the target element is very close to the edge of the screen - no margin is applied between the tooltip\n\t// and the screen edge.\n\t// preventOverflow mitigates this behaviour, default 16px paddings on left and right solve the problem for all screen sizes\n\t// that we support.\n\t// Note that in the farm page where there are tooltips very close to the edge of the screen this padding works perfectly\n\t// even on the iPhone 5 screen (320px wide), BUT in the storybook with the contrived example ScreenEdges example\n\t// iPhone 5 behaves differently overflowing beyound the edge. All paddings are identical so I have no idea why it is,\n\t// and fixing that seems like a very bad use of time.\n\tconst { styles, attributes } = usePopper(targetElement, tooltipElement, {\n\t\tplacement,\n\t\tmodifiers: [\n\t\t\t{\n\t\t\t\tname: 'arrow',\n\t\t\t\toptions: { element: arrowElement, padding: arrowPadding },\n\t\t\t},\n\t\t\t{ name: 'offset', options: { offset: tooltipOffset } },\n\t\t\t{ name: 'preventOverflow', options: { padding: tooltipPadding } },\n\t\t],\n\t})\n\n\tconst tooltip = (\n\t\t\n\t\t\t{content}\n\t\t\t\n\t\t\n\t)\n\treturn {\n\t\ttargetRef: setTargetElement,\n\t\ttooltip,\n\t\ttooltipVisible: visible,\n\t}\n}\n\nexport default useTooltip\n","import React from 'react'\nimport Link from './Link'\nimport { LinkProps } from './types'\nimport OpenNewIcon from '../Svg/Icons/OpenNew'\n\nconst LinkExternal: React.FC = ({ children, ...props }) => (\n\t\n\t\t{children}\n\t\t\n\t\n)\n\nexport default LinkExternal\n","import { SpaceProps } from 'styled-system'\n\nexport const scales = {\n\tSM: 'sm',\n\tMD: 'md',\n\tLG: 'lg',\n} as const\n\nexport type Scales = typeof scales[keyof typeof scales]\n\nexport interface InputProps extends SpaceProps {\n\tscale?: Scales\n\tisSuccess?: boolean\n\tisWarning?: boolean\n}\n","import styled, { DefaultTheme } from 'styled-components'\nimport { InputProps, scales } from './types'\n\ninterface StyledInputProps extends InputProps {\n\ttheme: DefaultTheme\n}\n\n/**\n * Priority: Warning --> Success\n */\nconst getBoxShadow = ({ isSuccess = false, isWarning = false, theme }: StyledInputProps) => {\n\tif (isWarning) {\n\t\treturn theme.shadows.warning\n\t}\n\n\tif (isSuccess) {\n\t\treturn theme.shadows.success\n\t}\n\n\treturn theme.shadows.inset\n}\n\nconst getHeight = ({ scale = scales.MD }: StyledInputProps) => {\n\tswitch (scale) {\n\t\tcase scales.SM:\n\t\t\treturn '32px'\n\t\tcase scales.LG:\n\t\t\treturn '48px'\n\t\tcase scales.MD:\n\t\tdefault:\n\t\t\treturn '40px'\n\t}\n}\n\nconst Input = styled.input`\n\tbackground-color: ${({ theme }) => theme.colors.input};\n\tborder: 0;\n\tborder-radius: 16px;\n\tbox-shadow: ${getBoxShadow};\n\tcolor: ${({ theme }) => theme.colors.text};\n\tdisplay: block;\n\tfont-size: 16px;\n\theight: ${getHeight};\n\toutline: 0;\n\tpadding: 0 16px;\n\twidth: 100%;\n\n\t&::placeholder {\n\t\tcolor: ${({ theme }) => theme.colors.textSubtle};\n\t}\n\n\t&:disabled {\n\t\tbackground-color: ${({ theme }) => theme.colors.backgroundDisabled};\n\t\tbox-shadow: none;\n\t\tcolor: ${({ theme }) => theme.colors.textDisabled};\n\t\tcursor: not-allowed;\n\t}\n\n\t&:focus:not(:disabled) {\n\t\tbox-shadow: ${({ theme }) => theme.shadows.focus};\n\t}\n`\n\nInput.defaultProps = {\n\tscale: scales.MD,\n\tisSuccess: false,\n\tisWarning: false,\n}\n\nexport default Input\n","import get from 'lodash/get'\nimport { DefaultTheme } from 'styled-components'\n\nconst getThemeValue = (path: string, fallback?: string | number) => (theme: DefaultTheme): string =>\n\tget(theme, path, fallback)\n\nexport default getThemeValue\n","const getExternalLinkProps = (): { target: string; rel: string } => ({\n\ttarget: '_blank',\n\trel: 'noreferrer noopener',\n})\n\nexport default getExternalLinkProps\n","import styled from 'styled-components'\nimport { OverlayProps } from './types'\n\nconst Overlay = styled.div.attrs({ role: 'presentation' })`\n\tposition: fixed;\n\ttop: 0px;\n\tleft: 0px;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: #2b1f07;\n\ttransition: opacity 0.4s;\n\topacity: ${({ show }) => (show ? 0.6 : 0)};\n\tz-index: ${({ zIndex }) => zIndex};\n\tpointer-events: ${({ show }) => (show ? 'initial' : 'none')};\n`\n\nOverlay.defaultProps = {\n\tshow: false,\n\tzIndex: 10,\n}\n\nexport default Overlay\n","import { InjectedConnector } from '@web3-react/injected-connector'\nimport { WalletConnectConnector } from '@web3-react/walletconnect-connector'\nimport { ConnectorNames } from '../uikit-foodcourt'\nimport Web3 from 'web3'\nimport getNodeUrl from './getRpcUrl'\n\nconst POLLING_INTERVAL = 12000\nconst rpcUrl = getNodeUrl()\nconst chainId = parseInt(process.env.REACT_APP_CHAIN_ID, 10)\n\nconst injected = new InjectedConnector({ supportedChainIds: [chainId] })\n\nconst walletconnect = new WalletConnectConnector({\n\trpc: { [chainId]: rpcUrl },\n\tbridge: 'https://pancakeswap.bridge.walletconnect.org/',\n\tqrcode: true,\n\tpollingInterval: POLLING_INTERVAL,\n})\n\nexport const connectorsByName: { [connectorName in ConnectorNames]: any } = {\n\t[ConnectorNames.Injected]: injected,\n\t[ConnectorNames.WalletConnect]: walletconnect,\n}\n\nexport const getLibrary = (provider): Web3 => {\n\treturn provider\n}\n","import React, { useState, useEffect } from 'react'\n\nconst FAST_INTERVAL = 10000\nconst SLOW_INTERVAL = 60000\n\nconst RefreshContext = React.createContext({ slow: 0, fast: 0 })\n\n// This context maintain 2 counters that can be used as a dependencies on other hooks to force a periodic refresh\nconst RefreshContextProvider = ({ children }) => {\n\tconst [slow, setSlow] = useState(0)\n\tconst [fast, setFast] = useState(0)\n\n\tuseEffect(() => {\n\t\tconst interval = setInterval(async () => {\n\t\t\tsetFast((prev) => prev + 1)\n\t\t}, FAST_INTERVAL)\n\t\treturn () => clearInterval(interval)\n\t}, [])\n\n\tuseEffect(() => {\n\t\tconst interval = setInterval(async () => {\n\t\t\tsetSlow((prev) => prev + 1)\n\t\t}, SLOW_INTERVAL)\n\t\treturn () => clearInterval(interval)\n\t}, [])\n\n\treturn {children}\n}\n\nexport { RefreshContext, RefreshContextProvider }\n","import styled from 'styled-components'\n\nconst Container = styled.div`\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tmax-width: 1200px;\n\tpadding-left: 16px;\n\tpadding-right: 16px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tpadding-left: 24px;\n\t\tpadding-right: 24px;\n\t}\n`\n\nexport default Container\n","import { useState, useEffect } from 'react'\n\n/**\n * Use this hook when you want to animate something when it appears on the screen (e.g. when some prop set to true)\n * but when its not on the screen you want it to be fully unmounted and not just hidden or height 0.\n * This is especially useful when you have a table of 100s rows and each row has expandable element that appears on click.\n * If you just set the expanding animation while keeping inactive elements mounted all those 100 elements will load the DOM,\n * and if they all receive updates via props you're looking at 100 DOM updates for hidden elements.\n * This hook \"shows\" element immediately when the isMounted is true\n * but keeps element mounted for delayTime to let unmounting animation happen, after which you unmount element completely.\n * delayTime should be the same as animation time in most cases.\n */\nconst useDelayedUnmount = (isMounted: boolean, delayTime: number) => {\n\tconst [shouldRender, setShouldRender] = useState(false)\n\n\tuseEffect(() => {\n\t\tlet timeoutId: ReturnType\n\t\tif (isMounted && !shouldRender) {\n\t\t\tsetShouldRender(true)\n\t\t} else if (!isMounted && shouldRender) {\n\t\t\ttimeoutId = setTimeout(() => setShouldRender(false), delayTime)\n\t\t}\n\t\treturn () => clearTimeout(timeoutId)\n\t}, [isMounted, delayTime, shouldRender])\n\treturn shouldRender\n}\n\nexport default useDelayedUnmount\n","export default {\n\tcafeteriaV3: {\n\t\t55555: '0x7aaA2A556578541067BFE93EE05B962Ee57E21CB',\n\t},\n\tmultiCall: {\n\t\t55555: '0x6e2A64fE96732C8D4cA9DfF8DAf3178C25D2b434',\n\t},\n}\n","import addresses from 'config/constants/contracts'\nimport tokens from 'config/constants/tokens'\nimport { Address } from 'config/constants/types'\n\nexport const getAddress = (address: Address): string => {\n\tconst mainNetChainId = 55555\n\tconst chainId = process.env.REACT_APP_CHAIN_ID\n\treturn address[chainId] ? address[chainId] : address[mainNetChainId]\n}\n\nexport const getCouponAddress = () => {\n\treturn getAddress(tokens.coupon.address)\n}\nexport const getCakeAddress = () => {\n\treturn getAddress(tokens.coupon.address)\n}\nexport const getCafeteriaV3Address = () => {\n\treturn getAddress(addresses.cafeteriaV3)\n}\nexport const getMulticallAddress = () => {\n\treturn getAddress(addresses.multiCall)\n}\nexport const getWReiAddress = () => {\n\treturn getAddress(tokens.wrei.address)\n}\n","import BigNumber from 'bignumber.js'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { Button, Modal, LinkExternal, Text, TextProps } from '../../../uikit-foodcourt'\nimport ModalActions from 'components/ModalActions'\nimport ModalInput from 'components/ModalInput'\nimport { useTranslation } from 'contexts/Localization'\nimport { getFullDisplayBalance } from 'utils/formatBalance'\nimport { BIG_TEN } from 'utils/bigNumber'\nimport { DEFAULT_TOKEN_DECIMAL } from 'config'\n\ninterface DepositModalProps {\n\tmax: BigNumber\n\tonConfirm: (amount: string) => void\n\tonDismiss?: () => void\n\ttokenName?: string\n\taddLiquidityUrl?: string\n\tisWithdrawFee100?: boolean\n\tdecimals?: number\n}\n\nconst DepositModal: React.FC = ({\n\tmax,\n\tonConfirm,\n\tonDismiss,\n\ttokenName = '',\n\taddLiquidityUrl,\n\tisWithdrawFee100,\n\tdecimals,\n}) => {\n\tconst [val, setVal] = useState('')\n\tconst [pendingTx, setPendingTx] = useState(false)\n\tconst { t } = useTranslation()\n\tconst fullBalance = useMemo(() => {\n\t\treturn getFullDisplayBalance(max, decimals)\n\t}, [max])\n\n\tconst valNumber = new BigNumber(val)\n\tconst fullBalanceNumber = new BigNumber(fullBalance)\n\n\tconst handleChange = useCallback(\n\t\t(e: React.FormEvent) => {\n\t\t\tif (e.currentTarget.validity.valid) {\n\t\t\t\tsetVal(e.currentTarget.value.replace(/,/g, '.'))\n\t\t\t}\n\t\t},\n\t\t[setVal],\n\t)\n\n\tconst handleSelectMax = useCallback(() => {\n\t\tsetVal(fullBalance)\n\t}, [fullBalance, setVal])\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tisWithdrawFee100 &&\n\t\t\t\t\t\t\t!window.confirm(\n\t\t\t\t\t\t\t\t`WARNING: This is 100% withdrawal fee pool, You will lose all your ${tokenName} once you harvest your COUPON reward.`,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn\n\n\t\t\t\t\t\tconst adjustedVal = new BigNumber(val).times(BIG_TEN.pow(decimals)).div(DEFAULT_TOKEN_DECIMAL);\n\n\t\t\t\t\t\tsetPendingTx(true)\n\t\t\t\t\t\tawait onConfirm(adjustedVal.toString())\n\t\t\t\t\t\tsetPendingTx(false)\n\t\t\t\t\t\tonDismiss()\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{pendingTx ? t('Pending Confirmation') : t('Confirm')}\n\t\t\t\t\n\t\t\t\n\n\t\t\t{isWithdrawFee100 ? (\n\t\t\t\t\n\t\t\t\t\tWARNING: This is 100% withdrawal fee pool, You will lose all your {tokenName} once you harvest your COUPON reward.\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t{t('Get')} {tokenName}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default DepositModal\n","import BigNumber from 'bignumber.js'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { Button, Modal, Text, TextProps } from '../../../uikit-foodcourt'\nimport ModalActions from 'components/ModalActions'\nimport ModalInput from 'components/ModalInput'\nimport { useTranslation } from 'contexts/Localization'\nimport { getFullDisplayBalance } from 'utils/formatBalance'\nimport { BIG_TEN } from 'utils/bigNumber'\nimport { DEFAULT_TOKEN_DECIMAL } from 'config'\n\ninterface WithdrawModalProps {\n\tmax: BigNumber\n\tonConfirm: (amount: string) => void\n\tonDismiss?: () => void\n\ttokenName?: string\n\tisWithdrawFee100?: boolean\n\tdecimals?: number\n}\n\nconst WithdrawModal: React.FC = ({\n\tonConfirm,\n\tonDismiss,\n\tmax,\n\ttokenName = '',\n\tisWithdrawFee100,\n\tdecimals,\n}) => {\n\tconst [val, setVal] = useState('')\n\tconst [pendingTx, setPendingTx] = useState(false)\n\tconst { t } = useTranslation()\n\tconst fullBalance = useMemo(() => {\n\t\treturn getFullDisplayBalance(max, decimals)\n\t}, [max])\n\n\tconst valNumber = new BigNumber(val)\n\tconst fullBalanceNumber = new BigNumber(fullBalance)\n\n\tconst handleChange = useCallback(\n\t\t(e: React.FormEvent) => {\n\t\t\tif (e.currentTarget.validity.valid) {\n\t\t\t\tsetVal(e.currentTarget.value.replace(/,/g, '.'))\n\t\t\t}\n\t\t},\n\t\t[setVal],\n\t)\n\n\tconst handleSelectMax = useCallback(() => {\n\t\tsetVal(fullBalance)\n\t}, [fullBalance, setVal])\n\n\tuseEffect(() => {\n\t\tif (isWithdrawFee100) {\n\t\t\tsetVal(fullBalance)\n\t\t}\n\t}, [isWithdrawFee100, fullBalance])\n\n\treturn (\n\t\t\n\t\t\t{!isWithdrawFee100 && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{isWithdrawFee100 && (\n\t\t\t\t\n\t\t\t\t\tWARNING: This is 100% withdrawal fee pool, You will lose all your COUPON reward if you\n\t\t\t\t\tunstake your {tokenName}.\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tisWithdrawFee100 &&\n\t\t\t\t\t\t\t!window.confirm(\n\t\t\t\t\t\t\t\t`WARNING: This is 100% withdrawal fee pool, You will lose all your COUPON reward if you unstake your ${tokenName}`,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn\n\n\t\t\t\t\t\tconst adjustedVal = new BigNumber(val).times(BIG_TEN.pow(decimals)).div(DEFAULT_TOKEN_DECIMAL);\n\n\t\t\t\t\t\tsetPendingTx(true)\n\t\t\t\t\t\tawait onConfirm(adjustedVal.toString())\n\t\t\t\t\t\tsetPendingTx(false)\n\t\t\t\t\t\tonDismiss()\n\t\t\t\t\t}}\n\t\t\t\t\twidth=\"120%\"\n\t\t\t\t\tstyle={{ marginLeft: '-20%' }}\n\t\t\t\t>\n\t\t\t\t\t{pendingTx ? t('Pending Confirmation') : isWithdrawFee100 ? 'Unstake All' : t('Confirm')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nexport default WithdrawModal\n","import React from 'react'\nimport BigNumber from 'bignumber.js'\nimport { IconButton, useModal, CalculateIcon } from '../../../../uikit-foodcourt'\nimport ApyCalculatorModal from 'components/ApyCalculatorModal'\nimport { useTranslation } from 'contexts/Localization'\n\nexport interface ApyButtonProps {\n\tlpLabel?: string\n\tcouponPrice?: BigNumber\n\tapr?: number\n\taddLiquidityUrl?: string\n}\n\nconst ApyButton: React.FC = ({ lpLabel, couponPrice, apr, addLiquidityUrl }) => {\n\tconst { t } = useTranslation()\n\tconst [onPresentApyModal] = useModal(\n\t\t,\n\t)\n\n\tconst handleClickButton = (event): void => {\n\t\tevent.stopPropagation()\n\t\tonPresentApyModal()\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nexport default ApyButton\n","import React from 'react'\nimport styled from 'styled-components'\nimport { ChevronDownIcon, ChevronUpIcon, Text } from '../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\n\nexport interface ExpandableSectionButtonProps {\n\tonClick?: () => void\n\texpanded?: boolean\n}\n\nconst Wrapper = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\n\tsvg {\n\t\tfill: ${({ theme }) => theme.colors.primary};\n\t}\n`\n\nconst ExpandableSectionButton: React.FC = ({ onClick, expanded }) => {\n\tconst { t } = useTranslation()\n\n\treturn (\n\t\t onClick()}>\n\t\t\t\n\t\t\t\t{expanded ? t('Hide') : t('Details')}\n\t\t\t\n\t\t\t{expanded ? : }\n\t\t\n\t)\n}\n\nExpandableSectionButton.defaultProps = {\n\texpanded: false,\n}\n\nexport default ExpandableSectionButton\n","import React from 'react'\nimport { useTranslation } from 'contexts/Localization'\nimport styled from 'styled-components'\nimport { Text, Flex, LinkExternal } from '../../../../uikit-foodcourt'\n\nexport interface ExpandableSectionProps {\n\tsingle?: boolean\n\tbscScanAddress?: string\n\tinfoAddress?: string\n\tremoved?: boolean\n\ttotalValueFormatted?: string\n\tlpLabel?: string\n\taddLiquidityUrl?: string\n\tmyValueFormatted?: string\n}\n\nconst Wrapper = styled.div`\n\tmargin-top: 24px;\n`\n\nconst StyledLinkExternal = styled(LinkExternal)`\n\tfont-weight: 400;\n`\n\nconst DetailsSection: React.FC = ({\n\tsingle,\n\tbscScanAddress,\n\tinfoAddress,\n\tremoved,\n\ttotalValueFormatted,\n\tlpLabel,\n\taddLiquidityUrl,\n\tmyValueFormatted,\n}) => {\n\tconst { t } = useTranslation()\n\n\treturn (\n\t\t\n\t\t\t{!single && (\n\t\t\t\t\n\t\t\t\t\tValue:\n\t\t\t\t\t{myValueFormatted}\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t{t('Total Liquidity')}:\n\t\t\t\t{totalValueFormatted}\n\t\t\t\n\t\t\t{!removed && (\n\t\t\t\t\n\t\t\t\t\t{t(`Get ${lpLabel}`, { name: lpLabel })}\n\t\t\t\t\n\t\t\t)}\n\t\t\t{t('View Contract')}\n\t\t\n\t)\n}\n\nexport default DetailsSection\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Tag, Flex, Heading, Image } from '../../../../uikit-foodcourt'\nimport { CommunityTag, CoreTag } from 'components/Tags'\n\nexport interface ExpandableSectionProps {\n\tlpLabel?: string\n\tmultiplier?: string\n\tisCommunityFarm?: boolean\n\tfarmImage?: string\n\ttokenSymbol?: string\n\tsingle?: boolean\n\twithdraw100fee?: boolean\n}\n\nconst Wrapper = styled(Flex)`\n\tsvg {\n\t\tmargin-right: 4px;\n\t}\n`\n\nconst MultiplierTag = styled(Tag)`\n\tmargin-left: 4px;\n`\n\nconst CardHeading: React.FC = ({\n\tlpLabel,\n\tmultiplier,\n\tisCommunityFarm,\n\tfarmImage,\n\ttokenSymbol,\n\tsingle=false,\n\twithdraw100fee=false,\n}) => {\n\treturn (\n\t\t\n\t\t\t{tokenSymbol}\n\t\t\t\n\t\t\t\t{lpLabel.split(' ')[0]}\n\t\t\t\t\n\t\t\t\t\t{isCommunityFarm ? : }\n\t\t\t\t\t{multiplier}\n\t\t\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nexport default CardHeading\n","import React, { useCallback } from 'react'\nimport styled from 'styled-components'\nimport BigNumber from 'bignumber.js'\nimport {\n\tButton,\n\tFlex,\n\tHeading,\n\tIconButton,\n\tAddIcon,\n\tMinusIcon,\n\tuseModal,\n} from '../../../../uikit-foodcourt'\nimport { useLocation } from 'react-router-dom'\nimport { useTranslation } from 'contexts/Localization'\nimport { useStake } from 'hooks/useStake'\nimport { useUnstakeV2 } from 'hooks/useUnstake'\nimport { getBalanceNumber, getFullDisplayBalance } from 'utils/formatBalance'\nimport DepositModal from '../DepositModal'\nimport WithdrawModal from '../WithdrawModal'\n\ninterface FarmCardActionsProps {\n\tstakedBalance?: BigNumber\n\ttokenBalance?: BigNumber\n\ttokenName?: string\n\tpid?: number\n\taddLiquidityUrl?: string\n\tdecimals?: number\n\tisWithdrawFee100?: boolean\n}\n\nconst IconButtonWrapper = styled.div`\n\tdisplay: flex;\n\tsvg {\n\t\twidth: 20px;\n\t}\n`\n\nconst StakeAction: React.FC = ({\n\tstakedBalance,\n\ttokenBalance,\n\ttokenName,\n\tpid,\n\taddLiquidityUrl,\n\tdecimals = 18,\n\tisWithdrawFee100 = false,\n}) => {\n\tconst { t } = useTranslation()\n\tconst { onStake } = useStake(pid)\n\tconst { onUnstake } = useUnstakeV2(pid)\n\tconst location = useLocation()\n\n\tconst displayBalance = useCallback(() => {\n\t\tconst stakedBalanceNumber = getBalanceNumber(stakedBalance, decimals)\n\t\tif (stakedBalanceNumber > 0 && stakedBalanceNumber < 0.0001) {\n\t\t\treturn getFullDisplayBalance(stakedBalance).toLocaleString()\n\t\t}\n\t\treturn stakedBalanceNumber.toLocaleString()\n\t}, [stakedBalance])\n\n\tconst [onPresentDeposit] = useModal(\n\t\t,\n\t)\n\tconst [onPresentWithdraw] = useModal(\n\t\t,\n\t)\n\n\tconst renderStakingButtons = () => {\n\t\treturn stakedBalance.eq(0) ? (\n\t\t\t location.pathname.includes(item))}\n\t\t\t>\n\t\t\t\t{t('Stake LP')}\n\t\t\t\n\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\n\t\t\t\n\t\t)\n\t}\n\n\treturn (\n\t\t\n\t\t\t{displayBalance()}\n\t\t\t{renderStakingButtons()}\n\t\t\n\t)\n}\n\nexport default StakeAction\n","import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport { Button, Flex, Heading } from '../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport { useHarvest } from 'hooks/useHarvest'\nimport { getBalanceNumber } from 'utils/formatBalance'\nimport { useWeb3React } from '@web3-react/core'\nimport { usePriceCouponkBUSD } from 'state/hooks'\nimport CardBusdValue from '../../../Home/components/CardBusdValue'\n\ninterface FarmCardActionsProps {\n\tearnings?: BigNumber\n\tpid?: number\n\tisWithdrawFee100?: boolean\n\ttoken?: any\n}\n\nconst HarvestAction: React.FC = ({ earnings, pid, isWithdrawFee100, token }) => {\n\tconst { account } = useWeb3React()\n\tconst { t } = useTranslation()\n\tconst [pendingTx, setPendingTx] = useState(false)\n\tconst { onReward } = useHarvest(pid)\n\tconst couponPrice = usePriceCouponkBUSD()\n\n\tconst rawEarningsBalance = account ? getBalanceNumber(earnings) : 0\n\tconst displayBalance = rawEarningsBalance.toLocaleString()\n\tconst earningsBusd = rawEarningsBalance\n\t\t? new BigNumber(rawEarningsBalance).multipliedBy(couponPrice).toNumber()\n\t\t: 0\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{displayBalance}\n\t\t\t\t{earningsBusd > 0 && }\n\t\t\t\n\t\t\t {\n\t\t\t\t\tif (isWithdrawFee100 && !window.confirm(`IMPORTANT: This is a 100% withdrawal fee pool, you will lose all your staked ${token.symbol} in exchange for ${displayBalance} COUPON`)) return;\n\n\t\t\t\t\tsetPendingTx(true)\n\t\t\t\t\tawait onReward()\n\t\t\t\t\tsetPendingTx(false)\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{ isWithdrawFee100 ? 'Harvest and Destroy!' : t('Harvest') }\n\t\t\t\n\t\t\n\t)\n}\n\nexport default HarvestAction\n","import React, { useState, useCallback } from 'react'\nimport styled from 'styled-components'\nimport { provider as ProviderType } from 'web3-core'\nimport BigNumber from 'bignumber.js'\nimport { useLocation } from 'react-router-dom'\nimport { getAddress } from 'utils/addressHelpers'\nimport { getBep20Contract } from 'utils/contractHelpers'\nimport { Button, Flex, Text } from '../../../../uikit-foodcourt'\nimport { Farm } from 'state/types'\nimport { useTranslation } from 'contexts/Localization'\nimport useWeb3 from 'hooks/useWeb3'\nimport { useApprove } from 'hooks/useApprove'\nimport UnlockButton from 'components/UnlockButton'\nimport StakeAction from './StakeAction'\nimport HarvestAction from './HarvestAction'\n\nconst Action = styled.div`\n\tpadding-top: 16px;\n`\nexport interface FarmWithStakedValue extends Farm {\n\tapr?: number\n}\n\ninterface FarmCardActionsProps {\n\tfarm: FarmWithStakedValue\n\tprovider?: ProviderType\n\taccount?: string\n\taddLiquidityUrl?: string\n}\n\nconst CardActions: React.FC = ({ farm, account, addLiquidityUrl }) => {\n\tconst { t } = useTranslation()\n\tconst [requestedApproval, setRequestedApproval] = useState(false)\n\tconst { pid, lpAddresses } = farm\n\tconst {\n\t\tallowance: allowanceAsString = 0,\n\t\ttokenBalance: tokenBalanceAsString = 0,\n\t\tstakedBalance: stakedBalanceAsString = 0,\n\t\tearnings: earningsAsString = 0,\n\t} = farm.userData || {}\n\tconst allowance = new BigNumber(allowanceAsString)\n\tconst tokenBalance = new BigNumber(tokenBalanceAsString)\n\tconst stakedBalance = new BigNumber(stakedBalanceAsString)\n\tconst earnings = new BigNumber(earningsAsString)\n\tconst lpAddress = getAddress(lpAddresses)\n\tconst lpName = farm.lpSymbol.toUpperCase()\n\tconst isApproved = account && allowance && allowance.isGreaterThan(0)\n\tconst web3 = useWeb3()\n\tconst location = useLocation()\n\n\tconst lpContract = getBep20Contract(lpAddress, web3)\n\n\tconst { onApprove } = useApprove(lpContract)\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\t// console.log(farm)\n\n\tconst renderApprovalOrStakeButton = () => {\n\t\tif (process.env.REACT_APP_ENABLE_FARM === 'false') {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t)\n\t\t}\n\n\t\treturn isApproved ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t\t\t{t('Approve Contract')}\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\t\t{/* TODO: Is there a way to get a dynamic value here from useFarmFromSymbol? */}\n\t\t\t\t\tCOUPON\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('Earned')}\n\t\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{lpName}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('Staked')}\n\t\t\t\t\n\t\t\t\n\t\t\t{!account ? : renderApprovalOrStakeButton()}\n\t\t\n\t)\n}\n\nexport default CardActions\n","import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport styled, { keyframes } from 'styled-components'\nimport { Flex, Text, Skeleton } from '../../../../uikit-foodcourt'\nimport { Farm } from 'state/types'\nimport { provider as ProviderType } from 'web3-core'\nimport { useTranslation } from 'contexts/Localization'\nimport ExpandableSectionButton from 'components/ExpandableSectionButton'\nimport { BASE_ADD_LIQUIDITY_URL } from 'config'\nimport getLiquidityUrlPathParts from 'utils/getLiquidityUrlPathParts'\nimport DetailsSection from './DetailsSection'\nimport CardHeading from './CardHeading'\nimport CardActionsContainer from './CardActionsContainer'\nimport ApyButton from './ApyButton'\nimport { useFarmUser } from 'state/hooks'\nimport { getFullDisplayBalance } from 'utils/formatBalance'\n\nexport interface FarmWithStakedValue extends Farm {\n\tapr?: number\n\tliquidity?: BigNumber\n\tlpValueInUsd?: BigNumber\n}\n\nconst RainbowLight = keyframes`\n\t0% {\n\t\tbackground-position: 0% 50%;\n\t}\n\t50% {\n\t\tbackground-position: 100% 50%;\n\t}\n\t100% {\n\t\tbackground-position: 0% 50%;\n\t}\n`\n\nconst StyledCardAccent = styled.div`\n\tbackground: linear-gradient(\n\t\t45deg,\n\t\trgba(255, 0, 0, 1) 0%,\n\t\trgba(255, 154, 0, 1) 10%,\n\t\trgba(208, 222, 33, 1) 20%,\n\t\trgba(79, 220, 74, 1) 30%,\n\t\trgba(63, 218, 216, 1) 40%,\n\t\trgba(47, 201, 226, 1) 50%,\n\t\trgba(28, 127, 238, 1) 60%,\n\t\trgba(95, 21, 242, 1) 70%,\n\t\trgba(186, 12, 248, 1) 80%,\n\t\trgba(251, 7, 217, 1) 90%,\n\t\trgba(255, 0, 0, 1) 100%\n\t);\n\tbackground-size: 300% 300%;\n\tanimation: ${RainbowLight} 2s linear infinite;\n\tborder-radius: 32px;\n\tfilter: blur(6px);\n\tposition: absolute;\n\ttop: -2px;\n\tright: -2px;\n\tbottom: -2px;\n\tleft: -2px;\n\tz-index: -1;\n`\n\nconst FCard = styled.div`\n\talign-self: baseline;\n\tbackground: ${(props) => props.theme.card.background};\n\tborder-radius: 32px;\n\tbox-shadow: 0px 2px 12px -8px rgba(25, 19, 38, 0.1), 0px 1px 1px rgba(25, 19, 38, 0.05);\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-around;\n\tpadding: 24px;\n\tposition: relative;\n\ttext-align: center;\n`\n\nconst Divider = styled.div`\n\tbackground-color: ${({ theme }) => theme.colors.borderColor};\n\theight: 1px;\n\tmargin: 28px auto;\n\twidth: 100%;\n`\n\nconst ExpandingWrapper = styled.div<{ expanded: boolean }>`\n\theight: ${(props) => (props.expanded ? '100%' : '0px')};\n\toverflow: hidden;\n`\n\ninterface FarmCardProps {\n\tfarm: FarmWithStakedValue\n\tremoved: boolean\n\tcouponPrice?: BigNumber\n\tprovider?: ProviderType\n\taccount?: string\n\tsingle?: boolean\n\twithdraw100fee?: boolean\n}\n\nconst FarmCard: React.FC = ({\n\tfarm,\n\tremoved,\n\tcouponPrice,\n\taccount,\n\tsingle = false,\n\twithdraw100fee = false,\n}) => {\n\tconst { t } = useTranslation()\n\tconst { stakedBalance } = useFarmUser(farm.pid)\n\n\tconst [showExpandableSection, setShowExpandableSection] = useState(false)\n\n\t// We assume the token name is coin pair + lp e.g. CAKE-BNB LP, LINK-BNB LP,\n\t// NAR-CAKE LP. The images should be cake-bnb.svg, link-bnb.svg, nar-cake.svg\n\tconst farmImage = farm.imageName\n\n\tconst totalValueFormatted = farm.liquidity\n\t\t? `$${farm.liquidity.toNumber().toLocaleString(undefined, { maximumFractionDigits: 0 })}`\n\t\t: '-'\n\n\tconst myValueFormatted = farm.lpValueInUsd\n\t\t? `$${new BigNumber(getFullDisplayBalance(farm.lpValueInUsd.times(stakedBalance), 18, 2)).toNumber().toLocaleString(undefined, { maximumFractionDigits: 0 })}`\n\t\t: '-'\n\n\tconst lpLabel = farm.lpSymbol && farm.lpSymbol.toUpperCase().replace('PANCAKE', '')\n\tconst earnLabel = farm.dual ? farm.dual.earnLabel : 'COUPON'\n\n\tconst farmAPR = farm.apr && farm.apr.toLocaleString('en-US', { maximumFractionDigits: 2 })\n\n\tconst liquidityUrlPathParts = getLiquidityUrlPathParts({\n\t\tquoteTokenAddress: farm.quoteToken.address,\n\t\ttokenAddress: farm.token.address,\n\t})\n\tconst addLiquidityUrl = `${BASE_ADD_LIQUIDITY_URL}/${liquidityUrlPathParts}`\n\tconst lpAddress = farm.lpAddresses[process.env.REACT_APP_CHAIN_ID]\n\n\treturn (\n\t\t\n\t\t\t{farm.token.symbol === 'COUPON' && }\n\t\t\t\n\t\t\t{!removed && (\n\t\t\t\t\n\t\t\t\t\t{t('APR')}:\n\t\t\t\t\t\n\t\t\t\t\t\t{farm.apr ? (\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{farmAPR}%\n\t\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)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\t{t('Earn')}:\n\t\t\t\t{earnLabel}\n\t\t\t\n\n\t\t\t{farm.isWithdrawFee100 && (\n\t\t\t\t
\n\t\t\t\t\t* 100% Withdrawal Fee\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t\n\t\t\t\n\t\t\t setShowExpandableSection(!showExpandableSection)}\n\t\t\t\texpanded={showExpandableSection}\n\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 FarmCard\n","import React, { useContext } from 'react'\nimport styled, { ThemeContext } from 'styled-components'\n\ninterface SpacerProps {\n\tsize?: 'sm' | 'md' | 'lg'\n}\n\nconst Spacer: React.FC = ({ size = 'md' }) => {\n\tconst { spacing } = useContext(ThemeContext)\n\n\tlet s: number\n\tswitch (size) {\n\t\tcase 'lg':\n\t\t\ts = spacing[6]\n\t\t\tbreak\n\t\tcase 'sm':\n\t\t\ts = spacing[2]\n\t\t\tbreak\n\t\tcase 'md':\n\t\tdefault:\n\t\t\ts = spacing[4]\n\t}\n\n\treturn \n}\n\ninterface StyledSpacerProps {\n\tsize: number\n}\n\nconst StyledSpacer = styled.div`\n\theight: ${(props) => props.size}px;\n\twidth: ${(props) => props.size}px;\n`\n\nexport default Spacer\n","import React from 'react'\nimport styled from 'styled-components'\n\nimport Spacer from '../Spacer'\n\nconst ModalActions: React.FC = ({ children }) => {\n\tconst l = React.Children.toArray(children).length\n\treturn (\n\t\t\n\t\t\t{React.Children.map(children, (child, i) => (\n\t\t\t\t<>\n\t\t\t\t\t{child}\n\t\t\t\t\t{i < l - 1 && }\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`\n\nconst StyledModalAction = styled.div`\n\tflex: 1;\n`\n\nexport default ModalActions\n","import { Campaign } from './types'\n\n/**\n * id: The campaign id (required)\n * type: The type of the achievement\n * title: A string or an object to be translated.\n * Note: If the value is a string it is likely used as data in a translation object\n *\n * badge: Achievement avatar\n */\n\nconst campaigns: Campaign[] = [\n\t{\n\t\tid: '511090000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Horizon Protocol',\n\t\tbadge: 'ifo-hzn.svg',\n\t},\n\t{\n\t\tid: '511080000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Belt',\n\t\tbadge: 'ifo-belt.svg',\n\t},\n\t{\n\t\tid: '511070000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Yieldwatch',\n\t\tbadge: 'ifo-watch.svg',\n\t},\n\t{\n\t\tid: '511060000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Berry',\n\t\tbadge: 'ifo-bry.svg',\n\t},\n\t{\n\t\tid: '511050000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Soteria',\n\t\tbadge: 'ifo-wsote.svg',\n\t},\n\t{\n\t\tid: '511040000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Helmet',\n\t\tbadge: 'ifo-helmet.svg',\n\t},\n\t{\n\t\tid: '511030000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Tenet',\n\t\tbadge: 'ifo-ten.svg',\n\t},\n\t{\n\t\tid: '511020000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Ditto',\n\t\tbadge: 'ifo-ditto.svg',\n\t},\n\t{\n\t\tid: '511010000',\n\t\ttype: 'ifo',\n\t\ttitle: 'Blink',\n\t\tbadge: 'ifo-blk.svg',\n\t},\n\t{\n\t\tid: '512010001',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Champion: Gold',\n\t\tbadge: 'easter-champion-gold.svg',\n\t},\n\t{\n\t\tid: '512010002',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Gold',\n\t\tbadge: 'easter-top-500-gold.svg',\n\t},\n\t{\n\t\tid: '512010003',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Gold',\n\t\tbadge: 'easter-top-500-gold.svg',\n\t},\n\t{\n\t\tid: '512010004',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Gold',\n\t\tbadge: 'easter-top-500-gold.svg',\n\t},\n\t{\n\t\tid: '512010005',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Participant: Gold',\n\t\tbadge: 'easter-participant-gold.svg',\n\t},\n\t{\n\t\tid: '512010006',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Champion: Silver',\n\t\tbadge: 'easter-champion-silver.svg',\n\t},\n\t{\n\t\tid: '512010007',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Silver',\n\t\tbadge: 'easter-top-500-silver.svg',\n\t},\n\t{\n\t\tid: '512010008',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Silver',\n\t\tbadge: 'easter-top-500-silver.svg',\n\t},\n\t{\n\t\tid: '512010009',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Silver',\n\t\tbadge: 'easter-top-500-silver.svg',\n\t},\n\t{\n\t\tid: '512010010',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Participant: Silver',\n\t\tbadge: 'easter-participant-silver.svg',\n\t},\n\t{\n\t\tid: '512010011',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Champion: Bronze',\n\t\tbadge: 'easter-champion-bronze.svg',\n\t},\n\t{\n\t\tid: '512010012',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Bronze',\n\t\tbadge: 'easter-top-500-bronze.svg',\n\t},\n\t{\n\t\tid: '512010013',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Bronze',\n\t\tbadge: 'easter-top-500-bronze.svg',\n\t},\n\t{\n\t\tid: '512010014',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Top 500: Bronze',\n\t\tbadge: 'easter-top-500-bronze.svg',\n\t},\n\t{\n\t\tid: '512010015',\n\t\ttype: 'teambattle',\n\t\ttitle: 'Easter Participant: Bronze',\n\t\tbadge: 'easter-participant-bronze.svg',\n\t},\n]\n\n/**\n * Transform the campaign config into a map. Keeps the config the same\n * as the others and allows easy access to a campaign by id\n */\nexport const campaignMap = new Map()\n\ncampaigns.forEach((campaign) => {\n\tcampaignMap.set(campaign.id, campaign)\n})\n\nexport default campaigns\n","import { request, gql } from 'graphql-request'\nimport { campaignMap } from 'config/constants/campaigns'\nimport { GRAPH_API_PROFILE } from 'config/constants/endpoints'\nimport { Achievement } from 'state/types'\n\ninterface UserPointIncreaseEvent {\n\tcampaignId: string\n\tid: string // wallet address\n\tpoints: string\n}\n\n/**\n * Gets all user point increase events on the profile filtered by wallet address\n */\nexport const getUserPointIncreaseEvents = async (\n\taccount: string,\n): Promise => {\n\ttry {\n\t\tconst { user } = await request(\n\t\t\tGRAPH_API_PROFILE,\n\t\t\tgql`\n\t\t\t\tquery getUserPointIncreaseEvents($account: ID!) {\n\t\t\t\t\tuser(id: $account) {\n\t\t\t\t\t\tpoints {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tcampaignId\n\t\t\t\t\t\t\tpoints\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\taccount: account.toLowerCase(),\n\t\t\t},\n\t\t)\n\n\t\treturn user.points\n\t} catch (error) {\n\t\treturn null\n\t}\n}\n\n/**\n * Gets all user point increase events and adds achievement meta\n */\nexport const getAchievements = async (account: string): Promise => {\n\tconst pointIncreaseEvents = await getUserPointIncreaseEvents(account)\n\n\tif (!pointIncreaseEvents) {\n\t\treturn []\n\t}\n\n\treturn pointIncreaseEvents.reduce((accum, userPoint) => {\n\t\tconst campaignMeta = campaignMap.get(userPoint.campaignId)\n\n\t\treturn [\n\t\t\t...accum,\n\t\t\t{\n\t\t\t\tid: userPoint.campaignId,\n\t\t\t\ttype: campaignMeta.type,\n\t\t\t\taddress: userPoint.id,\n\t\t\t\tbadge: campaignMeta.badge,\n\t\t\t\tpoints: Number(userPoint.points),\n\t\t\t},\n\t\t]\n\t}, [])\n}\n","/* eslint-disable no-param-reassign */\nimport { createSlice, Dispatch, PayloadAction } from '@reduxjs/toolkit'\nimport { AchievementState, Achievement } from '../types'\nimport { getAchievements } from './helpers'\n\nconst initialState: AchievementState = {\n\tdata: [],\n}\n\nexport const achievementSlice = createSlice({\n\tname: 'achievements',\n\tinitialState,\n\treducers: {\n\t\taddAchievement: (state, action: PayloadAction) => {\n\t\t\tstate.data.push(action.payload)\n\t\t},\n\t\taddAchievements: (state, action: PayloadAction) => {\n\t\t\tstate.data = [...state.data, ...action.payload]\n\t\t},\n\t\tsetAchievements: (state, action: PayloadAction) => {\n\t\t\tstate.data = action.payload\n\t\t},\n\t\tclearAchievements: (state) => {\n\t\t\tstate.data = []\n\t\t},\n\t},\n})\n\n// Actions\nexport const {\n\taddAchievement,\n\taddAchievements,\n\tsetAchievements,\n\tclearAchievements,\n} = achievementSlice.actions\n\n// Thunks\nexport const fetchAchievements = (account: string) => async (dispatch: Dispatch) => {\n\ttry {\n\t\tconst achievements = await getAchievements(account)\n\t\tdispatch(setAchievements(achievements))\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n}\n\nexport default achievementSlice.reducer\n","import React, { createContext, ReactNode, useCallback, useState } from 'react'\nimport { kebabCase } from 'lodash'\nimport { Toast, toastTypes } from '../../uikit-foodcourt'\nimport { ToastContextApi } from './types'\n\nexport const ToastsContext = createContext(undefined)\n\nexport const ToastsProvider: React.FC = ({ children }) => {\n\tconst [toasts, setToasts] = useState([])\n\n\tconst toast = useCallback(\n\t\t({ title, description, type }: Omit) => {\n\t\t\tsetToasts((prevToasts) => {\n\t\t\t\tconst id = kebabCase(title)\n\n\t\t\t\t// Remove any existing toasts with the same id\n\t\t\t\tconst currentToasts = prevToasts.filter((prevToast) => prevToast.id !== id)\n\n\t\t\t\treturn [\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tdescription,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t},\n\t\t\t\t\t...currentToasts,\n\t\t\t\t]\n\t\t\t})\n\t\t},\n\t\t[setToasts],\n\t)\n\n\tconst toastError = (title: string, description?: ReactNode) => {\n\t\treturn toast({ title, description, type: toastTypes.DANGER })\n\t}\n\tconst toastInfo = (title: string, description?: ReactNode) => {\n\t\treturn toast({ title, description, type: toastTypes.INFO })\n\t}\n\tconst toastSuccess = (title: string, description?: ReactNode) => {\n\t\treturn toast({ title, description, type: toastTypes.SUCCESS })\n\t}\n\tconst toastWarning = (title: string, description?: ReactNode) => {\n\t\treturn toast({ title, description, type: toastTypes.WARNING })\n\t}\n\tconst clear = () => setToasts([])\n\tconst remove = (id: string) => {\n\t\tsetToasts((prevToasts) => prevToasts.filter((prevToast) => prevToast.id !== id))\n\t}\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t)\n}\n","const rsafe2wsafe = {\n // \"0xf37f180fBbA29681AcDcD7dca13F37c64eAB3272\": \"0xB1F5E032bE42097553DCEA281707BA3f9B6553ce\",\n \"0x3e45fd22cc219f640b3a608e274f5e0a5a6256a5\": \"0x422d0a431d8fb752e3697e90ba04b3324ea0cb4a\",\n \"0xeA760c8de4ce92e34cc3BD8b4ad9a85C13a91e6C\": \"0xa3863434a1Fc699185b3E6809a933056D1178366\",\n \"0xA651fdAa684B704C8e64eBbb71413245C01f52a1\": \"0x40733aBc9Acb7d48Caa632ee83E4e7B3d0008d9D\",\n\n\t\"0xcc42724c6683b7e57334c4e856f4c9965ed682bd\": \"0x032574B64Bf6fa42951f836CC8c5099d1C5747d3\"\n}\n\nexport default rsafe2wsafe;\n","/* eslint-disable no-param-reassign */\nimport { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { PriceApiResponse, PriceApiThunk, PriceState } from 'state/types'\nimport rsafe2wsafe from '../../config/constants/rsafe2wsafe'\n\nconst initialState: PriceState = {\n\tisLoading: false,\n\tlastUpdated: null,\n\tdata: null,\n}\n\n// Thunks\nexport const fetchPrices = createAsyncThunk('prices/fetch', async () => {\n\tconst response = await fetch('https://api.foodcourt.finance/v2/prices?chain=55555')\n\tconst data = (await response.json()) as PriceApiResponse\n\n\tconst result = {\n\t\tupdated_at: data.updated_at,\n\t\tdata: Object.keys(data).reduce((accum, token) => {\n\t\t\treturn {\n\t\t\t\t...accum,\n\t\t\t\t[token.toLowerCase().replace(/:/g, '')]: parseFloat(data[token].price),\n\t\t\t}\n\t\t}, {}),\n\t}\n\n\t// Hardcode rSafemoon map price to wSafemoon\n\tfor (const rsafe in rsafe2wsafe) {\n\t\tresult.data[rsafe.toLowerCase()] = result.data[rsafe2wsafe[rsafe].toLowerCase()]\n\t}\n\n\t// Return normalized token names\n\treturn result\n})\n\nexport const pricesSlice = createSlice({\n\tname: 'prices',\n\tinitialState,\n\treducers: {},\n\textraReducers: (builder) => {\n\t\tbuilder.addCase(fetchPrices.pending, (state) => {\n\t\t\tstate.isLoading = true\n\t\t})\n\t\tbuilder.addCase(fetchPrices.fulfilled, (state, action: PayloadAction) => {\n\t\t\tstate.isLoading = false\n\t\t\tstate.lastUpdated = action.payload.updated_at\n\t\t\tstate.data = action.payload.data\n\t\t})\n\t},\n})\n\nexport default pricesSlice.reducer\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Text, Button, Input, InputProps, Flex, Link } from '../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\n\ninterface ModalInputProps {\n\tmax: string\n\tsymbol: string\n\tonSelectMax?: () => void\n\tonChange: (e: React.FormEvent) => 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\tbox-shadow: none;\n\twidth: 60px;\n\tmargin: 0 8px;\n\tpadding: 0 8px;\n\n\t${({ theme }) => theme.mediaQueries.xs} {\n\t\twidth: 80px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\twidth: auto;\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 ModalInput: React.FC = ({\n\tmax,\n\tsymbol,\n\tonChange,\n\tonSelectMax,\n\tvalue,\n\taddLiquidityUrl,\n\tinputTitle,\n}) => {\n\tconst { t } = useTranslation()\n\tconst isBalanceZero = max === '0' || !max\n\n\tconst displayBalance = (balance: string) => {\n\t\tif (isBalanceZero) {\n\t\t\treturn '0'\n\t\t}\n\t\tconst balanceNumber = Number(balance)\n\t\tif (balanceNumber > 0 && balanceNumber < 0.0001) {\n\t\t\treturn balanceNumber.toLocaleString(undefined, { maximumFractionDigits: 20 })\n\t\t}\n\t\treturn balanceNumber.toLocaleString()\n\t}\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{inputTitle}\n\t\t\t\t\t\n\t\t\t\t\t\t{t('Balance')}: {displayBalance(max)}\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\n\t\t\t\t\t{symbol}\n\t\t\t\t\n\t\t\t\n\t\t\t{/* {isBalanceZero && (\n\t\t\t\t\n\t\t\t\t\tNo tokens to stake:{' '}\n\t\t\t\t\t\n\t\t\t\t\t\t{t('get')} {symbol}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)} */}\n\t\t
\n\t)\n}\n\nexport default ModalInput\n","import BigNumber from 'bignumber.js'\n\nexport const BIG_ZERO = new BigNumber(0)\nexport const BIG_ONE = new BigNumber(1)\nexport const BIG_NINE = new BigNumber(9)\nexport const BIG_TEN = new BigNumber(10)\n","export { default as farmsConfig } from './farms'\nexport { default as poolsConfig } from './pools'\n","import { useEffect, useState } from 'react'\n\n/**\n * Same as \"useState\" but saves the value to local storage each time it changes\n */\nconst usePersistState = (initialValue: any, localStorageKey: string) => {\n\tconst [value, setValue] = useState(() => {\n\t\ttry {\n\t\t\tconst valueFromLS = localStorage.getItem(localStorageKey)\n\n\t\t\treturn valueFromLS ? JSON.parse(valueFromLS) : initialValue\n\t\t} catch (error) {\n\t\t\treturn initialValue\n\t\t}\n\t})\n\n\tuseEffect(() => {\n\t\tlocalStorage.setItem(localStorageKey, JSON.stringify(value))\n\t}, [value, localStorageKey])\n\n\treturn [value, setValue]\n}\n\nexport default usePersistState\n","import styled from 'styled-components'\n\nconst FlexLayout = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\tflex-wrap: wrap;\n\t& > * {\n\t\tmin-width: 280px;\n\t\tmax-width: 31.5%;\n\t\twidth: 100%;\n\t\tmargin: 0 8px;\n\t\tmargin-bottom: 32px;\n\t}\n`\n\nexport default FlexLayout\n","// Components\nexport * from './components/Alert'\nexport * from './components/BalanceInput'\nexport * from './components/Box'\nexport * from './components/Breadcrumbs'\nexport * from './components/Button'\nexport * from './components/ButtonMenu'\nexport * from './components/Card'\nexport * from './components/Checkbox'\nexport * from './components/Dropdown'\nexport * from './components/FallingBunnies'\nexport * from './components/Heading'\nexport * from './components/Image'\nexport * from './components/Input'\nexport * from './components/Layouts'\nexport * from './components/Link'\nexport * from './components/NotificationDot'\nexport * from './components/PancakeToggle'\nexport * from './components/Progress'\nexport * from './components/Radio'\nexport * from './components/Slider'\nexport * from './components/Skeleton'\nexport * from './components/Spinner'\nexport * from './components/Stepper'\nexport * from './components/Svg'\nexport * from './components/Table'\nexport * from './components/TabMenu'\nexport * from './components/Tag'\nexport * from './components/Text'\nexport * from './components/Toggle'\n\n// Hooks\nexport * from './hooks'\n\n// Widgets\nexport * from './widgets/Modal'\nexport * from './widgets/Menu'\nexport * from './widgets/Toast'\nexport * from './widgets/WalletModal'\n\n// Theme\nexport { default as ResetCSS } from './ResetCSS'\nexport * from './theme'\n","import React, { useEffect, useRef } from 'react'\nimport { useCountUp } from 'react-countup'\nimport { Text } from '../../../uikit-foodcourt'\n\nexport interface CardValueProps {\n\tvalue: number\n\tdecimals?: number\n\tfontSize?: string\n\tlineHeight?: string\n\tprefix?: string\n\tbold?: boolean\n\tcolor?: string\n}\n\nconst CardValue: React.FC = ({\n\tvalue,\n\tdecimals,\n\tfontSize = '40px',\n\tlineHeight = '1',\n\tprefix = '',\n\tbold = true,\n\tcolor = 'text',\n}) => {\n\tconst { countUp, update } = useCountUp({\n\t\tstart: 0,\n\t\tend: value,\n\t\tduration: 1,\n\t\tseparator: ',',\n\t\tdecimals:\n\t\t\t// eslint-disable-next-line no-nested-ternary\n\t\t\tdecimals !== undefined ? decimals : value < 0 ? 4 : value > 1e5 ? 0 : 3,\n\t})\n\n\tconst updateValue = useRef(update)\n\n\tuseEffect(() => {\n\t\tupdateValue.current(value)\n\t}, [value, updateValue])\n\n\treturn (\n\t\t\n\t\t\t{prefix}\n\t\t\t{countUp}\n\t\t\n\t)\n}\n\nexport default CardValue\n","import React from 'react'\nimport CardValue, { CardValueProps } from './CardValue'\n\nconst CardBusdValue: React.FC = (props) => {\n\treturn (\n\t\t\n\t)\n}\n\nexport default CardBusdValue\n","export { default as Dropdown } from './Dropdown'\nexport type { DropdownProps } from './types'\n","export { default as Input } from './Input'\nexport type { InputProps, Scales as InputScales } from './types'\n","export * from './hooks'\nexport * from './types'\nexport * from './utils'\n","import { useMemo, useReducer, useEffect, ReactNode, useCallback } from 'react'\nimport noop from 'lodash/noop'\n\nimport {\n\tColumnByNamesType,\n\tColumnType,\n\tTableState,\n\tTableAction,\n\tDataType,\n\tUseTableReturnType,\n\tUseTableOptionsType,\n\tRowType,\n\tHeaderType,\n\tHeaderRenderType,\n\tColumnStateType,\n} from './types'\nimport { byTextAscending, byTextDescending } from './utils'\n\nconst sortByColumn = (\n\tdata: RowType[],\n\tsortColumn: string,\n\tcolumns: ColumnStateType[],\n): RowType[] => {\n\tlet isAscending = null\n\tlet sortedRows: RowType[] = [...data]\n\n\tcolumns.forEach((column) => {\n\t\t// if the row was found\n\t\tif (sortColumn === column.name) {\n\t\t\tisAscending = column.sorted.asc\n\n\t\t\tif (column.sort) {\n\t\t\t\tsortedRows = isAscending ? data.sort(column.sort) : data.sort(column.sort).reverse()\n\t\t\t\t// default to sort by string\n\t\t\t} else {\n\t\t\t\tsortedRows = isAscending\n\t\t\t\t\t? data.sort(byTextAscending((object) => object.original[sortColumn]))\n\t\t\t\t\t: data.sort(byTextDescending((object) => object.original[sortColumn]))\n\t\t\t}\n\t\t}\n\t})\n\n\treturn sortedRows\n}\n\nconst getPaginatedData = (\n\trows: RowType[],\n\tperPage: number,\n\tpage: number,\n) => {\n\tconst start = (page - 1) * perPage\n\tconst end = start + perPage\n\treturn rows.slice(start, end)\n}\n\nconst getColumnsByName = (columns: ColumnType[]): ColumnByNamesType => {\n\tconst columnsByName: ColumnByNamesType = {}\n\tcolumns.forEach((column) => {\n\t\tconst col: ColumnType = {\n\t\t\tname: column.name,\n\t\t\tlabel: column.label,\n\t\t}\n\n\t\tif (column.render) {\n\t\t\tcol.render = column.render\n\t\t}\n\t\tcol.hidden = column.hidden\n\t\tcolumnsByName[column.name] = col\n\t})\n\n\treturn columnsByName\n}\n\nconst createReducer = () => (\n\tstate: TableState,\n\taction: TableAction,\n): TableState => {\n\tlet rows = []\n\tlet nextPage = 0\n\tlet prevPage = 0\n\tlet isAscending = null\n\tlet sortedRows: RowType[] = []\n\tlet columnCopy = []\n\tlet filteredRows = []\n\tlet selectedRowsById: { [key: number]: boolean } = {}\n\tlet stateCopy: TableState = { ...state }\n\tconst rowIds: { [key: number]: boolean } = {}\n\n\tswitch (action.type) {\n\t\tcase 'SET_ROWS':\n\t\t\trows = [...action.data]\n\t\t\t// preserve sorting if a sort is already enabled when data changes\n\t\t\tif (state.sortColumn) {\n\t\t\t\trows = sortByColumn(action.data, state.sortColumn, state.columns)\n\t\t\t}\n\n\t\t\tif (state.paginationEnabled === true) {\n\t\t\t\trows = getPaginatedData(rows, state.pagination.perPage, state.pagination.page)\n\t\t\t}\n\n\t\t\tif (state.paginationEnabled === true) {\n\t\t\t\trows = getPaginatedData(rows, state.pagination.perPage, state.pagination.page)\n\t\t\t}\n\n\t\t\tcolumnCopy = state.columns.map((column) => {\n\t\t\t\tif (state.sortColumn === column.name) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...column,\n\t\t\t\t\t\tsorted: {\n\t\t\t\t\t\t\ton: true,\n\t\t\t\t\t\t\tasc: column.sorted.asc,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn column\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\trows,\n\t\t\t\toriginalRows: action.data,\n\t\t\t\tcolumns: columnCopy,\n\t\t\t}\n\n\t\tcase 'NEXT_PAGE':\n\t\t\tnextPage = state.pagination.page + 1\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\trows: getPaginatedData(state.originalRows, state.pagination.perPage, nextPage),\n\t\t\t\tpagination: {\n\t\t\t\t\t...state.pagination,\n\t\t\t\t\tpage: nextPage,\n\t\t\t\t\tcanNext: nextPage * state.pagination.perPage < state.originalRows.length,\n\t\t\t\t\tcanPrev: nextPage !== 1,\n\t\t\t\t},\n\t\t\t}\n\t\tcase 'PREV_PAGE':\n\t\t\tprevPage = state.pagination.page === 1 ? 1 : state.pagination.page - 1\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\trows: getPaginatedData(state.originalRows, state.pagination.perPage, prevPage),\n\t\t\t\tpagination: {\n\t\t\t\t\t...state.pagination,\n\t\t\t\t\tpage: prevPage,\n\t\t\t\t\tcanNext: prevPage * state.pagination.perPage < state.originalRows.length,\n\t\t\t\t\tcanPrev: prevPage !== 1,\n\t\t\t\t},\n\t\t\t}\n\t\tcase 'TOGGLE_SORT':\n\t\t\tif (!(action.columnName in state.columnsByName)) {\n\t\t\t\tthrow new Error(`Invalid column, ${action.columnName} not found`)\n\t\t\t}\n\n\t\t\t// loop through all columns and set the sort parameter to off unless\n\t\t\t// it's the specified column (only one column at a time for )\n\t\t\tcolumnCopy = state.columns.map((column) => {\n\t\t\t\t// if the row was found\n\t\t\t\tif (action.columnName === column.name) {\n\t\t\t\t\tif (action.isAscOverride !== undefined) {\n\t\t\t\t\t\t// force the sort order\n\t\t\t\t\t\tisAscending = action.isAscOverride\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if it's undefined, start by setting to ascending, otherwise toggle\n\t\t\t\t\t\tisAscending = column.sorted.asc === undefined ? true : !column.sorted.asc\n\t\t\t\t\t}\n\n\t\t\t\t\tif (column.sort) {\n\t\t\t\t\t\tsortedRows = isAscending\n\t\t\t\t\t\t\t? state.rows.sort(column.sort)\n\t\t\t\t\t\t\t: state.rows.sort(column.sort).reverse()\n\t\t\t\t\t\t// default to sort by string\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsortedRows = isAscending\n\t\t\t\t\t\t\t? state.rows.sort(byTextAscending((object) => object.original[action.columnName]))\n\t\t\t\t\t\t\t: state.rows.sort(byTextDescending((object) => object.original[action.columnName]))\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...column,\n\t\t\t\t\t\tsorted: {\n\t\t\t\t\t\t\ton: true,\n\t\t\t\t\t\t\tasc: isAscending,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// set sorting to false for all other columns\n\t\t\t\treturn {\n\t\t\t\t\t...column,\n\t\t\t\t\tsorted: {\n\t\t\t\t\t\ton: false,\n\t\t\t\t\t\tasc: false,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcolumns: columnCopy,\n\t\t\t\trows: sortedRows,\n\t\t\t\tsortColumn: action.columnName,\n\t\t\t\tcolumnsByName: getColumnsByName(columnCopy),\n\t\t\t}\n\t\tcase 'GLOBAL_FILTER':\n\t\t\tfilteredRows = action.filter(state.originalRows)\n\t\t\tselectedRowsById = {}\n\t\t\tstate.selectedRows.forEach((row) => {\n\t\t\t\tselectedRowsById[row.id] = row.selected ?? false\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\trows: filteredRows.map((row) =>\n\t\t\t\t\tselectedRowsById[row.id] ? { ...row, selected: selectedRowsById[row.id] } : { ...row },\n\t\t\t\t),\n\t\t\t\tfilterOn: true,\n\t\t\t}\n\t\tcase 'SELECT_ROW':\n\t\t\tstateCopy = { ...state }\n\n\t\t\tstateCopy.rows = stateCopy.rows.map((row) => {\n\t\t\t\tconst newRow = { ...row }\n\t\t\t\tif (newRow.id === action.rowId) {\n\t\t\t\t\tnewRow.selected = !newRow.selected\n\t\t\t\t}\n\t\t\t\treturn newRow\n\t\t\t})\n\n\t\t\tstateCopy.originalRows = stateCopy.originalRows.map((row) => {\n\t\t\t\tconst newRow = { ...row }\n\t\t\t\tif (newRow.id === action.rowId) {\n\t\t\t\t\tnewRow.selected = !newRow.selected\n\t\t\t\t}\n\t\t\t\treturn newRow\n\t\t\t})\n\n\t\t\tstateCopy.selectedRows = stateCopy.originalRows.filter((row) => row.selected === true)\n\n\t\t\tstateCopy.toggleAllState =\n\t\t\t\tstateCopy.selectedRows.length === stateCopy.rows.length\n\t\t\t\t\t? (stateCopy.toggleAllState = true)\n\t\t\t\t\t: (stateCopy.toggleAllState = false)\n\n\t\t\treturn stateCopy\n\t\tcase 'SEARCH_STRING':\n\t\t\tstateCopy = { ...state }\n\t\t\tstateCopy.rows = stateCopy.originalRows.filter(\n\t\t\t\t(row) =>\n\t\t\t\t\trow.cells.filter((cell) => {\n\t\t\t\t\t\tif (cell.value.includes(action.searchString)) {\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}).length > 0,\n\t\t\t)\n\t\t\treturn stateCopy\n\t\tcase 'TOGGLE_ALL':\n\t\t\tif (state.selectedRows.length < state.rows.length) {\n\t\t\t\tstateCopy.rows = stateCopy.rows.map((row) => {\n\t\t\t\t\trowIds[row.id] = true\n\t\t\t\t\treturn { ...row, selected: true }\n\t\t\t\t})\n\n\t\t\t\tstateCopy.toggleAllState = true\n\t\t\t} else {\n\t\t\t\tstateCopy.rows = stateCopy.rows.map((row) => {\n\t\t\t\t\trowIds[row.id] = false\n\n\t\t\t\t\treturn { ...row, selected: false }\n\t\t\t\t})\n\t\t\t\tstateCopy.toggleAllState = false\n\t\t\t}\n\n\t\t\tstateCopy.originalRows = stateCopy.originalRows.map((row) =>\n\t\t\t\trow.id in rowIds ? { ...row, selected: rowIds[row.id] } : { ...row },\n\t\t\t)\n\n\t\t\tstateCopy.selectedRows = stateCopy.originalRows.filter((row) => row.selected)\n\n\t\t\treturn stateCopy\n\t\tdefault:\n\t\t\tthrow new Error('Invalid reducer action')\n\t}\n}\n\nconst sortDataInOrder = (data: T[], columns: ColumnType[]): T[] =>\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tdata.map((row: any) => {\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tconst newRow: any = {}\n\t\tcolumns.forEach((column) => {\n\t\t\tif (!(column.name in row)) {\n\t\t\t\tthrow new Error(`Invalid row data, ${column.name} not found`)\n\t\t\t}\n\t\t\tnewRow[column.name] = row[column.name]\n\t\t})\n\t\treturn newRow\n\t})\nexport const makeRender = (\n\t// eslint-disable-next-line\n value: any,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\trender: (({ value: val, row }: { value: any; row: T }) => ReactNode) | undefined,\n\trow: T,\n): (() => React.ReactNode) => (render ? () => render({ row, value }) : () => value)\n\nconst makeHeaderRender = (label: string, render?: HeaderRenderType) =>\n\trender ? () => render({ label }) : () => label\n\nexport const useTable = (\n\tcolumns: ColumnType[],\n\tdata: T[],\n\toptions?: UseTableOptionsType,\n): UseTableReturnType => {\n\tconst columnsWithSorting: ColumnStateType[] = useMemo(\n\t\t() =>\n\t\t\tcolumns.map((column) => ({\n\t\t\t\t...column,\n\t\t\t\tlabel: column.label ? column.label : column.name,\n\t\t\t\thidden: column.hidden ? column.hidden : false,\n\t\t\t\tsort: column.sort,\n\t\t\t\tsorted: {\n\t\t\t\t\ton: false,\n\t\t\t\t\tasc: false,\n\t\t\t\t},\n\t\t\t})),\n\t\t[columns],\n\t)\n\tconst columnsByName = useMemo(() => getColumnsByName(columnsWithSorting), [columnsWithSorting])\n\n\tconst tableData: RowType[] = useMemo(() => {\n\t\tconst sortedData = sortDataInOrder(data, columnsWithSorting)\n\n\t\tconst newData = sortedData.map((row, idx) => ({\n\t\t\tid: idx,\n\t\t\tselected: false,\n\t\t\thidden: false,\n\t\t\toriginal: row,\n\t\t\tcells: Object.entries(row)\n\t\t\t\t.map(([column, value]) => ({\n\t\t\t\t\thidden: columnsByName[column].hidden,\n\t\t\t\t\tfield: column,\n\t\t\t\t\tvalue,\n\t\t\t\t\trender: makeRender(value, columnsByName[column].render, row),\n\t\t\t\t}))\n\t\t\t\t.filter((cell) => !cell.hidden),\n\t\t}))\n\t\treturn newData\n\t}, [data, columnsWithSorting, columnsByName])\n\n\tconst reducer = createReducer()\n\n\tconst [state, dispatch] = useReducer(reducer, {\n\t\tcolumns: columnsWithSorting,\n\t\tcolumnsByName,\n\t\toriginalRows: tableData,\n\t\trows: tableData,\n\t\tselectedRows: [],\n\t\ttoggleAllState: false,\n\t\tfilterOn: !!options?.filter,\n\t\tsortColumn: options?.sortColumn,\n\t\tpaginationEnabled: !!options?.pagination,\n\t\tpagination: {\n\t\t\tpage: 1,\n\t\t\tperPage: 10,\n\t\t\tcanNext: true,\n\t\t\tcanPrev: false,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\t\t\tnextPage: noop,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\t\t\tprevPage: noop,\n\t\t},\n\t})\n\n\tstate.pagination.nextPage = useCallback(() => {\n\t\tdispatch({ type: 'NEXT_PAGE' })\n\t}, [dispatch])\n\tstate.pagination.prevPage = useCallback(() => dispatch({ type: 'PREV_PAGE' }), [dispatch])\n\n\tuseEffect(() => {\n\t\tdispatch({ type: 'SET_ROWS', data: tableData })\n\t}, [tableData])\n\n\tconst headers: HeaderType[] = useMemo(\n\t\t() => [\n\t\t\t...state.columns.map((column) => {\n\t\t\t\tconst label = column.label ? column.label : column.name\n\t\t\t\treturn {\n\t\t\t\t\t...column,\n\t\t\t\t\trender: makeHeaderRender(label, column.headerRender),\n\t\t\t\t}\n\t\t\t}),\n\t\t],\n\t\t[state.columns],\n\t)\n\n\tuseEffect(() => {\n\t\tif (options && options.filter) {\n\t\t\tdispatch({ type: 'GLOBAL_FILTER', filter: options.filter })\n\t\t}\n\t})\n\n\treturn {\n\t\theaders: headers.filter((column) => !column.hidden),\n\t\trows: state.rows,\n\t\toriginalRows: state.originalRows,\n\t\tselectedRows: state.selectedRows,\n\t\tdispatch,\n\t\tselectRow: (rowId: number) => dispatch({ type: 'SELECT_ROW', rowId }),\n\t\ttoggleAll: () => dispatch({ type: 'TOGGLE_ALL' }),\n\t\ttoggleSort: (columnName: string, isAscOverride?: boolean) =>\n\t\t\tdispatch({ type: 'TOGGLE_SORT', columnName, isAscOverride }),\n\t\tsetSearchString: (searchString: string) => dispatch({ type: 'SEARCH_STRING', searchString }),\n\t\tpagination: state.pagination,\n\t\ttoggleAllState: state.toggleAllState,\n\t}\n}\n","import { createGlobalStyle } from 'styled-components'\n\nconst ResetCSS = createGlobalStyle`\n /* prettier-ignore */\n html, body, div, span, applet, object, iframe,\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n a, abbr, acronym, address, big, cite, code,\n del, dfn, em, img, ins, kbd, q, s, samp,\n small, strike, strong, sub, sup, tt, var,\n b, u, i, center,\n dl, dt, dd, ol, ul, li,\n fieldset, form, label, legend,\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed,\n figure, figcaption, footer, header, hgroup,\n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n vertical-align: baseline;\n }\n /* HTML5 display-role reset for older browsers */\n /* prettier-ignore */\n article, aside, details, figcaption, figure,\n footer, header, hgroup, menu, nav, section {\n display: block;\n }\n body {\n line-height: 1;\n font-size: 16px;\n }\n ol,\n ul {\n list-style: disc;\n list-style-position: inside;\n }\n blockquote,\n q {\n quotes: none;\n }\n blockquote:before,\n blockquote:after,\n q:before,\n q:after {\n content: \"\";\n content: none;\n }\n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n a {\n color: inherit;\n text-decoration: none;\n }\n [role=\"button\"] {\n cursor: pointer;\n }\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n * {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n /* Number */\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n input[type=number] {\n -moz-appearance: textfield;\n }\n\n /* Scrollbar */\n ::-webkit-scrollbar {\n width: 8px;\n }\n ::-webkit-scrollbar-thumb {\n background: ${({ theme }) => theme.colors.textSubtle};\n border-radius: 8px;\n }\n ::-webkit-scrollbar-track {\n box-shadow: inset 0 0 5px ${({ theme }) => theme.colors.input};\n border-radius: 10px;\n }\n\n /* Slider */\n input[type=range] {\n -webkit-appearance: none; /* Hides the slider so that custom slider can be made */\n width: 100%; /* Specific width is required for Firefox. */\n background: transparent; /* Otherwise white in Chrome */\n }\n input[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n }\n input[type=range]:focus {\n outline: none; /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */\n }\n input[type=range]::-ms-track {\n width: 100%;\n cursor: pointer;\n /* Hides the slider so custom styles can be added */\n background: transparent;\n border-color: transparent;\n color: transparent;\n }\n`\n\nexport default ResetCSS\n","import BigNumber from 'bignumber.js/bignumber'\nimport { BIG_TEN } from 'utils/bigNumber'\nimport { getCafeteriaV3Contract } from 'utils/contractHelpers'\n\nBigNumber.config({\n\tEXPONENTIAL_AT: 1000,\n\tDECIMAL_PLACES: 80,\n})\n\nexport const BSC_BLOCK_TIME = 3\n\n// COUPON_PER_BLOCK details\n// COUPON_PER_BLOCK in config/index.ts = 40 as we only change the amount sent to the burn pool which is effectively a farm.\n\nexport const COUPON_PER_SECOND = new BigNumber(\n\twindow.localStorage.getItem('COUPON_PER_SECOND') || 0,\n)\nexport const SECOND_IN_YEAR = 86400 * 365\nexport const BASE_URL = 'https://foodcourt.finance'\nexport const BASE_EXCHANGE_URL = 'https://reix.foodcourt.finance'\nexport const BASE_ADD_LIQUIDITY_URL = `${BASE_EXCHANGE_URL}/#/add`\nexport const BASE_LIQUIDITY_POOL_URL = `${BASE_EXCHANGE_URL}/#/pool`\nexport const BASE_REI_SCAN_URL = 'https://reiscan.com'\nexport const LOTTERY_MAX_NUMBER_OF_TICKETS = 50\nexport const LOTTERY_TICKET_PRICE = 1\nexport const DEFAULT_TOKEN_DECIMAL = BIG_TEN.pow(18)\nexport const DEFAULT_GAS_LIMIT = 200000\n\nasync function loadCouponPerSecond() {\n\tlet couponPerSecond = await getCafeteriaV3Contract().methods.couponPerSecond().call()\n\tcouponPerSecond = new BigNumber(couponPerSecond).div(DEFAULT_TOKEN_DECIMAL)\n\tconsole.log('COUPON PER SECOND', couponPerSecond.toString())\n\tif (couponPerSecond.toString() !== COUPON_PER_SECOND.toString()) {\n\t\twindow.localStorage.setItem('COUPON_PER_SECOND', couponPerSecond.toString())\n\t\twindow.location.reload()\n\t}\n\treturn couponPerSecond\n}\n\nloadCouponPerSecond()\n","import BigNumber from 'bignumber.js'\nimport { Farm, Pool } from 'state/types'\nimport { getAddress } from 'utils/addressHelpers'\nimport { BIG_ZERO } from 'utils/bigNumber'\n\ntype UserData =\n | Pool['userData']\n | {\n allowance: number | string\n stakingTokenBalance: number | string\n stakedBalance: number | string\n pendingReward: number | string\n }\n\nexport const transformUserData = (userData: UserData) => {\n return {\n allowance: userData ? new BigNumber(userData.allowance) : BIG_ZERO,\n stakingTokenBalance: userData ? new BigNumber(userData.stakingTokenBalance) : BIG_ZERO,\n stakedBalance: userData ? new BigNumber(userData.stakedBalance) : BIG_ZERO,\n pendingReward: userData ? new BigNumber(userData.pendingReward) : BIG_ZERO,\n }\n}\n\nexport const transformPool = (pool: Pool): Pool => {\n const { totalStaked, stakingLimit, userData, ...rest } = pool\n\n return {\n ...rest,\n userData: transformUserData(userData),\n totalStaked: new BigNumber(totalStaked),\n stakingLimit: new BigNumber(stakingLimit),\n } as Pool\n}\n\nexport const getTokenPricesFromFarm = (farms: Farm[]) => {\n return farms.reduce((prices, farm) => {\n const quoteTokenAddress = getAddress(farm.quoteToken.address).toLocaleLowerCase()\n const tokenAddress = getAddress(farm.token.address).toLocaleLowerCase()\n /* eslint-disable no-param-reassign */\n if (!prices[quoteTokenAddress]) {\n prices[quoteTokenAddress] = new BigNumber(farm.quoteToken.busdPrice).toNumber()\n }\n if (!prices[tokenAddress]) {\n prices[tokenAddress] = new BigNumber(farm.token.busdPrice).toNumber()\n }\n /* eslint-enable no-param-reassign */\n return prices\n }, {})\n}\n","import { useEffect, useMemo, useCallback } from 'react'\nimport BigNumber from 'bignumber.js'\nimport { useWeb3React } from '@web3-react/core'\nimport { useSelector } from 'react-redux'\nimport { useAppDispatch } from 'state'\nimport { orderBy } from 'lodash'\nimport { getWeb3NoAccount } from 'utils/web3'\nimport { BIG_ZERO } from 'utils/bigNumber'\nimport useRefresh from 'hooks/useRefresh'\nimport { fetchFarmsPublicDataAsync, fetchPoolsUserDataAsync, setBlock } from './actions'\nimport { State, Farm, Pool, AchievementState, FarmsState, PriceState } from './types'\nimport { fetchAchievements } from './achievements'\nimport { getCanClaim } from './predictions/helpers'\nimport { transformPool } from './pools/helpers'\nimport { fetchPrices } from './prices'\n\nexport const useFetchPublicData = () => {\n\tconst dispatch = useAppDispatch()\n\tconst { slowRefresh } = useRefresh()\n\tuseEffect(() => {\n\t\tdispatch(fetchFarmsPublicDataAsync())\n\t\tdispatch(fetchFarmsPublicDataAsync())\n\t}, [dispatch, slowRefresh])\n\n\tuseEffect(() => {\n\t\tconst web3 = getWeb3NoAccount()\n\t\tconst interval = setInterval(async () => {\n\t\t\tconst blockNumber = await web3.eth.getBlockNumber()\n\t\t\tdispatch(setBlock(blockNumber))\n\t\t}, 6000)\n\n\t\treturn () => clearInterval(interval)\n\t}, [dispatch])\n}\n\n/**\n * Fetches the \"core\" farm data used globally\n * 251 = CAKE-BNB LP\n * 252 = BUSD-BNB LP\n */\nexport const usePollCoreFarmData = () => {\n\tconst dispatch = useAppDispatch()\n\tconst { fastRefresh } = useRefresh()\n\tconst web3 = getWeb3NoAccount()\n\n\tuseEffect(() => {\n\t\tdispatch(fetchFarmsPublicDataAsync())\n\t}, [dispatch, fastRefresh, web3])\n}\n\nexport const usePollBlockNumber = () => {\n\tconst dispatch = useAppDispatch()\n\tconst web3 = getWeb3NoAccount()\n\n\tuseEffect(() => {\n\t\tconst interval = setInterval(async () => {\n\t\t\tconst blockNumber = await web3.eth.getBlockNumber()\n\t\t\tdispatch(setBlock(blockNumber))\n\t\t}, 6000)\n\n\t\treturn () => clearInterval(interval)\n\t}, [dispatch, web3])\n}\n\n// Farms\n\nexport const useFarms = (): FarmsState => {\n\tconst farms = useSelector((state: State) => state.farms)\n\treturn farms\n}\n\nexport const useFarmFromPid = (pid): Farm => {\n\tconst farm = useSelector((state: State) => state.farms.data.find((f) => f.pid === pid))\n\treturn farm\n}\n\nexport const useFarmFromLpSymbol = (lpSymbol: string): Farm => {\n\tconst farm = useSelector((state: State) => state.farms.data.find((f) => f.lpSymbol === lpSymbol))\n\treturn farm\n}\n\nexport const useFarmUser = (pid) => {\n\tconst farm = useFarmFromPid(pid)\n\n\treturn {\n\t\tallowance: farm.userData ? new BigNumber(farm.userData.allowance) : BIG_ZERO,\n\t\ttokenBalance: farm.userData ? new BigNumber(farm.userData.tokenBalance) : BIG_ZERO,\n\t\tstakedBalance: farm.userData ? new BigNumber(farm.userData.stakedBalance) : BIG_ZERO,\n\t\tearnings: farm.userData ? new BigNumber(farm.userData.earnings) : BIG_ZERO,\n\t}\n}\n\n// Return the base token price for a farm, from a given pid\nexport const useBusdPriceFromPid = (pid: number): BigNumber => {\n\tconst farm = useFarmFromPid(pid)\n\treturn farm && new BigNumber(farm.token.busdPrice)\n}\n\n// Pools\n\nexport const usePools = (account): { pools: Pool[]; userDataLoaded: boolean } => {\n\tconst { fastRefresh } = useRefresh()\n\tconst dispatch = useAppDispatch()\n\tuseEffect(() => {\n\t\tif (account) {\n\t\t\tdispatch(fetchPoolsUserDataAsync(account))\n\t\t}\n\t}, [account, dispatch, fastRefresh])\n\n\tconst { pools, userDataLoaded } = useSelector((state: State) => ({\n\t\tpools: state.pools.data,\n\t\tuserDataLoaded: state.pools.userDataLoaded,\n\t}))\n\treturn { pools: pools.map(transformPool), userDataLoaded }\n}\n\nexport const usePoolFromPid = (sousId: number): Pool => {\n\tconst pool = useSelector((state: State) => state.pools.data.find((p) => p.sousId === sousId))\n\treturn transformPool(pool)\n}\n\nexport const useCakeVault = () => {\n\tconst {\n\t\ttotalShares: totalSharesAsString,\n\t\tpricePerFullShare: pricePerFullShareAsString,\n\t\ttotalCakeInVault: totalCakeInVaultAsString,\n\t\testimatedCakeBountyReward: estimatedCakeBountyRewardAsString,\n\t\ttotalpendingCouponHarvest: totalpendingCouponHarvestAsString,\n\t\tfees: { performanceFee, callFee, withdrawalFee, withdrawalFeePeriod },\n\t\tuserData: {\n\t\t\tisLoading,\n\t\t\tuserShares: userSharesAsString,\n\t\t\tcakeAtLastUserAction: cakeAtLastUserActionAsString,\n\t\t\tlastDepositedTime,\n\t\t\tlastUserActionTime,\n\t\t},\n\t} = useSelector((state: State) => state.pools.cakeVault)\n\n\tconst estimatedCakeBountyReward = useMemo(() => {\n\t\treturn new BigNumber(estimatedCakeBountyRewardAsString)\n\t}, [estimatedCakeBountyRewardAsString])\n\n\tconst totalpendingCouponHarvest = useMemo(() => {\n\t\treturn new BigNumber(totalpendingCouponHarvestAsString)\n\t}, [totalpendingCouponHarvestAsString])\n\n\tconst totalShares = useMemo(() => {\n\t\treturn new BigNumber(totalSharesAsString)\n\t}, [totalSharesAsString])\n\n\tconst pricePerFullShare = useMemo(() => {\n\t\treturn new BigNumber(pricePerFullShareAsString)\n\t}, [pricePerFullShareAsString])\n\n\tconst totalCakeInVault = useMemo(() => {\n\t\treturn new BigNumber(totalCakeInVaultAsString)\n\t}, [totalCakeInVaultAsString])\n\n\tconst userShares = useMemo(() => {\n\t\treturn new BigNumber(userSharesAsString)\n\t}, [userSharesAsString])\n\n\tconst cakeAtLastUserAction = useMemo(() => {\n\t\treturn new BigNumber(cakeAtLastUserActionAsString)\n\t}, [cakeAtLastUserActionAsString])\n\n\treturn {\n\t\ttotalShares,\n\t\tpricePerFullShare,\n\t\ttotalCakeInVault,\n\t\testimatedCakeBountyReward,\n\t\ttotalpendingCouponHarvest,\n\t\tfees: {\n\t\t\tperformanceFee,\n\t\t\tcallFee,\n\t\t\twithdrawalFee,\n\t\t\twithdrawalFeePeriod,\n\t\t},\n\t\tuserData: {\n\t\t\tisLoading,\n\t\t\tuserShares,\n\t\t\tcakeAtLastUserAction,\n\t\t\tlastDepositedTime,\n\t\t\tlastUserActionTime,\n\t\t},\n\t}\n}\n\n// Achievements\n\nexport const useFetchAchievements = () => {\n\tconst { account } = useWeb3React()\n\tconst dispatch = useAppDispatch()\n\n\tuseEffect(() => {\n\t\tif (account) {\n\t\t\tdispatch(fetchAchievements(account))\n\t\t}\n\t}, [account, dispatch])\n}\n\nexport const useAchievements = () => {\n\tconst achievements: AchievementState['data'] = useSelector(\n\t\t(state: State) => state.achievements.data,\n\t)\n\treturn achievements\n}\n\nexport const usePriceReikBUSD = (): BigNumber => {\n\tconst reikBUSDFarm = useFarmFromPid(1)\n\treturn reikBUSDFarm.tokenPriceVsQuote ? new BigNumber(reikBUSDFarm.tokenPriceVsQuote) : BIG_ZERO\n}\n\n// Block\nexport const useBlock = () => {\n\treturn useSelector((state: State) => state.block)\n}\n\nexport const useInitialBlock = () => {\n\treturn useSelector((state: State) => state.block.initialBlock)\n}\n\n// Predictions\nexport const useIsHistoryPaneOpen = () => {\n\treturn useSelector((state: State) => state.predictions.isHistoryPaneOpen)\n}\n\nexport const useIsChartPaneOpen = () => {\n\treturn useSelector((state: State) => state.predictions.isChartPaneOpen)\n}\n\nexport const useGetRounds = () => {\n\treturn useSelector((state: State) => state.predictions.rounds)\n}\n\nexport const useGetSortedRounds = () => {\n\tconst roundData = useGetRounds()\n\treturn orderBy(Object.values(roundData), ['epoch'], ['asc'])\n}\n\nexport const useGetCurrentEpoch = () => {\n\treturn useSelector((state: State) => state.predictions.currentEpoch)\n}\n\nexport const useGetIntervalBlocks = () => {\n\treturn useSelector((state: State) => state.predictions.intervalBlocks)\n}\n\nexport const useGetBufferBlocks = () => {\n\treturn useSelector((state: State) => state.predictions.bufferBlocks)\n}\n\nexport const useGetTotalIntervalBlocks = () => {\n\tconst intervalBlocks = useGetIntervalBlocks()\n\tconst bufferBlocks = useGetBufferBlocks()\n\treturn intervalBlocks + bufferBlocks\n}\n\nexport const useGetRound = (id: string) => {\n\tconst rounds = useGetRounds()\n\treturn rounds[id]\n}\n\nexport const useGetCurrentRound = () => {\n\tconst currentEpoch = useGetCurrentEpoch()\n\tconst rounds = useGetSortedRounds()\n\treturn rounds.find((round) => round.epoch === currentEpoch)\n}\n\nexport const useGetPredictionsStatus = () => {\n\treturn useSelector((state: State) => state.predictions.status)\n}\n\nexport const useGetHistoryFilter = () => {\n\treturn useSelector((state: State) => state.predictions.historyFilter)\n}\n\nexport const useGetCurrentRoundBlockNumber = () => {\n\treturn useSelector((state: State) => state.predictions.currentRoundStartBlockNumber)\n}\n\nexport const useGetMinBetAmount = () => {\n\tconst minBetAmount = useSelector((state: State) => state.predictions.minBetAmount)\n\treturn useMemo(() => new BigNumber(minBetAmount), [minBetAmount])\n}\n\nexport const useGetIsFetchingHistory = () => {\n\treturn useSelector((state: State) => state.predictions.isFetchingHistory)\n}\n\nexport const useGetHistory = () => {\n\treturn useSelector((state: State) => state.predictions.history)\n}\n\nexport const useGetHistoryByAccount = (account: string) => {\n\tconst bets = useGetHistory()\n\treturn bets ? bets[account] : []\n}\n\nexport const useGetBetByRoundId = (account: string, roundId: string) => {\n\tconst bets = useSelector((state: State) => state.predictions.bets)\n\n\tif (!bets[account]) {\n\t\treturn null\n\t}\n\n\tif (!bets[account][roundId]) {\n\t\treturn null\n\t}\n\n\treturn bets[account][roundId]\n}\n\nexport const useBetCanClaim = (account: string, roundId: string) => {\n\tconst bet = useGetBetByRoundId(account, roundId)\n\n\tif (!bet) {\n\t\treturn false\n\t}\n\n\treturn getCanClaim(bet)\n}\n\nexport const useGetLastOraclePrice = (): BigNumber => {\n\tconst lastOraclePrice = useSelector((state: State) => state.predictions.lastOraclePrice)\n\treturn new BigNumber(lastOraclePrice)\n}\n\n// Prices\nexport const useFetchPriceList = () => {\n\tconst { slowRefresh } = useRefresh()\n\tconst dispatch = useAppDispatch()\n\n\tuseEffect(() => {\n\t\tdispatch(fetchPrices())\n\t}, [dispatch, slowRefresh])\n}\n\nexport const useGetApiPrices = () => {\n\tconst prices: PriceState['data'] = useSelector((state: State) => state.prices.data)\n\treturn prices\n}\n\nexport const useGetApiPrice = (address: string) => {\n\tconst prices = useGetApiPrices()\n\n\tif (!prices) {\n\t\treturn null\n\t}\n\n\treturn prices[address.toLowerCase()]\n}\n\nexport const usePriceCouponkBUSD = (): BigNumber => {\n\tconst couponkBUSDFarm = useFarmFromPid(3)\n\treturn new BigNumber(couponkBUSDFarm.tokenPriceVsQuote)\n}\n","const tokens = {\n\trei: {\n\t\tsymbol: 'REI',\n\t\tprojectLink: 'https://www.binance.com/',\n\t},\n\tcoupon: {\n\t\tsymbol: 'COUPON',\n\t\taddress: {\n\t\t\t55555: '0xbC09220a8e461880DBE5517ecF53bC1b12cAa05D',\n\t\t},\n\t\tdecimals: 18,\n\t\tprojectLink: 'https://rei.foodcourt.finance/',\n\t},\n\twrei: {\n\t\tsymbol: 'WREI',\n\t\taddress: {\n\t\t\t55555: '0x7539595ebdA66096e8913a24Cc3C8c0ba1Ec79a0',\n\t\t},\n\t\tdecimals: 18,\n\t\tprojectLink: 'https://rei.foodcourt.finance/',\n\t},\n\tkBUSD: {\n\t\tsymbol: 'kBUSD',\n\t\taddress: {\n\t\t\t55555: '0xDD2bb4e845Bd97580020d8F9F58Ec95Bf549c3D9',\n\t\t},\n\t\tdecimals: 18,\n\t\tprojectLink: 'https://rei.foodcourt.finance/',\n\t},\n\tkCRAFT: {\n\t\tsymbol: 'kCRAFT',\n\t\taddress: {\n\t\t\t55555: '0xf590f9f8e73580008f300F28233579155A043428',\n\t\t},\n\t\tdecimals: 18,\n\t\tprojectLink: 'https://aleswap.finance/',\n\t},\n\tnear: {\n\t\tsymbol: 'NEAR',\n\t\taddress: {\n\t\t\t55555: '0x1de000831c053ea30f6b6760d9898d0bb830c1d9'\n\t\t},\n\t\tdecimals: 24,\n\t},\n\teth_aurora: {\n\t\tsymbol: 'ETH (AURORA)',\n\t\taddress: {\n\t\t\t55555: '0xa969c32977589210e0234144410fb2d21867d215'\n\t\t},\n\t\tdecimals: 18,\n\t},\n\tbnb: {\n\t\tsymbol: 'BNB',\n\t\taddress: {\n\t\t\t55555: '0xf8ab4aaf70cef3f3659d3f466e35dc7ea10d4a5d'\n\t\t},\n\t\tdecimals: 18,\n\t},\n\tkub: {\n\t\tsymbol: 'KUB',\n\t\taddress: {\n\t\t\t55555: '0x2ee5c5146368e4b2569b25e01dcc9514757da55e'\n\t\t},\n\t\tdecimals: 18,\n\t},\n\tmatic: {\n\t\tsymbol: 'MATIC',\n\t\taddress: {\n\t\t\t55555: '0x669f2c01f723821409ce053c288bfa96914a0902'\n\t\t},\n\t\tdecimals: 18,\n\t},\n\tusdc_bsc: {\n\t\tsymbol: 'USDC (BSC)',\n\t\taddress: {\n\t\t\t55555: '0xf1752618beed1aff57df741152d2de23e408730f'\n\t\t},\n\t\tdecimals: 18,\n\t},\n\tusdc_matic: {\n\t\tsymbol: 'USDC (Polygon)',\n\t\taddress: {\n\t\t\t55555: '0xe9bac22ef991e30435109a65b8fa65117158900d'\n\t\t},\n\t\tdecimals: 6,\n\t},\n\tusdc_aurora: {\n\t\tsymbol: 'USDC (AURORA)',\n\t\taddress: {\n\t\t\t55555: '0xc409591bbf4fa3710b8ece11d8753539d13a6c10'\n\t\t},\n\t\tdecimals: 6,\n\t},\n\tkuma: {\n\t\tsymbol: 'KUMA',\n\t\taddress: {\n\t\t\t55555: '0xbf2C56466213F553Fcf52810fE360dFe29E88471'\n\t\t},\n\t\tdecimals: 18\n\t},\n\tkcs: {\n\t\tsymbol: 'KCS',\n\t\taddress: {\n\t\t\t55555: '0x8cBa0843Bc5f3Cb64FA9c1A164d8F3E630Ff3231'\n\t\t},\n\t\tdecimals: 18\n\t},\n\tkryc: {\n\t\tsymbol: 'kRYC',\n\t\taddress: {\n\t\t\t55555: '0x64271453023b421D2c4CAd01e2Fa17605ea40D5d'\n\t\t},\n\t\tdecimals: 18\n\t}\n}\n\nexport default tokens\n","import React, { useState, useRef, useEffect } from 'react'\nimport styled, { css } from 'styled-components'\nimport { ArrowDropDownIcon, Text } from '../../uikit-foodcourt'\n\nconst DropDownHeader = styled.div`\n\twidth: 100%;\n\theight: 40px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 0px 16px;\n\tbox-shadow: ${({ theme }) => theme.shadows.inset};\n\tborder: 1px solid ${({ theme }) => theme.colors.inputSecondary};\n\tborder-radius: 16px;\n\tbackground: ${({ theme }) => theme.colors.input};\n\ttransition: border-radius 0.15s;\n`\n\nconst DropDownListContainer = styled.div`\n\tmin-width: 136px;\n\theight: 0;\n\tposition: absolute;\n\toverflow: hidden;\n\tbackground: ${({ theme }) => theme.colors.input};\n\tz-index: ${({ theme }) => theme.zIndices.dropdown};\n\ttransition: transform 0.15s, opacity 0.15s;\n\ttransform: scaleY(0);\n\ttransform-origin: top;\n\topacity: 0;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tmin-width: 168px;\n\t}\n`\n\nconst DropDownContainer = styled.div<{ isOpen: boolean; width: number; height: number }>`\n\tcursor: pointer;\n\twidth: ${({ width }) => width}px;\n\tposition: relative;\n\tbackground: ${({ theme }) => theme.colors.input};\n\tborder-radius: 16px;\n\theight: 40px;\n\tmin-width: 136px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tmin-width: 168px;\n\t}\n\n\t${(props) =>\n\t\tprops.isOpen &&\n\t\tcss`\n\t\t\t${DropDownHeader} {\n\t\t\t\tborder-bottom: 1px solid ${({ theme }) => theme.colors.inputSecondary};\n\t\t\t\tbox-shadow: ${({ theme }) => theme.tooltip.boxShadow};\n\t\t\t\tborder-radius: 16px 16px 0 0;\n\t\t\t}\n\n\t\t\t${DropDownListContainer} {\n\t\t\t\theight: auto;\n\t\t\t\ttransform: scaleY(1);\n\t\t\t\topacity: 1;\n\t\t\t\tborder: 1px solid ${({ theme }) => theme.colors.inputSecondary};\n\t\t\t\tborder-top-width: 0;\n\t\t\t\tborder-radius: 0 0 16px 16px;\n\t\t\t\tbox-shadow: ${({ theme }) => theme.tooltip.boxShadow};\n\t\t\t}\n\t\t`}\n\n\tsvg {\n\t\tposition: absolute;\n\t\tright: 16px;\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t}\n`\n\nconst DropDownList = styled.ul`\n\tpadding: 0;\n\tmargin: 0;\n\tbox-sizing: border-box;\n\tz-index: ${({ theme }) => theme.zIndices.dropdown};\n`\n\nconst ListItem = styled.li`\n\tlist-style: none;\n\tpadding: 8px 16px;\n\t&:hover {\n\t\tbackground: ${({ theme }) => theme.colors.inputSecondary};\n\t}\n`\n\nexport interface SelectProps {\n\toptions: OptionProps[]\n\tonChange?: (option: OptionProps) => void\n}\n\nexport interface OptionProps {\n\tlabel: string\n\tvalue: any\n}\n\nconst Select: React.FunctionComponent = ({ options, onChange }) => {\n\tconst containerRef = useRef(null)\n\tconst dropdownRef = useRef(null)\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst [selectedOption, setSelectedOption] = useState(options[0])\n\tconst [containerSize, setContainerSize] = useState({ width: 0, height: 0 })\n\n\tconst toggling = () => setIsOpen(!isOpen)\n\n\tconst onOptionClicked = (option: OptionProps) => () => {\n\t\tsetSelectedOption(option)\n\t\tsetIsOpen(false)\n\n\t\tif (onChange) {\n\t\t\tonChange(option)\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tsetContainerSize({\n\t\t\twidth: dropdownRef.current.offsetWidth, // Consider border\n\t\t\theight: dropdownRef.current.offsetHeight,\n\t\t})\n\t}, [])\n\n\treturn (\n\t\t\n\t\t\t{containerSize.width !== 0 && (\n\t\t\t\t\n\t\t\t\t\t{selectedOption.label}\n\t\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{options.map((option) =>\n\t\t\t\t\t\toption.label !== selectedOption.label ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{option.label}\n\t\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\n\t\t\n\t)\n}\n\nexport default Select\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\ninterface LogoProps extends SvgProps {\n\tisDark: boolean\n}\n\nconst Logo: React.FC = ({ isDark, ...props }) => {\n\tconst textColor = isDark ? '#FFFFFF' : '#000000'\n\treturn (\n\t\t\n\t)\n}\n\nexport default React.memo(Logo, (prev, next) => prev.isDark === next.isDark)\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import React from 'react'\nimport Svg from '../../../components/Svg/Svg'\nimport { SvgProps } from '../../../components/Svg/types'\n\nconst Icon: React.FC = (props) => (\n\t\n\t\t\n\t\n)\n\nexport default Icon\n","import styled from 'styled-components'\nimport Button from '../../../components/Button/Button'\n\nconst MenuButton = styled(Button)`\n\tcolor: ${({ theme }) => theme.colors.text};\n\tpadding: 0 8px;\n\tborder-radius: 8px;\n`\nMenuButton.defaultProps = {\n\tvariant: 'text',\n\tsize: 'sm',\n}\n\nexport default MenuButton\n","import React from 'react'\nimport styled, { keyframes } from 'styled-components'\nimport { Link } from 'react-router-dom'\nimport { LogoIcon } from '../../../components/Svg'\nimport Flex from '../../../components/Box/Flex'\nimport { HamburgerIcon, HamburgerCloseIcon, LogoIcon as LogoWithText } from '../icons'\nimport MenuButton from './MenuButton'\n\ninterface Props {\n\tisPushed: boolean\n\tisDark: boolean\n\ttogglePush: () => void\n\thref: string\n}\n\nconst blink = keyframes`\n 0%, 100% { transform: scaleY(1); }\n 50% { transform: scaleY(0.1); }\n`\n\nconst StyledLink = styled(Link)`\n\tdisplay: flex;\n\talign-items: center;\n\t.mobile-icon {\n\t\twidth: 32px;\n\t\t${({ theme }) => theme.mediaQueries.nav} {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\t.desktop-icon {\n\t\twidth: 160px;\n\t\tdisplay: none;\n\t\t${({ theme }) => theme.mediaQueries.nav} {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\t.right-eye {\n\t\tanimation-delay: 20ms;\n\t}\n\t&:hover {\n\t\t.left-eye,\n\t\t.right-eye {\n\t\t\ttransform-origin: center 60%;\n\t\t\tanimation-name: ${blink};\n\t\t\tanimation-duration: 350ms;\n\t\t\tanimation-iteration-count: 1;\n\t\t}\n\t}\n`\n\nconst Logo: React.FC = ({ isPushed, togglePush, isDark, href }) => {\n\tconst isAbsoluteUrl = href.startsWith('http')\n\tconst innerLogo = (\n\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\t\t{isPushed ? (\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\n\t\t\t
\n\n\t\t\t{isAbsoluteUrl ? (\n\t\t\t\t\n\t\t\t\t\t{innerLogo}\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t{innerLogo}\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t)\n}\n\nexport default React.memo(\n\tLogo,\n\t(prev, next) => prev.isPushed === next.isPushed && prev.isDark === next.isDark,\n)\n","import { LinkStatus } from './types'\n\nexport const status = {\n\tLIVE: {\n\t\ttext: 'LIVE',\n\t\tcolor: 'failure',\n\t},\n\tSOON: {\n\t\ttext: 'SOON',\n\t\tcolor: 'warning',\n\t},\n\tNEW: {\n\t\ttext: 'NEW',\n\t\tcolor: 'success',\n\t},\n}\n\nexport const links = [\n\t{\n\t\tlabel: 'Home',\n\t\ticon: 'HomeIcon',\n\t\thref: '/',\n\t},\n\t{\n\t\tlabel: 'Trade',\n\t\ticon: 'TradeIcon',\n\t\titems: [\n\t\t\t{\n\t\t\t\tlabel: 'Exchange',\n\t\t\t\thref: 'https://reix.foodcourt.finance',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Liquidity',\n\t\t\t\thref: 'https://reix.foodcourt.finance/#/pool',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Wrap',\n\t\t\t\thref: 'https://reix.foodcourt.finance/#/wrap',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tlabel: 'Farms',\n\t\ticon: 'FarmIcon',\n\t\thref: '/farms',\n\t\tstatus: status.LIVE,\n\t},\n\t{\n\t\tlabel: 'Pools',\n\t\ticon: 'PoolIcon',\n\t\thref: '/syrup',\n\t},\n\t{\n\t\tlabel: 'Lottery',\n\t\ticon: 'TicketIcon',\n\t\thref: '/lottery',\n\t},\n\t{\n\t\tlabel: 'NFT',\n\t\ticon: 'NftIcon',\n\t\thref: '/nft',\n\t},\n\t{\n\t\tlabel: 'Team Battle',\n\t\ticon: 'TeamBattleIcon',\n\t\thref: '/competition',\n\t\tstatus: status.SOON,\n\t},\n\t{\n\t\tlabel: 'Profile & Teams',\n\t\ticon: 'GroupsIcon',\n\t\tstatus: status.LIVE,\n\t\titems: [\n\t\t\t{\n\t\t\t\tlabel: 'Leaderboard',\n\t\t\t\thref: '/teams',\n\t\t\t\tstatus: status.NEW,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'YourProfile',\n\t\t\t\thref: '/',\n\t\t\t},\n\t\t],\n\t\tcalloutClass: 'rainbow',\n\t},\n\t{\n\t\tlabel: 'Info',\n\t\ticon: 'InfoIcon',\n\t\titems: [\n\t\t\t{\n\t\t\t\tlabel: 'Overview',\n\t\t\t\thref: 'https://pancakeswap.info',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Tokens',\n\t\t\t\thref: 'https://pancakeswap.info/tokens',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Pairs',\n\t\t\t\thref: 'https://pancakeswap.info/pairs',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Accounts',\n\t\t\t\thref: 'https://pancakeswap.info/accounts',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tlabel: 'IFO',\n\t\ticon: 'IfoIcon',\n\t\titems: [\n\t\t\t{\n\t\t\t\tlabel: 'Next',\n\t\t\t\thref: '/ifo',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'History',\n\t\t\t\thref: '/ifo/history',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tlabel: 'More',\n\t\ticon: 'MoreIcon',\n\t\titems: [\n\t\t\t{\n\t\t\t\tlabel: 'Voting',\n\t\t\t\thref: 'https://voting.pancakeswap.finance',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Github',\n\t\t\t\thref: 'https://github.com/pancakeswap',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Docs',\n\t\t\t\thref: 'https://docs.pancakeswap.finance',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Blog',\n\t\t\t\thref: 'https://pancakeswap.medium.com',\n\t\t\t},\n\t\t],\n\t},\n]\n\nexport const socials = [\n\t{\n\t\tlabel: 'Telegram',\n\t\ticon: 'TelegramIcon',\n\t\thref: 'https://t.me/foodcourtfinance',\n\t\titems: [\n\t\t\t{\n\t\t\t\tlabel: 'Annoucement',\n\t\t\t\thref: 'https://t.me/foodcourtfinance',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Telegram English',\n\t\t\t\thref: 'https://t.me/foodcourtofficial',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Telegram Español',\n\t\t\t\thref: 'https://t.me/foodcourtesen',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tlabel: 'Twitter',\n\t\ticon: 'Book',\n\t\thref: 'https://foodcourtofficial.gitbook.io/foodcourt/',\n\t},\n]\n\nexport const MENU_HEIGHT = 64\nexport const MENU_ENTRY_HEIGHT = 48\nexport const SIDEBAR_WIDTH_FULL = 240\nexport const SIDEBAR_WIDTH_REDUCED = 56\n","import React from 'react'\nimport styled, { keyframes, DefaultTheme } from 'styled-components'\nimport { Text } from '../../../components/Text'\nimport { Colors } from '../../../theme/types'\nimport { MENU_ENTRY_HEIGHT } from '../config'\n\nexport interface Props {\n\tsecondary?: boolean\n\tisActive?: boolean\n\ttheme: DefaultTheme\n}\n\nconst rainbowAnimation = keyframes`\n 0%,\n 100% {\n background-position: 0 0;\n }\n 50% {\n background-position: 100% 0;\n }\n`\n\nconst LinkLabel = styled.div<{ isPushed: boolean }>`\n\tcolor: ${({ isPushed, theme }) => (isPushed ? theme.colors.textSubtle : 'transparent')};\n\ttransition: color 0.4s;\n\tflex-grow: 1;\n`\n\nconst MenuEntry = styled.div`\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n\theight: ${MENU_ENTRY_HEIGHT}px;\n\tpadding: ${({ secondary }) => (secondary ? '0 32px' : '0 16px')};\n\tfont-size: ${({ secondary }) => (secondary ? '14px' : '16px')};\n\tbackground-color: ${({ secondary, theme }) =>\n\t\tsecondary ? theme.colors.background : 'transparent'};\n\tcolor: ${({ theme }) => theme.colors.textSubtle};\n\tbox-shadow: ${({ isActive, theme }) =>\n\t\tisActive ? `inset 4px 0px 0px ${theme.colors.primary}` : 'none'};\n\n\ta {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n\n\tsvg {\n\t\tfill: ${({ theme }) => theme.colors.textSubtle};\n\t}\n\n\t&:hover {\n\t\tbackground-color: ${({ theme }) => theme.colors.tertiary};\n\t}\n\n\t// Safari fix\n\tflex-shrink: 0;\n\n\t&.rainbow {\n\t\tbackground-clip: text;\n\t\tanimation: ${rainbowAnimation} 3s ease-in-out infinite;\n\t\tbackground: ${({ theme }) => theme.colors.gradients.bubblegum};\n\t\tbackground-size: 400% 100%;\n\t}\n`\nMenuEntry.defaultProps = {\n\tsecondary: false,\n\tisActive: false,\n\trole: 'button',\n}\n\nconst LinkStatus = styled(Text)<{ color: keyof Colors }>`\n\tborder-radius: ${({ theme }) => theme.radii.default};\n\tpadding: 0 8px;\n\tborder: 2px solid;\n\tborder-color: ${({ theme, color }) => theme.colors[color]};\n\tbox-shadow: none;\n\tcolor: ${({ theme, color }) => theme.colors[color]};\n\tmargin-left: 8px;\n`\n\nconst LinkLabelMemo = React.memo(LinkLabel, (prev, next) => prev.isPushed === next.isPushed)\n\nexport { MenuEntry, LinkStatus, LinkLabelMemo as LinkLabel }\n","import React, { ReactNode, useState } from 'react'\nimport styled from 'styled-components'\nimport { MENU_ENTRY_HEIGHT } from '../config'\nimport { LinkLabel, LinkStatus as LinkStatusComponent, MenuEntry } from './MenuEntry'\nimport { LinkStatus, PushedProps } from '../types'\nimport { ArrowDropDownIcon, ArrowDropUpIcon } from '../../../components/Svg'\n\ninterface Props extends PushedProps {\n\tlabel: string\n\tstatus?: LinkStatus\n\ticon: React.ReactElement\n\tinitialOpenState?: boolean\n\tclassName?: string\n\tchildren: ReactNode\n\tisActive?: boolean\n}\n\nconst Container = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\t// Safari fix\n\tflex-shrink: 0;\n`\n\nconst AccordionContent = styled.div<{ isOpen: boolean; isPushed: boolean; maxHeight: number }>`\n\tmax-height: ${({ isOpen, maxHeight }) => (isOpen ? `${maxHeight}px` : 0)};\n\ttransition: max-height 0.3s ease-out;\n\toverflow: hidden;\n\tborder-color: ${({ isOpen, isPushed }) =>\n\t\tisOpen && isPushed ? 'rgba(133, 133, 133, 0.1)' : 'transparent'};\n\tborder-style: solid;\n\tborder-width: 1px 0;\n`\n\nconst Accordion: React.FC = ({\n\tlabel,\n\tstatus,\n\ticon,\n\tisPushed,\n\tpushNav,\n\tinitialOpenState = false,\n\tchildren,\n\tclassName,\n\tisActive,\n}) => {\n\tconst [isOpen, setIsOpen] = useState(initialOpenState)\n\tconst handleClick = () => {\n\t\tif (isPushed) {\n\t\t\tsetIsOpen((prevState) => !prevState)\n\t\t} else {\n\t\t\tpushNav(true)\n\t\t\tsetIsOpen(true)\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{icon}\n\t\t\t\t{label}\n\t\t\t\t{status && (\n\t\t\t\t\t\n\t\t\t\t\t\t{status.text}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{isOpen ? : }\n\t\t\t\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t)\n}\n\nexport default Accordion\n","import React, { AnchorHTMLAttributes } from 'react'\nimport { NavLink } from 'react-router-dom'\n\nconst MenuLink: React.FC> = ({ href, ...otherProps }) => {\n\tconst isHttpLink = href?.startsWith('http')\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tconst Tag: any = isHttpLink ? 'a' : NavLink\n\tconst props = isHttpLink ? { href } : { to: href }\n\treturn \n}\n\nexport default MenuLink\n","import React from 'react'\nimport styled from 'styled-components'\nimport { useLocation } from 'react-router-dom'\nimport { SvgProps } from '../../../components/Svg'\nimport * as IconModule from '../icons'\nimport Accordion from './Accordion'\nimport { MenuEntry, LinkLabel, LinkStatus } from './MenuEntry'\nimport MenuLink from './MenuLink'\nimport { PanelProps, PushedProps } from '../types'\nimport classMap from 'classnames'\n\ninterface Props extends PanelProps, PushedProps {\n\tisMobile: boolean\n}\n\nconst Icons = (IconModule as unknown) as { [key: string]: React.FC }\n\nconst Container = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n\toverflow-x: hidden;\n\theight: 100%;\n\tpadding: 0 24px;\n`\n\nconst MenuButton = styled.div``\n\nconst PanelBody: React.FC = ({ isPushed, pushNav, isMobile, links }) => {\n\tconst location = useLocation()\n\n\t// Close the menu when a user clicks a link on mobile\n\tconst handleClick = isMobile ? () => pushNav(false) : undefined\n\n\treturn (\n\t\t\n\t\t\t{links.map((entry) => {\n\t\t\t\tconst Icon = Icons[entry.icon]\n\t\t\t\tconst iconElement = Icon ? : <>\n\t\t\t\tconst calloutClass = entry.calloutClass ? entry.calloutClass : undefined\n\n\t\t\t\tif (entry.items) {\n\t\t\t\t\tconst itemsMatchIndex = entry.items.findIndex((item) => item.href === location.pathname)\n\t\t\t\t\tconst initialOpenState =\n\t\t\t\t\t\tentry.initialOpenState === true ? entry.initialOpenState : itemsMatchIndex >= 0\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t item.href === location.pathname)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{isPushed &&\n\t\t\t\t\t\t\t\tentry.items.map((item) => (\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{item.label}\n\t\t\t\t\t\t\t\t\t\t\t{item.status && (\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{item.status.text}\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\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn (\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
{entry.label}
\n\t\t\t\t\t\t\t\t{entry.subtitle &&
{entry.subtitle}
}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{/* NOTE: Spoon menu image */}\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\n\n\t\t\t\t\t\t{/* NOTE: Fork menu image */}\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\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t})}\n\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
audited by
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\"inspex.png\"\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\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
Fullnode service by
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\"killswitch.png\"\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t)\n}\n\nexport default PanelBody\n","import React from 'react'\nimport { SvgProps } from '../../../components/Svg'\nimport Flex from '../../../components/Box/Flex'\nimport Dropdown from '../../../components/Dropdown/Dropdown'\nimport Link from '../../../components/Link/Link'\nimport * as IconModule from '../icons'\nimport { socials } from '../config'\n\nconst Icons = (IconModule as unknown) as { [key: string]: React.FC }\n\nconst SocialLinks: React.FC = () => (\n\t\n\t\t{socials.map((social, index) => {\n\t\t\tconst Icon = Icons[social.icon]\n\t\t\tconst iconProps = { width: '24px', color: 'textSubtle', style: { cursor: 'pointer' } }\n\t\t\tconst mr = index < socials.length - 1 ? '24px' : 0\n\t\t\tif (social.items) {\n\t\t\t\treturn (\n\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{social.items.map((item) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{item.label}\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\treturn (\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 React.memo(SocialLinks, () => true)\n","import React, { useEffect } from 'react'\n\nconst CouponPrice = ({\n\tprice = 1.0,\n\ttheme = 'white',\n}: {\n\tprice?: number\n\ttheme?: 'white' | 'primary'\n}): JSX.Element => {\n\tconst style =\n\t\ttheme === 'white'\n\t\t\t? { backgroundColor: 'white', boxShadow: '0px 2px 6px rgba(0,0,0,0.1)' }\n\t\t\t: { backgroundColor: 'var(--color-primary-100)' }\n\n\treturn (\n\t\t<>\n\t\t\t
{\n\t\t\t\twindow.open(\"https://dex.guru/token/0x084bb94e93891d74579b54ab63ed24c4ef9cd5ef-bsc\");\n\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
{`$${price.toFixed(3)}`}
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t)\n}\n\nexport default CouponPrice\n","import React, { useMemo } from 'react'\nimport {\n\tCheckmarkCircleIcon,\n\tErrorIcon,\n\tFlex,\n\tLinkExternal,\n\tText,\n\tModal,\n\tButton,\n} from '../../index'\n\ntype ChainSelectModalProps = {\n\tonDismiss?: () => void\n}\n\nconst defaultOnDismiss = () => null\n\nconst ChainSelectModal = ({ onDismiss = defaultOnDismiss }: ChainSelectModalProps) => (\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\"REI\"\n\t\t\t\t
REI
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
Active
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\"BSC\"\n\t\t\t\t
POLYGON
\n\t\t\t\t
\n\t\t\t\t\t
Coming soon
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t\n)\n\nexport default ChainSelectModal\n","import React from 'react'\nimport ChainSelectModal from './ChainSelectModal'\nimport { useModal } from '../../index'\n\nconst ChainSelectButton = ({ theme = 'white' }: { theme?: 'white' | 'primary' }): JSX.Element => {\n\tconst [onPresentChainSelect] = useModal()\n\n\tconst style =\n\t\ttheme === 'white'\n\t\t\t? { backgroundColor: 'white', boxShadow: '0px 2px 6px rgba(0,0,0,0.1)' }\n\t\t\t: { backgroundColor: 'var(--color-primary-100)' }\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
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
{process.env.REACT_APP_CHAIN_NAME}
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t)\n}\n\nexport default ChainSelectButton\n","import React from 'react'\nimport styled from 'styled-components'\nimport { CogIcon } from '../../../components/Svg'\nimport IconButton from '../../../components/Button/IconButton'\nimport { MENU_ENTRY_HEIGHT } from '../config'\nimport { PanelProps, PushedProps } from '../types'\nimport ThemeSwitcher from './ThemeSwitcher'\nimport SocialLinks from './SocialLinks'\nimport LangSelector from './LangSelector'\nimport CouponPrice from '../../../components/CouponPrice'\nimport ChainSelectButton from '../../../components/ChainSelectButton'\n\ninterface Props extends PanelProps, PushedProps {}\n\nconst Container = styled.div`\n\tflex: none;\n\tpadding: 8px 4px;\n\tbackground-color: ${({ theme }) => theme.nav.background};\n\tborder-top: solid 2px rgba(133, 133, 133, 0.1);\n`\n\nconst SettingsEntry = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\theight: ${MENU_ENTRY_HEIGHT}px;\n\tpadding: 0 8px;\n`\n\nconst SocialEntry = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\theight: ${MENU_ENTRY_HEIGHT}px;\n\tpadding: 0 16px;\n`\n\nconst PanelFooter: React.FC = ({\n\tisPushed,\n\tpushNav,\n\ttoggleTheme,\n\tisDark,\n\tcouponPriceUsd,\n\tcurrentLang,\n\tlangs,\n\tsetLang,\n}) => (\n\t\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\n\t\t{process.env.REACT_APP_ENABLE_COUPON_UI === 'true' && (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{process.env.REACT_APP_ENABLE_COUPON_UI === '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
\n\t\t\t
\n\t\t)}\n\t\t{/* */}\n\t\t{/* \n\t\t\t\t */}\n\t\t{/* */}\n\t\n)\n\nexport default PanelFooter\n","import React from 'react'\nimport styled from 'styled-components'\nimport PanelBody from './PanelBody'\nimport PanelFooter from './PanelFooter'\nimport { SIDEBAR_WIDTH_REDUCED, SIDEBAR_WIDTH_FULL } from '../config'\nimport { PanelProps, PushedProps } from '../types'\n\ninterface Props extends PanelProps, PushedProps {\n\tshowMenu: boolean\n\tisMobile: boolean\n}\n\nconst StyledPanel = styled.div<{ isPushed: boolean; showMenu: boolean }>`\n\tposition: fixed;\n\tpadding-top: ${({ showMenu }) => (showMenu ? '80px' : 0)};\n\ttop: ${({ showMenu }) => (showMenu ? 'var(--body-gap)' : 0)};\n\tleft: var(--body-gap);\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tflex-shrink: 0;\n\tbackground-color: white;\n\twidth: ${({ isPushed }) => (isPushed ? `${SIDEBAR_WIDTH_FULL}px` : 0)};\n\theight: 100vh;\n\ttransition: padding-top 0.2s, width 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n\tborder-right: ${({ isPushed }) => (isPushed ? '2px solid rgba(133, 133, 133, 0.1)' : 0)};\n\tz-index: 11;\n\toverflow: ${({ isPushed }) => (isPushed ? 'initial' : 'hidden')};\n\ttransform: translate3d(0, 0, 0);\n\t${({ isPushed }) => !isPushed && 'white-space: nowrap;'};\n\n\t${({ theme }) => theme.mediaQueries.nav} {\n\t\tborder-right: 2px solid rgba(133, 133, 133, 0.1);\n\t\twidth: ${({ isPushed }) => `${isPushed ? SIDEBAR_WIDTH_FULL : SIDEBAR_WIDTH_REDUCED}px`};\n\t}\n\n\tborder-top-left-radius: ${({ showMenu }) => (showMenu ? 'var(--top-border-radius)' : 0)};\n\n\t@media screen and (min-width: 968px) {\n\t\twidth: ${SIDEBAR_WIDTH_FULL}px;\n\t}\n`\n\nconst Panel: React.FC = (props) => {\n\tconst { isPushed, showMenu } = props\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\n\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\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\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\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\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\n\t\t\t\n\n\t\t\t\n\t\t
\n\t)\n}\n\nexport default Panel\n","import React from 'react'\nimport Button from '../../../components/Button/Button'\nimport { useWalletModal } from '../../WalletModal'\nimport { Login } from '../../WalletModal/types'\n\ninterface Props {\n\taccount?: string\n\tlogin: Login\n\tlogout: () => void\n}\n\nconst UserBlock: React.FC = ({ account, login, logout }) => {\n\tconst { onPresentConnectModal, onPresentAccountModal } = useWalletModal(login, logout, account)\n\tconst accountEllipsis = account\n\t\t? `${account.substring(0, 4)}...${account.substring(account.length - 4)}`\n\t\t: null\n\treturn (\n\t\t
\n\t\t\t{account ? (\n\t\t\t\t {\n\t\t\t\t\t\tonPresentAccountModal()\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{accountEllipsis}\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\t {\n\t\t\t\t\t\tonPresentConnectModal()\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
\n\t)\n}\n\nexport default React.memo(\n\tUserBlock,\n\t(prevProps, nextProps) => prevProps.account === nextProps.account,\n)\n","import React, { useState, useEffect, useRef } from 'react'\nimport styled from 'styled-components'\nimport throttle from 'lodash/throttle'\nimport Overlay from '../../components/Overlay/Overlay'\nimport Flex from '../../components/Box/Flex'\nimport { useMatchBreakpoints } from '../../hooks'\nimport Logo from './components/Logo'\nimport Panel from './components/Panel'\nimport UserBlock from './components/UserBlock'\nimport { NavProps } from './types'\nimport { MENU_HEIGHT, SIDEBAR_WIDTH_REDUCED, SIDEBAR_WIDTH_FULL } from './config'\nimport ChainSelectButton from '../../components/ChainSelectButton'\nimport CouponPrice from '../../components/CouponPrice'\n\nconst Wrapper = styled.div`\n\tposition: relative;\n\twidth: 100%;\n\tbackground: var(--color-bg2);\n\tpadding: var(--body-gap) var(--body-gap) 0 var(--body-gap);\n\tmin-height: 100vh;\n`\n\nconst StyledNav = styled.nav<{ showMenu: boolean }>`\n\tposition: fixed;\n\ttop: ${({ showMenu }) => (showMenu ? 0 : `-${MENU_HEIGHT + 30}px`)};\n\tleft: var(--body-gap);\n\tright: var(--body-gap);\n\ttransition: top 0.2s;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tpadding-left: 8px;\n\tpadding-right: 16px;\n\theight: ${MENU_HEIGHT}px;\n\tbackground-color: var(--color-primary-500);\n\tborder-bottom: solid 2px rgba(133, 133, 133, 0.1);\n\tz-index: 20;\n\ttransform: translate3d(0, 0, 0);\n\tborder-top-right-radius: var(--top-border-radius);\n\tborder-top-left-radius: var(--top-border-radius);\n`\n\nconst BodyWrapper = styled.div`\n\tposition: relative;\n\tdisplay: flex;\n\tbackground: var(--color-bg1);\n\tborder-top-right-radius: var(--top-border-radius);\n\tborder-top-left-radius: var(--top-border-radius);\n`\n\nconst Inner = styled.div<{ isPushed: boolean; showMenu: boolean }>`\n\tflex-grow: 1;\n\tmargin-top: ${({ showMenu }) => (showMenu ? `${MENU_HEIGHT}px` : 0)};\n\ttransition: margin-top 0.2s, margin-left 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n\ttransform: translate3d(0, 0, 0);\n\tmax-width: 100%;\n\tbackground-image: url('/images/pattern2.png');\n\n\tbackground-size: 800px;\n\n\t${({ theme }) => theme.mediaQueries.nav} {\n\t\tmargin-left: ${({ isPushed }) => `${SIDEBAR_WIDTH_FULL}px`};\n\t\tmax-width: ${({ isPushed }) => `calc(100% - ${SIDEBAR_WIDTH_FULL}px)`};\n\t}\n`\n\nconst MobileOnlyOverlay = styled(Overlay)`\n\tposition: fixed;\n\theight: 100%;\n\n\t${({ theme }) => theme.mediaQueries.nav} {\n\t\tdisplay: none;\n\t}\n`\n\nconst Menu: React.FC = ({\n\taccount,\n\tlogin,\n\tlogout,\n\tisDark,\n\ttoggleTheme,\n\tlangs,\n\tsetLang,\n\tcurrentLang,\n\tcouponPriceUsd,\n\tlinks,\n\tprofile,\n\tchildren,\n}) => {\n\tconst { isXl } = useMatchBreakpoints()\n\tconst isMobile = isXl === false\n\tconst [isPushed, setIsPushed] = useState(!isMobile)\n\tconst [showMenu, setShowMenu] = useState(true)\n\tconst refPrevOffset = useRef(window.pageYOffset)\n\n\tuseEffect(() => {\n\t\tconst handleScroll = () => {\n\t\t\tconst currentOffset = window.pageYOffset\n\t\t\tconst isBottomOfPage =\n\t\t\t\twindow.document.body.clientHeight === currentOffset + window.innerHeight\n\t\t\tconst isTopOfPage = currentOffset === 0\n\t\t\t// Always show the menu when user reach the top\n\t\t\tif (isTopOfPage) {\n\t\t\t\tsetShowMenu(true)\n\t\t\t}\n\t\t\t// Avoid triggering anything at the bottom because of layout shift\n\t\t\telse if (!isBottomOfPage) {\n\t\t\t\tif (currentOffset < refPrevOffset.current) {\n\t\t\t\t\t// Has scroll up\n\t\t\t\t\tsetShowMenu(true)\n\t\t\t\t} else {\n\t\t\t\t\t// Has scroll down\n\t\t\t\t\tsetShowMenu(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\trefPrevOffset.current = currentOffset\n\t\t}\n\t\tconst throttledHandleScroll = throttle(handleScroll, 200)\n\n\t\twindow.addEventListener('scroll', throttledHandleScroll)\n\t\treturn () => {\n\t\t\twindow.removeEventListener('scroll', throttledHandleScroll)\n\t\t}\n\t}, [])\n\n\t// Find the home link if provided\n\tconst homeLink = links.find((link) => link.label === 'Home')\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t setIsPushed((prevState: boolean) => !prevState)}\n\t\t\t\t\t\tisDark={isDark}\n\t\t\t\t\t\thref={homeLink?.href ?? '/'}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t1# Innovation of Bridged yield farming on REI\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t{process.env.REACT_APP_ENABLE_COUPON_UI === 'true' && (\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\n\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\n\t\t\t\t\t{children}\n\t\t\t\t\n\t\t\t\t setIsPushed(false)} role=\"presentation\" />\n\t\t\t\n\t\t
\n\t)\n}\n\nexport default Menu\n","import React from 'react'\nimport styled from 'styled-components'\nimport ApyButton from 'views/Farms/components/FarmCard/ApyButton'\nimport { Address } from 'config/constants/types'\nimport BigNumber from 'bignumber.js'\nimport { BASE_ADD_LIQUIDITY_URL } from 'config'\nimport getLiquidityUrlPathParts from 'utils/getLiquidityUrlPathParts'\nimport { Skeleton } from '../../../../uikit-foodcourt'\n\nexport interface AprProps {\n\tvalue: string\n\tmultiplier: string\n\tlpLabel: string\n\ttokenAddress?: Address\n\tquoteTokenAddress?: Address\n\tcouponPrice: BigNumber\n\toriginalValue: number\n\thideButton?: boolean\n\tlpValueInUsd: BigNumber\n}\n\nconst Container = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tcolor: ${({ theme }) => theme.colors.text};\n\n\tbutton {\n\t\twidth: 20px;\n\t\theight: 20px;\n\n\t\tsvg {\n\t\t\tpath {\n\t\t\t\tfill: ${({ theme }) => theme.colors.textSubtle};\n\t\t\t}\n\t\t}\n\t}\n`\n\nconst AprWrapper = styled.div`\n\tmin-width: 60px;\n\ttext-align: left;\n`\n\nconst Apr: React.FC = ({\n\tvalue,\n\tlpLabel,\n\ttokenAddress,\n\tquoteTokenAddress,\n\tcouponPrice,\n\toriginalValue,\n\thideButton = false,\n}) => {\n\tconst liquidityUrlPathParts = getLiquidityUrlPathParts({ quoteTokenAddress, tokenAddress })\n\tconst addLiquidityUrl = `${BASE_ADD_LIQUIDITY_URL}/${liquidityUrlPathParts}`\n\n\treturn originalValue !== 0 ? (\n\t\t\n\t\t\t{originalValue ? (\n\t\t\t\t<>\n\t\t\t\t\t{value}%\n\t\t\t\t\t{!hideButton && (\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\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t) : (\n\t\t\n\t\t\t{originalValue}%\n\t\t\n\t)\n}\n\nexport default Apr\n","import React from 'react'\nimport styled from 'styled-components'\nimport { useFarmUser } from 'state/hooks'\nimport { useTranslation } from 'contexts/Localization'\nimport { Text, Image } from '../../../../uikit-foodcourt'\nimport { getBalanceNumber } from 'utils/formatBalance'\n\nexport interface FarmProps {\n\tlabel: string\n\tpid: number\n\timage: string\n\tsingle: boolean,\n\tisWithdrawFee100?: boolean\n}\n\nconst IconImage = styled(Image)`\n\twidth: 60px;\n\theight: 60px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\twidth: 80px;\n\t\theight: 80px;\n\t\tmax-width: 80px;\n\t\tmax-height: 80px;\n\t}\n`\n\nconst Container = styled.div`\n\tpadding-left: 16px;\n\tdisplay: flex;\n\talign-items: center;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tpadding-left: 32px;\n\t}\n`\n\nconst Farm: React.FunctionComponent = ({ image, label, pid, single, isWithdrawFee100 }) => {\n\tconst { stakedBalance } = useFarmUser(pid)\n\tconst { t } = useTranslation()\n\tconst rawStakedBalance = getBalanceNumber(stakedBalance)\n\n\tconst handleRenderFarming = (): JSX.Element => {\n\t\tif (rawStakedBalance) {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{t('FARMING')}\n\t\t\t\t\n\t\t\t)\n\t\t}\n\n\t\treturn null\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t{handleRenderFarming()}\n\t\t\t\t{label}\n\t\t\t\t{isWithdrawFee100 && 100% Withdrawal fee}\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default Farm\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Skeleton } from '../../../../uikit-foodcourt'\n\nexport interface EarnedProps {\n\tearnings: number\n\tpid: number\n}\n\ninterface EarnedPropsWithLoading extends EarnedProps {\n\tuserDataReady: boolean\n}\n\nconst Amount = styled.span<{ earned: number }>`\n\tcolor: ${({ earned, theme }) => (earned ? theme.colors.text : theme.colors.textDisabled)};\n\tdisplay: flex;\n\talign-items: center;\n`\n\nconst Earned: React.FunctionComponent = ({ earnings, userDataReady }) => {\n\tif (userDataReady) {\n\t\treturn {earnings.toLocaleString()}\n\t}\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nexport default Earned\n","import React from 'react'\nimport styled from 'styled-components'\nimport { ChevronDownIcon, useMatchBreakpoints } from '../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\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: ${({ theme }) => theme.colors.primary};\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: 20px;\n`\n\nconst Details: React.FC = ({ actionPanelToggled }) => {\n\tconst { t } = useTranslation()\n\tconst { isXl } = useMatchBreakpoints()\n\tconst isMobile = !isXl\n\n\treturn (\n\t\t\n\t\t\t{!isMobile && t('Details')}\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, Skeleton, useTooltip } from '../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\n\nconst ReferenceElement = styled.div`\n\tdisplay: inline-block;\n`\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\tmargin-right: 14px;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\ttext-align: left;\n\t\tmargin-right: 0;\n\t}\n`\n\nconst Container = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n`\n\nconst Multiplier: React.FunctionComponent = ({ multiplier }) => {\n\tconst displayMultiplier = multiplier ? multiplier.toLowerCase() : \n\tconst { t } = useTranslation()\n\tconst tooltipContent = (\n\t\t
\n\t\t\t{t('The multiplier represents the amount of COUPON rewards each farm gets.')}\n\t\t\t
\n\t\t\t
\n\t\t\t{t(\n\t\t\t\t'For example, if a 1x farm was getting 1 COUPON per block, a 40x farm would be getting 40 COUPON per block.',\n\t\t\t)}\n\t\t
\n\t)\n\tconst { targetRef, tooltip, tooltipVisible } = useTooltip(tooltipContent, {\n\t\tplacement: 'top-end',\n\t\ttooltipOffset: [20, 10],\n\t})\n\n\treturn (\n\t\t\n\t\t\t{displayMultiplier}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{tooltipVisible && tooltip}\n\t\t\n\t)\n}\n\nexport default Multiplier\n","import React from 'react'\nimport styled from 'styled-components'\nimport { HelpIcon, Text, Skeleton, useTooltip } from '../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport BigNumber from 'bignumber.js'\n\nconst ReferenceElement = styled.div`\n\tdisplay: inline-block;\n`\n\nexport interface LiquidityProps {\n\tliquidity: BigNumber\n}\n\nconst LiquidityWrapper = styled.div`\n\tmin-width: 110px;\n\tfont-weight: 600;\n\ttext-align: right;\n\tmargin-right: 14px;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\ttext-align: left;\n\t\tmargin-right: 0;\n\t}\n`\n\nconst Container = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n`\n\nconst Liquidity: React.FunctionComponent = ({ liquidity }) => {\n\tconst displayLiquidity = liquidity ? (\n\t\t`$${Number(liquidity).toLocaleString(undefined, { maximumFractionDigits: 0 })}`\n\t) : (\n\t\t\n\t)\n\tconst { t } = useTranslation()\n\tconst { targetRef, tooltip, tooltipVisible } = useTooltip(\n\t\tt('The total value of the funds in this farm’s liquidity pool'),\n\t\t{ placement: 'top-end', tooltipOffset: [20, 10] },\n\t)\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{displayLiquidity}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{tooltipVisible && tooltip}\n\t\t\n\t)\n}\n\nexport default Liquidity\n","import styled from 'styled-components'\n\nexport const ActionContainer = styled.div`\n\tpadding: 16px;\n\tborder-radius: 16px;\n\tflex-grow: 1;\n\tflex-basis: 0;\n\tmargin-bottom: 16px;\n\tbackground: var(--color-primary-100);\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tmargin-left: 12px;\n\t\tmargin-right: 12px;\n\t\tmargin-bottom: 0;\n\t\tmax-height: 100px;\n\t}\n\n\t${({ theme }) => theme.mediaQueries.xl} {\n\t\tmargin-left: 48px;\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 0;\n\t\tmax-height: 100px;\n\t}\n`\n\nexport const ActionTitles = styled.div`\n\tfont-weight: 600;\n\tfont-size: 12px;\n\tmargin-bottom: 8px;\n`\n\nexport const Title = styled.span`\n\tcolor: ${({ theme }) => theme.colors.secondary};\n`\n\nexport const Subtle = styled.span`\n\tcolor: ${({ theme }) => theme.colors.textSubtle};\n`\n\nexport const ActionContent = styled.div`\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n`\nexport const Earned = styled.div`\n\tfont-weight: 600;\n\tfont-size: 20px;\n\tcolor: ${({ theme }) => theme.colors.text};\n`\n\nexport const Staked = styled.div`\n\tfont-size: 12px;\n\tcolor: ${({ theme }) => theme.colors.textSubtle};\n`\n","import React, { useState, useRef, useEffect } from 'react'\nimport { Button, Skeleton } from '../../../../../uikit-foodcourt'\nimport BigNumber from 'bignumber.js'\nimport { FarmWithStakedValue } from 'views/Farms/components/FarmCard/FarmCard'\nimport { getBalanceNumber } from 'utils/formatBalance'\nimport { useHarvest } from 'hooks/useHarvest'\nimport { useTranslation } from 'contexts/Localization'\nimport { usePriceCouponkBUSD } from 'state/hooks'\nimport { useCountUp } from 'react-countup'\n\nimport {\n\tActionContainer,\n\tActionTitles,\n\tTitle,\n\tSubtle,\n\tActionContent,\n\tEarned,\n\tStaked,\n} from './styles'\n\ninterface HarvestActionProps extends FarmWithStakedValue {\n\tuserDataReady: boolean\n}\n\nconst HarvestAction: React.FunctionComponent = ({\n\tpid,\n\tuserData,\n\tuserDataReady,\n\tisWithdrawFee100,\n\ttoken,\n}) => {\n\tconst earningsBigNumber = new BigNumber(userData.earnings)\n\tconst couponPrice = usePriceCouponkBUSD()\n\tlet earnings = 0\n\tlet earningsBusd = 0\n\tlet displayBalance = userDataReady ? earnings.toLocaleString() : \n\n\t// If user didn't connect wallet default balance will be 0\n\tif (!earningsBigNumber.isZero()) {\n\t\tearnings = getBalanceNumber(earningsBigNumber)\n\t\tearningsBusd = new BigNumber(earnings).multipliedBy(couponPrice).toNumber()\n\t\tdisplayBalance = earnings.toLocaleString()\n\t}\n\n\tconst [pendingTx, setPendingTx] = useState(false)\n\tconst { onReward } = useHarvest(pid)\n\tconst { t } = useTranslation()\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\tCOUPON \n\t\t\t\t{t('EARNED')}\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{displayBalance}\n\t\t\t\t\t{countUp > 0 && ~{countUp}USD}\n\t\t\t\t
\n\t\t\t\t {\n\t\t\t\t\t\tif (isWithdrawFee100 && !window.confirm(`IMPORTANT: This is a 100% withdrawal fee pool, you will lose all your staked ${token.symbol} in exchange for ${displayBalance} COUPON`)) return;\n\n\t\t\t\t\t\tsetPendingTx(true)\n\t\t\t\t\t\tawait onReward()\n\t\t\t\t\t\tsetPendingTx(false)\n\t\t\t\t\t}}\n\t\t\t\t\tml=\"4px\"\n\t\t\t\t>\n\t\t\t\t\t{ isWithdrawFee100 ? 'Harvest and Destroy!' : t('Harvest')}\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t)\n}\n\nexport default HarvestAction\n","import React, { useState, useCallback } from 'react'\nimport styled from 'styled-components'\nimport {\n\tButton,\n\tuseModal,\n\tIconButton,\n\tAddIcon,\n\tMinusIcon,\n\tSkeleton,\n} from '../../../../../uikit-foodcourt'\nimport { useLocation } from 'react-router-dom'\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 { useTranslation } from 'contexts/Localization'\nimport { useApprove } from 'hooks/useApprove'\nimport { getBep20Contract } from 'utils/contractHelpers'\nimport { BASE_ADD_LIQUIDITY_URL } from 'config'\nimport getLiquidityUrlPathParts from 'utils/getLiquidityUrlPathParts'\nimport { getBalanceNumber, getFullDisplayBalance } from 'utils/formatBalance'\nimport { useStake } from 'hooks/useStake'\nimport { useUnstakeV2 } from 'hooks/useUnstake'\nimport useWeb3 from 'hooks/useWeb3'\n\nimport DepositModal from '../../DepositModal'\nimport WithdrawModal from '../../WithdrawModal'\nimport {\n\tActionContainer,\n\tActionTitles,\n\tActionContent,\n\tEarned,\n\tStaked as StakedValue,\n\tTitle,\n\tSubtle,\n} from './styles'\n\nconst IconButtonWrapper = styled.div`\n\tdisplay: flex;\n`\n\ninterface StackedActionProps extends FarmWithStakedValue {\n\tdecimals?: number\n\tuserDataReady: boolean\n\tmyValueFormatted: string\n}\n\nconst Staked: React.FunctionComponent = ({\n\tpid,\n\tlpSymbol,\n\tlpAddresses,\n\tquoteToken,\n\ttoken,\n\tuserDataReady,\n\tdecimals = 18,\n\tisWithdrawFee100,\n\tmyValueFormatted,\n}) => {\n\tconst { t } = useTranslation()\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 } = useUnstakeV2(pid, isWithdrawFee100)\n\tconst web3 = useWeb3()\n\tconst location = useLocation()\n\n\tconst isApproved = account && allowance && allowance.isGreaterThan(0)\n\n\tconst lpAddress = lpAddresses[process.env.REACT_APP_CHAIN_ID]\n\tconst liquidityUrlPathParts = getLiquidityUrlPathParts({\n\t\tquoteTokenAddress: quoteToken.address,\n\t\ttokenAddress: token.address,\n\t})\n\tconst addLiquidityUrl = `${BASE_ADD_LIQUIDITY_URL}/${liquidityUrlPathParts}`\n\n\tconst displayBalance = useCallback(() => {\n\t\tconst stakedBalanceNumber = getBalanceNumber(stakedBalance, decimals)\n\t\tif (stakedBalanceNumber > 0 && stakedBalanceNumber < 0.0001) {\n\t\t\treturn getFullDisplayBalance(stakedBalance).toLocaleString()\n\t\t}\n\t\treturn stakedBalanceNumber.toLocaleString()\n\t}, [stakedBalance])\n\n\tconst [onPresentDeposit] = useModal(\n\t\t,\n\t)\n\tconst [onPresentWithdraw] = useModal(\n\t\t,\n\t)\n\n\tconst lpContract = getBep20Contract(lpAddress, web3)\n\n\tconst { onApprove } = useApprove(lpContract)\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\t{t('START FARMING')}\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\tif (isApproved) {\n\t\tif (stakedBalance.gt(0)) {\n\t\t\treturn (\n\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{t('STAKED')}\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{displayBalance()}\n\t\t\t\t\t\t\t{myValueFormatted && myValueFormatted !== '-' && (\n\t\t\t\t\t\t\t\t~{myValueFormatted}USD\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\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
\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{t('STAKE')} \n\t\t\t\t\t{lpSymbol}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t location.pathname.includes(item))}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t('Stake LP')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n\n\tif (!userDataReady) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('START FARMING')}\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\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{t('ENABLE FARM')}\n\t\t\t\n\t\t\t\n\t\t\t\t{process.env.REACT_APP_ENABLE_FARM === 'false' ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t\t\t{t('Enable')}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t)\n}\n\nexport default Staked\n","import React from 'react'\nimport styled, { keyframes, css } from 'styled-components'\nimport { useTranslation } from 'contexts/Localization'\nimport { LinkExternal, Text } from '../../../../../uikit-foodcourt'\nimport { FarmWithStakedValue } from 'views/Farms/components/FarmCard/FarmCard'\nimport getLiquidityUrlPathParts from 'utils/getLiquidityUrlPathParts'\nimport { CommunityTag, CoreTag, DualTag } from 'components/Tags'\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\nexport interface ActionPanelProps {\n\tapr: AprProps\n\tmultiplier: MultiplierProps\n\tliquidity: LiquidityProps\n\tdetails: FarmWithStakedValue\n\tuserDataReady: boolean\n\texpanded: boolean\n\tmyValueFormatted: string\n}\n\nconst expandAnimation = keyframes`\n from {\n max-height: 0px;\n }\n to {\n max-height: 500px;\n }\n`\n\nconst collapseAnimation = keyframes`\n from {\n max-height: 500px;\n }\n to {\n max-height: 0px;\n }\n`\n\nconst Container = styled.div<{ expanded }>`\n\tanimation: ${({ expanded }) =>\n\t\texpanded\n\t\t\t? css`\n\t\t\t\t\t${expandAnimation} 300ms linear forwards\n\t\t\t `\n\t\t\t: css`\n\t\t\t\t\t${collapseAnimation} 300ms linear forwards\n\t\t\t `};\n\toverflow: hidden;\n\tbackground: ${({ theme }) => theme.colors.background};\n\tdisplay: flex;\n\twidth: 100%;\n\tflex-direction: column-reverse;\n\tpadding: 24px;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tflex-direction: row;\n\t\tpadding: 16px 32px;\n\t}\n`\n\nconst StyledLinkExternal = styled(LinkExternal)`\n\tfont-weight: 400;\n`\n\nconst StakeContainer = styled.div`\n\tcolor: ${({ theme }) => theme.colors.text};\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tjustify-content: flex-start;\n\t}\n`\n\nconst TagsContainer = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tmargin-top: 25px;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tmargin-top: 16px;\n\t}\n\n\t> div {\n\t\theight: 24px;\n\t\tpadding: 0 6px;\n\t\tfont-size: 14px;\n\t\tmargin-right: 4px;\n\n\t\tsvg {\n\t\t\twidth: 14px;\n\t\t}\n\t}\n`\n\nconst ActionContainer = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t${({ theme }) => theme.mediaQueries.sm} {\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\t\tflex-basis: 0;\n\t}\n`\n\nconst InfoContainer = styled.div`\n\tmin-width: 200px;\n`\n\nconst ValueContainer = styled.div`\n\tdisplay: block;\n\n\t${({ theme }) => theme.mediaQueries.lg} {\n\t\tdisplay: none;\n\t}\n`\n\nconst ValueWrapper = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmargin: 4px 0px;\n`\n\nconst ActionPanel: React.FunctionComponent = ({\n\tdetails,\n\tapr,\n\tmultiplier,\n\tliquidity,\n\tuserDataReady,\n\tmyValueFormatted,\n\texpanded,\n}) => {\n\tconst farm = details\n\n\tconst { t } = useTranslation()\n\tconst isActive = farm.multiplier !== '0X'\n\tconst { quoteToken, token, dual } = farm\n\tconst lpLabel = farm.lpSymbol && farm.lpSymbol.toUpperCase().replace('PANCAKE', '')\n\tconst liquidityUrlPathParts = getLiquidityUrlPathParts({\n\t\tquoteTokenAddress: quoteToken.address,\n\t\ttokenAddress: token.address,\n\t})\n\tconst lpAddress = farm.lpAddresses[process.env.REACT_APP_CHAIN_ID]\n\tconst bsc = `https://reiscan.com/address/${lpAddress}`\n\tconst info = `https://foodcourt.info/pair/${lpAddress}`\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{isActive && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(`Get ${lpLabel}`, { name: lpLabel })}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{t('View Contract')}\n\t\t\t\t{/* {t('See Pair Info')} */}\n\t\t\t\t\n\t\t\t\t\t{farm.isCommunity ? : }\n\t\t\t\t\t{dual ? : null}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('APR')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('Multiplier')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{t('Liquidity')}\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\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: flex;\n\talign-items: center;\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, { useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport { FarmWithStakedValue } from 'views/Farms/components/FarmCard/FarmCard'\nimport { useMatchBreakpoints } from '../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport useDelayedUnmount from 'hooks/useDelayedUnmount'\nimport { useFarmUser } from 'state/hooks'\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 ActionPanel from './Actions/ActionPanel'\nimport CellLayout from './CellLayout'\nimport { DesktopColumnSchema, MobileColumnSchema } from '../types'\nimport BigNumber from 'bignumber.js'\nimport { getFullDisplayBalance } from 'utils/formatBalance'\n\nexport interface RowProps {\n\tapr: AprProps\n\tfarm: FarmProps\n\tearned: EarnedProps\n\tmultiplier: MultiplierProps\n\tliquidity: LiquidityProps\n\tdetails: FarmWithStakedValue\n}\n\ninterface RowPropsWithLoading extends RowProps {\n\tuserDataReady: boolean\n}\n\nconst cells = {\n\tapr: Apr,\n\tfarm: Farm,\n\tearned: Earned,\n\tdetails: Details,\n\tmultiplier: Multiplier,\n\tliquidity: Liquidity,\n}\n\nconst CellInner = styled.div`\n\tpadding: 24px 0px;\n\tdisplay: flex;\n\twidth: 100%;\n\talign-items: center;\n\tpadding-right: 8px;\n\n\t${({ theme }) => theme.mediaQueries.xl} {\n\t\tpadding-right: 32px;\n\t}\n`\n\nconst StyledTr = styled.tr`\n\tcursor: pointer;\n\tborder-bottom: 2px solid ${({ theme }) => theme.colors.borderColor};\n`\n\nconst EarnedMobileCell = styled.td`\n\tpadding: 16px 0 24px 16px;\n`\n\nconst AprMobileCell = styled.td`\n\tpadding-top: 16px;\n\tpadding-bottom: 24px;\n`\n\nconst FarmMobileCell = styled.td`\n\tpadding-top: 24px;\n`\n\nconst Row: React.FunctionComponent = (props) => {\n\tconst { details, userDataReady, apr } = props\n\tconst { lpValueInUsd } = apr;\n\tconst stakedBalance = useFarmUser(details.pid).stakedBalance.toNumber()\n\tconst hasStakedAmount = !!stakedBalance\n\tconst [actionPanelExpanded, setActionPanelExpanded] = useState(hasStakedAmount)\n\tconst shouldRenderChild = useDelayedUnmount(actionPanelExpanded, 300)\n\tconst { t } = useTranslation()\n\n\tconst toggleActionPanel = () => {\n\t\tsetActionPanelExpanded(!actionPanelExpanded)\n\t}\n\n\tuseEffect(() => {\n\t\tsetActionPanelExpanded(hasStakedAmount)\n\t}, [hasStakedAmount])\n\n\tconst { isXl, isXs } = useMatchBreakpoints()\n\n\tconst isMobile = !isXl\n\tconst tableSchema = isMobile ? MobileColumnSchema : DesktopColumnSchema\n\tconst columnNames = tableSchema.map((column) => column.name)\n\n\tconst myValueFormatted = lpValueInUsd\n\t\t? `$${new BigNumber(getFullDisplayBalance(lpValueInUsd.times(stakedBalance), 18, 2))\n\t\t\t\t.toNumber()\n\t\t\t\t.toLocaleString(undefined, { maximumFractionDigits: 0 })}`\n\t\t: '-'\n\n\tconst handleRenderRow = () => {\n\t\tif (!isXs) {\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\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 'apr':\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 'farm':\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], userDataReady })}\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\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\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\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\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\t// props.details.isWithdrawFee100\n\t// console.log(props)\n\n\treturn (\n\t\t<>\n\t\t\t{handleRenderRow()}\n\t\t\t{shouldRenderChild && (\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 } from 'react'\nimport styled from 'styled-components'\nimport { useTable, Button, ChevronUpIcon, ColumnType } from '../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\n\nimport Row, { RowProps } from './Row'\n\nexport interface ITableProps {\n\tdata: RowProps[]\n\tcolumns: ColumnType[]\n\tuserDataReady: boolean\n\tsortColumn?: string\n}\n\nconst Container = styled.div`\n\tfilter: ${({ theme }) => theme.card.dropShadow};\n\twidth: 100%;\n\tbackground: ${({ theme }) => theme.card.background};\n\tborder-radius: 16px;\n\tmargin: 16px 0px;\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\tborder-collapse: collapse;\n\tfont-size: 14px;\n\tborder-radius: 4px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\twidth: 100%;\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}\n\t}\n`\n\nconst TableContainer = styled.div`\n\tposition: relative;\n`\n\nconst ScrollButtonContainer = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding-top: 5px;\n\tpadding-bottom: 5px;\n`\n\nconst FarmTable: React.FC = (props) => {\n\tconst tableWrapperEl = useRef(null)\n\tconst { t } = useTranslation()\n\tconst { data, columns, userDataReady } = props\n\n\tconst { rows } = useTable(columns, data, { sortable: true, sortColumn: 'farm' })\n\n\tconst scrollToTop = (): void => {\n\t\ttableWrapperEl.current.scrollIntoView({\n\t\t\tbehavior: 'smooth',\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{rows.map((row) => {\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)\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\n\t\t\t\t\n\t\t\t\n\t\t\n\t)\n}\n\nexport default FarmTable\n","import styled, { DefaultTheme } from 'styled-components'\nimport { space } from 'styled-system'\nimport { CardProps } from './types'\n\ninterface StyledCardProps extends CardProps {\n\ttheme: DefaultTheme\n}\n\n/**\n * Priority: Warning --> Success --> Active\n */\nconst getBoxShadow = ({ isActive, isSuccess, isWarning, theme }: StyledCardProps) => {\n\tif (isWarning) {\n\t\treturn theme.card.boxShadowWarning\n\t}\n\n\tif (isSuccess) {\n\t\treturn theme.card.boxShadowSuccess\n\t}\n\n\tif (isActive) {\n\t\treturn theme.card.boxShadowActive\n\t}\n\n\treturn theme.card.boxShadow\n}\n\nconst StyledCard = styled.div`\n\tbackground-color: ${({ theme }) => theme.card.background};\n\tborder: ${({ theme }) => theme.card.boxShadow};\n\tborder-radius: 32px;\n\tbox-shadow: ${getBoxShadow};\n\tcolor: ${({ theme, isDisabled }) => theme.colors[isDisabled ? 'textDisabled' : 'text']};\n\toverflow: hidden;\n\tposition: relative;\n\n\t${space}\n`\n\nStyledCard.defaultProps = {\n\tisActive: false,\n\tisSuccess: false,\n\tisWarning: false,\n\tisDisabled: false,\n}\n\nexport default StyledCard\n","import React from 'react'\nimport StyledCard from './StyledCard'\nimport { CardProps } from './types'\n\nconst Card: React.FC = ({ ribbon, children, ...props }) => (\n\t\n\t\t{ribbon}\n\t\t{children}\n\t\n)\nexport default Card\n","import styled from 'styled-components'\nimport { space, SpaceProps } from 'styled-system'\n\nexport type CardBodyProps = SpaceProps\n\nconst CardBody = styled.div`\n\t${space}\n`\n\nCardBody.defaultProps = {\n\tp: '24px',\n}\n\nexport default CardBody\n","import styled from 'styled-components'\nimport { space, SpaceProps } from 'styled-system'\nimport { CardTheme } from './types'\n\nexport interface CardHeaderProps extends SpaceProps {\n\tvariant?: keyof CardTheme['cardHeaderBackground']\n}\n\nconst CardHeader = styled.div`\n\tbackground: ${({ theme, variant = 'default' }) => theme.card.cardHeaderBackground[variant]};\n\t${space}\n`\n\nCardHeader.defaultProps = {\n\tp: '24px',\n}\n\nexport default CardHeader\n","import styled from 'styled-components'\nimport { space, SpaceProps } from 'styled-system'\n\nexport type CardFooterProps = SpaceProps\n\nconst CardFooter = styled.div`\n\tborder-top: 1px solid ${({ theme }) => theme.colors.borderColor};\n\t${space}\n`\n\nCardFooter.defaultProps = {\n\tp: '24px',\n}\n\nexport default CardFooter\n","import React from 'react'\nimport styled, { DefaultTheme } from 'styled-components'\nimport { CardRibbonProps } from './types'\n\ninterface StyledCardRibbonProps extends CardRibbonProps {\n\ttheme: DefaultTheme\n}\n\nconst StyledCardRibbon = styled.div>`\n\tz-index: 1;\n\tbackground-color: ${({ variantColor = 'secondary', theme }) => theme.colors[variantColor]};\n\tcolor: white;\n\tmargin: 0;\n\tpadding: 0;\n\tpadding: 8px 0;\n\tposition: absolute;\n\tright: ${({ ribbonPosition }) => (ribbonPosition === 'right' ? 0 : 'auto')};\n\ttop: 0;\n\ttext-align: center;\n\ttransform: translateX(30%) translateY(0%) rotate(45deg);\n\ttransform: ${({ ribbonPosition }) =>\n\t\tribbonPosition === 'right'\n\t\t\t? 'translateX(30%) translateY(0%) rotate(45deg)'\n\t\t\t: 'translateX(0%) translateY(200%) rotate(-45deg)'};\n\ttransform-origin: top left;\n\twidth: 96px;\n\n\t&:before,\n\t&:after {\n\t\tbackground-color: ${({ variantColor = 'secondary', theme }) => theme.colors[variantColor]};\n\t\tcontent: '';\n\t\theight: 100%;\n\t\tmargin: 0 -1px; /* Removes tiny gap */\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\twidth: 100%;\n\t}\n\n\t&:before {\n\t\tright: 100%;\n\t}\n\n\t&:after {\n\t\tleft: 100%;\n\t}\n\n\t& > div {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\twidth: 96px;\n\t}\n`\n\nconst CardRibbon: React.FC = ({\n\tvariantColor,\n\ttext,\n\tribbonPosition,\n\t...props\n}) => (\n\t\n\t\t
{text}
\n\t
\n)\n\nCardRibbon.defaultProps = {\n\tribbonPosition: 'right',\n}\n\nexport default CardRibbon\n","export const variants = {\n\tROUND: 'round',\n\tFLAT: 'flat',\n} as const\n\nexport const scales = {\n\tMD: 'md',\n\tSM: 'sm',\n} as const\n\nexport type Scale = typeof scales[keyof typeof scales]\n\nexport type Variant = typeof variants[keyof typeof variants]\n\nexport interface ProgressProps {\n\tvariant?: Variant\n\tscale?: Scale\n\tprimaryStep?: number\n\tsecondaryStep?: number\n\tshowProgressBunny?: boolean\n}\n","import { variants, scales } from './types'\n\nexport const styleVariants = {\n\t[variants.ROUND]: {\n\t\tborderRadius: '32px',\n\t},\n\t[variants.FLAT]: {\n\t\tborderRadius: 0,\n\t},\n}\n\nexport const styleScales = {\n\t[scales.MD]: {\n\t\theight: '16px',\n\t},\n\t[scales.SM]: {\n\t\theight: '8px',\n\t},\n}\n\nexport default styleVariants\n","import styled from 'styled-components'\nimport { space, variant as StyledSystemVariant } from 'styled-system'\nimport { styleVariants, styleScales } from './themes'\nimport { ProgressProps, variants } from './types'\n\ninterface BarProps {\n\tprimary?: boolean\n}\n\nexport const Bar = styled.div`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbackground-color: ${(props) =>\n\t\tprops.primary ? props.theme.colors.secondary : `${props.theme.colors.secondary}80`};\n\theight: 100%;\n\ttransition: width 200ms ease;\n`\n\nBar.defaultProps = {\n\tprimary: false,\n}\n\ninterface StyledProgressProps {\n\tvariant: ProgressProps['variant']\n\tscale: ProgressProps['scale']\n}\n\nconst StyledProgress = styled.div`\n\tposition: relative;\n\tbackground-color: ${({ theme }) => theme.colors.input};\n\tbox-shadow: ${({ theme }) => theme.shadows.inset};\n\toverflow: hidden;\n\n\t${Bar} {\n\t\tborder-top-left-radius: ${({ variant }) => (variant === variants.FLAT ? '0' : '32px')};\n\t\tborder-bottom-left-radius: ${({ variant }) => (variant === variants.FLAT ? '0' : '32px')};\n\t}\n\n\t${StyledSystemVariant({\n\t\tvariants: styleVariants,\n\t})}\n\t${StyledSystemVariant({\n\t\tprop: 'scale',\n\t\tvariants: styleScales,\n\t})}\n ${space}\n`\n\nexport default StyledProgress\n","import styled from 'styled-components'\n\nconst ProgressBunnyWrapper = styled.div`\n\tdisplay: flex;\n\tz-index: 2;\n\ttop: -65%;\n\tposition: absolute;\n\ttransform: translate(-50%, -50%);\n\ttransition: left 200ms ease-out;\n`\n\nexport default ProgressBunnyWrapper\n","export default __webpack_public_path__ + \"static/media/bunnyhead-main.045cae28.svg\";","export default __webpack_public_path__ + \"static/media/bunnyhead-max.90eb2dcd.svg\";","export default __webpack_public_path__ + \"static/media/bunnybutt.25a067c1.svg\";","import { InputHTMLAttributes } from 'react'\nimport styled from 'styled-components'\nimport Text from '../Text/Text'\nimport bunnyHeadMain from './svg/bunnyhead-main.svg'\nimport bunnyHeadMax from './svg/bunnyhead-max.svg'\nimport bunnyButt from './svg/bunnybutt.svg'\n\ninterface SliderLabelProps {\n\tprogress: string\n}\n\ninterface StyledInputProps extends InputHTMLAttributes {\n\tisMax: boolean\n}\n\ninterface DisabledProp {\n\tdisabled?: boolean\n}\n\nconst getCursorStyle = ({ disabled = false }: DisabledProp) => (disabled ? 'not-allowed' : 'cursor')\n\nconst getBaseThumbStyles = ({ isMax, disabled }: StyledInputProps) => `\n -webkit-appearance: none;\n background-image: url(${isMax ? bunnyHeadMax : bunnyHeadMain});\n background-color: transparent;\n border: 0;\n cursor: ${getCursorStyle};\n width: 24px;\n height: 32px;\n filter: ${disabled ? 'grayscale(100%)' : 'none'};\n transform: translate(-2px, -2px);\n transition: 200ms transform;\n\n &:hover {\n transform: ${disabled ? 'scale(1) translate(-2px, -2px)' : 'scale(1.1) translate(-3px, -3px)'};\n }\n`\n\nexport const SliderLabelContainer = styled.div`\n\tbottom: 0;\n\tposition: absolute;\n\tleft: 14px;\n\twidth: calc(100% - 30px);\n`\n\nexport const SliderLabel = styled(Text)`\n\tbottom: 0;\n\tfont-size: 12px;\n\tleft: ${({ progress }) => progress};\n\tposition: absolute;\n\ttext-align: center;\n\tmin-width: 24px; // Slider thumb size\n`\n\nexport const BunnyButt = styled.div`\n\tbackground: url(${bunnyButt}) no-repeat;\n\theight: 32px;\n\tfilter: ${({ disabled }) => (disabled ? 'grayscale(100%)' : 'none')};\n\tposition: absolute;\n\twidth: 15px;\n`\n\nexport const BunnySlider = styled.div`\n\tposition: absolute;\n\tleft: 14px;\n\twidth: calc(100% - 14px);\n`\n\nexport const StyledInput = styled.input`\n\tcursor: ${getCursorStyle};\n\theight: 32px;\n\tposition: relative;\n\n\t::-webkit-slider-thumb {\n\t\t${getBaseThumbStyles}\n\t}\n\n\t::-moz-range-thumb {\n\t\t${getBaseThumbStyles}\n\t}\n\n\t::-ms-thumb {\n\t\t${getBaseThumbStyles}\n\t}\n`\n\nexport const BarBackground = styled.div`\n\tbackground-color: ${({ theme, disabled }) =>\n\t\ttheme.colors[disabled ? 'textDisabled' : 'inputSecondary']};\n\theight: 2px;\n\tposition: absolute;\n\ttop: 18px;\n\twidth: 100%;\n`\n\nexport const BarProgress = styled.div`\n\tbackground-color: ${({ theme }) => theme.colors.primary};\n\tfilter: ${({ disabled }) => (disabled ? 'grayscale(100%)' : 'none')};\n\theight: 10px;\n\tposition: absolute;\n\ttop: 18px;\n`\n","import React, { ChangeEvent } from 'react'\nimport { Box } from '../Box'\nimport {\n\tBunnySlider,\n\tBarBackground,\n\tBarProgress,\n\tBunnyButt,\n\tStyledInput,\n\tSliderLabel,\n\tSliderLabelContainer,\n} from './styles'\nimport SliderProps from './types'\n\nconst Slider: React.FC = ({\n\tname,\n\tmin,\n\tmax,\n\tvalue,\n\tonValueChanged,\n\tvalueLabel,\n\tstep = 'any',\n\tdisabled = false,\n\t...props\n}) => {\n\tconst handleChange = ({ target }: ChangeEvent) => {\n\t\tonValueChanged(parseFloat(target.value))\n\t}\n\n\tconst progressPercentage = (value / max) * 100\n\tconst isMax = value === max\n\tconst progressWidth = isMax ? 'calc(100% - 16px)' : `${progressPercentage}%`\n\tconst labelProgress = isMax ? 'calc(100% - 12px)' : `${progressPercentage}%`\n\tconst displayValueLabel = isMax ? 'MAX' : valueLabel\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{valueLabel && (\n\t\t\t\t\n\t\t\t\t\t{displayValueLabel}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t)\n}\n\nexport default Slider\n","export default {\n\troot: null,\n\trootMargin: '200px',\n\tthreshold: 0,\n}\n","import styled from 'styled-components'\nimport { space } from 'styled-system'\nimport { ContainerProps } from './types'\n\nconst Wrapper = styled.div`\n\tposition: relative;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-size: cover;\n\theight: ${({ height, responsive }) => (responsive ? 0 : height)}px;\n\tmax-width: ${({ width }) => width}px;\n\tmax-height: ${({ height }) => height}px;\n\twidth: 100%;\n\tpadding-top: ${({ width, height, responsive }) => (responsive ? (height / width) * 100 : 0)}%;\n\t${space}\n`\n\nexport default Wrapper\n","import React, { useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport observerOptions from './options'\nimport Wrapper from './Wrapper'\nimport { ImageProps } from './types'\n\nconst StyledImage = styled.img`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tmax-width: 100%;\n`\n\nconst Placeholder = styled.div`\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n`\n\nconst Image: React.FC = ({ src, alt, ...otherProps }) => {\n\tconst imgRef = useRef(null)\n\tconst [isLoaded, setIsLoaded] = useState(false)\n\n\tuseEffect(() => {\n\t\tconst img = (imgRef.current as unknown) as HTMLImageElement\n\t\tconst observer = new IntersectionObserver((entries) => {\n\t\t\tentries.forEach((entry) => {\n\t\t\t\tconst { isIntersecting } = entry\n\t\t\t\tif (isIntersecting) {\n\t\t\t\t\tsetIsLoaded(true)\n\t\t\t\t\tobserver.disconnect()\n\t\t\t\t}\n\t\t\t})\n\t\t}, observerOptions)\n\t\tobserver.observe(img)\n\n\t\treturn () => {\n\t\t\tobserver.disconnect()\n\t\t}\n\t}, [src])\n\n\treturn (\n\t\t\n\t\t\t{isLoaded ? : }\n\t\t\n\t)\n}\n\nexport default Image\n","import { ReactNode } from 'react'\nimport { SpaceProps } from 'styled-system'\n\nexport const variants = {\n\tPRIMARY: 'primary',\n\tSECONDARY: 'secondary',\n\tSUCCESS: 'success',\n\tTEXTDISABLED: 'textDisabled',\n\tTEXTSUBTLE: 'textSubtle',\n\tBINANCE: 'binance',\n\tFAILURE: 'failure',\n} as const\n\nexport const scales = {\n\tMD: 'md',\n\tSM: 'sm',\n} as const\n\nexport type Scale = typeof scales[keyof typeof scales]\nexport type Variant = typeof variants[keyof typeof variants]\n\nexport interface TagProps extends SpaceProps {\n\tvariant?: Variant\n\tscale?: Scale\n\tstartIcon?: ReactNode\n\tendIcon?: ReactNode\n\toutline?: boolean\n}\n","import { scales, variants } from './types'\n\nexport const scaleVariants = {\n\t[scales.MD]: {\n\t\theight: '28px',\n\t\tpadding: '0 8px',\n\t\tfontSize: '14px',\n\t},\n\t[scales.SM]: {\n\t\theight: '24px',\n\t\tpadding: '0 4px',\n\t\tfontSize: '12px',\n\t},\n}\n\nexport const styleVariants = {\n\t[variants.PRIMARY]: {\n\t\tbackgroundColor: 'primary',\n\t},\n\t[variants.SECONDARY]: {\n\t\tbackgroundColor: 'secondary',\n\t},\n\t[variants.SUCCESS]: {\n\t\tbackgroundColor: 'success',\n\t},\n\t[variants.TEXTDISABLED]: {\n\t\tbackgroundColor: 'textDisabled',\n\t},\n\t[variants.TEXTSUBTLE]: {\n\t\tbackgroundColor: 'textSubtle',\n\t},\n\t[variants.BINANCE]: {\n\t\tbackgroundColor: 'binance',\n\t},\n\t[variants.FAILURE]: {\n\t\tbackgroundColor: 'failure',\n\t},\n}\n","import styled, { DefaultTheme } from 'styled-components'\nimport { space, variant } from 'styled-system'\nimport { Colors } from '../../theme/types'\nimport { scaleVariants, styleVariants } from './theme'\nimport { TagProps, variants } from './types'\n\ninterface ThemedProps extends TagProps {\n\ttheme: DefaultTheme\n}\n\nconst getOutlineStyles = ({\n\toutline,\n\ttheme,\n\tvariant: variantKey = variants.PRIMARY,\n}: ThemedProps) => {\n\tif (outline) {\n\t\tconst themeColorKey = styleVariants[variantKey].backgroundColor as keyof Colors\n\t\tconst color = theme.colors[themeColorKey]\n\n\t\treturn `\n color: ${color};\n background: transparent;\n border: 2px solid ${color};\n `\n\t}\n\n\treturn ''\n}\n\nexport const StyledTag = styled.div`\n\talign-items: center;\n\tborder-radius: 16px;\n\tcolor: #ffffff;\n\tdisplay: inline-flex;\n\tfont-weight: 400;\n\twhite-space: nowrap;\n\n\t& > svg {\n\t\tfill: currentColor;\n\t}\n\n\t${variant({\n\t\tprop: 'scale',\n\t\tvariants: scaleVariants,\n\t})}\n\t${variant({\n\t\tvariants: styleVariants,\n\t})}\n ${space}\n\n ${getOutlineStyles}\n`\n\nexport default null\n","import React from 'react'\nimport { scales, TagProps } from './types'\nimport { StyledTag } from './StyledTag'\n\nconst Tag: React.FC = ({ startIcon, endIcon, children, ...props }) => (\n\t\n\t\t{React.isValidElement(startIcon) &&\n\t\t\tReact.cloneElement(startIcon, {\n\t\t\t\tmr: '0.5em',\n\t\t\t})}\n\t\t{children}\n\t\t{React.isValidElement(endIcon) &&\n\t\t\tReact.cloneElement(endIcon, {\n\t\t\t\tml: '0.5em',\n\t\t\t})}\n\t\n)\n\nTag.defaultProps = {\n\tvariant: 'primary',\n\tscale: scales.MD,\n\toutline: false,\n}\n\nexport default Tag\n","/* eslint-disable no-param-reassign */\nimport { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { maxBy } from 'lodash'\nimport { Bet, HistoryFilter, Market, PredictionsState, PredictionStatus, Round } from 'state/types'\nimport {\n\tmakeFutureRoundResponse,\n\ttransformRoundResponse,\n\tgetBetHistory,\n\ttransformBetResponse,\n\tgetBet,\n\tmakeRoundData,\n} from './helpers'\n\nconst initialState: PredictionsState = {\n\tstatus: PredictionStatus.INITIAL,\n\tisLoading: false,\n\tisHistoryPaneOpen: false,\n\tisChartPaneOpen: false,\n\tisFetchingHistory: false,\n\thistoryFilter: HistoryFilter.ALL,\n\tcurrentEpoch: 0,\n\tcurrentRoundStartBlockNumber: 0,\n\tintervalBlocks: 100,\n\tbufferBlocks: 2,\n\tminBetAmount: '1000000000000000',\n\trounds: {},\n\thistory: {},\n\tbets: {},\n\tlastOraclePrice: \"0\",\n}\n\n// Thunks\nexport const fetchBet = createAsyncThunk<\n\t{ account: string; bet: Bet },\n\t{ account: string; id: string }\n>('predictions/fetchBet', async ({ account, id }) => {\n\tconst response = await getBet(id)\n\tconst bet = transformBetResponse(response)\n\treturn { account, bet }\n})\n\nexport const fetchRoundBet = createAsyncThunk<\n\t{ account: string; roundId: string; bet: Bet },\n\t{ account: string; roundId: string }\n>('predictions/fetchRoundBet', async ({ account, roundId }) => {\n\tconst betResponses = await getBetHistory({\n\t\tuser: account.toLowerCase(),\n\t\tround: roundId,\n\t})\n\n\t// This should always return 0 or 1 bet because a user can only place\n\t// one bet per round\n\tif (betResponses && betResponses.length === 1) {\n\t\tconst [betResponse] = betResponses\n\t\treturn { account, roundId, bet: transformBetResponse(betResponse) }\n\t}\n\n\treturn { account, roundId, bet: null }\n})\n\nexport const fetchHistory = createAsyncThunk<\n\t{ account: string; bets: Bet[] },\n\t{ account: string; claimed?: boolean }\n>('predictions/fetchHistory', async ({ account, claimed }) => {\n\tconst response = await getBetHistory({\n\t\tuser: account.toLowerCase(),\n\t\tclaimed,\n\t})\n\tconst bets = response.map(transformBetResponse)\n\n\treturn { account, bets }\n})\n\nexport const predictionsSlice = createSlice({\n\tname: 'predictions',\n\tinitialState,\n\treducers: {\n\t\tsetPredictionStatus: (state, action: PayloadAction) => {\n\t\t\tstate.status = action.payload\n\t\t},\n\t\tsetHistoryPaneState: (state, action: PayloadAction) => {\n\t\t\tstate.isHistoryPaneOpen = action.payload\n\t\t\tstate.historyFilter = HistoryFilter.ALL\n\t\t},\n\t\tsetChartPaneState: (state, action: PayloadAction) => {\n\t\t\tstate.isChartPaneOpen = action.payload\n\t\t},\n\t\tsetHistoryFilter: (state, action: PayloadAction) => {\n\t\t\tstate.historyFilter = action.payload\n\t\t},\n\t\tinitialize: (state, action: PayloadAction) => {\n\t\t\treturn action.payload\n\t\t},\n\t\tupdateMarketData: (state, action: PayloadAction<{ rounds: Round[]; market: Market }>) => {\n\t\t\tconst { rounds, market } = action.payload\n\t\t\tconst newRoundData = makeRoundData(rounds)\n\t\t\tconst incomingCurrentRound = maxBy(rounds, 'epoch')\n\n\t\t\tif (state.currentEpoch !== incomingCurrentRound.epoch) {\n\t\t\t\t// Add new round\n\t\t\t\tconst newestRound = maxBy(rounds, 'epoch') as Round\n\t\t\t\tconst futureRound = transformRoundResponse(\n\t\t\t\t\tmakeFutureRoundResponse(\n\t\t\t\t\t\tnewestRound.epoch + 2,\n\t\t\t\t\t\tnewestRound.startBlock + state.intervalBlocks,\n\t\t\t\t\t),\n\t\t\t\t)\n\n\t\t\t\tnewRoundData[futureRound.id] = futureRound\n\t\t\t}\n\n\t\t\tstate.currentEpoch = incomingCurrentRound.epoch\n\t\t\tstate.currentRoundStartBlockNumber = incomingCurrentRound.startBlock\n\t\t\tstate.status = market.paused ? PredictionStatus.PAUSED : PredictionStatus.LIVE\n\t\t\tstate.rounds = { ...state.rounds, ...newRoundData }\n\t\t},\n\t\tsetCurrentEpoch: (state, action: PayloadAction) => {\n\t\t\tstate.currentEpoch = action.payload\n\t\t},\n\t\tmarkBetAsCollected: (state, action: PayloadAction<{ account: string; betId: string }>) => {\n\t\t\tconst { account, betId } = action.payload\n\t\t\tconst history = state.history[account]\n\n\t\t\tif (history) {\n\t\t\t\tconst betIndex = history.findIndex((bet) => bet.id === betId)\n\n\t\t\t\tif (betIndex >= 0) {\n\t\t\t\t\thistory[betIndex].claimed = true\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tmarkPositionAsEntered: (\n\t\t\tstate,\n\t\t\taction: PayloadAction<{ account: string; roundId: string; partialBet: Partial }>,\n\t\t) => {\n\t\t\tconst { account, roundId, partialBet } = action.payload\n\n\t\t\tstate.bets = {\n\t\t\t\t...state.bets,\n\t\t\t\t[account]: {\n\t\t\t\t\t...state.bets[account],\n\t\t\t\t\t[roundId]: partialBet,\n\t\t\t\t},\n\t\t\t} as any\n\t\t},\n\t},\n\textraReducers: (builder) => {\n\t\t// Get round bet\n\t\tbuilder.addCase(fetchRoundBet.fulfilled, (state, action) => {\n\t\t\tconst { account, roundId, bet } = action.payload\n\n\t\t\tif (bet) {\n\t\t\t\tstate.bets = {\n\t\t\t\t\t...state.bets,\n\t\t\t\t\t[account]: {\n\t\t\t\t\t\t...state.bets[account],\n\t\t\t\t\t\t[roundId]: bet,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\t// Update Bet\n\t\tbuilder.addCase(fetchBet.fulfilled, (state, action) => {\n\t\t\tconst { account, bet } = action.payload\n\t\t\tstate.history[account] = [\n\t\t\t\t...state.history[account].filter((currentBet) => currentBet.id !== bet.id),\n\t\t\t\tbet,\n\t\t\t]\n\t\t})\n\n\t\t// Show History\n\t\tbuilder.addCase(fetchHistory.pending, (state) => {\n\t\t\tstate.isFetchingHistory = true\n\t\t})\n\t\tbuilder.addCase(fetchHistory.rejected, (state) => {\n\t\t\tstate.isFetchingHistory = false\n\t\t\tstate.isHistoryPaneOpen = true\n\t\t})\n\t\tbuilder.addCase(fetchHistory.fulfilled, (state, action) => {\n\t\t\tconst { account, bets } = action.payload\n\n\t\t\tstate.isFetchingHistory = false\n\t\t\tstate.isHistoryPaneOpen = true\n\t\t\tstate.history[account] = bets\n\t\t})\n\t},\n})\n\n// Actions\nexport const {\n\tinitialize,\n\tsetChartPaneState,\n\tsetCurrentEpoch,\n\tsetHistoryFilter,\n\tsetHistoryPaneState,\n\tupdateMarketData,\n\tmarkBetAsCollected,\n\tsetPredictionStatus,\n\tmarkPositionAsEntered,\n} = predictionsSlice.actions\n\nexport default predictionsSlice.reducer\n","import { configureStore } from '@reduxjs/toolkit'\nimport { useDispatch } from 'react-redux'\nimport farmsReducer from './farms'\nimport poolsReducer from './pools'\nimport pricesReducer from './prices'\nimport predictionsReducer from './predictions'\nimport achievementsReducer from './achievements'\nimport blockReducer from './block'\n\nconst store = configureStore({\n\tdevTools: process.env.NODE_ENV !== 'production',\n\treducer: {\n\t\tachievements: achievementsReducer,\n\t\tblock: blockReducer,\n\t\tfarms: farmsReducer,\n\t\tpools: poolsReducer,\n\t\tprices: pricesReducer,\n\t\tpredictions: predictionsReducer,\n\t},\n})\n\n/**\n * @see https://redux-toolkit.js.org/usage/usage-with-typescript#getting-the-dispatch-type\n */\nexport type AppDispatch = typeof store.dispatch\nexport const useAppDispatch = () => useDispatch()\n\nexport default store\n","import styled, { DefaultTheme } from 'styled-components'\nimport { Variant, variants } from '../Button/types'\n\ntype StyledButtonMenuProps = {\n\tvariant: Variant\n\ttheme: DefaultTheme\n}\n\nconst getBackgroundColor = ({ theme, variant }: StyledButtonMenuProps) =>\n\ttheme.colors[variant === variants.SUBTLE ? 'input' : 'tertiary']\n\nconst StyledButtonMenu = styled.div<{ variant: Variant }>`\n\tbackground-color: ${getBackgroundColor};\n\tborder-radius: 16px;\n\tdisplay: inline-flex;\n\n\t& > button + button,\n\t& > a + a {\n\t\tmargin-left: 2px; // To avoid focus shadow overlap\n\t}\n`\n\nexport default StyledButtonMenu\n","import React, { cloneElement, Children, ReactElement } from 'react'\nimport StyledButtonMenu from './StyledButtonMenu'\nimport { scales, variants } from '../Button/types'\nimport { ButtonMenuProps } from './types'\n\nconst ButtonMenu: React.FC = ({\n\tactiveIndex = 0,\n\tscale = scales.MD,\n\tvariant = variants.PRIMARY,\n\tonItemClick,\n\tchildren,\n}) => (\n\t\n\t\t{Children.map(children, (child: ReactElement, index) =>\n\t\t\tcloneElement(child, {\n\t\t\t\tisActive: activeIndex === index,\n\t\t\t\tonClick: onItemClick ? () => onItemClick(index) : undefined,\n\t\t\t\tscale,\n\t\t\t\tvariant,\n\t\t\t}),\n\t\t)}\n\t\n)\n\nexport default ButtonMenu\n","import React from 'react'\nimport styled from 'styled-components'\nimport Button from '../Button/Button'\nimport { BaseButtonProps, PolymorphicComponent, variants } from '../Button/types'\nimport { ButtonMenuItemProps } from './types'\n\ninterface InactiveButtonProps extends BaseButtonProps {\n\tforwardedAs: BaseButtonProps['as']\n}\n\nconst InactiveButton: PolymorphicComponent = styled(\n\tButton,\n)`\n\tbackground-color: transparent;\n\tcolor: ${({ theme, variant }) =>\n\t\tvariant === variants.PRIMARY ? theme.colors.primary : theme.colors.textSubtle};\n\t&:hover:not(:disabled):not(:active) {\n\t\tbackground-color: transparent;\n\t}\n`\n\nconst ButtonMenuItem: PolymorphicComponent = ({\n\tisActive = false,\n\tvariant = variants.PRIMARY,\n\tas,\n\t...props\n}: ButtonMenuItemProps) => {\n\tif (!isActive) {\n\t\treturn \n\t}\n\n\treturn \n \n )}\n \n )\n}\n\nexport default React.memo(ExpandedFooter)\n","import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport styled from 'styled-components'\nimport { useTranslation } from 'contexts/Localization'\nimport { Flex, CardFooter, ExpandableLabel, HelpIcon, useTooltip } from '../../../../../uikit-foodcourt'\nimport { Pool } from 'state/types'\nimport { CompoundingPoolTag, ManualPoolTag } from 'components/Tags'\nimport ExpandedFooter from './ExpandedFooter'\n\ninterface FooterProps {\n pool: Pool\n account: string\n totalCakeInVault?: BigNumber\n}\n\nconst ExpandableButtonWrapper = styled(Flex)`\n align-items: center;\n justify-content: space-between;\n button {\n padding: 0;\n }\n`\n\nconst Footer: React.FC = ({ pool, account }) => {\n const { isAutoVault } = pool\n const { t } = useTranslation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n const manualTooltipText = t('You must harvest and compound your earnings from this pool manually.')\n const autoTooltipText = t(\n 'Any funds you stake in this pool will be automagically harvested and restaked (compounded) for you.',\n )\n\n const { targetRef, tooltip, tooltipVisible } = useTooltip(isAutoVault ? autoTooltipText : manualTooltipText, {\n placement: 'bottom',\n })\n\n return (\n \n \n \n {isAutoVault ? : }\n {tooltipVisible && tooltip}\n \n \n \n \n setIsExpanded(!isExpanded)}>\n {isExpanded ? t('Hide') : t('Details')}\n \n \n {isExpanded && }\n \n )\n}\n\nexport default Footer\n","import React from 'react'\nimport { CardHeader, Heading, Text, Flex, Image } from '../../../../uikit-foodcourt'\nimport styled from 'styled-components'\nimport { useTranslation } from 'contexts/Localization'\n\nconst Wrapper = styled(CardHeader)<{ isFinished?: boolean; background?: string; isPromotedPool?: boolean }>`\n background: ${({ isFinished, background, theme }) =>\n isFinished ? theme.colors.backgroundDisabled : theme.colors.gradients[background]};\n border-radius: ${({ theme, isPromotedPool }) =>\n isPromotedPool ? '31px 31px 0 0' : `${theme.radii.card} ${theme.radii.card} 0 0`};\n`\n\nconst StyledCardHeader: React.FC<{\n earningTokenSymbol: string\n stakingTokenSymbol: string\n isAutoVault?: boolean\n isFinished?: boolean\n isStaking?: boolean\n isPromotedPool?: boolean\n}> = ({\n earningTokenSymbol,\n stakingTokenSymbol,\n isFinished = false,\n isAutoVault = false,\n isStaking = false,\n isPromotedPool = false,\n}) => {\n const { t } = useTranslation()\n const poolImageSrc = isAutoVault\n ? `cake-cakevault.svg`\n : `${earningTokenSymbol}-${stakingTokenSymbol}.svg`.toLocaleLowerCase()\n const isCakePool = earningTokenSymbol === 'CAKE' && stakingTokenSymbol === 'CAKE'\n const background = isStaking ? 'bubblegum' : 'cardHeader'\n\n const getHeadingPrefix = () => {\n if (isAutoVault) {\n // vault\n return t('Auto')\n }\n if (isCakePool) {\n // Stake COUPON\n return t('Manual')\n }\n // all other pools\n return t('Earn')\n }\n\n const getSubHeading = () => {\n if (isAutoVault) {\n return t('Automatic restaking')\n }\n if (isCakePool) {\n return t('Earn COUPON')\n }\n return t('Stake %symbol%', { symbol: stakingTokenSymbol })\n }\n\n return (\n \n \n \n \n {`${getHeadingPrefix()} ${earningTokenSymbol}`}\n \n {getSubHeading()}\n \n {earningTokenSymbol}\n \n \n )\n}\n\nexport default StyledCardHeader\n","import React from 'react'\nimport styled from 'styled-components'\nimport { ListViewIcon, CardViewIcon, IconButton } from '../../../../uikit-foodcourt'\n\nexport enum ViewMode {\n 'TABLE' = 'TABLE',\n 'CARD' = 'CARD',\n}\n\ninterface ToggleViewProps {\n viewMode: ViewMode\n onToggle: (mode: ViewMode) => void\n}\n\nconst Container = styled.div`\n margin-right: 0px;\n margin-left: -8px;\n\n ${({ theme }) => theme.mediaQueries.sm} {\n margin-left: 0;\n margin-right: 16px;\n }\n`\n\nconst ToggleView: React.FunctionComponent = ({ viewMode, onToggle }) => {\n const handleToggle = (mode: ViewMode) => {\n if (viewMode !== mode) {\n onToggle(mode)\n }\n }\n\n return (\n \n handleToggle(ViewMode.CARD)}>\n \n \n handleToggle(ViewMode.TABLE)}>\n \n \n \n )\n}\n\nexport default ToggleView\n","import React from 'react'\nimport { Button, AutoRenewIcon, Skeleton } from '../../../../../uikit-foodcourt'\nimport { useSousApprove } from 'hooks/useApprove'\nimport { useTranslation } from 'contexts/Localization'\nimport { useERC20 } from 'hooks/useContract'\nimport { getAddress } from 'utils/addressHelpers'\nimport { Pool } from 'state/types'\n\ninterface ApprovalActionProps {\n pool: Pool\n isLoading?: boolean\n}\n\nconst ApprovalAction: React.FC = ({ pool, isLoading = false }) => {\n const { sousId, stakingToken, earningToken } = pool\n const { t } = useTranslation()\n const stakingTokenContract = useERC20(stakingToken.address ? getAddress(stakingToken.address) : '')\n const { handleApprove, requestedApproval } = useSousApprove(stakingTokenContract, sousId, earningToken.symbol)\n\n\tif (process.env.REACT_APP_ENABLE_FARM === 'false') {\n\t\treturn (\n\t\t\t\n\t\t)\n\t}\n\n return (\n <>\n {isLoading ? (\n \n ) : (\n : null}\n disabled={requestedApproval}\n onClick={handleApprove}\n width=\"100%\"\n >\n {t('Enable')}\n \n )}\n \n )\n}\n\nexport default ApprovalAction\n","import React from 'react'\nimport { useTranslation } from 'contexts/Localization'\nimport styled from 'styled-components'\nimport { Modal, Text, Button, OpenNewIcon, Link } from '../../../../../uikit-foodcourt'\nimport { BASE_EXCHANGE_URL } from 'config'\nimport useTheme from 'hooks/useTheme'\n\ninterface NotEnoughTokensModalProps {\n tokenSymbol: string\n onDismiss?: () => void\n}\n\nconst StyledLink = styled(Link)`\n width: 100%;\n`\n\nconst NotEnoughTokensModal: React.FC = ({ tokenSymbol, onDismiss }) => {\n const { t } = useTranslation()\n const { theme } = useTheme()\n\n return (\n \n \n {t('Insufficient %symbol% balance', { symbol: tokenSymbol })}\n \n {t('You’ll need %symbol% to stake in this pool!', { symbol: tokenSymbol })}\n \n {t('Buy some %symbol%, or make sure your %symbol% isn’t in another pool or LP.', {\n symbol: tokenSymbol,\n })}\n \n \n \n \n \n \n \n )\n}\n\nexport default NotEnoughTokensModal\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Button } from '../../../../../uikit-foodcourt'\n\ninterface PercentageButtonProps {\n onClick: () => void\n}\n\nconst StyledButton = styled(Button)`\n flex-grow: 1;\n`\n\nconst PercentageButton: React.FC = ({ children, onClick }) => {\n return (\n \n {children}\n \n )\n}\n\nexport default PercentageButton\n","import React, { useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport { Modal, Text, Flex, Image, Button, Slider, BalanceInput, AutoRenewIcon, Link } from '../../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport { BASE_EXCHANGE_URL } from 'config'\nimport { useSousStake } from 'hooks/useStake'\nimport { useSousUnstake } from 'hooks/useUnstake'\nimport useTheme from 'hooks/useTheme'\nimport useToast from 'hooks/useToast'\nimport BigNumber from 'bignumber.js'\nimport { getFullDisplayBalance, formatNumber, getDecimalAmount } from 'utils/formatBalance'\nimport { Pool } from 'state/types'\nimport PercentageButton from './PercentageButton'\n\ninterface StakeModalProps {\n isBnbPool: boolean\n pool: Pool\n stakingTokenBalance: BigNumber\n stakingTokenPrice: number\n isRemovingStake?: boolean\n onDismiss?: () => void\n}\n\nconst StyledLink = styled(Link)`\n width: 100%;\n`\n\nconst StakeModal: React.FC = ({\n isBnbPool,\n pool,\n stakingTokenBalance,\n stakingTokenPrice,\n isRemovingStake = false,\n onDismiss,\n}) => {\n const { sousId, stakingToken, userData, stakingLimit, earningToken } = pool\n const { t } = useTranslation()\n const { theme } = useTheme()\n const { onStake } = useSousStake(sousId, isBnbPool)\n const { onUnstake } = useSousUnstake(sousId, pool.enableEmergencyWithdraw)\n const { toastSuccess, toastError } = useToast()\n const [pendingTx, setPendingTx] = useState(false)\n const [stakeAmount, setStakeAmount] = useState('')\n const [hasReachedStakeLimit, setHasReachedStakedLimit] = useState(false)\n const [percent, setPercent] = useState(0)\n const getCalculatedStakingLimit = () => {\n if (isRemovingStake) {\n return userData.stakedBalance\n }\n return stakingLimit.gt(0) && stakingTokenBalance.gt(stakingLimit) ? stakingLimit : stakingTokenBalance\n }\n\n const usdValueStaked = stakeAmount && formatNumber(new BigNumber(stakeAmount).times(stakingTokenPrice).toNumber())\n\n useEffect(() => {\n if (stakingLimit.gt(0) && !isRemovingStake) {\n const fullDecimalStakeAmount = getDecimalAmount(new BigNumber(stakeAmount), stakingToken.decimals)\n setHasReachedStakedLimit(fullDecimalStakeAmount.plus(userData.stakedBalance).gt(stakingLimit))\n }\n }, [stakeAmount, stakingLimit, userData, stakingToken, isRemovingStake, setHasReachedStakedLimit])\n\n const handleStakeInputChange = (input: string) => {\n if (input) {\n const convertedInput = getDecimalAmount(new BigNumber(input), stakingToken.decimals)\n const percentage = Math.floor(convertedInput.dividedBy(getCalculatedStakingLimit()).multipliedBy(100).toNumber())\n setPercent(Math.min(percentage, 100))\n } else {\n setPercent(0)\n }\n setStakeAmount(input)\n }\n\n const handleChangePercent = (sliderPercent: number) => {\n if (sliderPercent > 0) {\n const percentageOfStakingMax = getCalculatedStakingLimit().dividedBy(100).multipliedBy(sliderPercent)\n const amountToStake = getFullDisplayBalance(percentageOfStakingMax, stakingToken.decimals, stakingToken.decimals)\n setStakeAmount(amountToStake)\n } else {\n setStakeAmount('')\n }\n setPercent(sliderPercent)\n }\n\n const handleConfirmClick = async () => {\n setPendingTx(true)\n\n if (isRemovingStake) {\n // unstaking\n try {\n await onUnstake(stakeAmount, stakingToken.decimals)\n toastSuccess(\n `${t('Unstaked')}!`,\n t('Your %symbol% earnings have also been harvested to your wallet!', {\n symbol: earningToken.symbol,\n }),\n )\n setPendingTx(false)\n onDismiss()\n } catch (e) {\n toastError(t('Canceled'), t('Please try again and confirm the transaction.'))\n setPendingTx(false)\n }\n } else {\n try {\n // staking\n await onStake(stakeAmount, stakingToken.decimals)\n toastSuccess(\n `${t('Staked')}!`,\n t('Your %symbol% funds have been staked in the pool!', {\n symbol: stakingToken.symbol,\n }),\n )\n setPendingTx(false)\n onDismiss()\n } catch (e) {\n toastError(t('Canceled'), t('Please try again and confirm the transaction.'))\n setPendingTx(false)\n }\n }\n }\n\n return (\n \n {stakingLimit.gt(0) && !isRemovingStake && (\n \n {t('Max stake for this pool: %amount% %token%', {\n amount: getFullDisplayBalance(stakingLimit, stakingToken.decimals, 0),\n token: stakingToken.symbol,\n })}\n \n )}\n \n {isRemovingStake ? t('Unstake') : t('Stake')}:\n \n {stakingToken.symbol}\n \n {stakingToken.symbol}\n \n \n \n \n {hasReachedStakeLimit && (\n \n {t('Maximum total stake: %amount% %token%', {\n amount: getFullDisplayBalance(new BigNumber(stakingLimit), stakingToken.decimals, 0),\n token: stakingToken.symbol,\n })}\n \n )}\n \n {t('Balance: %balance%', {\n balance: getFullDisplayBalance(getCalculatedStakingLimit(), stakingToken.decimals),\n })}\n \n \n \n handleChangePercent(25)}>25%\n handleChangePercent(50)}>50%\n handleChangePercent(75)}>75%\n handleChangePercent(100)}>MAX\n \n : null}\n onClick={handleConfirmClick}\n disabled={!stakeAmount || parseFloat(stakeAmount) === 0 || hasReachedStakeLimit}\n mt=\"24px\"\n >\n {pendingTx ? t('Confirming') : t('Confirm')}\n \n {!isRemovingStake && (\n \n \n \n )}\n \n )\n}\n\nexport default StakeModal\n","import React from 'react'\nimport { Flex, Text, Button, IconButton, AddIcon, MinusIcon, useModal, Skeleton, useTooltip } from '../../../../../uikit-foodcourt'\nimport BigNumber from 'bignumber.js'\nimport { useTranslation } from 'contexts/Localization'\nimport { getBalanceNumber } from 'utils/formatBalance'\nimport { Pool } from 'state/types'\nimport Balance from 'components/Balance'\nimport NotEnoughTokensModal from '../Modals/NotEnoughTokensModal'\nimport StakeModal from '../Modals/StakeModal'\n\ninterface StakeActionsProps {\n pool: Pool\n stakingTokenBalance: BigNumber\n stakedBalance: BigNumber\n isBnbPool: boolean\n isStaked: ConstrainBoolean\n isLoading?: boolean\n}\n\nconst StakeAction: React.FC = ({\n pool,\n stakingTokenBalance,\n stakedBalance,\n isBnbPool,\n isStaked,\n isLoading = false,\n}) => {\n const { stakingToken, stakingTokenPrice, stakingLimit, isFinished, userData } = pool\n const { t } = useTranslation()\n const stakedTokenBalance = getBalanceNumber(stakedBalance, stakingToken.decimals)\n const stakedTokenDollarBalance = getBalanceNumber(\n stakedBalance.multipliedBy(stakingTokenPrice),\n stakingToken.decimals,\n )\n\n const [onPresentTokenRequired] = useModal()\n\n const [onPresentStake] = useModal(\n ,\n )\n\n const [onPresentUnstake] = useModal(\n ,\n )\n\n const { targetRef, tooltip, tooltipVisible } = useTooltip(\n t('You’ve already staked the maximum amount you can stake in this pool!'),\n { placement: 'bottom' },\n )\n\n const reachStakingLimit = stakingLimit.gt(0) && userData.stakedBalance.gte(stakingLimit)\n\n const renderStakeAction = () => {\n return isStaked ? (\n \n \n <>\n \n {stakingTokenPrice !== 0 && (\n \n \n \n )}\n \n \n \n \n \n \n {reachStakingLimit ? (\n \n \n \n \n \n ) : (\n \n \n \n )}\n \n {tooltipVisible && tooltip}\n \n ) : (\n \n )\n }\n\n return {isLoading ? : renderStakeAction()}\n}\n\nexport default StakeAction\n","import React, { useState } from 'react'\nimport {\n Modal,\n Text,\n Button,\n Heading,\n Flex,\n AutoRenewIcon,\n ButtonMenu,\n ButtonMenuItem,\n HelpIcon,\n useTooltip,\n} from '../../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport useTheme from 'hooks/useTheme'\nimport { useSousHarvest } from 'hooks/useHarvest'\nimport { useSousStake } from 'hooks/useStake'\nimport useToast from 'hooks/useToast'\nimport { Token } from 'config/constants/types'\n\ninterface CollectModalProps {\n formattedBalance: string\n fullBalance: string\n earningToken: Token\n earningsDollarValue: string\n sousId: number\n isBnbPool: boolean\n isCompoundPool?: boolean\n onDismiss?: () => void\n}\n\nconst CollectModal: React.FC = ({\n formattedBalance,\n fullBalance,\n earningToken,\n earningsDollarValue,\n sousId,\n isBnbPool,\n isCompoundPool = false,\n onDismiss,\n}) => {\n const { t } = useTranslation()\n const { theme } = useTheme()\n const { toastSuccess, toastError } = useToast()\n const { onReward } = useSousHarvest(sousId, isBnbPool)\n const { onStake } = useSousStake(sousId, isBnbPool)\n const [pendingTx, setPendingTx] = useState(false)\n const [shouldCompound, setShouldCompound] = useState(isCompoundPool)\n const { targetRef, tooltip, tooltipVisible } = useTooltip(\n <>\n {t('Compound: collect and restake CAKE into pool.')}\n {t('Harvest: collect CAKE and send to wallet')}\n ,\n { placement: 'bottom-end', tooltipOffset: [20, 10] },\n )\n\n const handleHarvestConfirm = async () => {\n setPendingTx(true)\n // compounding\n if (shouldCompound) {\n try {\n await onStake(fullBalance, earningToken.decimals)\n toastSuccess(\n `${t('Compounded')}!`,\n t('Your %symbol% earnings have been re-invested into the pool!', { symbol: earningToken.symbol }),\n )\n setPendingTx(false)\n onDismiss()\n } catch (e) {\n toastError(t('Canceled'), t('Please try again and confirm the transaction.'))\n setPendingTx(false)\n }\n } else {\n // harvesting\n try {\n await onReward()\n toastSuccess(\n `${t('Harvested')}!`,\n t('Your %symbol% earnings have been sent to your wallet!', { symbol: earningToken.symbol }),\n )\n setPendingTx(false)\n onDismiss()\n } catch (e) {\n toastError(t('Canceled'), t('Please try again and confirm the transaction.'))\n setPendingTx(false)\n }\n }\n }\n\n return (\n \n {isCompoundPool && (\n \n setShouldCompound(!index)}\n >\n {t('Compound')}\n {t('Harvest')}\n \n \n \n \n {tooltipVisible && tooltip}\n \n )}\n\n \n {shouldCompound ? t('Compounding') : t('Harvesting')}:\n \n \n {formattedBalance} {earningToken.symbol}\n \n {`~${earningsDollarValue || 0} USD`}\n \n \n\n : null}\n >\n {pendingTx ? t('Confirming') : t('Confirm')}\n \n \n \n )\n}\n\nexport default CollectModal\n","import React from 'react'\nimport { Flex, Text, Button, Heading, useModal, Skeleton } from '../../../../../uikit-foodcourt'\nimport BigNumber from 'bignumber.js'\nimport { Token } from 'config/constants/types'\nimport { useTranslation } from 'contexts/Localization'\nimport { getFullDisplayBalance, getBalanceNumber, formatNumber } from 'utils/formatBalance'\nimport Balance from 'components/Balance'\nimport CollectModal from '../Modals/CollectModal'\n\ninterface HarvestActionsProps {\n earnings: BigNumber\n earningToken: Token\n sousId: number\n earningTokenPrice: number\n isBnbPool: boolean\n isLoading?: boolean\n}\n\nconst HarvestActions: React.FC = ({\n earnings,\n earningToken,\n sousId,\n isBnbPool,\n earningTokenPrice,\n isLoading = false,\n}) => {\n const { t } = useTranslation()\n const earningTokenBalance = getBalanceNumber(earnings, earningToken.decimals)\n const formattedBalance = formatNumber(earningTokenBalance, 3, 3)\n\n const earningTokenDollarBalance = getBalanceNumber(earnings.multipliedBy(earningTokenPrice), earningToken.decimals)\n const earningsDollarValue = formatNumber(earningTokenDollarBalance)\n\n const fullBalance = getFullDisplayBalance(earnings, earningToken.decimals)\n const hasEarnings = earnings.toNumber() > 0\n const isCompoundPool = sousId === 0\n\n const [onPresentCollect] = useModal(\n ,\n )\n\n return (\n \n \n \n {isLoading ? (\n \n ) : (\n <>\n {hasEarnings ? (\n \n ) : (\n 0\n )}\n {earningTokenPrice !== 0 && (\n \n ~\n {hasEarnings ? (\n \n ) : (\n '0 USD'\n )}\n \n )}\n \n )}\n \n \n \n \n \n \n )\n}\n\nexport default HarvestActions\n","import BigNumber from 'bignumber.js'\nimport React from 'react'\nimport styled from 'styled-components'\nimport { BIG_ZERO } from 'utils/bigNumber'\nimport { Flex, Text, Box } from '../../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport { PoolCategory } from 'config/constants/types'\nimport { Pool } from 'state/types'\nimport ApprovalAction from './ApprovalAction'\nimport StakeActions from './StakeActions'\nimport HarvestActions from './HarvestActions'\n\nconst InlineText = styled(Text)`\n display: inline;\n`\n\ninterface CardActionsProps {\n pool: Pool\n stakedBalance: BigNumber\n}\n\nconst CardActions: React.FC = ({ pool, stakedBalance }) => {\n const { sousId, stakingToken, earningToken, harvest, poolCategory, userData, earningTokenPrice } = pool\n // Pools using native BNB behave differently than pools using a token\n const isBnbPool = poolCategory === PoolCategory.BINANCE\n const { t } = useTranslation()\n const allowance = userData?.allowance ? new BigNumber(userData.allowance) : BIG_ZERO\n const stakingTokenBalance = userData?.stakingTokenBalance ? new BigNumber(userData.stakingTokenBalance) : BIG_ZERO\n const earnings = userData?.pendingReward ? new BigNumber(userData.pendingReward) : BIG_ZERO\n const needsApproval = !allowance.gt(0) && !isBnbPool\n const isStaked = stakedBalance.gt(0)\n const isLoading = !userData\n\n return (\n \n \n {harvest && (\n <>\n \n \n {`${earningToken.symbol} `}\n \n \n {t('Earned')}\n \n \n \n \n )}\n \n \n {isStaked ? stakingToken.symbol : t('Stake')}{' '}\n \n \n {isStaked ? t('Staked') : `${stakingToken.symbol}`}\n \n \n {needsApproval ? (\n \n ) : (\n \n )}\n \n \n )\n}\n\nexport default CardActions\n","import BigNumber from 'bignumber.js'\nimport React from 'react'\nimport { CardBody, Flex, Text, CardRibbon } from '../../../../uikit-foodcourt'\nimport UnlockButton from 'components/UnlockButton'\nimport { useTranslation } from 'contexts/Localization'\nimport { BIG_ZERO } from 'utils/bigNumber'\nimport { Pool } from 'state/types'\nimport AprRow from './AprRow'\nimport { StyledCard, StyledCardInner } from './StyledCard'\nimport CardFooter from './CardFooter'\nimport StyledCardHeader from './StyledCardHeader'\nimport CardActions from './CardActions'\n\nconst PoolCard: React.FC<{ pool: Pool; account: string }> = ({ pool, account }) => {\n const { sousId, stakingToken, earningToken, isFinished, userData } = pool\n const { t } = useTranslation()\n const stakedBalance = userData?.stakedBalance ? new BigNumber(userData.stakedBalance) : BIG_ZERO\n const accountHasStakedBalance = stakedBalance.gt(0)\n\n return (\n }\n >\n \n \n \n \n \n {account ? (\n \n ) : (\n <>\n \n {t('Start earning')}\n \n \n \n )}\n \n \n \n \n \n )\n}\n\nexport default PoolCard\n","import React from 'react'\nimport { useRouteMatch, Link } from 'react-router-dom'\nimport {\n ButtonMenu,\n ButtonMenuItem,\n Toggle,\n Text,\n Flex,\n NotificationDot,\n useMatchBreakpoints,\n} from '../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport ToggleView, { ViewMode } from './ToggleView/ToggleView'\n\nconst PoolTabButtons = ({ stakedOnly, setStakedOnly, hasStakeInFinishedPools, viewMode, setViewMode }) => {\n const { url, isExact } = useRouteMatch()\n const { isXs, isSm } = useMatchBreakpoints()\n const { t } = useTranslation()\n\n const viewModeToggle = setViewMode(mode)} />\n\n const liveOrFinishedSwitch = (\n \n \n {t('Live')}\n \n \n \n {t('Finished')}\n \n \n \n )\n\n const stakedOnlySwitch = (\n \n setStakedOnly((prev) => !prev)} />\n {t('Staked only')}\n \n )\n\n if (isXs || isSm) {\n return (\n \n \n {viewModeToggle}\n {liveOrFinishedSwitch}\n \n {stakedOnlySwitch}\n \n )\n }\n\n return (\n \n {viewModeToggle}\n {liveOrFinishedSwitch}\n {stakedOnlySwitch}\n \n )\n}\n\nexport default PoolTabButtons\n","import { Flex, Text } from '../../../../../uikit-foodcourt'\nimport styled from 'styled-components'\n\nconst BaseCell = styled.div`\n color: black;\n\n padding: 24px 8px;\n\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n`\n\nexport const CellContent = styled(Flex)`\n flex-direction: column;\n justify-content: center;\n max-height: 40px;\n ${Text} {\n line-height: 1;\n }\n`\n\nexport default BaseCell\n","import React from 'react'\nimport styled from 'styled-components'\nimport BigNumber from 'bignumber.js'\nimport { Text, Image, useMatchBreakpoints } from '../../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport { Pool } from 'state/types'\nimport { BIG_ZERO } from 'utils/bigNumber'\nimport BaseCell, { CellContent } from './BaseCell'\n\ninterface NameCellProps {\n pool: Pool\n}\n\nconst StyledCell = styled(BaseCell)`\n flex: 5;\n flex-direction: row;\n padding-left: 12px;\n ${({ theme }) => theme.mediaQueries.sm} {\n flex: 1 0 150px;\n padding-left: 32px;\n }\n`\n\nconst NameCell: React.FC = ({ pool }) => {\n const { t } = useTranslation()\n const { isXs, isSm } = useMatchBreakpoints()\n const { sousId, stakingToken, earningToken, userData, isFinished, isAutoVault } = pool\n\n const stakingTokenSymbol = stakingToken.symbol\n const earningTokenSymbol = earningToken.symbol\n const iconFile = `${earningTokenSymbol}-${stakingTokenSymbol}.svg`.toLocaleLowerCase()\n\n const stakedBalance = userData?.stakedBalance ? new BigNumber(userData.stakedBalance) : BIG_ZERO\n const isStaked = stakedBalance.gt(0)\n const isManualCakePool = sousId === 0\n\n const showStakedTag = isStaked\n\n let title = `${t('Earn')} ${earningTokenSymbol}`\n let subtitle = `${t('Stake')} ${stakingTokenSymbol}`\n const showSubtitle = sousId !== 0 || (sousId === 0 && !isXs && !isSm)\n\n if (isAutoVault) {\n title = t('Auto COUPON')\n subtitle = t('Automatic restaking')\n } else if (isManualCakePool) {\n title = t('Stake COUPON')\n subtitle = `${t('Earn')} COUPON`\n }\n\n return (\n \n \"icon\"\n \n {showStakedTag && (\n \n {t('Staked')}\n \n )}\n \n {title}\n \n {showSubtitle && (\n \n {subtitle}\n \n )}\n \n \n )\n}\n\nexport default NameCell\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Skeleton, Text, useTooltip, HelpIcon, Flex, Box, useModal, useMatchBreakpoints } from '../../../../../uikit-foodcourt'\nimport { Pool } from 'state/types'\nimport BigNumber from 'bignumber.js'\nimport { PoolCategory } from 'config/constants/types'\nimport { BIG_ZERO } from 'utils/bigNumber'\nimport { formatNumber, getBalanceNumber, getFullDisplayBalance } from 'utils/formatBalance'\nimport Balance from 'components/Balance'\nimport { useCakeVault } from 'state/hooks'\nimport { useTranslation } from 'contexts/Localization'\nimport { getCakeVaultEarnings } from 'views/Pools/helpers'\nimport BaseCell, { CellContent } from './BaseCell'\nimport CollectModal from '../../PoolCard/Modals/CollectModal'\n\ninterface EarningsCellProps {\n pool: Pool\n account: string\n userDataLoaded: boolean\n}\n\nconst StyledCell = styled(BaseCell)`\n flex: 4.5;\n ${({ theme }) => theme.mediaQueries.sm} {\n flex: 1 0 120px;\n }\n`\n\nconst HelpIconWrapper = styled.div`\n align-self: center;\n`\n\nconst EarningsCell: React.FC = ({ pool, account, userDataLoaded }) => {\n const { t } = useTranslation()\n const { isXs, isSm } = useMatchBreakpoints()\n const { sousId, earningToken, poolCategory, userData, earningTokenPrice, isAutoVault } = pool\n const isManualCakePool = sousId === 0\n\n const earnings = userData?.pendingReward ? new BigNumber(userData.pendingReward) : BIG_ZERO\n // These will be reassigned later if its Auto CAKE vault\n let earningTokenBalance = getBalanceNumber(earnings, earningToken.decimals)\n let earningTokenDollarBalance = getBalanceNumber(earnings.multipliedBy(earningTokenPrice), earningToken.decimals)\n let hasEarnings = account && earnings.gt(0)\n const fullBalance = getFullDisplayBalance(earnings, earningToken.decimals)\n const formattedBalance = formatNumber(earningTokenBalance, 3, 3)\n const earningsDollarValue = formatNumber(earningTokenDollarBalance)\n const isBnbPool = poolCategory === PoolCategory.BINANCE\n\n // Auto CAKE vault calculations\n const {\n userData: { cakeAtLastUserAction, userShares, lastUserActionTime },\n pricePerFullShare,\n } = useCakeVault()\n const { hasAutoEarnings, autoCakeToDisplay, autoUsdToDisplay } = getCakeVaultEarnings(\n account,\n cakeAtLastUserAction,\n userShares,\n pricePerFullShare,\n earningTokenPrice,\n )\n\n const lastActionInMs = lastUserActionTime && parseInt(lastUserActionTime) * 1000\n const dateTimeLastAction = new Date(lastActionInMs)\n const dateStringToDisplay = dateTimeLastAction.toLocaleString()\n\n const labelText = isAutoVault ? t('Recent CAKE profit') : t('%asset% Earned', { asset: earningToken.symbol })\n earningTokenBalance = isAutoVault ? autoCakeToDisplay : earningTokenBalance\n hasEarnings = isAutoVault ? hasAutoEarnings : hasEarnings\n earningTokenDollarBalance = isAutoVault ? autoUsdToDisplay : earningTokenDollarBalance\n\n const { targetRef, tooltip, tooltipVisible } = useTooltip(\n <>\n \n \n {t('Earned since your last action')}\n {dateStringToDisplay}\n ,\n { placement: 'bottom' },\n )\n\n const [onPresentCollect] = useModal(\n ,\n )\n\n const handleEarningsClick = (event: React.MouseEvent) => {\n event.stopPropagation()\n onPresentCollect()\n }\n\n return (\n \n \n \n {labelText}\n \n {!userDataLoaded && account ? (\n \n ) : (\n <>\n {tooltipVisible && tooltip}\n \n \n \n {hasEarnings ? (\n \n ) : (\n \n 0 USD\n \n )}\n \n {isAutoVault && hasEarnings && !isXs && !isSm && (\n \n \n \n )}\n \n \n )}\n \n \n )\n}\n\nexport default EarningsCell\n","import React from 'react'\nimport { Flex, useModal, CalculateIcon, IconButton, Skeleton, FlexProps } from '../../../../uikit-foodcourt'\nimport { BASE_EXCHANGE_URL } from 'config'\nimport ApyCalculatorModal from 'components/ApyCalculatorModal'\nimport Balance from 'components/Balance'\nimport { Pool } from 'state/types'\nimport { useTranslation } from 'contexts/Localization'\nimport { getAprData } from 'views/Pools/helpers'\n\ninterface AprProps extends FlexProps {\n pool: Pool\n showIcon: boolean\n performanceFee?: number\n}\n\nconst Apr: React.FC = ({ pool, showIcon, performanceFee = 0, ...props }) => {\n const { stakingToken, earningToken, isFinished, earningTokenPrice, apr } = pool\n const { t } = useTranslation()\n\n const { apr: earningsPercentageToDisplay, roundingDecimals, compoundFrequency } = getAprData(pool, performanceFee)\n\n const apyModalLink =\n stakingToken.address &&\n `${BASE_EXCHANGE_URL}/#/swap?outputCurrency=${stakingToken.address[process.env.REACT_APP_CHAIN_ID]}`\n\n const [onPresentApyModal] = useModal(\n ,\n )\n\n const openRoiModal = (event: React.MouseEvent) => {\n event.stopPropagation()\n onPresentApyModal()\n }\n\n return (\n \n {earningsPercentageToDisplay || isFinished ? (\n <>\n \n \n \n {!isFinished && showIcon && (\n \n \n \n \n \n )}\n \n ) : (\n \n )}\n \n )\n}\n\nexport default Apr\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Text, useMatchBreakpoints } from '../../../../../uikit-foodcourt'\nimport { Pool } from 'state/types'\nimport { useTranslation } from 'contexts/Localization'\nimport BaseCell, { CellContent } from './BaseCell'\nimport Apr from '../Apr'\n\ninterface AprCellProps {\n pool: Pool\n performanceFee: number\n}\n\nconst StyledCell = styled(BaseCell)`\n flex: 1 0 50px;\n ${({ theme }) => theme.mediaQueries.md} {\n flex: 0 0 120px;\n }\n`\n\nconst AprCell: React.FC = ({ pool, performanceFee }) => {\n const { t } = useTranslation()\n const { isXs, isSm } = useMatchBreakpoints()\n const { isAutoVault } = pool\n return (\n \n \n \n {isAutoVault ? t('APY') : t('APR')}\n \n \n \n \n )\n}\n\nexport default AprCell\n","import React, { useMemo } from 'react'\nimport { Flex, Skeleton, Text } from '../../../../../uikit-foodcourt'\nimport styled from 'styled-components'\nimport { useTranslation } from 'contexts/Localization'\nimport Balance from 'components/Balance'\nimport { Pool } from 'state/types'\nimport { getBalanceNumber } from 'utils/formatBalance'\nimport BaseCell, { CellContent } from './BaseCell'\n\ninterface TotalStakedCellProps {\n pool: Pool\n}\n\nconst StyledCell = styled(BaseCell)`\n flex: 2 0 100px;\n`\n\nconst TotalStakedCell: React.FC = ({ pool }) => {\n const { t } = useTranslation()\n const { stakingToken, totalStaked, isAutoVault } = pool\n\n const totalStakedBalance = useMemo(() => {\n return getBalanceNumber(totalStaked, stakingToken.decimals)\n }, [isAutoVault, totalStaked, stakingToken.decimals])\n\n return (\n \n \n \n {t('Total staked')}\n \n {totalStakedBalance ? (\n \n \n \n ) : (\n \n )}\n \n \n )\n}\n\nexport default TotalStakedCell\n","import { BASE_REI_SCAN_URL } from 'config'\n\nexport const getBscScanAddressUrl = (address: string) => {\n\treturn `${BASE_REI_SCAN_URL}/address/${address}`\n}\n\nexport const getBscScanTransactionUrl = (transactionHash: string) => {\n\treturn `${BASE_REI_SCAN_URL}/tx/${transactionHash}`\n}\n\nexport const getBscScanBlockNumberUrl = (block: string | number) => {\n\treturn `${BASE_REI_SCAN_URL}/block/${block}`\n}\n\nexport const getBscScanBlockCountdownUrl = (block: string | number) => {\n\treturn `${BASE_REI_SCAN_URL}/block/countdown/${block}`\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Flex, Link, Skeleton, Text, TimerIcon } from '../../../../../uikit-foodcourt'\nimport { getBscScanBlockCountdownUrl } from 'utils/bscscan'\nimport { Pool } from 'state/types'\nimport { useBlock } from 'state/hooks'\nimport Balance from 'components/Balance'\nimport { useTranslation } from 'contexts/Localization'\nimport { getPoolBlockInfo } from 'views/Pools/helpers'\nimport BaseCell, { CellContent } from './BaseCell'\n\ninterface FinishCellProps {\n pool: Pool\n}\n\nconst StyledCell = styled(BaseCell)`\n flex: 2 0 100px;\n`\n\nconst EndsInCell: React.FC = ({ pool }) => {\n const { sousId, totalStaked, endBlock, isFinished } = pool\n const { currentBlock } = useBlock()\n const { t } = useTranslation()\n\n const { shouldShowBlockCountdown, blocksUntilStart, blocksRemaining, hasPoolStarted, blocksToDisplay } =\n getPoolBlockInfo(pool, currentBlock)\n\n const isCakePool = sousId === 0\n\n const renderBlocks = shouldShowBlockCountdown ? (\n \n \n \n \n {t('Blocks')}\n \n \n \n e.stopPropagation()}>\n \n \n \n \n ) : (\n -\n )\n\n // A bit hacky way to determine if public data is loading relying on totalStaked\n // Opted to go for this since we don't really need a separate publicDataLoaded flag\n // anywhere else\n const isLoadingPublicData = !totalStaked.gt(0) || !currentBlock || (!blocksRemaining && !blocksUntilStart)\n const showLoading = isLoadingPublicData && !isCakePool && !isFinished\n return (\n \n \n \n {hasPoolStarted || !shouldShowBlockCountdown ? t('Ends in') : t('Starts in')}\n \n {showLoading ? : renderBlocks}\n \n \n )\n}\n\nexport default EndsInCell\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Text, ChevronDownIcon } from '../../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport BaseCell from './BaseCell'\n\ninterface ExpandActionCellProps {\n expanded: boolean\n isFullLayout: boolean\n}\n\nconst StyledCell = styled(BaseCell)`\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n flex: 1;\n padding-right: 12px;\n padding-left: 0px;\n ${({ theme }) => theme.mediaQueries.md} {\n flex: 0 0 120px;\n padding-right: 32px;\n padding-left: 8px;\n }\n`\n\nconst ArrowIcon = styled(ChevronDownIcon)<{ toggled: boolean }>`\n transform: ${({ toggled }) => (toggled ? 'rotate(180deg)' : 'rotate(0)')};\n height: 24px;\n`\n\nconst TotalStakedCell: React.FC = ({ expanded, isFullLayout }) => {\n const { t } = useTranslation()\n return (\n \n {isFullLayout && (\n \n {expanded ? t('Hide') : t('Details')}\n \n )}\n \n \n )\n}\n\nexport default TotalStakedCell\n","import styled from 'styled-components'\n\nexport const ActionContainer = styled.div`\n padding: 16px;\n border: 2px solid ${({ theme }) => theme.colors.input};\n border-radius: 16px;\n flex-grow: 1;\n flex-basis: 0;\n margin-bottom: 16px;\n\n ${({ theme }) => theme.mediaQueries.sm} {\n margin-left: 12px;\n margin-right: 12px;\n margin-bottom: 0;\n height: 130px;\n max-height: 130px;\n }\n\n ${({ theme }) => theme.mediaQueries.xl} {\n margin-left: 32px;\n margin-right: 0;\n margin-bottom: 0;\n height: 130px;\n max-height: 130px;\n }\n`\n\nexport const ActionTitles = styled.div`\n font-weight: 600;\n font-size: 12px;\n`\n\nexport const ActionContent = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`\n","import React from 'react'\nimport { Button, Text, useModal, Flex, Skeleton } from '../../../../../uikit-foodcourt'\nimport BigNumber from 'bignumber.js'\nimport { useWeb3React } from '@web3-react/core'\nimport { PoolCategory } from 'config/constants/types'\nimport { formatNumber, getBalanceNumber, getFullDisplayBalance } from 'utils/formatBalance'\nimport { useTranslation } from 'contexts/Localization'\nimport Balance from 'components/Balance'\nimport { BIG_ZERO } from 'utils/bigNumber'\nimport { Pool } from 'state/types'\n\nimport { ActionContainer, ActionTitles, ActionContent } from './styles'\nimport CollectModal from '../../PoolCard/Modals/CollectModal'\n\ninterface HarvestActionProps extends Pool {\n userDataLoaded: boolean\n}\n\nconst HarvestAction: React.FunctionComponent = ({\n sousId,\n poolCategory,\n earningToken,\n userData,\n userDataLoaded,\n isAutoVault,\n earningTokenPrice,\n}) => {\n const { t } = useTranslation()\n const { account } = useWeb3React()\n\n const earnings = userData?.pendingReward ? new BigNumber(userData.pendingReward) : BIG_ZERO\n // These will be reassigned later if its Auto CAKE vault\n const earningTokenBalance = getBalanceNumber(earnings, earningToken.decimals)\n const earningTokenDollarBalance = getBalanceNumber(earnings.multipliedBy(earningTokenPrice), earningToken.decimals)\n const hasEarnings = earnings.gt(0)\n const fullBalance = getFullDisplayBalance(earnings, earningToken.decimals)\n const formattedBalance = formatNumber(earningTokenBalance, 3, 3)\n const earningsDollarValue = formatNumber(earningTokenDollarBalance)\n const isCompoundPool = sousId === 0\n const isBnbPool = poolCategory === PoolCategory.BINANCE\n\n const displayBalance = hasEarnings ? earningTokenBalance : 0\n const [onPresentCollect] = useModal(\n ,\n )\n\n const actionTitle = isAutoVault ? (\n \n {t('Recent CAKE profit')}\n \n ) : (\n <>\n \n {earningToken.symbol}{' '}\n \n \n {t('Earned')}\n \n \n )\n\n if (!account) {\n return (\n \n {actionTitle}\n \n \n \n \n \n )\n }\n\n if (!userDataLoaded) {\n return (\n \n {actionTitle}\n \n \n \n \n )\n }\n\n return (\n \n {actionTitle}\n \n \n \n {hasEarnings ? (\n \n ) : (\n \n 0 USD\n \n )}\n \n \n \n \n )\n}\n\nexport default HarvestAction\n","import React from 'react'\nimport styled from 'styled-components'\nimport BigNumber from 'bignumber.js'\nimport { Button, useModal, IconButton, AddIcon, MinusIcon, Skeleton, useTooltip, Flex, Text } from '../../../../../uikit-foodcourt'\nimport UnlockButton from 'components/UnlockButton'\nimport { useWeb3React } from '@web3-react/core'\nimport { useCakeVault } from 'state/hooks'\nimport { Pool } from 'state/types'\nimport Balance from 'components/Balance'\nimport { useTranslation } from 'contexts/Localization'\nimport { useSousApprove } from 'hooks/useApprove'\nimport { getBalanceNumber } from 'utils/formatBalance'\nimport { PoolCategory } from 'config/constants/types'\nimport { BIG_ZERO } from 'utils/bigNumber'\nimport { getAddress } from 'utils/addressHelpers'\nimport { useERC20 } from 'hooks/useContract'\nimport { convertSharesToCake } from 'views/Pools/helpers'\nimport { ActionContainer, ActionTitles, ActionContent } from './styles'\nimport NotEnoughTokensModal from '../../PoolCard/Modals/NotEnoughTokensModal'\nimport StakeModal from '../../PoolCard/Modals/StakeModal'\n\nconst IconButtonWrapper = styled.div`\n display: flex;\n`\n\ninterface StackedActionProps {\n pool: Pool\n userDataLoaded: boolean\n}\n\nconst Staked: React.FunctionComponent = ({ pool, userDataLoaded }) => {\n const {\n sousId,\n stakingToken,\n earningToken,\n stakingLimit,\n isFinished,\n poolCategory,\n userData,\n stakingTokenPrice,\n isAutoVault,\n } = pool\n const { t } = useTranslation()\n const { account } = useWeb3React()\n\n const stakingTokenContract = useERC20(stakingToken.address ? getAddress(stakingToken.address) : '')\n const { handleApprove: handlePoolApprove, requestedApproval: requestedPoolApproval } = useSousApprove(\n stakingTokenContract,\n sousId,\n earningToken.symbol,\n )\n\n const handleApprove = handlePoolApprove\n const requestedApproval = requestedPoolApproval\n\n const isBnbPool = poolCategory === PoolCategory.BINANCE\n const allowance = userData?.allowance ? new BigNumber(userData.allowance) : BIG_ZERO\n const stakedBalance = userData?.stakedBalance ? new BigNumber(userData.stakedBalance) : BIG_ZERO\n const isNotVaultAndHasStake = !isAutoVault && stakedBalance.gt(0)\n\n const stakingTokenBalance = userData?.stakingTokenBalance ? new BigNumber(userData.stakingTokenBalance) : BIG_ZERO\n\n const stakedTokenBalance = getBalanceNumber(stakedBalance, stakingToken.decimals)\n const stakedTokenDollarBalance = getBalanceNumber(\n stakedBalance.multipliedBy(stakingTokenPrice),\n stakingToken.decimals,\n )\n\n const {\n userData: { userShares },\n pricePerFullShare,\n } = useCakeVault()\n\n const { cakeAsBigNumber, cakeAsNumberBalance } = convertSharesToCake(userShares, pricePerFullShare)\n const hasSharesStaked = userShares && userShares.gt(0)\n const isVaultWithShares = isAutoVault && hasSharesStaked\n const stakedAutoDollarValue = getBalanceNumber(cakeAsBigNumber.multipliedBy(stakingTokenPrice), stakingToken.decimals)\n\n const needsApproval = !allowance.gt(0) && !isBnbPool\n\n const [onPresentTokenRequired] = useModal()\n\n const [onPresentStake] = useModal(\n ,\n )\n\n const [onPresentUnstake] = useModal(\n ,\n )\n\n const onStake = () => {\n onPresentStake()\n }\n\n const onUnstake = () => {\n onPresentUnstake()\n }\n\n const { targetRef, tooltip, tooltipVisible } = useTooltip(\n t(\"You've already staked the maximum amount you can stake in this pool!\"),\n { placement: 'bottom' },\n )\n\n const reachStakingLimit = stakingLimit.gt(0) && userData.stakedBalance.gte(stakingLimit)\n\n if (!account) {\n return (\n \n \n \n {t('Start staking')}\n \n \n \n \n \n \n )\n }\n\n if (!userDataLoaded) {\n return (\n \n \n \n {t('Start staking')}\n \n \n \n \n \n \n )\n }\n\n if (needsApproval) {\n return (\n \n \n \n {t('Enable pool')}\n \n \n \n \n \n \n )\n }\n\n // Wallet connected, user data loaded and approved\n if (isNotVaultAndHasStake || isVaultWithShares) {\n return (\n \n \n \n {stakingToken.symbol}{' '}\n \n \n {isAutoVault ? t('Staked (compounding)') : t('Staked')}\n \n \n \n \n \n \n \n \n \n \n \n {reachStakingLimit ? (\n \n \n \n \n \n ) : (\n \n \n \n )}\n \n {tooltipVisible && tooltip}\n \n \n )\n }\n\n return (\n \n \n \n {t('Stake')}{' '}\n \n \n {stakingToken.symbol}\n \n \n \n \n {t('Stake')}\n \n \n \n )\n}\n\nexport default Staked\n","import React from 'react'\nimport styled, { keyframes, css } from 'styled-components'\nimport {\n Box,\n Button,\n Flex,\n HelpIcon,\n Link,\n LinkExternal,\n MetamaskIcon,\n Skeleton,\n Text,\n TimerIcon,\n useTooltip,\n} from '../../../../../uikit-foodcourt'\nimport { BASE_URL } from 'config'\nimport { getBscScanBlockCountdownUrl } from 'utils/bscscan'\nimport { useBlock, useCakeVault } from 'state/hooks'\nimport BigNumber from 'bignumber.js'\nimport { Pool } from 'state/types'\nimport { useTranslation } from 'contexts/Localization'\nimport Balance from 'components/Balance'\nimport { CompoundingPoolTag, ManualPoolTag } from 'components/Tags'\nimport { getAddress } from 'utils/addressHelpers'\nimport { registerToken } from 'utils/wallet'\nimport { getBalanceNumber, getFullDisplayBalance } from 'utils/formatBalance'\nimport { getPoolBlockInfo } from 'views/Pools/helpers'\nimport Harvest from './Harvest'\nimport Stake from './Stake'\nimport Apr from '../Apr'\n\nconst expandAnimation = keyframes`\n from {\n max-height: 0px;\n }\n to {\n max-height: 700px;\n }\n`\n\nconst collapseAnimation = keyframes`\n from {\n max-height: 700px;\n }\n to {\n max-height: 0px;\n }\n`\n\nconst StyledActionPanel = styled.div<{ expanded: boolean }>`\n animation: ${({ expanded }) =>\n expanded\n ? css`\n ${expandAnimation} 300ms linear forwards\n `\n : css`\n ${collapseAnimation} 300ms linear forwards\n `};\n overflow: hidden;\n background: ${({ theme }) => theme.colors.dropdown};\n display: flex;\n flex-direction: column-reverse;\n justify-content: center;\n padding: 12px;\n\n ${({ theme }) => theme.mediaQueries.lg} {\n flex-direction: row;\n padding: 16px 32px;\n }\n`\n\nconst ActionContainer = styled.div`\n display: flex;\n flex-direction: column;\n\n ${({ theme }) => theme.mediaQueries.sm} {\n flex-direction: row;\n align-items: center;\n flex-grow: 1;\n flex-basis: 0;\n }\n`\n\ntype MediaBreakpoints = {\n isXs: boolean\n isSm: boolean\n isMd: boolean\n isLg: boolean\n isXl: boolean\n}\n\ninterface ActionPanelProps {\n account: string\n pool: Pool\n userDataLoaded: boolean\n expanded: boolean\n breakpoints: MediaBreakpoints\n}\n\nconst InfoSection = styled(Box)`\n flex: 0 0 230px;\n padding: 8px 8px;\n ${({ theme }) => theme.mediaQueries.lg} {\n padding: 0;\n }\n`\n\nconst ActionPanel: React.FC = ({ account, pool, userDataLoaded, expanded, breakpoints }) => {\n const { sousId, stakingToken, earningToken, totalStaked, endBlock, stakingLimit, isAutoVault } = pool\n const { t } = useTranslation()\n const { currentBlock } = useBlock()\n const { isXs, isSm, isMd } = breakpoints\n const showSubtitle = (isXs || isSm) && sousId === 0\n\n const { shouldShowBlockCountdown, blocksUntilStart, blocksRemaining, hasPoolStarted, blocksToDisplay } =\n getPoolBlockInfo(pool, currentBlock)\n\n const isMetaMaskInScope = !!(window as WindowChain).ethereum?.isMetaMask\n const tokenAddress = earningToken.address ? getAddress(earningToken.address) : ''\n const imageSrc = `${BASE_URL}/images/tokens/${earningToken.symbol.toLowerCase()}.png`\n\n const {\n totalCakeInVault,\n fees: { performanceFee },\n } = useCakeVault()\n\n const performanceFeeAsDecimal = performanceFee && performanceFee / 100\n const isManualCakePool = sousId === 0\n\n const getTotalStakedBalance = () => {\n if (isAutoVault) {\n return getBalanceNumber(totalCakeInVault, stakingToken.decimals)\n }\n if (isManualCakePool) {\n const manualCakeTotalMinusAutoVault = new BigNumber(totalStaked).minus(totalCakeInVault)\n return getBalanceNumber(manualCakeTotalMinusAutoVault, stakingToken.decimals)\n }\n return getBalanceNumber(totalStaked, stakingToken.decimals)\n }\n\n const {\n targetRef: totalStakedTargetRef,\n tooltip: totalStakedTooltip,\n tooltipVisible: totalStakedTooltipVisible,\n } = useTooltip(t('Total amount of %symbol% staked in this pool', { symbol: stakingToken.symbol }), {\n placement: 'bottom',\n })\n\n const manualTooltipText = t('You must harvest and compound your earnings from this pool manually.')\n const autoTooltipText = t(\n 'Any funds you stake in this pool will be automagically harvested and restaked (compounded) for you.',\n )\n\n const {\n targetRef: tagTargetRef,\n tooltip: tagTooltip,\n tooltipVisible: tagTooltipVisible,\n } = useTooltip(isAutoVault ? autoTooltipText : manualTooltipText, {\n placement: 'bottom-start',\n })\n\n const maxStakeRow = stakingLimit.gt(0) ? (\n \n {t('Max. stake per user')}:\n {`${getFullDisplayBalance(stakingLimit, stakingToken.decimals, 0)} ${stakingToken.symbol}`}\n \n ) : null\n\n const blocksRow =\n blocksRemaining || blocksUntilStart ? (\n \n {hasPoolStarted ? t('Ends in') : t('Starts in')}:\n \n \n \n \n {t('Blocks')}\n \n \n \n \n \n ) : (\n \n )\n\n const aprRow = (\n \n {isAutoVault ? t('APY') : t('APR')}\n \n \n )\n\n const totalStakedRow = (\n \n {t('Total staked')}\n \n {totalStaked ? (\n <>\n \n \n \n \n \n ) : (\n \n )}\n {totalStakedTooltipVisible && totalStakedTooltip}\n \n \n )\n\n return (\n \n \n {maxStakeRow}\n {(isXs || isSm) && aprRow}\n {(isXs || isSm || isMd) && totalStakedRow}\n {shouldShowBlockCountdown && blocksRow}\n \n \n {t('Info site')}\n \n \n \n \n {t('Project site')}\n \n \n {account && isMetaMaskInScope && tokenAddress && (\n \n registerToken(tokenAddress, earningToken.symbol, earningToken.decimals, imageSrc)}\n >\n {t('Add to Metamask')}\n \n \n \n )}\n {isAutoVault ? : }\n {tagTooltipVisible && tagTooltip}\n \n \n \n \n \n {showSubtitle && (\n \n {isAutoVault ? t('Automatic restaking') : `${t('Earn')} CAKE ${t('Stake').toLocaleLowerCase()} CAKE`}\n \n )}\n \n \n \n \n )\n}\n\nexport default ActionPanel\n","import React, { useState } from 'react'\nimport styled from 'styled-components'\nimport { useMatchBreakpoints } from '../../../../uikit-foodcourt'\nimport { Pool } from 'state/types'\nimport { useCakeVault } from 'state/hooks'\nimport useDelayedUnmount from 'hooks/useDelayedUnmount'\nimport NameCell from './Cells/NameCell'\nimport EarningsCell from './Cells/EarningsCell'\nimport AprCell from './Cells/AprCell'\nimport TotalStakedCell from './Cells/TotalStakedCell'\nimport EndsInCell from './Cells/EndsInCell'\nimport ExpandActionCell from './Cells/ExpandActionCell'\nimport ActionPanel from './ActionPanel/ActionPanel'\n\ninterface PoolRowProps {\n pool: Pool\n account: string\n userDataLoaded: boolean\n}\n\nconst StyledRow = styled.div`\n background-color: transparent;\n display: flex;\n cursor: pointer;\n`\n\nconst PoolRow: React.FC = ({ pool, account, userDataLoaded }) => {\n const { isXs, isSm, isMd, isLg, isXl } = useMatchBreakpoints()\n const [expanded, setExpanded] = useState(false)\n const shouldRenderActionPanel = useDelayedUnmount(expanded, 300)\n\n const toggleExpanded = () => {\n setExpanded((prev) => !prev)\n }\n\n const {\n fees: { performanceFee },\n } = useCakeVault()\n const performanceFeeAsDecimal = performanceFee && performanceFee / 100\n\n return (\n <>\n \n \n \n \n {(isLg || isXl) && }\n {isXl && }\n \n \n {shouldRenderActionPanel && (\n \n )}\n \n )\n}\n\nexport default PoolRow\n","import React, { useRef } from 'react'\nimport styled from 'styled-components'\nimport { Button, ChevronUpIcon } from '../../../../uikit-foodcourt'\nimport { useTranslation } from 'contexts/Localization'\nimport { Pool } from 'state/types'\nimport PoolRow from './PoolRow'\n\ninterface PoolsTableProps {\n pools: Pool[]\n userDataLoaded: boolean\n account: string\n}\n\nconst StyledTable = styled.div`\n border-radius: ${({ theme }) => theme.radii.card};\n\n background-color: ${({ theme }) => theme.card.background};\n > div:not(:last-child) {\n border-bottom: 2px solid ${({ theme }) => theme.colors.textDisabled};\n }\n`\n\nconst StyledTableBorder = styled.div`\n border-radius: ${({ theme }) => theme.radii.card};\n background-color: ${({ theme }) => theme.colors.cardBorder};\n padding: 1px 1px 3px 1px;\n background-size: 400% 400%;\n`\n\nconst ScrollButtonContainer = styled.div`\n display: flex;\n justify-content: center;\n padding-top: 5px;\n padding-bottom: 5px;\n`\n\nconst PoolsTable: React.FC = ({ pools, userDataLoaded, account }) => {\n const { t } = useTranslation()\n const tableWrapperEl = useRef(null)\n const scrollToTop = (): void => {\n tableWrapperEl.current.scrollIntoView({\n behavior: 'smooth',\n })\n }\n return (\n \n \n {pools.map((pool) => (\n \n ))}\n \n \n \n \n \n )\n}\n\nexport default PoolsTable\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { Route, useLocation, useRouteMatch } from 'react-router-dom'\nimport styled from 'styled-components'\nimport BigNumber from 'bignumber.js'\nimport { useWeb3React } from '@web3-react/core'\nimport { Heading, Flex, Image, Text, RowType } from '../../uikit-foodcourt'\nimport orderBy from 'lodash/orderBy'\nimport partition from 'lodash/partition'\nimport { useTranslation } from 'contexts/Localization'\nimport usePersistState from 'hooks/usePersistState'\nimport {\n\tusePools,\n\tuseFarms,\n\tusePriceCouponkBUSD,\n\tuseGetApiPrices,\n} from 'state/hooks'\nimport { latinise } from 'utils/latinise'\nimport FlexLayout from 'components/layout/Flex'\nimport Page from 'components/layout/Page'\nimport PageHeader from 'components/PageHeader'\nimport SearchInput from 'components/SearchInput'\nimport Select, { OptionProps } from 'components/Select/Select'\nimport { Farm, Pool } from 'state/types'\nimport PoolCard from './components/PoolCard'\nimport PoolTabButtons from './components/PoolTabButtons'\nimport PoolsTable from './components/PoolsTable/PoolsTable'\nimport { ViewMode } from './components/ToggleView/ToggleView'\nimport { getAprData } from './helpers'\nimport { getBalanceNumber } from 'utils/formatBalance'\nimport FarmCard, { FarmWithStakedValue } from 'views/Farms/components/FarmCard/FarmCard'\nimport { RowProps } from 'views/Farms/components/FarmTable/Row'\nimport { DesktopColumnSchema } from 'views/Farms/components/types'\nimport FarmTable from 'views/Farms/components/FarmTable/FarmTable'\nimport { getFarmApr } from 'utils/apr'\nimport { getAddress } from 'utils/addressHelpers'\nimport isArchivedPid from 'utils/farmHelpers'\nimport useRefresh from 'hooks/useRefresh'\nimport { fetchFarmUserDataAsync } from 'state/actions'\nimport { useAppDispatch } from 'state'\n\nconst CardLayout = styled(FlexLayout)`\n\tjustify-content: center;\n`\n\nconst PoolControls = styled(Flex)`\n\tflex-direction: column;\n\tmargin-bottom: 24px;\n\tmargin-bottom: 32px;\n\tbackground: white;\n\tborder-radius: 24px;\n\tbox-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1);\n\tpadding: 16px;\n\n\t${({ theme }) => theme.mediaQueries.md} {\n\t\tflex-direction: row;\n\t}\n`\n\nconst SearchSortContainer = styled(Flex)`\n\tgap: 10px;\n\tjustify-content: space-between;\n`\n\nconst ControlStretch = styled(Flex)`\n\t> div {\n\t\tflex: 1;\n\t}\n`\n\nconst TypeTitleText = styled.div`\n\tfont-weight: bold;\n\tfont-size: larger;\n\tcolor: hsl(41, 99%, 39%);\n`\n\nconst NUMBER_OF_POOLS_VISIBLE = 128\n\nconst Pools: React.FC = () => {\n\tconst { path } = useRouteMatch()\n\tconst location = useLocation()\n\tconst { pathname } = location\n\tconst { t } = useTranslation()\n\tconst { account } = useWeb3React()\n\tconst { pools: poolsWithoutAutoVault, userDataLoaded: poolUserDataLoaded } = usePools(account)\n\tconst [stakedOnly, setStakedOnly] = usePersistState(false, 'pancake_pool_staked')\n\tconst [numberOfPoolsVisible, setNumberOfPoolsVisible] = useState(NUMBER_OF_POOLS_VISIBLE)\n\tconst [observerIsSet, setObserverIsSet] = useState(false)\n\tconst loadMoreRef = useRef(null)\n\tconst [viewMode, setViewMode] = usePersistState(ViewMode.TABLE, 'pancake_farm_view')\n\tconst [searchQuery, setSearchQuery] = useState('')\n\tconst [sortOption, setSortOption] = useState('hot')\n\tconst { data: farmsLP, userDataLoaded: farmUserDataLoaded } = useFarms()\n\tconst couponPrice = usePriceCouponkBUSD()\n\tconst userDataLoaded = poolUserDataLoaded && farmUserDataLoaded\n\tconst prices = useGetApiPrices()\n\n\tconst pools = useMemo(() => {\n\t\tconst cakePool = poolsWithoutAutoVault.find((pool) => pool.sousId === 0)\n\t\tconst cakeAutoVault = { ...cakePool, isAutoVault: true }\n\t\treturn [cakeAutoVault, ...poolsWithoutAutoVault]\n\t}, [poolsWithoutAutoVault])\n\n\t// TODO aren't arrays in dep array checked just by reference, i.e. it will rerender every time reference changes?\n\tconst [finishedPools, openPools] = useMemo(() => partition(pools, (pool) => pool.isFinished), [\n\t\tpools,\n\t])\n\tconst stakedOnlyFinishedPools = useMemo(\n\t\t() =>\n\t\t\tfinishedPools.filter((pool) => {\n\t\t\t\treturn pool.userData && new BigNumber(pool.userData.stakedBalance).isGreaterThan(0)\n\t\t\t}),\n\t\t[finishedPools],\n\t)\n\tconst stakedOnlyOpenPools = useMemo(\n\t\t() =>\n\t\t\topenPools.filter((pool) => {\n\t\t\t\treturn pool.userData && new BigNumber(pool.userData.stakedBalance).isGreaterThan(0)\n\t\t\t}),\n\t\t[openPools],\n\t)\n\tconst hasStakeInFinishedPools = stakedOnlyFinishedPools.length > 0\n\n\tconst dispatch = useAppDispatch()\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\tuseEffect(() => {\n\t\tconst showMorePools = (entries) => {\n\t\t\tconst [entry] = entries\n\t\t\tif (entry.isIntersecting) {\n\t\t\t\tsetNumberOfPoolsVisible(\n\t\t\t\t\t(poolsCurrentlyVisible) => poolsCurrentlyVisible + NUMBER_OF_POOLS_VISIBLE,\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\tif (!observerIsSet) {\n\t\t\tconst loadMoreObserver = new IntersectionObserver(showMorePools, {\n\t\t\t\trootMargin: '0px',\n\t\t\t\tthreshold: 1,\n\t\t\t})\n\t\t\tloadMoreObserver.observe(loadMoreRef.current)\n\t\t\tsetObserverIsSet(true)\n\t\t}\n\t}, [observerIsSet])\n\n\tconst showFinishedPools = location.pathname.includes('history')\n\n\tconst handleChangeSearchQuery = (event: React.ChangeEvent) => {\n\t\tsetSearchQuery(event.target.value)\n\t}\n\n\tconst handleSortOptionChange = (option: OptionProps): void => {\n\t\tsetSortOption(option.value)\n\t}\n\n\tconst sortPools = (poolsToSort: Pool[]) => {\n\t\tswitch (sortOption) {\n\t\t\tcase 'apr':\n\t\t\t\t// Ternary is needed to prevent pools without APR (like MIX) getting top spot\n\t\t\t\treturn orderBy(\n\t\t\t\t\tpoolsToSort,\n\t\t\t\t\t(pool: Pool) => (pool.apr ? getAprData(pool, 0).apr : 0),\n\t\t\t\t\t'desc',\n\t\t\t\t)\n\t\t\tcase 'earned':\n\t\t\t\treturn orderBy(\n\t\t\t\t\tpoolsToSort,\n\t\t\t\t\t(pool: Pool) => {\n\t\t\t\t\t\tif (!pool.userData || !pool.earningTokenPrice) {\n\t\t\t\t\t\t\treturn 0\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn pool.userData.pendingReward.times(pool.earningTokenPrice).toNumber()\n\t\t\t\t\t},\n\t\t\t\t\t'desc',\n\t\t\t\t)\n\t\t\tcase 'totalStaked':\n\t\t\t\treturn orderBy(\n\t\t\t\t\tpoolsToSort,\n\t\t\t\t\t(pool: Pool) => pool.totalStaked.toNumber(),\n\t\t\t\t\t'desc',\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\treturn poolsToSort\n\t\t}\n\t}\n\n\tconst poolsToShow = () => {\n\t\tlet chosenPools = []\n\t\tif (showFinishedPools) {\n\t\t\tchosenPools = stakedOnly ? stakedOnlyFinishedPools : finishedPools\n\t\t} else {\n\t\t\tchosenPools = stakedOnly ? stakedOnlyOpenPools : openPools\n\t\t}\n\n\t\tif (searchQuery) {\n\t\t\tconst lowercaseQuery = latinise(searchQuery.toLowerCase())\n\t\t\tchosenPools = chosenPools.filter((pool) =>\n\t\t\t\tlatinise(pool.earningToken.symbol.toLowerCase()).includes(lowercaseQuery),\n\t\t\t)\n\t\t}\n\n\t\treturn sortPools(chosenPools)\n\t\t\t.slice(0, numberOfPoolsVisible)\n\t\t\t.filter((c) => !c.isAutoVault && c.sousId > 0)\n\t}\n\n\tconst cardLayout = (\n\t\t\n\t\t\t{poolsToShow().map((pool) =>\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t)\n\n\tconst tableLayout = (\n\t\t\n\t)\n\n\tconst userDataReady = !account || (!!account && userDataLoaded)\n\n\t// Farm system but single asset instead\n\tconst isArchived = pathname.includes('archived')\n\tconst isInactive = pathname.includes('history')\n\tconst isActive = !isInactive && !isArchived\n\n\tconst farmsList = useCallback(\n\t\t(farmsToDisplay: Farm[]): FarmWithStakedValue[] => {\n\t\t\tlet farmsToDisplayWithAPR: FarmWithStakedValue[] = farmsToDisplay.map((farm) => {\n\t\t\t\tif (!farm.lpTotalInQuoteToken || !prices) {\n\t\t\t\t\treturn farm\n\t\t\t\t}\n\n\t\t\t\t// API must response WBNB price, BUSD price, DOLLY price, ...\n\t\t\t\tconst quoteTokenPriceUsd = prices[getAddress(farm.quoteToken.address).toLowerCase()]\n\t\t\t\tconst totalLiquidity = new BigNumber(farm.lpTotalInQuoteToken).times(quoteTokenPriceUsd)\n\t\t\t\tconst apr = isActive\n\t\t\t\t\t? getFarmApr(new BigNumber(farm.poolWeight), couponPrice, totalLiquidity)\n\t\t\t\t\t: 0\n\n\t\t\t\t// console.log(\"Total liquidity\", getAddress(farm.quoteToken.address).toLowerCase(), farm.lpTotalInQuoteToken.toString());\n\n\t\t\t\treturn { ...farm, apr, liquidity: totalLiquidity }\n\t\t\t})\n\n\t\t\tif (searchQuery) {\n\t\t\t\tconst lowercaseQuery = latinise(searchQuery.toLowerCase())\n\t\t\t\tfarmsToDisplayWithAPR = farmsToDisplayWithAPR.filter((farm: FarmWithStakedValue) => {\n\t\t\t\t\treturn latinise(farm.lpSymbol.toLowerCase()).includes(lowercaseQuery)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn farmsToDisplayWithAPR\n\t\t},\n\t\t[couponPrice, prices, searchQuery, isActive],\n\t)\n\n\tconst activeFarms = farmsLP.filter(\n\t\t(farm) => farm.isSinglePool && farm.multiplier !== '0X' && !isArchivedPid(farm.pid),\n\t)\n\tconst inactiveFarms = farmsLP.filter(\n\t\t(farm) => farm.isSinglePool && farm.multiplier === '0X' && !isArchivedPid(farm.pid),\n\t)\n\tconst archivedFarms = farmsLP.filter((farm) => isArchivedPid(farm.pid))\n\n\tconst stakedOnlyFarms = activeFarms.filter(\n\t\t(farm) => farm.userData && new BigNumber(farm.userData.stakedBalance).isGreaterThan(0),\n\t)\n\n\tconst stakedInactiveFarms = inactiveFarms.filter(\n\t\t(farm) => farm.userData && new BigNumber(farm.userData.stakedBalance).isGreaterThan(0),\n\t)\n\n\tconst stakedArchivedFarms = archivedFarms.filter(\n\t\t(farm) => farm.userData && new BigNumber(farm.userData.stakedBalance).isGreaterThan(0),\n\t)\n\n\tconst farmsStakedMemoized = useMemo(() => {\n\t\tlet farmsStaked = []\n\n\t\tconst sortFarms = (farms: FarmWithStakedValue[]): FarmWithStakedValue[] => {\n\t\t\tswitch (sortOption) {\n\t\t\t\tcase 'apr':\n\t\t\t\t\treturn orderBy(farms, (farm: FarmWithStakedValue) => farm.apr, 'desc')\n\t\t\t\tcase 'multiplier':\n\t\t\t\t\treturn orderBy(\n\t\t\t\t\t\tfarms,\n\t\t\t\t\t\t(farm: FarmWithStakedValue) =>\n\t\t\t\t\t\t\tfarm.multiplier ? Number(farm.multiplier.slice(0, -1)) : 0,\n\t\t\t\t\t\t'desc',\n\t\t\t\t\t)\n\t\t\t\tcase 'earned':\n\t\t\t\t\treturn orderBy(\n\t\t\t\t\t\tfarms,\n\t\t\t\t\t\t(farm: FarmWithStakedValue) => (farm.userData ? Number(farm.userData.earnings) : 0),\n\t\t\t\t\t\t'desc',\n\t\t\t\t\t)\n\t\t\t\tcase 'liquidity':\n\t\t\t\t\treturn orderBy(farms, (farm: FarmWithStakedValue) => Number(farm.liquidity), 'desc')\n\t\t\t\tdefault:\n\t\t\t\t\treturn farms\n\t\t\t}\n\t\t}\n\n\t\tif (isActive) {\n\t\t\tfarmsStaked = stakedOnly ? farmsList(stakedOnlyFarms) : farmsList(activeFarms)\n\t\t}\n\t\tif (isInactive) {\n\t\t\tfarmsStaked = stakedOnly ? farmsList(stakedInactiveFarms) : farmsList(inactiveFarms)\n\t\t}\n\t\tif (isArchived) {\n\t\t\tfarmsStaked = stakedOnly ? farmsList(stakedArchivedFarms) : farmsList(archivedFarms)\n\t\t}\n\n\t\treturn sortFarms(farmsStaked) // .slice(0, numberOfFarmsVisible)\n\t}, [\n\t\tsortOption,\n\t\tactiveFarms,\n\t\tfarmsList,\n\t\tinactiveFarms,\n\t\tarchivedFarms,\n\t\tisActive,\n\t\tisInactive,\n\t\tisArchived,\n\t\tstakedArchivedFarms,\n\t\tstakedInactiveFarms,\n\t\tstakedOnly,\n\t\tstakedOnlyFarms,\n\t\t// numberOfFarmsVisible,\n\t])\n\n\tconst rowData = farmsStakedMemoized.map((farm) => {\n\t\tconst { token, quoteToken } = farm\n\t\tconst tokenAddress = token.address\n\t\tconst quoteTokenAddress = quoteToken.address\n\t\tconst lpLabel =\n\t\t\tfarm.lpSymbol && farm.lpSymbol.split(' ')[0].toUpperCase().replace('PANCAKE', '')\n\n\t\tconst row: RowProps = {\n\t\t\tapr: {\n\t\t\t\tvalue: farm.apr && farm.apr.toLocaleString('en-US', { maximumFractionDigits: 2 }),\n\t\t\t\tmultiplier: farm.multiplier,\n\t\t\t\tlpLabel,\n\t\t\t\ttokenAddress,\n\t\t\t\tquoteTokenAddress,\n\t\t\t\tcouponPrice,\n\t\t\t\toriginalValue: farm.apr,\n\t\t\t\tlpValueInUsd: farm.lpValueInUsd,\n\t\t\t},\n\t\t\tfarm: {\n\t\t\t\timage: farm.imageName,\n\t\t\t\tlabel: lpLabel,\n\t\t\t\tpid: farm.pid,\n\t\t\t\tsingle: farm.isSinglePool\n\t\t\t},\n\t\t\tearned: {\n\t\t\t\tearnings: getBalanceNumber(new BigNumber(farm.userData.earnings)),\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,\n\t\t}\n\n\t\treturn row\n\t})\n\n\tconst renderFarmContent = (): JSX.Element => {\n\t\tif (viewMode === ViewMode.TABLE && rowData.length) {\n\t\t\tconst columnSchema = DesktopColumnSchema\n\n\t\t\tconst columns = columnSchema.map((column) => ({\n\t\t\t\tid: column.id,\n\t\t\t\tname: column.name,\n\t\t\t\tlabel: column.label,\n\t\t\t\tsort: (a: RowType, b: RowType) => {\n\t\t\t\t\tswitch (column.name) {\n\t\t\t\t\t\tcase 'farm':\n\t\t\t\t\t\t\treturn b.id - a.id\n\t\t\t\t\t\tcase 'apr':\n\t\t\t\t\t\t\tif (a.original.apr.value && b.original.apr.value) {\n\t\t\t\t\t\t\t\treturn Number(a.original.apr.value) - Number(b.original.apr.value)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn 0\n\t\t\t\t\t\tcase 'earned':\n\t\t\t\t\t\t\treturn a.original.earned.earnings - b.original.earned.earnings\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn 1\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsortable: column.sortable,\n\t\t\t}))\n\n\t\t\treturn \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{farmsStakedMemoized.map((farm) => (\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{farmsStakedMemoized.map((farm) => (\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{farmsStakedMemoized.map((farm) => (\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\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

Snack bar

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSimply stake tokens to earn.\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('Just stake some tokens to earn.')}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('High APR, low risk.')}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{/* \n \n \n */}\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\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{t('Sort by')}\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\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{t('Search')}\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\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{showFinishedPools && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('These pools are no longer distributing rewards. Please unstake your tokens.')}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\tEarn COUPON\n\t\t\t\t\t{renderFarmContent()}\n\n\t\t\t\t\t
\n\t\t\t\t\t\tEarn Tokens\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{viewMode === ViewMode.CARD ? cardLayout : tableLayout}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\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 Pools\n","import { createBrowserHistory } from 'history'\n\n// Manually create the history object so we can access outside the Router e.g. in modals\nconst history = createBrowserHistory()\n\nexport default history\n","import React from 'react'\n\nexport default function Embed(props) {\n\treturn (\n\t\t
\n\t\t\t