{"version":3,"sources":["routerHistory.ts","components/Menu/companyLogo.svg","hooks/useActiveWeb3React.ts","config/index.ts","utils/getRpcUrl.ts","utils/setupNetwork.ts","styles/CardStyles.ts","config/walletIcons/types.ts","components/ConnectWalletModal/connectors.ts","config/walletIcons/Metamask.tsx","config/walletIcons/WalletConnect.tsx","components/ConnectWalletModal/index.tsx","hooks/useAuth.ts","components/Menu/index.tsx","components/CountDownText.tsx","utils/formatWeiToEth.ts","views/StakingPool/HeroCard.tsx","utils/defaultProvider.ts","utils/contractHelpers.ts","components/ConnectWalletBtn.tsx","components/StyledModal.tsx","components/Tick.tsx","components/Error.tsx","components/TxnStateModal.tsx","components/CopyToClipboard.tsx","views/StakingPool/StakingCard.tsx","views/StakingPool/RewardCard.tsx","components/UpdateHarvestInterval.tsx","components/RescueFunds.tsx","components/TransferRewardToken.tsx","components/Mint.tsx","components/UpdateApr.tsx","components/RewardTokensRemaining.tsx","views/StakingPool/PoolPage.tsx","views/StakingPool/index.tsx","App.tsx","Providers.tsx","styles/KronaOne.ttf","styles/Anton.ttf","styles/DancingScript.ttf","styles/ResetCSS.tsx","styles/theme.ts","index.tsx"],"names":["history","createBrowserHistory","useActiveWeb3React","context","useWeb3ReactCore","contextNetwork","active","BigNumber","config","EXPONENTIAL_AT","DECIMAL_PLACES","SUPPORTED_NETWORK_IDS","MAINNET_CHAINID","STAKING_POOL_CONFIG","id","withdrawalFee","harvestInterval","owner","inputToken","name","symbol","decimals","address","tokenURL","price","rewardToken","startBlock","endBlock","rewardsPerToken","expectedAPR","NATIVE_TOKENS","nodes","getNodeUrl","chainId","window","ethereum","Number","networkVersion","toString","setupNetwork","provider","chainIdFallback","parseInt","request","method","params","chainName","nativeCurrency","rpcUrls","blockExplorerUrls","console","error","Card","styled","Paper","CardBody","div","Hr","props","theme","palette","primary","main","CardHeading","h2","text","CardRow","CardSubHeading","p","disabled","CardText","secondary","Svg","svg","defaultProps","color","width","xmlns","spin","ConnectorNames","Icon","viewBox","cx","cy","r","fill","d","Connectors","title","icon","Metamask","type","connectorId","Injected","WalletConnect","connectorLocalStorageKey","injected","InjectedConnector","supportedChainIds","walletConnectConnector","WalletConnectConnector","rpc","bridge","qrcode","connectorsByName","style","position","top","left","transform","bgcolor","border","boxShadow","height","WalletCard","login","walletConfig","onDismiss","Button","variant","onClick","localStorage","setItem","fullWidth","marginBottom","Stack","flexDirection","padding","justifyContent","marginRight","ConnectWalletModal","open","handleClose","Modal","onClose","sx","maxWidth","map","connector","useAuth","useWeb3React","activate","deactivate","useCallback","connectorID","UnsupportedChainIdError","message","logout","BlackContainer","background","default","StyledContainer","Container","NavigationContainer","nav","LogoContainer","truncateAddress","match","Menu","handleConnectWalletModalOpen","account","useEffect","undefined","getItem","src","CompanyLogo","alt","direction","spacing","removeItem","getReturnValues","countDown","Math","floor","ExpiredNotice","ShowCounter","days","hours","minutes","seconds","value","DateTimeDisplay","CountdownTimer","targetDate","countDownDate","Date","getTime","useState","setCountDown","interval","setInterval","clearInterval","useCountdown","time","BIG_10","formatWeiToEth","amount","roundOffDecimals","dividedBy","pow","toFixed","HeroCard","nextHarvest","totalInputTokensStaked","apr","nextHarvestTimeInMilliseconds","parseFloat","priceOfInputToken","totalLiquidity","multipliedBy","apy","CountDownText","RPC_URL","getRpcUrl","simpleRpcProvider","StaticJsonRpcProvider","getContract","abi","signer","signerOrProvider","Contract","getERC20Contract","erc20Abi","getPoolContract","poolAbi","ConnectWalletBtn","InputContainer","StyledModal","heading","setAmount","handleInputChange","max","handleBtnClick","pendingTxn","LoadingButton","loading","TextField","label","placeholder","onChange","size","right","Tick","margin","className","strokeDasharray","SVGComponent","stroke","strokeWidth","strokeMiterlimit","strokeLinecap","x1","y1","x2","y2","OvalContainer","TxnStateModal","txnPending","wrapperStyle","wrapperClass","visible","ariaLabel","secondaryColor","strokeWidthSecondary","success","failure","Error","StyleButton","attrs","role","Tooltip","isTooltipDisplayed","CopyToClipboard","toCopy","children","setIsTooltipDisplayed","navigator","clipboard","writeText","setTimeout","fontSize","ContentCopy","marginLeft","StakingCard","userPoolData","handleApprove","stakeModalOpen","setStakeModalOpen","unstakeModalOpen","setUnstakeModalOpen","openPurchaseModal","setOpenPurchaseModal","setTxnPending","handleOpenPurchaseModal","event","target","handleStakeModalClose","handleUnstakeModalClose","handleStake","stakeAmount","ethers","providers","Web3Provider","getSigner","poolContract","erc20Contract","allowance","allowanceOfInputToken","isLessThan","approve","txn","wait","deposit","depositTx","handleUnstake","withdraw","withdrawTx","inputTokenBalance","OwnerCard","display","alignItems","columnGap","rowGap","fontWeight","slice","length","isGreaterThan","gap","RewardCard","setPendingTxn","getStakingPoolUserValues","handleHarvest","pendingReward","opacity","UpdateHarvestInterval","setHarvestInterval","handleUpdateHarvestInterval","updateHarvestInterval","RescueFunds","handleRescueFunds","rescueFunds","TransferRewardToken","rewardTokenAllowance","setRewardTokenAllowance","transferAmount","setTransferAmount","getRewardTokenAllowance","handleRewardTokenApprove","approvalAmount","utils","parseUnits","rewardTokenContract","approvalTx","allowanceAmount","handleTransferRewardToken","allowanceOfRewardToken","transferAmountInWei","transfer","catch","e","log","Mint","mintAmount","setMintAmount","handleMint","b4rcAbi","b4rcContract","mintAmountInWei","mint","UpdateApr","currExpectedAPR","expectedApr","setExpectedApr","aprFormatted","handleUpdateExpectedApr","expectedRewardTokenAPR","rewardTokenRateInUSD","inputTokenRateInUSD","calculatedAPR","updateExpectedAPR","RewardTokensRemaining","remainingRewardTokens","setRemainingRewardTokens","getRewardTokensRemaining","balanceOf","balanceOfRewardTokens","balanceOfRewardTokensInEth","StyledGrid","Grid","PoolPage","library","setTotalInputTokensStaked","setUserPoolData","ownerAddress","setOwnerAddress","getTotalInputTokensStaked","inputTokensStaked","user","userInfo","nextHarvestUntil","rewardPool","rewardTokenRateInAUD","inputTokenRateInAUD","inputTokenContract","container","item","xs","lg","sm","md","marginTop","flexWrap","StakingPool","App","React","setOpen","handleConnectWalletOpen","checkNetwork","code","rpcUrl","path","exact","getLibrary","pollingInterval","Web3ProviderNetwork","createWeb3ReactRoot","Providers","ResetCSS","createGlobalStyle","KronaOne","Anton","DancingScript","createTheme","mode","paper","shape","borderRadius","autoRefreshOnNetworkChange","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.dbf39ce5.chunk.js","sourcesContent":["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","export default __webpack_public_path__ + \"static/media/companyLogo.c978a988.svg\";","import { useWeb3React as useWeb3ReactCore } from \"@web3-react/core\";\nimport { Web3Provider } from \"@ethersproject/providers\";\n\nconst useActiveWeb3React = () => {\n const context = useWeb3ReactCore();\n const contextNetwork = useWeb3ReactCore(\"NETWORK\");\n\n return context.active ? context : contextNetwork;\n};\n\nexport default useActiveWeb3React;\n","import BigNumber from \"bignumber.js/bignumber\";\n\nBigNumber.config({\n EXPONENTIAL_AT: 1000,\n DECIMAL_PLACES: 80,\n});\n\nexport const SUPPORTED_NETWORK_IDS = [137, 80001];\n\nexport const INFINITE =\n \"115792089237316195423570985008687907853269984665640564039457584007913129639935\";\n\n// Testnet\n// export const MAINNET_CHAINID = 80001;\n// export const STAKING_POOL_CONFIG = {\n// id: \"0x05118BACF3d6b6a3Cd9EED6f208f96A42E95B599\",\n// withdrawalFee: \"0\",\n// harvestInterval: \"60\",\n// owner: \"0x4274A49FBeB724D75b8ba7bfC55FC8495A15AD1E\",\n// inputToken: {\n// name: \"USDC\",\n// symbol: \"USDC\",\n// decimals: \"6\",\n// address: \"0x671b68fb02778D37a885699dA79c13Faf0d3C560\",\n// tokenURL:\n// \"https://cryption-network-local.infura-ipfs.io/ipfs/QmYcftrjFV4qRGixg8FZekc4siPndaQyYX1oJoJ1U9ie2g\",\n// price: \"0.35\",\n// },\n// rewardToken: {\n// name: \"B4Real Credits\",\n// symbol: \"B4RC\",\n// decimals: \"18\",\n// address: \"0x625D8DcfAE53C3fba7670b82bF1A7c2C689C416F\",\n// tokenURL:\n// \"https://cryption-network-local.infura-ipfs.io/ipfs/QmbCguTQzatdB3ebFVBq43B36g24e1DTSvPqw6YEpRG1ug\",\n// startBlock: \"1663661400\",\n// endBlock: \"1663920600\",\n// rewardsPerToken: \"0.5\",\n// expectedAPR: \"20\",\n// price: \"0.70\",\n// },\n// };\n\nexport const MAINNET_CHAINID = 137;\nexport const STAKING_POOL_CONFIG = {\n id: \"0x8202901a277581cD68772c71E6F5380bAaf6F1a3\",\n withdrawalFee: \"0\",\n harvestInterval: \"60\",\n owner: \"0x240c439011770253a379e4fcd391761071c06bfb\",\n inputToken: {\n name: \"B4Real\",\n symbol: \"B4RE\",\n decimals: \"18\",\n address: \"0x3c27564e3161bbaa6e7d2f0320fa4be77aed54da\",\n tokenURL:\n \"https://cryption-network-local.infura-ipfs.io/ipfs/QmYcftrjFV4qRGixg8FZekc4siPndaQyYX1oJoJ1U9ie2g\",\n price: \"0.50\",\n },\n rewardToken: {\n name: \"B4Real Credits\",\n symbol: \"B4RC\",\n decimals: \"18\",\n address: \"0x6be961cc7f0f182a58D1fa8052C5e92026CBEcAa\",\n tokenURL:\n \"https://cryption-network-local.infura-ipfs.io/ipfs/QmbCguTQzatdB3ebFVBq43B36g24e1DTSvPqw6YEpRG1ug\",\n startBlock: \"1664211600\",\n endBlock: \"2453130000\",\n rewardsPerToken: \"0.5\",\n expectedAPR: \"30\",\n price: \"1.00\",\n },\n};\n\nexport const NATIVE_TOKENS = {\n 80001: {\n name: \"MATIC\",\n symbol: \"MATIC\",\n decimals: \"18\",\n },\n 137: {\n name: \"MATIC\",\n symbol: \"MATIC\",\n decimals: \"18\",\n },\n 1: {\n name: \"ETH\",\n symbol: \"ETH\",\n decimals: \"18\",\n },\n 1287: {\n name: \"Glimmer\",\n symbol: \"GLMR\",\n decimals: \"18\",\n },\n};\n","import { MAINNET_CHAINID } from \"../config\";\n\nexport const nodes = {\n \"80001\": \"https://matic-mumbai.chainstacklabs.com\",\n \"5\": \"https://goerli.infura.io/v3/\",\n \"137\": \"https://polygon-rpc.com\",\n \"1\": \"https://eth-mainnet.public.blastapi.io\",\n \"56\": \"https://bsc-dataseed.binance.org\",\n \"1287\": \"https://rpc.api.moonbase.moonbeam.network\",\n};\n\nconst getNodeUrl = (chainId?: number) => {\n let id = chainId ?? MAINNET_CHAINID;\n if (!chainId && window && (window as WindowChain).ethereum) {\n id = Number(\n (window as WindowChain).ethereum?.networkVersion ?? MAINNET_CHAINID\n );\n }\n return nodes[id.toString() as keyof typeof nodes];\n};\n\nexport default getNodeUrl;\n","import { NATIVE_TOKENS } from \"../config\";\nimport { nodes } from \"./getRpcUrl\";\n\nconst setupNetwork = async (chainId: number) => {\n const provider = (window as WindowChain).ethereum;\n if (provider) {\n // @ts-ignore\n let chainIdFallback = parseInt(chainId, 10);\n try {\n // @ts-ignore\n await provider.request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainId: `0x${chainIdFallback.toString(16)}`,\n chainName: \"Matic\",\n nativeCurrency: {\n name: NATIVE_TOKENS[chainIdFallback as keyof typeof NATIVE_TOKENS]\n .name,\n symbol:\n NATIVE_TOKENS[chainIdFallback as keyof typeof NATIVE_TOKENS]\n .symbol,\n decimals:\n NATIVE_TOKENS[chainIdFallback as keyof typeof NATIVE_TOKENS]\n .decimals,\n },\n rpcUrls: nodes[chainIdFallback.toString() as keyof typeof nodes],\n blockExplorerUrls: [\"https://polygonscan.com/\"],\n },\n ],\n });\n return true;\n } catch (error) {\n console.error(error);\n return false;\n }\n } else {\n console.error(\n \"Can't setup the BSC network on metamask because window.ethereum is undefined\"\n );\n return false;\n }\n};\n\nexport default setupNetwork;\n","import styled from \"styled-components\";\nimport { Paper } from \"@mui/material\";\n\nexport const Card = styled(Paper)`\n display: flex;\n flex-direction: column;\n padding: 20px;\n`;\nexport const CardBody = styled.div``;\nexport const Hr = styled.div`\n background: ${(props) => props.theme.palette.primary.main};\n border-radius: 1px;\n transform: matrix(1, 0, 0, -1, 0, 0);\n width: 100%;\n height: 2px;\n margin: 10px 0 20px 0;\n`;\nexport const CardHeading = styled.h2`\n color: ${(props) => props.theme.palette.text.primary};\n font-family: Anton, sans-serif;\n font-weight: 600;\n text-transform: uppercase;\n text-align: center;\n font-size: 28px;\n letter-spacing: 1.2px;\n`;\nexport const CardRow = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 10px;\n`;\nexport const CardSubHeading = styled.p`\n font-weight: 600;\n font-size: 16px;\n color: ${(props) => props.theme.palette.text.disabled};\n`;\nexport const CardText = styled.p`\n font-weight: 600;\n font-size: 18px;\n color: ${(props) => props.theme.palette.text.secondary};\n`;\n","import { SVGAttributes } from \"react\";\nimport styled from \"styled-components\";\nimport { DefaultTheme } from \"styled-components\";\n\nexport interface SvgProps extends SVGAttributes {\n theme?: DefaultTheme;\n spin?: boolean;\n bgColor?: string;\n insideColor?: string;\n}\n\nconst Svg = styled.svg`\n flex-shrink: 0;\n`;\n\nSvg.defaultProps = {\n color: \"text\",\n width: \"20px\",\n xmlns: \"http://www.w3.org/2000/svg\",\n spin: false,\n};\n\nexport default Svg;\n","import Metamask from \"../../config/walletIcons/Metamask\";\nimport WalletConnect from \"../../config/walletIcons/WalletConnect\";\nimport { InjectedConnector } from \"@web3-react/injected-connector\";\nimport { WalletConnectConnector } from \"@web3-react/walletconnect-connector\";\nimport getNodeUrl from \"../../utils/getRpcUrl\";\nimport { MAINNET_CHAINID, SUPPORTED_NETWORK_IDS } from \"../../config\";\nimport { FC } from \"react\";\nimport { SvgProps } from \"../../config/walletIcons/types\";\n\n// types\nexport enum ConnectorNames {\n Injected = \"injected\",\n WalletConnect = \"walletconnect\",\n}\nexport type Login = (connectorId: ConnectorNames) => void;\nexport interface Config {\n title: string;\n type: string;\n icon: FC;\n connectorId: ConnectorNames;\n}\n\nexport const Connectors: Config[] = [\n {\n title: \"Metamask\",\n icon: Metamask,\n type: \"web3\",\n connectorId: ConnectorNames.Injected,\n },\n {\n title: \"WalletConnect\",\n icon: WalletConnect,\n type: \"web3\",\n connectorId: ConnectorNames.WalletConnect,\n },\n];\n\nexport const connectorLocalStorageKey = \"connectorId\";\n\nconst injected = new InjectedConnector({\n supportedChainIds: SUPPORTED_NETWORK_IDS,\n});\nconst walletConnectConnector = new WalletConnectConnector({\n rpc: { [SUPPORTED_NETWORK_IDS[0]]: getNodeUrl(MAINNET_CHAINID) },\n bridge: \"https://bridge.walletconnect.org\",\n qrcode: true,\n});\n\nexport const connectorsByName: { [connectorName in ConnectorNames]: any } = {\n [ConnectorNames.Injected]: injected,\n [ConnectorNames.WalletConnect]: walletConnectConnector,\n};\n","import React from \"react\";\nimport Svg, { SvgProps } from \"./types\";\n\nconst Icon: React.FC = (props) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Icon;\n","import React from \"react\";\nimport Svg, { SvgProps } from \"./types\";\n\nconst Icon: React.FC = (props) => {\n return (\n \n \n \n \n );\n};\n\nexport default Icon;\n","import { FC } from \"react\";\nimport { Card, CardHeading, CardText } from \"../../styles/CardStyles\";\nimport { Button, Modal, Stack } from \"@mui/material\";\nimport {\n Config,\n connectorLocalStorageKey,\n Connectors,\n Login,\n} from \"./connectors\";\n\ninterface IStyledModal {\n open: boolean;\n handleClose: () => void;\n login: Login;\n}\n\nconst style = {\n position: \"absolute\" as \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: 360,\n bgcolor: \"background.paper\",\n border: \"2px solid #000\",\n boxShadow: 24,\n p: 4,\n height: \"250px\",\n};\n\ninterface Props {\n walletConfig: Config;\n login: Login;\n onDismiss: () => void;\n}\n\nconst WalletCard: FC = ({ login, walletConfig, onDismiss }) => {\n const { title, icon: Icon } = walletConfig;\n return (\n {\n login(walletConfig.connectorId);\n window.localStorage.setItem(\n connectorLocalStorageKey,\n walletConfig.connectorId\n );\n onDismiss();\n }}\n fullWidth\n style={{ marginBottom: \"10px\" }}\n >\n \n {title}\n \n \n \n );\n};\n\nconst ConnectWalletModal: FC = ({ open, handleClose, login }) => {\n return (\n \n \n Connect Wallet\n \n {Connectors.map((connector) => (\n
\n \n
\n ))}\n
\n \n \n );\n};\n\nexport default ConnectWalletModal;\nexport { connectorsByName } from \"./connectors\";\nexport { connectorLocalStorageKey } from \"./connectors\";\nexport { Connectors } from \"./connectors\";\n","import { useCallback } from \"react\";\nimport { useWeb3React, UnsupportedChainIdError } from \"@web3-react/core\";\nimport { MAINNET_CHAINID } from \"../config\";\nimport setupNetwork from \"../utils/setupNetwork\";\nimport { connectorsByName } from \"../components/ConnectWalletModal\";\nimport { ConnectorNames } from \"../components/ConnectWalletModal/connectors\";\n\nconst useAuth = () => {\n const { activate, deactivate } = useWeb3React();\n const login = useCallback((connectorID: ConnectorNames) => {\n const connector = connectorsByName[connectorID];\n if (connector) {\n activate(connector, async (error: Error) => {\n if (error instanceof UnsupportedChainIdError) {\n const hasSetup = await setupNetwork(MAINNET_CHAINID);\n if (hasSetup) {\n activate(connector);\n }\n } else {\n console.error(\n \"Error while connecting to wallet: \",\n error.name,\n error.message\n );\n }\n });\n } else {\n console.error(\"Can't find connector\", \"The connector config is wrong\");\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return {\n login,\n logout: deactivate,\n };\n};\n\nexport default useAuth;\n","import React, { useEffect } from \"react\";\nimport { Button, Container, Stack } from \"@mui/material\";\nimport styled from \"styled-components\";\nimport CompanyLogo from \"./companyLogo.svg\";\nimport useActiveWeb3React from \"../../hooks/useActiveWeb3React\";\nimport useAuth from \"../../hooks/useAuth\";\nimport { connectorLocalStorageKey } from \"../ConnectWalletModal\";\nimport { ConnectorNames } from \"../ConnectWalletModal/connectors\";\n\nconst BlackContainer = styled.div`\n background-color: ${(props) => props.theme.palette.background.default};\n padding-top: 20px;\n`;\nconst StyledContainer = styled(Container)``;\nconst NavigationContainer = styled.nav`\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n @media (max-width: 600px) {\n justify-content: space-evenly;\n }\n`;\nconst LogoContainer = styled.div``;\n\nconst truncateAddress = (address: string) => {\n if (!address) return \"No Account\";\n const match = address.match(\n /^(0x[a-zA-Z0-9]{2})[a-zA-Z0-9]+([a-zA-Z0-9]{4})$/\n );\n if (!match) return address;\n return `${match[1]}…${match[2]}`;\n};\n\ninterface IMenu {\n handleConnectWalletModalOpen: () => void;\n}\n\nconst Menu: React.FC = ({ handleConnectWalletModalOpen }) => {\n const { account } = useActiveWeb3React();\n const { logout, login } = useAuth();\n\n const deactivate = () => {\n logout();\n window.localStorage.removeItem(connectorLocalStorageKey);\n };\n\n useEffect(() => {\n if (account === null || account === undefined) {\n const connectorId = window.localStorage.getItem(\n connectorLocalStorageKey\n ) as ConnectorNames;\n\n if (connectorId && connectorId) {\n login(connectorId);\n }\n }\n }, [account, login]);\n\n return (\n \n \n \n \n {\"B4Real\"}\n \n\n \n {account ? (\n \n \n \n ) : (\n \n \n Connect to wallet\n \n \n )}\n \n \n \n \n );\n};\n\nexport default Menu;\n","import { useEffect, useState } from \"react\";\nimport { CardText } from \"../styles/CardStyles\";\n\nconst useCountdown = (targetDate: number) => {\n const countDownDate = new Date(targetDate).getTime();\n\n const [countDown, setCountDown] = useState(\n countDownDate - new Date().getTime()\n );\n\n useEffect(() => {\n const interval = setInterval(() => {\n setCountDown(countDownDate - new Date().getTime());\n }, 1000);\n\n return () => clearInterval(interval);\n }, [countDownDate]);\n\n return getReturnValues(countDown);\n};\n\nconst getReturnValues = (countDown: number) => {\n // calculate time left\n const days = Math.floor(countDown / (1000 * 60 * 60 * 24));\n const hours = Math.floor(\n (countDown % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\n );\n const minutes = Math.floor((countDown % (1000 * 60 * 60)) / (1000 * 60));\n const seconds = Math.floor((countDown % (1000 * 60)) / 1000);\n\n return [days, hours, minutes, seconds];\n};\n\nexport { useCountdown };\n\nconst CountdownTimer = ({ time }: { time: number }) => {\n const [days, hours, minutes, seconds] = useCountdown(time);\n\n if (days + hours + minutes + seconds <= 0) {\n return ;\n } else {\n return (\n \n );\n }\n};\n\nconst ExpiredNotice = () => {\n return READY;\n};\n\nconst ShowCounter = ({\n days,\n hours,\n minutes,\n seconds,\n}: {\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n}) => {\n return (\n <>\n \n :\n \n :\n \n :\n \n \n );\n};\n\nconst DateTimeDisplay = ({ value, type }: { value: number; type: string }) => {\n return (\n \n {value} {type}\n \n );\n};\n\nexport default CountdownTimer;\n","import { BigNumber } from \"bignumber.js\";\n\nexport const BIG_10 = new BigNumber(10);\n\nconst formatWeiToEth = (\n amount: string,\n decimals = 18,\n roundOffDecimals = 3\n) => {\n return new BigNumber(amount)\n .dividedBy(BIG_10.pow(decimals))\n .toFixed(roundOffDecimals);\n};\n\nexport default formatWeiToEth;\n","import { Stack } from \"@mui/material\";\nimport { STAKING_POOL_CONFIG } from \"../../config\";\nimport {\n CardBody,\n CardHeading,\n CardRow,\n CardSubHeading,\n CardText,\n Hr,\n} from \"../../styles/CardStyles\";\nimport { FC } from \"react\";\nimport CountDownText from \"../../components/CountDownText\";\nimport BigNumber from \"bignumber.js\";\nimport { BIG_10 } from \"../../utils/formatWeiToEth\";\n\ninterface IHeroCard {\n account: string | null | undefined;\n nextHarvest: string | null;\n totalInputTokensStaked: string;\n apr: string | null;\n}\n\nconst HeroCard: FC = ({\n account,\n nextHarvest,\n totalInputTokensStaked,\n apr,\n}) => {\n const nextHarvestTimeInMilliseconds = nextHarvest\n ? parseFloat(nextHarvest) * 1000\n : null;\n\n const priceOfInputToken = STAKING_POOL_CONFIG.inputToken.price;\n const totalLiquidity = new BigNumber(totalInputTokensStaked)\n .dividedBy(BIG_10.pow(STAKING_POOL_CONFIG.inputToken.decimals))\n .multipliedBy(priceOfInputToken ? priceOfInputToken : \"1\")\n .toFixed(2);\n\n const apy = new BigNumber(\n apr ? apr : STAKING_POOL_CONFIG.rewardToken.expectedAPR\n ).toFixed(2);\n\n return (\n \n \n {STAKING_POOL_CONFIG.inputToken.name} Staking Pool\n \n
\n \n \n Current APR\n {apy}%\n \n \n Staked Token\n {STAKING_POOL_CONFIG.inputToken.symbol}\n \n \n Reward Token\n {STAKING_POOL_CONFIG.rewardToken.symbol}\n \n \n TVL (AUD)\n ${totalLiquidity}\n \n \n Withdrawal fee\n \n {Number(STAKING_POOL_CONFIG.withdrawalFee) === 0\n ? `FREE`\n : `${parseFloat(STAKING_POOL_CONFIG.withdrawalFee) / 100}%`}\n \n \n \n Harvest lock interval\n {STAKING_POOL_CONFIG.harvestInterval} secs\n \n {account && nextHarvest && nextHarvestTimeInMilliseconds && (\n \n Next harvest in\n \n \n )}\n \n
\n );\n};\n\nexport default HeroCard;\n","import { StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport getRpcUrl from \"./getRpcUrl\";\n\nconst RPC_URL = getRpcUrl();\n\nconst simpleRpcProvider = new StaticJsonRpcProvider(RPC_URL);\n\nexport default simpleRpcProvider;\n","import erc20Abi from \"../config/abi/erc20.json\";\nimport poolAbi from \"../config/abi/pool.json\";\nimport simpleRpcProvider from \"./defaultProvider\";\nimport type { Signer } from \"@ethersproject/abstract-signer\";\nimport type { Provider } from \"@ethersproject/providers\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport { Erc20, Pool } from \"../config/abi/types\";\n\nexport const getContract = (\n abi: any,\n address: string,\n signer?: Signer | Provider\n) => {\n const signerOrProvider = signer ?? simpleRpcProvider;\n return new Contract(address, abi, signerOrProvider);\n};\n\nexport const getERC20Contract = (\n address: string,\n signer?: Signer | Provider\n) => {\n return getContract(erc20Abi, address, signer) as Erc20;\n};\n\nexport const getPoolContract = (\n address: string,\n signer?: Signer | Provider\n) => {\n return getContract(poolAbi, address, signer) as Pool;\n};\n","import { Button } from \"@mui/material\";\n\nconst ConnectWalletBtn = ({\n handleConnectWalletModalOpen,\n}: {\n handleConnectWalletModalOpen: () => void;\n}) => {\n return (\n \n Connect to wallet\n \n );\n};\n\nexport default ConnectWalletBtn;\n","import { ChangeEvent, Dispatch, FC, SetStateAction } from \"react\";\nimport { Card, CardHeading } from \"../styles/CardStyles\";\nimport { Button, Modal, TextField } from \"@mui/material\";\nimport styled from \"styled-components\";\nimport { LoadingButton } from \"@mui/lab\";\n\ninterface IStyledModal {\n heading: string;\n open: boolean;\n handleClose: () => void;\n amount: string;\n setAmount: Dispatch>;\n handleInputChange: (event: ChangeEvent) => void;\n max: string;\n handleBtnClick: () => Promise;\n pendingTxn: boolean;\n}\n\nconst style = {\n position: \"absolute\" as \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: 400,\n bgcolor: \"background.paper\",\n border: \"2px solid #000\",\n boxShadow: 24,\n p: 4,\n height: \"250px\",\n};\n\nexport const InputContainer = styled.div`\n position: relative;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 320px;\n`;\n\nconst StyledModal: FC = ({\n heading,\n open,\n handleClose,\n amount,\n setAmount,\n handleInputChange,\n max,\n handleBtnClick,\n pendingTxn,\n}) => {\n const handleMaxClick = () => {\n setAmount(max);\n };\n\n return (\n \n <>\n \n {heading}\n \n {heading}\n \n \n \n \n \n Max\n \n \n \n \n );\n};\n\nexport default StyledModal;\n","import React from \"react\";\n\nconst Tick = ({ size = 150 }) => (\n
\n \n \n \n \n \n \n
\n);\n\nexport default Tick;\n","import * as React from \"react\";\n\nconst SVGComponent = (\n props: JSX.IntrinsicAttributes & React.SVGProps\n) => (\n \n \n \n \n \n);\n\nexport default SVGComponent;\n","import { FC } from \"react\";\nimport { Card } from \"../styles/CardStyles\";\nimport { Modal } from \"@mui/material\";\nimport styled from \"styled-components\";\nimport { Oval } from \"react-loader-spinner\";\nimport Tick from \"./Tick\";\nimport Error from \"./Error\";\n\ninterface ITxnStateModal {\n open: boolean;\n handleClose: () => void;\n txnPending: {\n loading: boolean;\n success: boolean;\n failure: boolean;\n };\n}\n\nconst style = {\n position: \"absolute\" as \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: 400,\n bgcolor: \"background.paper\",\n border: \"2px solid #000\",\n boxShadow: 24,\n p: 4,\n height: \"250px\",\n};\n\nexport const OvalContainer = styled.div`\n width: 100%;\n height: 100%;\n margin: auto;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst TxnStateModal: FC = ({\n open,\n handleClose,\n txnPending,\n}) => {\n const sizeOfTxnStates = 75;\n return (\n \n <>\n \n {txnPending.loading && (\n \n \n \n )}\n {txnPending.success && }\n {txnPending.failure && (\n \n \n \n )}\n \n \n \n );\n};\n\nexport default TxnStateModal;\n","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { ContentCopy } from \"@mui/icons-material\";\n\ninterface Props {\n toCopy: string;\n}\n\nconst StyleButton = styled.div.attrs({ role: \"button\" })`\n margin-top: 5px;\n display: flex;\n align-items: center;\n position: relative;\n flex-direction: column;\n color: ${(props) => props.theme.palette.secondary.main};\n`;\n\nconst Tooltip = styled.div<{ isTooltipDisplayed: boolean }>`\n display: ${({ isTooltipDisplayed }) =>\n isTooltipDisplayed ? \"block\" : \"none\"};\n margin-top: 10px;\n position: absolute;\n left: -20px;\n top: 20px;\n padding: 3px 10px;\n text-align: center;\n background-color: ${(props) => props.theme.palette.background.default};\n color: ${(props) => props.theme.palette.secondary.main};\n border-radius: 16px;\n opacity: 0.7;\n`;\n\nconst CopyToClipboard: React.FC = ({ toCopy, children, ...props }) => {\n const [isTooltipDisplayed, setIsTooltipDisplayed] = useState(false);\n\n return (\n {\n if (navigator.clipboard) {\n navigator.clipboard.writeText(toCopy);\n setIsTooltipDisplayed(true);\n setTimeout(() => {\n setIsTooltipDisplayed(false);\n }, 1000);\n }\n }}\n {...props}\n >\n {children}\n
\n \n
\n Copied\n \n );\n};\n\nexport default CopyToClipboard;\n","import {\n Hr,\n CardHeading,\n CardSubHeading,\n CardText,\n CardRow,\n} from \"../../styles/CardStyles\";\nimport { Button, Stack } from \"@mui/material\";\nimport { ChangeEvent, FC, useState } from \"react\";\nimport { IUserPoolData, OwnerCard } from \"./PoolPage\";\nimport { STAKING_POOL_CONFIG } from \"../../config\";\nimport BigNumber from \"bignumber.js\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport { ethers } from \"ethers/lib.esm\";\nimport poolAbi from \"../../config/abi/pool.json\";\nimport erc20Abi from \"../../config/abi/erc20.json\";\nimport { Pool, Erc20 } from \"../../config/abi/types\";\nimport formatWeiToEth, { BIG_10 } from \"../../utils/formatWeiToEth\";\nimport ConnectWalletBtn from \"../../components/ConnectWalletBtn\";\nimport StyledModal from \"../../components/StyledModal\";\nimport { LoadingButton } from \"@mui/lab\";\nimport TxnStateModal from \"../../components/TxnStateModal\";\nimport CopyToClipboard from \"../../components/CopyToClipboard\";\n\ninterface IStakingCard {\n account: string | null | undefined;\n userPoolData: IUserPoolData;\n pendingTxn: boolean;\n handleConnectWalletModalOpen: () => void;\n handleApprove: () => void;\n}\n\nconst StakingCard: FC = ({\n account,\n userPoolData,\n pendingTxn,\n handleConnectWalletModalOpen,\n handleApprove,\n}) => {\n const [amount, setAmount] = useState(\"0.0\");\n const [stakeModalOpen, setStakeModalOpen] = useState(false);\n const [unstakeModalOpen, setUnstakeModalOpen] = useState(false);\n const [openPurchaseModal, setOpenPurchaseModal] = useState(false);\n const [txnPending, setTxnPending] = useState({\n loading: false,\n success: false,\n failure: false,\n });\n\n const handleOpenPurchaseModal = () => setOpenPurchaseModal(true);\n const handleClosePurchaseModal = () => setOpenPurchaseModal(false);\n\n const handleStakeModalOpen = () => setStakeModalOpen(true);\n const handleUnstakeModalOpen = () => setUnstakeModalOpen(true);\n\n const handleInputChange = (event: ChangeEvent) => {\n setAmount(event.target.value);\n };\n\n const handleStakeModalClose = () => setStakeModalOpen(false);\n const handleUnstakeModalClose = () => setUnstakeModalOpen(false);\n\n const handleStake = async () => {\n handleStakeModalClose();\n handleOpenPurchaseModal();\n setTxnPending({\n loading: true,\n success: false,\n failure: false,\n });\n try {\n const stakeAmount = new BigNumber(amount)\n .multipliedBy(BIG_10.pow(STAKING_POOL_CONFIG.inputToken.decimals))\n .toFixed();\n\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const poolContract = new Contract(\n STAKING_POOL_CONFIG.id,\n poolAbi,\n signer\n ) as Pool;\n\n const erc20Contract = new Contract(\n STAKING_POOL_CONFIG.inputToken.address,\n erc20Abi,\n signer\n ) as Erc20;\n\n if (!account) return;\n\n const allowanceOfInputToken = await erc20Contract.allowance(\n account,\n STAKING_POOL_CONFIG.id\n );\n\n if (\n new BigNumber(allowanceOfInputToken.toString()).isLessThan(stakeAmount)\n ) {\n const txn = await erc20Contract.approve(\n STAKING_POOL_CONFIG.id,\n stakeAmount\n );\n await txn.wait();\n }\n\n const depositTx = await poolContract.deposit(stakeAmount);\n await depositTx.wait();\n setTxnPending({\n loading: false,\n success: true,\n failure: false,\n });\n } catch (err) {\n setTxnPending({\n loading: false,\n success: false,\n failure: true,\n });\n console.error(\"Error in handleStake: \", err);\n }\n };\n const handleUnstake = async () => {\n handleUnstakeModalClose();\n handleOpenPurchaseModal();\n setTxnPending({\n loading: true,\n success: false,\n failure: false,\n });\n try {\n const stakeAmount = new BigNumber(amount)\n .multipliedBy(BIG_10.pow(STAKING_POOL_CONFIG.inputToken.decimals))\n .toFixed();\n\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const poolContract = new Contract(\n STAKING_POOL_CONFIG.id,\n poolAbi,\n signer\n ) as Pool;\n const withdrawTx = await poolContract.withdraw(stakeAmount);\n await withdrawTx.wait();\n setTxnPending({\n loading: false,\n success: true,\n failure: false,\n });\n } catch (err) {\n setTxnPending({\n loading: false,\n success: false,\n failure: true,\n });\n console.error(\"Error in handleUnstake: \", err);\n }\n };\n\n return (\n <>\n \n {userPoolData && (\n \n )}\n {userPoolData && (\n \n )}\n \n Staking Info\n
\n \n \n \n \n\n \n {STAKING_POOL_CONFIG.inputToken.name}\n \n {STAKING_POOL_CONFIG.inputToken.symbol}\n \n \n \n\n \n \n {`${STAKING_POOL_CONFIG.inputToken.address.slice(\n 0,\n 4\n )}...${STAKING_POOL_CONFIG.inputToken.address.slice(\n STAKING_POOL_CONFIG.inputToken.address.length - 4\n )}`}\n \n \n \n \n {account ? (\n <>\n \n \n {STAKING_POOL_CONFIG.inputToken.symbol} balance\n \n \n {formatWeiToEth(\n userPoolData?.inputTokenBalance ?? \"1\",\n Number(STAKING_POOL_CONFIG.inputToken.decimals)\n )}\n \n \n \n \n {STAKING_POOL_CONFIG.inputToken.symbol} staked\n \n \n {formatWeiToEth(\n userPoolData?.amount ?? \"1\",\n Number(STAKING_POOL_CONFIG.inputToken.decimals),\n 3\n )}\n \n \n {new BigNumber(userPoolData?.allowance ?? \"0\").isGreaterThan(\n 0\n ) ? (\n \n \n Stake\n \n \n Unstake\n \n \n ) : (\n \n Connect asset\n \n )}\n \n ) : (\n \n )}\n \n
\n \n );\n};\n\nexport default StakingCard;\n","import {\n Hr,\n CardHeading,\n CardSubHeading,\n CardText,\n CardRow,\n} from \"../../styles/CardStyles\";\nimport { Stack } from \"@mui/material\";\nimport { Dispatch, FC, SetStateAction } from \"react\";\nimport { IUserPoolData, OwnerCard } from \"./PoolPage\";\nimport { STAKING_POOL_CONFIG } from \"../../config\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport { ethers } from \"ethers/lib.esm\";\nimport poolAbi from \"../../config/abi/pool.json\";\nimport { Pool } from \"../../config/abi/types\";\nimport formatWeiToEth from \"../../utils/formatWeiToEth\";\nimport ConnectWalletBtn from \"../../components/ConnectWalletBtn\";\nimport { LoadingButton } from \"@mui/lab\";\nimport CopyToClipboard from \"../../components/CopyToClipboard\";\n\ninterface IStakingCard {\n account: string | null | undefined;\n userPoolData: IUserPoolData;\n pendingTxn: boolean;\n setPendingTxn: Dispatch>;\n getStakingPoolUserValues: (user: string) => Promise;\n handleConnectWalletModalOpen: () => void;\n}\n\nconst RewardCard: FC = ({\n account,\n userPoolData,\n pendingTxn,\n setPendingTxn,\n getStakingPoolUserValues,\n handleConnectWalletModalOpen,\n}) => {\n const handleHarvest = async () => {\n if (!account || !userPoolData) return;\n setPendingTxn(() => true);\n try {\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const poolContract = new Contract(\n STAKING_POOL_CONFIG.id,\n poolAbi,\n signer\n ) as Pool;\n const depositTx = await poolContract.deposit(\"0\");\n await depositTx.wait();\n await getStakingPoolUserValues(account);\n setPendingTxn(() => false);\n } catch (error) {\n setPendingTxn(() => false);\n console.error(\"Error in handleApprove: \", error);\n }\n };\n\n return (\n \n Reward Info\n
\n \n \n \n \n\n \n {STAKING_POOL_CONFIG.rewardToken.name}\n \n {STAKING_POOL_CONFIG.rewardToken.symbol}\n \n \n \n\n \n \n {`${STAKING_POOL_CONFIG.rewardToken.address.slice(\n 0,\n 4\n )}...${STAKING_POOL_CONFIG.rewardToken.address.slice(\n STAKING_POOL_CONFIG.rewardToken.address.length - 4\n )}`}\n \n \n \n \n {account ? (\n <>\n \n \n {STAKING_POOL_CONFIG.rewardToken.symbol} earned\n \n \n {formatWeiToEth(\n userPoolData?.pendingReward ?? \"1\",\n Number(STAKING_POOL_CONFIG.rewardToken.decimals),\n 3\n )}\n \n \n \n Block reward\n \n {formatWeiToEth(\n STAKING_POOL_CONFIG.rewardToken.rewardsPerToken,\n Number(STAKING_POOL_CONFIG.rewardToken.decimals),\n 6\n )}\n \n \n \n Harvest\n \n \n ) : (\n \n )}\n \n
\n );\n};\n\nexport default RewardCard;\n","import React, { useState } from \"react\";\nimport { CardSubHeading, CardText } from \"../styles/CardStyles\";\nimport { Button, Stack, TextField } from \"@mui/material\";\nimport { STAKING_POOL_CONFIG } from \"../config\";\nimport { ethers } from \"ethers\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport poolAbi from \"../config/abi/pool.json\";\nimport { Pool } from \"../config/abi/types\";\nimport styled from \"styled-components\";\nimport { OwnerCard } from \"../views/StakingPool/PoolPage\";\n\nexport const InputContainer = styled.div`\n position: relative;\n`;\n\nconst UpdateHarvestInterval = ({\n account,\n pendingTxn,\n setPendingTxn,\n handleConnectWalletModalOpen,\n}: {\n account: string;\n pendingTxn: boolean;\n setPendingTxn: React.Dispatch>;\n handleConnectWalletModalOpen: () => void;\n}) => {\n const [harvestInterval, setHarvestInterval] = useState(\"0\");\n\n const handleInputChange = (event: React.ChangeEvent) => {\n setHarvestInterval(event.target.value);\n };\n\n const handleUpdateHarvestInterval = async () => {\n setPendingTxn(true);\n try {\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const poolContract = (await new Contract(\n STAKING_POOL_CONFIG.id,\n poolAbi,\n signer\n )) as Pool;\n\n const txn = await poolContract.updateHarvestInterval(\n harvestInterval,\n true\n );\n\n txn.wait();\n setPendingTxn(false);\n } catch (err) {\n setPendingTxn(false);\n console.error(\"Error while updating harvest interval: \", err);\n }\n };\n\n return (\n \n \n Update Harvest Interval\n {account && (\n <>\n \n Current harvest interval: \n \n {STAKING_POOL_CONFIG.harvestInterval} secs\n \n \n \n New harvest interval: \n \n {harvestInterval} secs\n \n \n \n )}\n \n \n \n \n \n\n {account ? (\n \n Update harvest interval\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default UpdateHarvestInterval;\n","import React from \"react\";\nimport { CardSubHeading, CardText } from \"../styles/CardStyles\";\nimport { Button, Stack } from \"@mui/material\";\nimport { STAKING_POOL_CONFIG } from \"../config\";\nimport { ethers } from \"ethers\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport poolAbi from \"../config/abi/pool.json\";\nimport { Pool } from \"../config/abi/types\";\nimport { OwnerCard } from \"../views/StakingPool/PoolPage\";\n\nconst RescueFunds = ({\n account,\n pendingTxn,\n setPendingTxn,\n handleConnectWalletModalOpen,\n owner,\n}: {\n account: string;\n pendingTxn: boolean;\n setPendingTxn: React.Dispatch>;\n handleConnectWalletModalOpen: () => void;\n owner: string;\n}) => {\n const handleRescueFunds = async () => {\n setPendingTxn(true);\n try {\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const poolContract = (await new Contract(\n STAKING_POOL_CONFIG.id,\n poolAbi,\n signer\n )) as Pool;\n\n const txn = await poolContract.rescueFunds(\n STAKING_POOL_CONFIG.rewardToken.address,\n owner\n );\n\n txn.wait();\n setPendingTxn(false);\n } catch (err) {\n setPendingTxn(false);\n console.error(\"Error while rescuing funds: \", err);\n }\n };\n\n return (\n \n \n Rescue Funds\n {account && (\n \n \n This will remove all the reward tokens from the Staking Pool\n contract\n \n \n )}\n {account ? (\n \n Rescue Funds\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default RescueFunds;\n","import React, {\n Dispatch,\n SetStateAction,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { CardText } from \"../styles/CardStyles\";\nimport { Button, Stack, TextField } from \"@mui/material\";\nimport { STAKING_POOL_CONFIG } from \"../config\";\nimport { ethers } from \"ethers\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport erc20Abi from \"../config/abi/erc20.json\";\nimport BigNumber from \"bignumber.js\";\nimport styled from \"styled-components\";\nimport { Erc20 } from \"../config/abi/types\";\nimport { OwnerCard } from \"../views/StakingPool/PoolPage\";\nimport { LoadingButton } from \"@mui/lab\";\nimport { getERC20Contract } from \"../utils/contractHelpers\";\n\nexport const InputContainer = styled.div`\n position: relative;\n`;\n\nconst TransferRewardToken = ({\n account,\n pendingTxn,\n setPendingTxn,\n handleConnectWalletModalOpen,\n}: {\n account: string;\n pendingTxn: boolean;\n setPendingTxn: Dispatch>;\n handleConnectWalletModalOpen: () => void;\n}) => {\n const [rewardTokenAllowance, setRewardTokenAllowance] = useState(\"0\");\n const [transferAmount, setTransferAmount] = useState(\"0\");\n\n const handleInputChange = (event: React.ChangeEvent) => {\n setTransferAmount(event.target.value);\n };\n\n const getRewardTokenAllowance = useCallback(async () => {\n const erc20Contract = getERC20Contract(\n STAKING_POOL_CONFIG.rewardToken.address\n );\n const allowance = await erc20Contract.allowance(\n account,\n STAKING_POOL_CONFIG.id\n );\n setRewardTokenAllowance(() => allowance.toString());\n }, [account]);\n\n const handleRewardTokenApprove = async () => {\n setPendingTxn(() => true);\n try {\n const amount = 1000000;\n const approvalAmount = ethers.utils.parseUnits(amount.toString(), 18);\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const rewardTokenContract = new Contract(\n STAKING_POOL_CONFIG.rewardToken.address,\n erc20Abi,\n signer\n ) as Erc20;\n const approvalTx = await rewardTokenContract.approve(\n STAKING_POOL_CONFIG.id,\n approvalAmount\n );\n await approvalTx.wait();\n const allowanceAmount = await rewardTokenContract.allowance(\n account,\n STAKING_POOL_CONFIG.id\n );\n setRewardTokenAllowance(() => allowanceAmount.toString());\n setPendingTxn(() => false);\n } catch (error) {\n setPendingTxn(() => false);\n console.error(\"Error in handleRewardTokenApprove: \", error);\n }\n };\n\n const handleTransferRewardToken = async () => {\n setPendingTxn(true);\n try {\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n\n const erc20Contract = new Contract(\n STAKING_POOL_CONFIG.rewardToken.address,\n erc20Abi,\n signer\n ) as Erc20;\n\n const allowanceOfRewardToken = await erc20Contract.allowance(\n account,\n STAKING_POOL_CONFIG.id\n );\n\n const transferAmountInWei = new BigNumber(transferAmount)\n .multipliedBy(\n new BigNumber(10).pow(STAKING_POOL_CONFIG.rewardToken.decimals)\n )\n .toFixed();\n\n if (\n new BigNumber(allowanceOfRewardToken.toString()).isLessThan(\n transferAmountInWei\n )\n ) {\n const txn = await erc20Contract.approve(\n STAKING_POOL_CONFIG.id,\n transferAmountInWei\n );\n txn.wait();\n }\n\n const txn = await erc20Contract.transfer(\n STAKING_POOL_CONFIG.id,\n transferAmountInWei\n );\n\n txn.wait();\n setPendingTxn(false);\n } catch (err) {\n setPendingTxn(false);\n console.error(\"Error while transferring reward token: \", err);\n }\n };\n\n useEffect(() => {\n getRewardTokenAllowance().catch((e) =>\n console.log(\"Error in getRewardTokenAllowance: \", e)\n );\n }, [getRewardTokenAllowance]);\n\n return (\n \n \n Transfer Reward Token\n \n \n \n \n \n\n {account ? (\n <>\n {new BigNumber(rewardTokenAllowance).isGreaterThan(0) ? (\n \n Transfer reward token\n \n ) : (\n \n Connect asset\n \n )}\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default TransferRewardToken;\n","import React, { useState } from \"react\";\nimport { CardText } from \"../styles/CardStyles\";\nimport { Button, Stack, TextField } from \"@mui/material\";\nimport { STAKING_POOL_CONFIG } from \"../config\";\nimport { ethers } from \"ethers\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport b4rcAbi from \"../config/abi/b4rc.json\";\nimport BigNumber from \"bignumber.js\";\nimport styled from \"styled-components\";\nimport { B4rc } from \"../config/abi/types\";\nimport { OwnerCard } from \"../views/StakingPool/PoolPage\";\n\nexport const InputContainer = styled.div`\n position: relative;\n`;\n\nconst Mint = ({\n account,\n pendingTxn,\n setPendingTxn,\n handleConnectWalletModalOpen,\n owner,\n}: {\n account: string;\n pendingTxn: boolean;\n setPendingTxn: React.Dispatch>;\n handleConnectWalletModalOpen: () => void;\n owner: string;\n}) => {\n const [mintAmount, setMintAmount] = useState(\"0\");\n\n const handleInputChange = (event: React.ChangeEvent) => {\n setMintAmount(event.target.value);\n };\n\n const handleMint = async () => {\n setPendingTxn(true);\n try {\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const b4rcContract = (await new Contract(\n STAKING_POOL_CONFIG.rewardToken.address,\n b4rcAbi,\n signer\n )) as B4rc;\n\n const mintAmountInWei = new BigNumber(mintAmount)\n .multipliedBy(\n new BigNumber(10).pow(STAKING_POOL_CONFIG.rewardToken.decimals)\n )\n .toFixed();\n\n const txn = await b4rcContract.mint(owner, mintAmountInWei);\n\n txn.wait();\n setPendingTxn(false);\n } catch (err) {\n setPendingTxn(false);\n console.error(\"Error while minting reward token: \", err);\n }\n };\n\n return (\n \n \n Mint\n \n \n \n \n \n\n {account ? (\n \n Mint reward token\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default Mint;\n","import React, { useState } from \"react\";\nimport { CardSubHeading, CardText } from \"../styles/CardStyles\";\nimport { Button, Stack, TextField } from \"@mui/material\";\nimport { STAKING_POOL_CONFIG } from \"../config\";\nimport { ethers } from \"ethers\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport poolAbi from \"../config/abi/pool.json\";\nimport { Pool } from \"../config/abi/types\";\nimport styled from \"styled-components\";\nimport BigNumber from \"bignumber.js\";\nimport { OwnerCard } from \"../views/StakingPool/PoolPage\";\n\nexport const InputContainer = styled.div`\n position: relative;\n`;\n\nconst UpdateApr = ({\n account,\n pendingTxn,\n setPendingTxn,\n handleConnectWalletModalOpen,\n currExpectedAPR,\n}: {\n account: string;\n pendingTxn: boolean;\n setPendingTxn: React.Dispatch>;\n handleConnectWalletModalOpen: () => void;\n currExpectedAPR: string;\n}) => {\n const [expectedApr, setExpectedApr] = useState(\"0\");\n\n const aprFormatted = new BigNumber(currExpectedAPR).toFixed(2);\n\n const handleInputChange = (event: React.ChangeEvent) => {\n setExpectedApr(event.target.value);\n };\n\n const handleUpdateExpectedApr = async () => {\n setPendingTxn(true);\n try {\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const poolContract = (await new Contract(\n STAKING_POOL_CONFIG.id,\n poolAbi,\n signer\n )) as Pool;\n\n const expectedRewardTokenAPR = new BigNumber(10)\n .pow(16)\n .multipliedBy(expectedApr)\n .toFixed();\n\n const rewardTokenRateInUSD = STAKING_POOL_CONFIG.rewardToken.price;\n const inputTokenRateInUSD = STAKING_POOL_CONFIG.inputToken.price;\n\n const calculatedAPR = new BigNumber(expectedRewardTokenAPR)\n .multipliedBy(inputTokenRateInUSD)\n .dividedBy(rewardTokenRateInUSD)\n .toFixed();\n\n const txn = await poolContract.updateExpectedAPR(calculatedAPR, \"0\");\n\n txn.wait();\n setPendingTxn(false);\n } catch (err) {\n setPendingTxn(false);\n console.error(\"Error while changing expected APR: \", err);\n }\n };\n\n return (\n \n \n Update Expected APR\n {account && (\n <>\n \n Current expected APR: \n {aprFormatted}%\n \n \n New expected APR: \n {expectedApr}%\n \n \n )}\n \n \n \n \n \n\n {account ? (\n \n Update Expected APR\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default UpdateApr;\n","import { Stack } from \"@mui/material\";\nimport { CardSubHeading, CardText } from \"../styles/CardStyles\";\nimport { STAKING_POOL_CONFIG } from \"../config\";\nimport { useEffect, useState } from \"react\";\nimport { getERC20Contract } from \"../utils/contractHelpers\";\nimport BigNumber from \"bignumber.js\";\nimport { BIG_10 } from \"../utils/formatWeiToEth\";\nimport styled from \"styled-components\";\n\nconst Container = styled.div`\n width: 100%;\n`;\n\nconst RewardTokensRemaining = () => {\n const [remainingRewardTokens, setRemainingRewardTokens] = useState(\"0\");\n\n const getRewardTokensRemaining = async () => {\n const erc20Contract = getERC20Contract(\n STAKING_POOL_CONFIG.rewardToken.address\n );\n const balanceOfRewardTokens = await erc20Contract.balanceOf(\n STAKING_POOL_CONFIG.id\n );\n const balanceOfRewardTokensInEth = new BigNumber(\n balanceOfRewardTokens.toString()\n )\n .dividedBy(BIG_10.pow(STAKING_POOL_CONFIG.rewardToken.decimals))\n .toFixed();\n\n setRemainingRewardTokens(() => balanceOfRewardTokensInEth);\n };\n\n useEffect(() => {\n getRewardTokensRemaining().catch((e) =>\n console.log(\"Error in getRewardTokensRemaining: \", e)\n );\n }, []);\n\n return (\n \n \n \n Reward tokens remaining in the contract:{\" \"}\n \n \n {Number(remainingRewardTokens).toFixed(3)}{\" \"}\n {STAKING_POOL_CONFIG.rewardToken.symbol}\n \n \n \n );\n};\n\nexport default RewardTokensRemaining;\n","import React, { useEffect, useState, useCallback } from \"react\";\nimport { INFINITE, STAKING_POOL_CONFIG } from \"../../config\";\nimport { Grid } from \"@mui/material\";\nimport HeroCard from \"./HeroCard\";\nimport { getERC20Contract, getPoolContract } from \"../../utils/contractHelpers\";\nimport StakingCard from \"./StakingCard\";\nimport RewardCard from \"./RewardCard\";\nimport styled from \"styled-components\";\nimport useActiveWeb3React from \"../../hooks/useActiveWeb3React\";\nimport UpdateHarvestInterval from \"../../components/UpdateHarvestInterval\";\nimport RescueFunds from \"../../components/RescueFunds\";\nimport TransferRewardToken from \"../../components/TransferRewardToken\";\nimport Mint from \"../../components/Mint\";\nimport UpdateApr from \"../../components/UpdateApr\";\nimport BigNumber from \"bignumber.js\";\nimport { Pool, Erc20 } from \"../../config/abi/types\";\nimport erc20Abi from \"../../config/abi/erc20.json\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport { ethers } from \"ethers\";\nimport { Card } from \"../../styles/CardStyles\";\nimport RewardTokensRemaining from \"../../components/RewardTokensRemaining\";\n\nconst StyledGrid = styled(Grid)`\n @media (max-width: 758px) {\n flex-wrap: wrap;\n }\n`;\n\nexport const OwnerCard = styled(Card)`\n width: 100%;\n max-width: 500px;\n\n @media (max-width: 850px) {\n max-width: 100%;\n }\n`;\n\nexport type IUserPoolData = null | {\n allowance: string;\n inputTokenBalance: string;\n amount: string;\n nextHarvestUntil: string;\n pendingReward: string;\n apr: string;\n};\n\nconst PoolPage = ({\n handleConnectWalletModalOpen,\n}: {\n handleConnectWalletModalOpen: () => void;\n}) => {\n const { account, library } = useActiveWeb3React();\n const [pendingTxn, setPendingTxn] = useState(false);\n const [totalInputTokensStaked, setTotalInputTokensStaked] = useState(\"1\");\n const [userPoolData, setUserPoolData] = useState(null);\n const [ownerAddress, setOwnerAddress] = useState(STAKING_POOL_CONFIG.owner);\n\n const getTotalInputTokensStaked = useCallback(async () => {\n const poolContract = getPoolContract(STAKING_POOL_CONFIG.id, library);\n const inputTokensStaked = await poolContract.totalInputTokensStaked();\n setTotalInputTokensStaked(inputTokensStaked.toString());\n }, [library]);\n\n const getStakingPoolUserValues = useCallback(\n async (user: string) => {\n try {\n const poolContract = getPoolContract(\n STAKING_POOL_CONFIG.id,\n library\n ) as Pool;\n const erc20Contract = getERC20Contract(\n STAKING_POOL_CONFIG.inputToken.address,\n library\n );\n\n const allowance = await erc20Contract.allowance(\n user,\n STAKING_POOL_CONFIG.id\n );\n const inputTokenBalance = await erc20Contract.balanceOf(user);\n\n const { amount, nextHarvestUntil } = await poolContract.userInfo(user);\n const pendingReward = await poolContract.pendingReward(user, 0);\n const { expectedAPR } = await poolContract.rewardPool(\"0\");\n const owner = await poolContract.owner();\n\n const rewardTokenRateInAUD = STAKING_POOL_CONFIG.rewardToken.price;\n const inputTokenRateInAUD = STAKING_POOL_CONFIG.inputToken.price;\n\n const calculatedAPR = new BigNumber(expectedAPR.toString())\n .multipliedBy(rewardTokenRateInAUD)\n .dividedBy(inputTokenRateInAUD)\n .dividedBy(new BigNumber(10).pow(18))\n .multipliedBy(100)\n .toFixed();\n\n setUserPoolData({\n allowance: allowance.toString(),\n inputTokenBalance: inputTokenBalance.toString(),\n amount: amount.toString(),\n nextHarvestUntil: nextHarvestUntil.toString(),\n pendingReward: pendingReward.toString(),\n apr: calculatedAPR.toString(),\n });\n setOwnerAddress(owner);\n } catch (e) {\n console.error(\"Error in getStakingPoolUserValues: \", e);\n }\n },\n [library]\n );\n\n const handleApprove = async () => {\n if (!account || !userPoolData) return;\n setPendingTxn(() => true);\n try {\n const approvalAmount = INFINITE;\n const provider = new ethers.providers.Web3Provider(\n // @ts-ignore\n (window as WindowChain).ethereum\n );\n const signer = provider.getSigner();\n const inputTokenContract = new Contract(\n STAKING_POOL_CONFIG.inputToken.address,\n erc20Abi,\n signer\n ) as Erc20;\n const approvalTx = await inputTokenContract.approve(\n STAKING_POOL_CONFIG.id,\n approvalAmount\n );\n await approvalTx.wait();\n const allowanceAmount = await inputTokenContract.allowance(\n account,\n STAKING_POOL_CONFIG.id\n );\n setUserPoolData({\n ...userPoolData,\n allowance: allowanceAmount.toString(),\n });\n setPendingTxn(() => false);\n } catch (error) {\n setPendingTxn(() => false);\n console.error(\"Error in handleApprove: \", error);\n }\n };\n\n useEffect(() => {\n getTotalInputTokensStaked();\n if (account) {\n getStakingPoolUserValues(account);\n\n const interval = setInterval(async () => {\n await getTotalInputTokensStaked();\n await getStakingPoolUserValues(account);\n }, 30000);\n\n return () => clearInterval(interval);\n }\n }, [account, getStakingPoolUserValues, getTotalInputTokensStaked]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {account && account === ownerAddress && (\n <>\n \n \n {/**/}\n \n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default PoolPage;\n","import React from \"react\";\nimport { Container } from \"@mui/material\";\nimport styled from \"styled-components\";\nimport PoolPage from \"./PoolPage\";\n\nconst BlackContainer = styled.div`\n background-color: ${(props) => props.theme.palette.background.default};\n padding-bottom: 20px;\n`;\n\nconst StyledContainer = styled(Container)``;\n\nconst StakingPool = ({\n handleConnectWalletModalOpen,\n}: {\n handleConnectWalletModalOpen: () => void;\n}) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default StakingPool;\n","import React, { useEffect } from \"react\";\nimport { Router, Route, Switch } from \"react-router-dom\";\nimport history from \"./routerHistory\";\nimport Menu from \"./components/Menu\";\nimport StakingPool from \"./views/StakingPool\";\nimport { MAINNET_CHAINID } from \"./config\";\nimport getNodeUrl from \"./utils/getRpcUrl\";\nimport ConnectWalletModal from \"./components/ConnectWalletModal\";\nimport useAuth from \"./hooks/useAuth\";\n\nfunction App() {\n const [open, setOpen] = React.useState(false);\n const { login } = useAuth();\n\n const handleConnectWalletClose = () => {\n setOpen(() => false);\n };\n const handleConnectWalletOpen = () => {\n setOpen(() => true);\n };\n\n useEffect(() => {\n const checkNetwork = async () => {\n if (\n (window as WindowChain) &&\n (window as WindowChain).ethereum &&\n (window as WindowChain).ethereum?.networkVersion\n ) {\n if (\n (window as WindowChain).ethereum?.networkVersion !==\n MAINNET_CHAINID.toString()\n ) {\n try {\n // @ts-ignore\n await (window as WindowChain).ethereum?.request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: `0x${MAINNET_CHAINID.toString(16)}` }],\n });\n return true;\n } catch (switchError: any) {\n if (switchError.code === 4902) {\n const rpcUrl = getNodeUrl(MAINNET_CHAINID);\n // @ts-ignore\n await provider.request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainId: `0x${MAINNET_CHAINID.toString(16)}`,\n chainName: \"MATIC Mainnet\",\n nativeCurrency: {\n name: \"MATIC\",\n symbol: \"MATIC\",\n decimals: 18,\n },\n // @ts-ignore\n rpcUrls: rpcUrl,\n blockExplorerUrls: [\"https://polygonscan.io/\"],\n },\n ],\n });\n }\n return false;\n }\n }\n }\n };\n checkNetwork();\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import React from \"react\";\nimport { createWeb3ReactRoot, Web3ReactProvider } from \"@web3-react/core\";\nimport { Web3Provider } from \"@ethersproject/providers\";\n\nconst POLLING_INTERVAL = 12000;\n\nexport const getLibrary = (provider: any): Web3Provider => {\n const library = new Web3Provider(provider);\n library.pollingInterval = POLLING_INTERVAL;\n return library;\n};\n\nconst Web3ProviderNetwork = createWeb3ReactRoot(\"NETWORK\");\n\nconst Providers: React.FC = ({ children }) => {\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default Providers;\n","export default __webpack_public_path__ + \"static/media/KronaOne.97c7e647.ttf\";","export default __webpack_public_path__ + \"static/media/Anton.c407103b.ttf\";","export default __webpack_public_path__ + \"static/media/DancingScript.352941fa.ttf\";","import KronaOne from \"./KronaOne.ttf\";\nimport Anton from \"./Anton.ttf\";\nimport DancingScript from \"./DancingScript.ttf\";\nimport {createGlobalStyle} from \"styled-components\";\n\nconst ResetCSS = createGlobalStyle`\n @font-face {\n font-family: 'KronaOne';\n src: url(${KronaOne}) format(\"truetype\");\n font-weight: 400;\n font-style: normal;\n font-display: auto;\n }\n\n @font-face {\n font-family: 'Anton';\n src: url(${Anton}) format(\"truetype\");\n font-weight: 400;\n font-style: normal;\n font-display: auto;\n }\n\n @font-face {\n font-family: 'DancingScript';\n src: url(${DancingScript}) format(\"truetype\");\n font-weight: 400;\n font-style: normal;\n font-display: auto;\n }\n\n #root1, #root2 {\n font-family: \"Montserrat\", sans-serif;\n }\n\n /* Scrollbar */\n ::-webkit-scrollbar {\n width: 8px;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${(props) => props.theme.palette.primary.main};\n border-radius: 1px;\n }\n\n ::-webkit-scrollbar-track {\n box-shadow: inset 0 0 5px #000;\n border-radius: 1px;\n }\n`;\n\nexport default ResetCSS;\n","import { createTheme } from \"@mui/material\";\n\nconst theme = createTheme({\n palette: {\n mode: \"dark\",\n primary: {\n main: \"#EBCC5D\",\n },\n secondary: {\n main: \"#ffffff\",\n },\n error: {\n main: \"#eb645d\",\n },\n success: {\n main: \"#57ca81\",\n },\n background: {\n default: \"#000000\",\n paper: \"#0D0D0D\",\n },\n text: {\n primary: \"#EBCC5D\",\n secondary: \"#ffffff\",\n disabled: \"#9E9E9E\",\n },\n },\n shape: {\n borderRadius: 16,\n },\n});\n\nexport default theme;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport Providers from \"./Providers\";\nimport ResetCSS from \"./styles/ResetCSS\";\nimport { ThemeProvider } from \"styled-components\";\nimport theme from \"./styles/theme\";\n\ndeclare const window: any;\nif (\"ethereum\" in window) {\n (window && (window.ethereum as any)).autoRefreshOnNetworkChange = false;\n}\n\nReactDOM.render(\n \n \n \n \n \n \n \n ,\n document.getElementById(\"root1\") as HTMLElement\n);\n\nReactDOM.render(\n \n \n \n \n \n \n \n ,\n document.getElementById(\"root2\") as HTMLElement\n);\n"],"sourceRoot":""}