{"version":3,"sources":["types/index.ts","components/Button/styles.tsx","components/Button/index.tsx","components/ButtonGroup/styles.tsx","constants/languages.ts","translation/index.tsx","components/ButtonGroup/index.tsx","features/hooks.ts","features/states/theamState.ts","constants/endpoints.ts","constants/eth.ts","features/states/configState.ts","features/Theme.ts","features/StakeModal.ts","features/states/stakeModalState.ts","features/Config.ts","assets/img/modalBg.svg","assets/img/modalBgLigth.svg","components/Modal/index.tsx","components/Modal/styles.ts","config/index.ts","constants/tokens.ts","utilities/getToken.ts","utilities/convertWeiToTokens.ts","assets/img/wallets/metaMaskLogo.svg","utilities/convertTokensToWei.ts","utilities/truncateAddress.ts","utilities/noop-ts.ts","components/EllipseAddress/index.tsx","components/EllipseAddress/styles.ts","assets/img/wallets/fortmaticLogo.svg","assets/img/wallets/operaWalletLogo.svg","assets/img/wallets/walletConnectLogo.svg","assets/img/wallets/trustWalletLogo.svg","assets/img/wallets/coinbase.svg","clients/web3/types.ts","clients/web3/getWeb3NoAccount.ts","clients/web3/useWeb3.ts","constants/localStorageKeys.ts","clients/web3/connectors.ts","constants/contracts/errorReporter.ts","clients/web3/useEagerConnect.ts","clients/web3/useInactiveListener.ts","errors/VError.ts","errors/transactionErrors.ts","clients/web3/useAuth/switchNetwork.ts","clients/web3/useAuth/index.ts","clients/web3/Web3Wrapper/Web3ReactManager.tsx","clients/web3/Web3Wrapper/index.tsx","components/AuthModal/constants.ts","clients/web3/walletDetectionUtils.ts","assets/img/icons/medium.svg","components/AuthModal/AccountDetails/index.tsx","components/AuthModal/AccountDetails/styles.ts","components/AuthModal/WalletList/index.tsx","components/AuthModal/WalletList/styles.ts","components/AuthModal/index.tsx","context/AuthContext.tsx","components/Line/styles.tsx","components/Line/index.tsx","assets/img/icons/gitBookIcon.svg","assets/img/icons/arbitrumIcon.svg","components/Layout/Footer/components/socialMedia/index.tsx","components/Layout/Footer/components/socialMedia/styles.ts","components/Layout/Footer/index.tsx","components/Layout/Footer/styles.ts","assets/img/thrupennyLogo.svg","assets/img/thrupennyLogoLight.svg","assets/img/icons/walletIcon.svg","components/Layout/ConnectButton/index.tsx","components/Layout/ConnectButton/styles.ts","components/Layout/Toolbar/index.tsx","components/Layout/Toolbar/styles.ts","assets/img/icons/moonIcon.svg","assets/img/icons/sunIcon.svg","components/Switch/index.tsx","assets/img/icons/ethereumIcon.svg","clients/web3/useAuth/setUpNetwork.ts","components/Layout/SelectNetworkButton/index.tsx","components/Layout/SelectNetworkButton/styles.ts","components/Drawer/index.tsx","constants/functionKey.ts","components/Drawer/styles.ts","components/Layout/Navbar/index.tsx","components/Layout/Navbar/styles.ts","components/Layout/PageContainer/index.tsx","components/Layout/PageContainer/styles.ts","assets/img/bg.svg","assets/img/bgLight.svg","components/Layout/index.tsx","components/Layout/styles.ts","components/Icon/icons/info.tsx","components/Icon/icons/logoMobile.tsx","components/Icon/icons/close.tsx","components/Icon/icons/burger.tsx","components/Icon/icons/arrowRight.tsx","components/Icon/icons/tokens/tpy.tsx","clients/api/queryClient.ts","constants/allowanceAmountWei.ts","clients/api/mutations/approveToken/index.ts","utilities/getContractAddress.ts","clients/contracts/getters.ts","clients/contracts/hooks.ts","constants/routing.ts","constants/maxUint256.ts","clients/api/queries/getAllowance/setCachedTokenAllowanceToMax.ts","clients/api/mutations/approveToken/useApproveToken.ts","clients/api/mutations/stakeToken/index.ts","constants/pools.ts","clients/api/mutations/stakeToken/useStakeToken.ts","clients/api/mutations/withdrawToken/index.ts","clients/api/mutations/withdrawToken/useWithdrawToken.ts","clients/api/queries/getAddressTold/index.ts","clients/api/queries/getAddressTold/useGetAddressTold.ts","clients/api/queries/getAllowance/index.ts","clients/api/queries/getAllowance/useGetAllowance.ts","clients/api/queries/getBalanceOf/index.ts","clients/api/queries/getBalanceOf/useGetBalanceOf.ts","clients/api/queries/getPool/index.ts","clients/api/queries/getPool/useGetPoolInfo.ts","clients/api/queries/getTokenPrice/index.ts","clients/api/queries/getTokenPrice/useGetPriceOf.ts","clients/api/queries/getUserInfoPerPool/index.ts","clients/api/queries/getUserInfoPerPool/useGetUserInfoPerPool.ts","components/Card/index.tsx","components/Card/styles.ts","__mocks__/api/pools.ts","components/Pool/styles.ts","assets/img/icons/thrupennyIcon.svg","components/Pool/components/Pool/index.tsx","components/Pool/components/Pool/styles.ts","utilities/numberFormat.ts","assets/img/icons/successIcon.svg","components/Pool/components/PoolInfo/index.tsx","components/Pool/components/PoolInfo/styles.ts","components/Pool/index.tsx","assets/img/icons/linkIcon.svg","assets/img/icons/copyIcon.svg","components/StakeModal/index.tsx","components/StakeModal/styles.ts","pages/Stake/components/Pool/index.tsx","pages/Stake/components/Pool/styles.ts","pages/Stake/components/ReferralLink/index.tsx","pages/Stake/components/ReferralLink/styles.ts","pages/Stake/index.tsx","pages/Stake/styles.ts","theme/MuiThemeProvider/muiTheme.ts","theme/MuiThemeProvider/index.tsx","pages/App.tsx","index.tsx"],"names":["TPYChainId","NetworkState","Mode","styles","fullWidth","variant","small","theme","useTheme","getButton","refVariant","disabled","css","spacing","palette","text","primary","secondary","button","border","customText","main","medium","breakpoints","down","groupDisable","disable","dark","loadingIcon","label","link","Button","className","loading","children","otherProps","useStyles","type","Typography","component","color","height","width","PrimaryButton","props","SecondaryButton","TertiaryButton","getContainer","active","last","light","groupButtons","LANGUAGES","RESOURCES_LANGUAGES","en","translation","EnLocales","zh","ZhLocales","useTranslation","useI18NextTranslation","t","i18n","Trans","i18NextInstance","lang","localStorage","getItem","i18next","use","initReactI18next","init","resources","lng","fallbackLng","interpolation","escapeValue","format","value","locales","enUS","isDate","locale","formatDistanceToNowStrict","formatDate","loadNamespaces","params","values","ButtonGroup","buttonLabels","activeButtonIndex","onButtonClick","Box","map","item","index","Tooltip","title","placement","arrow","sx","display","length","onClick","useAppDispatch","useDispatch","useAppSelector","useSelector","initialThemeState","mode","LIGHT","DARK","API_ENDPOINT_URLS","MAINNET","TESTNET","ARBITRUM_ONE","ARBITRUM_GOERLI","TX_URLS","RPC_URLS","ETH_SCAN_URLS","ETH_SCAN_NAMES","ETH_SCAN_SYMBOl","initialConfigState","chainId","parseInt","ETH","isOnTestnet","rpcUrl","sample","apiUrl","ethScanUrl","fortmaticApiKey","process","network","ARBITRUM","themeSlice","createSlice","name","initialState","reducers","changeMode","state","action","payload","setItem","actions","getMode","stakeModalSlice","isOpen","percent","date","poolId","userStaked","startDate","toggleModal","stakeDisabled","changeType","reset","undefined","getStakeModal","stakeModal","configSlice","changeConfig","getConfig","config","Modal","handleClose","noHorizontalPadding","otherModalProps","s","hasTitleComponent","box","shape","drawerWidthTablet","modal","titleWrapper","titleComponent","iconSize","xLarge","typography","h4","fontWeight","closeIcon","contentWrapper","modalBackground","modalLigth","useModalStyles","Boolean","open","onClose","closeAfterTransition","Fade","in","disableRipple","htmlColor","customBackground","icon","TOKENS","tpy","id","symbol","decimals","address","TOKEN_ADDRESSES","coingeckoId","getToken","convertWeiToTokens","_path","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_path23","_path24","_path25","_path26","_path27","_path28","_path29","valueWei","tokenId","tokenDecimals","dividedBy","BigNumber","pow","toFixed","convertTokensToWei","multipliedBy","truncateAddress","slice","EllipseAddress","ellipseBreakpoint","getAddress","getFormattedAddress","truncatedAddress","_extends","Object","assign","bind","target","i","arguments","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgMetaMaskLogo","_ref","svgRef","titleId","viewBox","fill","xmlns","ref","d","stroke","strokeLinecap","strokeLinejoin","ForwardRef","SvgFortmaticLogo","fillRule","clipRule","_linearGradient","_linearGradient2","_g","SvgOperaWalletLogo","xmlnsXlink","gradientTransform","gradientUnits","x2","offset","stopColor","transform","_rect","_defs","SvgWalletConnectLogo","patternContentUnits","xlinkHref","SvgTrustWalletLogo","SvgCoinbase","Connector","getWeb3NoAccount","rpcUrls","httpProvider","Web3","providers","HttpProvider","timeout","useWeb3","library","useWeb3React","refEth","useRef","useState","web3","setWeb3","useEffect","current","LS_KEY_CONNECTED_CONNECTOR","ComptrollerErrorReporterError","ComptrollerErrorReporterFailureInfo","TokenErrorReporterError","TokenErrorReporterFailureInfo","VaiControllerErrorReporterError","VaiControllerErrorReporterFailureInfo","VaiVaultErrorReporterError","VaiVaultErrorReporterInfo","XvsVaultProxyErrorReporterError","XvsVaultProxyErrorReporterInfo","injectedConnector","InjectedConnector","supportedChainIds","walletConnectConnector","WalletConnectConnector","rpc","bridge","qrcode","coinbaseWalletConnector","WalletLinkConnector","url","appName","infinityWalletConnector","InfinityWalletConnector","fortmaticConnector","FortmaticConnector","apiKey","Number","connectorsByName","MetaMask","WalletConnect","CoinbaseWallet","Fortmatic","TrustWallet","OperaWallet","InfinityWallet","useEagerConnect","useWeb3Account","activate","STORYBOOK","tried","setTried","window","isAuthorized","useInactiveListener","suppress","error","ethereum","handleChainChanged","catch","err","console","handleAccountsChanged","accounts","on","removeListener","VError","code","data","Error","checkForTokenTransactionError","receipt","errorEnum","infoEnum","events","Failure","returnValues","info","checkForTransactionError","switchNetwork","request","method","toString","message","isRunningInInfinityWalletApp","isInfinityWallet","useAuth","deactivate","account","lsConnectedConnector","includes","getConnectedConnector","connectedConnector","setConnectedConnector","login","useCallback","connectorID","openInfinityWallet","location","href","connector","UnsupportedChainIdError","log","UserRejectedRequestErrorInjected","UserRejectedRequestErrorWalletConnect","walletConnectProvider","NoEthereumProviderError","loginShowToast","logOut","close","removeItem","accountAddress","Web3ReactManager","context","networkError","triedEager","activatingConnector","setActivatingConnector","Web3Wrapper","getLibrary","provider","WALLETS","Logo","MetaMaskLogo","TrustWalletLogo","WalletConnectLogo","CoinbaseWalletLogo","FortmaticLogo","isOpera","isRunningInOperaBrowser","unshift","OperaWalletLogo","mainnetOnly","AccountDetails","onLogOut","container","infoContainer","walletLogo","infoRightColumn","walletName","accountAddressContainer","copyButton","copyButtonIcon","bscScanLinkContainer","find","wallet","WalletLogo","WalletList","onLogin","walletList","subtitle","getListItem","isActionable","interactive","hover","comingSoonText","footer","footerLink","filter","justifyContent","AuthModal","AuthContext","React","createContext","noop","openAuthModal","closeAuthModal","AuthProvider","isAuthModalOpen","setIsAuthModalOpen","Provider","line","Line","SvgMedium","SvgGitBookIcon","role","SocialMedia","socialMedia","social","icons","FooterUi","footerLinks","footerInfo","footerThrupenny","pageLinks","Container","maxWidth","gap","alignItems","ConnectButtonUi","src","WalletIcon","srcSet","alt","ConnectButton","useContext","Toolbar","MaterialUISwitch","styled","Switch","padding","margin","success50","content","fontSize","position","left","top","backgroundRepeat","backgroundPosition","backgroundImage","SunIcon","opacity","background","switchMode","backgroundColor","MoonIcon","borderRadius","right","MaterialUILanguageSwitch","switchLang","iconBackground","activeText","SwitchComponent","change","FormGroup","FormControlLabel","control","m","onChange","checked","SwitchLanguageComponent","SvgArbitrumIcon","SvgEthereumIcon","fillOpacity","setUpNetwork","chainName","blockExplorerUrls","nativeCurrency","SelectSmall","dispatch","select","card","handleChange","event","FormControl","minWidth","size","Select","MenuItem","FunctionKey","DrawerComponent","setRight","drawer","SelectNetworkButton","switches","drawerText","products","toggleDrawer","Drawer","anchor","PaperProps","backdropFilter","ThrupennyLogoLight","ThrupennyLogo","marginTop","changeLanguage","flexDirection","NavbarUi","history","useHistory","useLocation","appbar","navBar","connectPart","toolbar","listItem","navItems","linkHref","activeLink","listItemIcon","listItemText","logo","logoClosed","mobileMenuBox","mobileLogo","burger","mobileMenu","default","mobileListItem","mobileListItemText","mobileArrow","mobileLabel","flexRow","doublePadding","actionButton","mobileConnectButton","claimXvsRewardButton","language","setLanguage","pathname","split","then","e","AppBar","textDecoration","flexGrow","xs","md","lg","marginLeft","page","push","handleNavigateToPage","PageContainer","footerHeight","drawerWidthDesktop","Layout","DarkBg","Light","layout","annoucement","annoucementModal","modalContainer","modalTitle","modalMessage","setIsOpen","Fragment","Navbar","flex","Footer","SvgInfo","strokeWidth","x","y","rx","SvgLogoMobile","gradientId","x1","y1","y2","SvgClose","SvgBurger","SvgArrowRight","SvgAave","queryClient","QueryClient","defaultOptions","queries","staleTime","ALLOWANCE_AMOUNT_WEI","minus","approveToken","tokenContract","spenderAddress","allowance","methods","approve","send","from","getContractAddress","contractId","mainContractAddresses","getContract","abi","web3Instance","eth","Contract","useTokenContract","useMemo","tokenAddress","tpyAbi","getTokenContract","useStakeContract","contractAddress","stakeAbi","getStakeContract","Subdirectory","MAX_UINT256","setCachedTokenAllowanceToMax","queryKey","GET_TOKEN_ALLOWANCE","setQueryData","allowanceWei","useApproveToken","options","useMutation","APPROVE_TOKEN","onSuccess","stakeToken","stakingContract","referralId","amount","stake","resp","POOLS","useStakeToken","STAKE_TOKEN","invalidateQueries","GET_USER_INFO","join","withdrawToken","unstake","useWithdrawToken","WITHDRAW_TOKEN","getAddressTold","stakeContract","addressToId","resP","userId","useGetAddressTold","useQuery","GET_USER_ID","getAllowance","res","useGetAllowance","getBalanceOf","balanceOf","balanceWei","useGetBalanceOf","GET_BALANCE_OF","getPoolInfo","stakeContractOtherNetwork","poolIds","locked","allTotalStakes","lockedOtherNetwork","allTotalStakesOtherNetwork","poolInfo","resPOtherNetwork","lockPeriod","totalStakes","useGetPoolInfo","GET_POOL_INFO","getPriceOf","CoinGeckoClient","CoinGecko","simple","price","ids","vs_currencies","thrupenny","usd","useGetPriceOf","GET_TOKEN_PRICE","getUserInfo","stakes","reward","resUStakes","resURewards","stakeOfAuto","checkpoint","endDate","releaseCheckpoint","userInfo","useGetUserInfoPerPool","routeSubdirectories","STAKE","referral","REFERRAL","dashboard","DASHBOARD","routes","reduce","obj","path","subdirectories","MaterialUICard","Card","CardComponent","pools","isEmptyPool","pool","emptyPool","buttons","poolContainer","PoolIcon","poolBorder","earn","Icon","numberFormat","_circle","Intl","NumberFormat","PoolInfo","term","accountStake","autoCompoundingPercent","sometimes","autoCompounding","infoText","lockTerm","poolHeaderMobile","poolData","columnsTitle","Date","enterTouchDelay","toLocaleString","month","getDate","getFullYear","PoolUI","ConnectedPool","scrollTo","Pool","openModal","SvgSuccessIcon","cx","cy","r","ry","filterUnits","colorInterpolationFilters","floodOpacity","result","in2","stdDeviation","SvgLinkIcon","strokeOpacity","StakeModal","lockDay","balances","maxAmount","balance","input","allDone","reviewDetails","reviewDetailsText","startTerm","setBalance","setAmount","txHash","setTxHash","setDate","contractApproveToken","mutate","approveTokenLoading","isLoading","stakeTPYToken","mutateAsync","stakingLoading","withdrawTPYToken","withdrawLoading","getTokenAllowanceData","enabled","isTokenApproved","isGreaterThan","availableTokensData","status","balanceValue","stakeTpy","transactionHash","Input","isNaN","parseFloat","inputProps","pattern","disableUnderline","placeholder","align","TPYIcon","PoolHeader","poolHeader","poolTitle","columns","columnsPoolTitle","SvgCopyIcon","ReferralLink","referralContainer","setOpen","Snackbar","autoHideDuration","anchorOrigin","vertical","horizontal","cursor","navigator","clipboard","writeText","StakeUi","useParams","scrollToPools","referralBodyText","sectionTitle","sectionBodyTexts","sectionBodyValues","sectionBodyRewards","sectionTitleText","sectionBody","cards","cardsWrapper","activePools","setActivePools","engagedPools","setEngagedPools","poolsInfo","referrerId","activePool","engagedPool","forEach","total","accountBalance","handleScroll","scrollIntoView","behavior","isEmpty","Stake","FONTS","PALETTE","paper","warning","success","error50","tan","delimiter","PALETTE_LIGHT","BREAKPOINTS","sm","xl","xxl","SHAPE","verySmall","SPACING","large","xxLarge","mainTheme","createTheme","fontFamily","h1","lineHeight","span","components","MuiThemeProvider","ThemeProvider","CssBaseline","App","lastMode","client","exact","to","FORMAT","decimalSeparator","groupSize","groupSeparator","store","configureStore","reducer","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.78c749a2.chunk.js","sourcesContent":["import BigNumber from 'bignumber.js';\r\n\r\nimport { TOKENS } from 'constants/tokens';\r\n\r\nexport enum TPYChainId {\r\n 'MAINNET' = 1,\r\n 'TESTNET' = 5,\r\n 'ARBITRUM_ONE' = 42161,\r\n 'ARBITRUM_GOERLI'= 421613,\r\n}\r\n\r\nexport enum NetworkState {\r\n ETH = \"1\",\r\n ARBITRUM = \"42161\",\r\n}\r\nexport enum Mode {\r\n LIGHT = 'light',\r\n DARK = 'dark',\r\n}\r\n\r\n\r\nexport type TokenId = keyof typeof TOKENS;\r\n\r\nexport interface Asset {\r\n id: TokenId;\r\n tokenPrice: BigNumber;\r\n symbol: string;\r\n borrowBalance: BigNumber;\r\n decimals: number;\r\n walletBalance: BigNumber;\r\n img: string;\r\n borrowCaps: BigNumber;\r\n supplyApy: BigNumber;\r\n collateralFactor: BigNumber;\r\n collateral: boolean;\r\n supplyBalance: BigNumber;\r\n key: number;\r\n percentOfLimit: string;\r\n tokenAddress: string;\r\n}\r\n\r\nexport interface Token {\r\n id: TokenId;\r\n symbol: Uppercase;\r\n decimals: number;\r\n address: string | '';\r\n asset: string;\r\n coingeckoId: string;\r\n}\r\n\r\nexport interface PoolType {\r\n \"poolId\": number;\r\n \"percent\": number;\r\n \"term\": number;\r\n \"startDate\"?: string;\r\n \"endDate\"?: string;\r\n \"total\": string;\r\n \"accountBalance\": string;\r\n \"disabled\": boolean;\r\n}\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Variant } from './types';\r\n\r\nexport const styles = ({\r\n fullWidth,\r\n variant,\r\n small,\r\n}: {\r\n fullWidth: boolean;\r\n variant: Variant;\r\n small: boolean;\r\n}) => {\r\n const theme = useTheme();\r\n\r\n const getButtonVariantCss = (refVariant: Variant) => {\r\n if (refVariant === 'secondary') {\r\n return css`\r\n background: ${theme.palette.button.border};\r\n border: 2px solid transparent;\r\n color: ${theme.palette.customText.secondary};\r\n :disabled {\r\n opacity: 0.24;\r\n }\r\n\r\n :hover:not(:disabled) {\r\n background-color: ${theme.palette.button.main};\r\n border-color: ${theme.palette.button.main};\r\n }\r\n\r\n :active:not(:disabled) {\r\n background-color: ${theme.palette.button.medium};\r\n border-color: ${theme.palette.button.medium};\r\n }\r\n ${theme.breakpoints.down('md')} {\r\n border-radius: 8px;\r\n padding: ${small ? theme.spacing(2.25, 3) : theme.spacing(2.25, 6)};\r\n }\r\n `;\r\n }\r\n\r\n if (refVariant === 'tertiary') {\r\n return css`\r\n background-color: ${theme.palette.button.secondary};\r\n border: none;\r\n border-radius: 8px;\r\n\r\n :disabled {\r\n background-color: ${theme.palette.button.groupDisable};\r\n color: ${theme.palette.text.primary};\r\n }\r\n\r\n :hover:not(:disabled) {\r\n background-color: ${theme.palette.button.groupDisable} !important;\r\n }\r\n\r\n :active:not(:disabled) {\r\n background-color: ${theme.palette.button.groupDisable};\r\n }\r\n ${theme.breakpoints.down('md')} {\r\n border-radius: 8px;\r\n padding: ${small ? theme.spacing(2.25, 3) : theme.spacing(2.25, 6)};\r\n }\r\n `;\r\n }\r\n\r\n // Primary variant\r\n return css`\r\n background: ${theme.palette.button.main};\r\n border: none;\r\n align-items: center;\r\n :disabled {\r\n background: ${theme.palette.button.disable};\r\n }\r\n color: ${theme.palette.customText.primary};\r\n :hover:not(:disabled) {\r\n background-color: ${theme.palette.button.medium};\r\n border-color: ${theme.palette.button.medium};\r\n }\r\n\r\n :active:not(:disabled) {\r\n background-color: ${theme.palette.button.dark};\r\n border-color: ${theme.palette.button.dark};\r\n }\r\n ${theme.breakpoints.down('md')} {\r\n border-radius: 8px;\r\n padding: ${small ? theme.spacing(2.25, 3) : theme.spacing(2.25, 2)};\r\n }\r\n `;\r\n };\r\n\r\n return {\r\n getButton: ({ disabled }: { disabled: boolean }) => css`\r\n border-radius: 8px;\r\n min-width: ${small ? '60px' : '114px'};\r\n padding: ${small ? theme.spacing(2.25, 3) : theme.spacing(2.5, 3.5)};\r\n box-shadow: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: ${theme.palette.text.primary};\r\n transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\r\n border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\r\n color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\r\n\r\n :disabled {\r\n color: ${theme.palette.text.secondary};\r\n }\r\n\r\n ${!disabled &&\r\n css`\r\n cursor: pointer;\r\n `}\r\n\r\n ${fullWidth &&\r\n css`\r\n width: 100%;\r\n `};\r\n\r\n ${getButtonVariantCss(variant)};\r\n \r\n \r\n `,\r\n loadingIcon: css`\r\n margin-right: ${theme.spacing(2)};\r\n margin-top: -3px;\r\n margin-bottom: -3px;\r\n `,\r\n label: css`\r\n display: inline-flex;\r\n align-items: center;\r\n font-weight: 500;\r\n color: inherit;\r\n gap: 10px;\r\n font-size: 14px;\r\n ${theme.breakpoints.down('md')} {\r\n gap: 5px;\r\n }\r\n `,\r\n link: css`\r\n font-weight: 600;\r\n `,\r\n };\r\n};\r\n\r\nexport default styles;\r\n","/** @jsxImportSource @emotion/react */\r\nimport Typography from '@mui/material/Typography';\r\nimport React from 'react';\r\n\r\nimport ReactLoading from 'react-loading';\r\n\r\nimport useStyles from './styles';\r\nimport { Variant } from './types';\r\nimport {useTheme} from \"@mui/material\";\r\n\r\nexport interface BaseButtonProps {\r\n fullWidth?: boolean;\r\n small?: boolean;\r\n variant?: Variant;\r\n}\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes,\r\n BaseButtonProps {\r\n loading?: boolean;\r\n}\r\n\r\nexport const Button = ({\r\n className,\r\n loading,\r\n disabled = false,\r\n fullWidth = false,\r\n small = false,\r\n variant = 'primary',\r\n children,\r\n ...otherProps\r\n}: ButtonProps) => {\r\n const styles = useStyles({ fullWidth, variant, small });\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n \r\n {loading && } {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport const PrimaryButton = (props: ButtonProps) => \r\n \r\n \r\n :\r\n {\r\n onButtonClick(index)\r\n }}\r\n css={styles.getButton({\r\n active: index === activeButtonIndex,\r\n last: index === buttonLabels.length - 1,\r\n fullWidth,\r\n })}\r\n disabled={index === activeButtonIndex}\r\n >\r\n {item.label}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n","import { useDispatch, useSelector } from 'react-redux';\r\nimport type { TypedUseSelectorHook } from 'react-redux';\r\nimport type { RootState, AppDispatch } from '../index';\r\n\r\nexport const useAppDispatch: () => AppDispatch = useDispatch;\r\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\r\n","import { Mode } from '../../types';\r\n\r\ninterface ThemeState {\r\n mode: Mode.LIGHT | Mode.DARK;\r\n}\r\n\r\nexport const initialThemeState: ThemeState = {\r\n mode: localStorage.getItem('mode') === Mode.LIGHT ? Mode.LIGHT : Mode.DARK,\r\n};\r\n","\r\nimport { TPYChainId } from 'types';\r\n\r\nexport const API_ENDPOINT_URLS = {\r\n [TPYChainId.MAINNET]: 'https://goerli.etherscan.io/',\r\n [TPYChainId.TESTNET]: 'https://goerli-rollup.arbitrum.io/rpc',\r\n [TPYChainId.ARBITRUM_ONE]: 'https://arb1.arbitrum.io/rpc',\r\n [TPYChainId.ARBITRUM_GOERLI]: 'https://goerli-rollup.arbitrum.io/rpc'\r\n};\r\nexport const TX_URLS = {\r\n [TPYChainId.MAINNET]: 'https://etherscan.io/',\r\n [TPYChainId.TESTNET]: 'https://goerli.etherscan.io/',\r\n [TPYChainId.ARBITRUM_ONE]: 'https://arbiscan.io/',\r\n [TPYChainId.ARBITRUM_GOERLI]: 'https://goerli-rollup-explorer.arbitrum.io/'\r\n\r\n};\r\nexport const RPC_URLS: {\r\n [key: string]: string[];\r\n} = {\r\n [TPYChainId.MAINNET]: ['https://eth-mainnet.g.alchemy.com/v2/gU9NwU6R2leMp9THFmEJzPnAE2ic9mI3'],\r\n [TPYChainId.TESTNET]: ['https://goerli.blockpi.network/v1/rpc/public'],\r\n [TPYChainId.ARBITRUM_ONE]: ['https://arb-mainnet.g.alchemy.com/v2/R16sXNr7a779Ji5fZTqkkqA-0gjMS0O5'],\r\n [TPYChainId.ARBITRUM_GOERLI]:['https://endpoints.omniatech.io/v1/arbitrum/goerli/public']\r\n\r\n};\r\n","import { TPYChainId } from 'types';\r\n\r\nexport const ETH_SCAN_URLS = {\r\n [TPYChainId.MAINNET]: 'https://etherscan.io/',\r\n [TPYChainId.TESTNET]: 'https://goerli-rollup.arbitrum.io/rpc',\r\n [TPYChainId.ARBITRUM_ONE] :'https://arb1.arbitrum.io/rpc',\r\n [TPYChainId.ARBITRUM_GOERLI]: 'https://goerli-rollup-explorer.arbitrum.io'\r\n};\r\nexport const ETH_SCAN_NAMES = {\r\n [TPYChainId.MAINNET]: 'Ethereum Mainnet',\r\n [TPYChainId.TESTNET]: 'Goerli test Network',\r\n [TPYChainId.ARBITRUM_ONE] :'Arbitrum One',\r\n [TPYChainId.ARBITRUM_GOERLI]: 'Arbitrum Goerli'\r\n};\r\nexport const ETH_SCAN_SYMBOl = {\r\n [TPYChainId.MAINNET]: 'ETH',\r\n [TPYChainId.TESTNET]: 'ETH',\r\n [TPYChainId.ARBITRUM_ONE] :'AGOR',\r\n [TPYChainId.ARBITRUM_GOERLI]: 'AGOR'\r\n};\r\n","import {NetworkState, TPYChainId} from \"../../types\";\r\nimport sample from \"lodash/sample\";\r\nimport {API_ENDPOINT_URLS, RPC_URLS} from \"../../constants/endpoints\";\r\nimport {ETH_SCAN_URLS} from \"../../constants/eth\";\r\n\r\nexport interface ConfigState {\r\n chainId: TPYChainId;\r\n isOnTestnet: boolean;\r\n rpcUrl: string;\r\n apiUrl: string;\r\n ethScanUrl: string;\r\n fortmaticApiKey: string;\r\n network: NetworkState.ETH | NetworkState.ARBITRUM;\r\n\r\n}\r\n\r\nexport const initialConfigState: ConfigState = {\r\n chainId: parseInt(localStorage.getItem('network') || NetworkState.ETH) as TPYChainId,\r\n isOnTestnet: !!(process.env.REACT_APP_IS_TESTNET),\r\n rpcUrl: sample(RPC_URLS[parseInt(localStorage.getItem('network') || NetworkState.ETH)]) as string,\r\n apiUrl: API_ENDPOINT_URLS[parseInt(localStorage.getItem('network') || NetworkState.ETH) as TPYChainId],\r\n ethScanUrl: ETH_SCAN_URLS[parseInt(localStorage.getItem('network') || NetworkState.ETH) as TPYChainId],\r\n fortmaticApiKey: process.env.REACT_APP_FORTMATIC_API_KEY || ' ',\r\n network: localStorage.getItem('network') === NetworkState.ARBITRUM\r\n ? NetworkState.ARBITRUM\r\n : NetworkState.ETH,\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport type { PayloadAction } from '@reduxjs/toolkit';\r\nimport { initialThemeState } from './states';\r\n// eslint-disable-next-line import/no-cycle\r\nimport { RootState } from '../index';\r\nimport { Mode } from '../types';\r\n\r\nexport const themeSlice = createSlice({\r\n name: 'theme',\r\n initialState: initialThemeState,\r\n reducers: {\r\n changeMode: (state, action: PayloadAction) => {\r\n state.mode = action.payload === Mode.LIGHT ? Mode.LIGHT : Mode.DARK;\r\n localStorage.setItem('mode', action.payload);\r\n },\r\n },\r\n});\r\n\r\nexport const { changeMode } = themeSlice.actions;\r\n\r\nexport const getMode = (state: RootState) => state.theme.mode;\r\n\r\nexport default themeSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport type { PayloadAction } from '@reduxjs/toolkit';\r\nimport {initialStakeModalState, StakeModalState} from './states';\r\nimport { RootState } from '../index';\r\n\r\nexport const stakeModalSlice = createSlice({\r\n name: 'stakeModal',\r\n initialState: initialStakeModalState,\r\n reducers: {\r\n toggleModal: (state, action: PayloadAction) => {\r\n state.isOpen = action.payload.isOpen;\r\n state.percent = action.payload.percent;\r\n state.date = action.payload.date;\r\n state.type = action.payload.type;\r\n state.poolId = action.payload.poolId;\r\n state.userStaked = action.payload.userStaked;\r\n state.startDate = action.payload.startDate;\r\n state.stakeDisabled = action.payload.stakeDisabled;\r\n },\r\n changeType: (state, action: PayloadAction<{ type: string }>) => {\r\n state.type = action.payload.type;\r\n },\r\n reset: (state) => {\r\n state.isOpen = false;\r\n state.percent = 0;\r\n state.date = 0;\r\n state.type = '';\r\n state.poolId = 0;\r\n state.userStaked = '0';\r\n state.startDate = undefined;\r\n state.stakeDisabled = false;\r\n }\r\n },\r\n});\r\n\r\nexport const { reset, toggleModal, changeType } = stakeModalSlice.actions;\r\n\r\nexport const getStakeModal = (state: RootState) => state.stakeModal;\r\n\r\nexport default stakeModalSlice.reducer;\r\n","export interface StakeModalState {\r\n isOpen: boolean;\r\n percent: number;\r\n date: number;\r\n type: string;\r\n poolId: number;\r\n userStaked?: string;\r\n startDate?: string;\r\n stakeDisabled?: boolean;\r\n}\r\n\r\nexport const initialStakeModalState: StakeModalState = {\r\n isOpen: false,\r\n percent: 0,\r\n date: 0,\r\n type: '',\r\n poolId: 0,\r\n userStaked: '0',\r\n startDate: '0',\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport type { PayloadAction } from '@reduxjs/toolkit';\r\nimport {initialConfigState} from './states';\r\nimport { RootState } from '../index';\r\nimport {API_ENDPOINT_URLS, RPC_URLS} from \"../constants/endpoints\";\r\nimport {NetworkState, TPYChainId} from \"../types\";\r\nimport {ETH_SCAN_URLS} from \"../constants/eth\";\r\nimport sample from \"lodash/sample\";\r\n\r\nexport const configSlice = createSlice({\r\n name: 'config',\r\n initialState: initialConfigState,\r\n reducers: {\r\n changeConfig: (state, action: PayloadAction<{ network: NetworkState }>) => {\r\n state.network = action.payload.network;\r\n state.chainId = parseInt(action.payload.network);\r\n state.rpcUrl = sample(RPC_URLS[parseInt(localStorage.getItem('network') || NetworkState.ETH)]) as string;\r\n state.apiUrl = API_ENDPOINT_URLS[parseInt(localStorage.getItem('network') || NetworkState.ETH) as TPYChainId];\r\n state.ethScanUrl = ETH_SCAN_URLS[parseInt(localStorage.getItem('network') || NetworkState.ETH) as TPYChainId];\r\n }\r\n },\r\n});\r\n\r\nexport const { changeConfig } = configSlice.actions;\r\n\r\nexport const getConfig = (state: RootState) => state.config;\r\n\r\nexport default configSlice.reducer;\r\n","export default __webpack_public_path__ + \"static/media/modalBg.2bade21b.svg\";","export default __webpack_public_path__ + \"static/media/modalBgLigth.19d3754b.svg\";","/** @jsxImportSource @emotion/react */\r\nimport { Button, Modal as MUIModal, ModalProps as MUIModalProps, useTheme } from '@mui/material';\r\nimport Fade from '@mui/material/Fade';\r\nimport React, { ReactElement } from 'react';\r\nimport { useModalStyles } from './styles';\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\n\r\nexport interface ModalProps extends Omit {\r\n className?: string;\r\n isOpen: boolean;\r\n handleClose: () => void;\r\n title?: string | ReactElement | ReactElement[];\r\n noHorizontalPadding?: boolean;\r\n}\r\n\r\nexport const Modal: React.FC = ({\r\n className,\r\n children,\r\n handleClose,\r\n isOpen,\r\n title,\r\n noHorizontalPadding,\r\n ...otherModalProps\r\n}) => {\r\n const s = useModalStyles({ hasTitleComponent: Boolean(title), noHorizontalPadding });\r\n const theme = useTheme();\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
{title}
\r\n \r\n
\r\n
{children}
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\nimport {useSelector} from \"react-redux\";\r\nimport {getMode} from \"../../features\";\r\nimport modal from \"../../assets/img/modalBg.svg\";\r\nimport modalLigth from \"../../assets/img/modalBgLigth.svg\";\r\n\r\nexport const useModalStyles = ({\r\n hasTitleComponent,\r\n noHorizontalPadding,\r\n}: {\r\n hasTitleComponent: boolean;\r\n noHorizontalPadding?: boolean;\r\n}) => {\r\n const theme = useTheme();\r\n const mode = useSelector(getMode);\r\n return {\r\n box: css`\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50% , -50%);\r\n ${theme.breakpoints.down('lg')} {\r\n left: calc(50% + ${theme.shape.drawerWidthTablet});\r\n transform: translate(calc(-50% - (${theme.shape.drawerWidthTablet}) / 2), -50%);\r\n }\r\n width: 100%;\r\n max-width: ${theme.spacing(136)};\r\n border-radius: ${theme.spacing(3)};\r\n background: ${theme.palette.modal.border};\r\n border: 4px solid transparent;\r\n overflow: auto;\r\n max-height: calc(100% - ${theme.spacing(8)});\r\n ${theme.breakpoints.down('md')} {\r\n border: 2px solid transparent;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n max-width: calc(100% - 32px);\r\n }\r\n `,\r\n titleWrapper: css`\r\n padding-left: ${theme.spacing(4)};\r\n padding-right: ${theme.spacing(4)};\r\n padding-top: ${theme.spacing(4)};\r\n padding-bottom: ${hasTitleComponent ? theme.spacing(6) : 0};\r\n position: sticky;\r\n top: 0;\r\n z-index: 10;\r\n background-color: transparent;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n ${theme.breakpoints.down('md')} {\r\n padding-left: ${theme.spacing(4)};\r\n padding-right: ${theme.spacing(4)};\r\n padding-top: ${theme.spacing(4)};\r\n }\r\n `,\r\n titleComponent: css`\r\n align-self: center;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n min-height: ${theme.shape.iconSize.xLarge}px;\r\n padding-left: ${theme.shape.iconSize.xLarge}px;\r\n padding-right: ${theme.shape.iconSize.xLarge}px;\r\n font-size: 28px;\r\n font-weight: ${theme.typography.h4.fontWeight};\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 18px;\r\n }\r\n `,\r\n closeIcon: css`\r\n right: ${theme.spacing(4)};\r\n top: ${theme.spacing(4)};\r\n position: absolute;\r\n height: ${theme.shape.iconSize.xLarge}px;\r\n width: ${theme.shape.iconSize.xLarge}px;\r\n margin-left: auto;\r\n min-width: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n\r\n :hover {\r\n background-color: transparent;\r\n }\r\n `,\r\n contentWrapper: css`\r\n padding-bottom: ${theme.spacing(8)};\r\n padding-left: ${noHorizontalPadding ? 0 : theme.spacing(10)};\r\n padding-right: ${noHorizontalPadding ? 0 : theme.spacing(10)};\r\n ${theme.breakpoints.down('md')} {\r\n padding-bottom: ${theme.spacing(4)};\r\n padding-left: ${noHorizontalPadding ? 0 : theme.spacing(4)};\r\n padding-right: ${noHorizontalPadding ? 0 : theme.spacing(4)};\r\n }\r\n `,\r\n modalBackground: css`\r\n background: ${mode === \"dark\" ? `url(${modal})` : `url(${modalLigth})`} no-repeat;\r\n `,\r\n };\r\n};\r\n","import sample from 'lodash/sample';\r\nimport { TPYChainId } from 'types';\r\n\r\nimport { ETH_SCAN_URLS } from 'constants/eth';\r\nimport { API_ENDPOINT_URLS, RPC_URLS } from 'constants/endpoints';\r\n\r\nexport interface Config {\r\n chainId: TPYChainId;\r\n isOnTestnet: boolean;\r\n rpcUrl: string;\r\n apiUrl: string;\r\n ethScanUrl: string;\r\n fortmaticApiKey: string;\r\n}\r\n\r\nconst chainId: TPYChainId = parseInt(localStorage.getItem('network') || process.env.REACT_APP_CHAIN_ID || \"1\", 10) as TPYChainId;\r\n\r\n\r\nconst isOnTestnet = chainId === TPYChainId.MAINNET;\r\nconst rpcUrl = sample(RPC_URLS[chainId]) as string;\r\nconst apiUrl = API_ENDPOINT_URLS[chainId];\r\n\r\nconst ethScanUrl = ETH_SCAN_URLS[chainId];\r\n\r\nconst fortmaticApiKey = process.env.REACT_APP_FORTMATIC_API_KEY || ' ';\r\n\r\nconst config: Config = {\r\n chainId,\r\n isOnTestnet,\r\n rpcUrl,\r\n apiUrl,\r\n ethScanUrl,\r\n fortmaticApiKey,\r\n};\r\n\r\nexport default config;\r\n","import config from 'config';\r\n\r\nimport TOKEN_ADDRESSES from './contracts/addresses/tokens.json';\r\nimport {NetworkState} from \"../types\";\r\n\r\nexport const TOKENS = config.isOnTestnet\r\n ? {\r\n tpy: {\r\n [NetworkState.ARBITRUM]: {\r\n id: 'tpy',\r\n symbol: 'TPY',\r\n decimals: 8,\r\n address: TOKEN_ADDRESSES.tpy[\"arbitrum\"][97],\r\n coingeckoId: 'thrupenny'\r\n },\r\n [NetworkState.ETH]: {\r\n id: 'tpy',\r\n symbol: 'TPY',\r\n decimals: 8,\r\n address: TOKEN_ADDRESSES.tpy[\"etherium\"][97],\r\n coingeckoId: 'thrupenny'\r\n }\r\n },\r\n }\r\n : {\r\n tpy: {\r\n [NetworkState.ARBITRUM]: {\r\n id: 'tpy',\r\n symbol: 'TPY',\r\n decimals: 8,\r\n address: TOKEN_ADDRESSES.tpy[\"arbitrum\"][56],\r\n coingeckoId: 'thrupenny'\r\n },\r\n [NetworkState.ETH]: {\r\n id: 'tpy',\r\n symbol: 'TPY',\r\n decimals: 8,\r\n address: TOKEN_ADDRESSES.tpy[\"etherium\"][56],\r\n coingeckoId: 'thrupenny'\r\n },\r\n },\r\n };\r\n","import { Token, TokenId } from 'types';\r\nimport { NetworkState } from '../types';\r\nimport { TOKENS } from 'constants/tokens';\r\n\r\nexport const getToken = (id: TokenId, network: NetworkState) => TOKENS[id][network] as Token;\r\n\r\nexport default getToken;\r\n","import BigNumber from 'bignumber.js';\r\nimport { TokenId } from 'types';\r\nimport { NetworkState } from '../types';\r\n\r\nimport { getToken } from './getToken';\r\n\r\nexport interface ConvertWeiToTokensInput {\r\n valueWei: BigNumber;\r\n tokenId: TokenId;\r\n network: NetworkState;\r\n returnInReadableFormat?: T;\r\n minimizeDecimals?: boolean;\r\n addSymbol?: boolean;\r\n shortenLargeValue?: boolean;\r\n}\r\n\r\nexport type ConvertWeiToTokensOutput = T extends true ? string : string;\r\n\r\nexport function convertWeiToTokens({\r\n valueWei,\r\n tokenId,\r\n network\r\n}: ConvertWeiToTokensInput): ConvertWeiToTokensOutput {\r\n const tokenDecimals = getToken(tokenId, network).decimals;\r\n const valueTokens = valueWei\r\n .dividedBy(new BigNumber(10).pow(tokenDecimals));\r\n return (\r\n valueTokens.toFixed()\r\n ) as ConvertWeiToTokensOutput;\r\n}\r\n\r\nexport default convertWeiToTokens;\r\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgMetaMaskLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26,\n height: 24,\n viewBox: \"0 0 26 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.814 1L14.4385 7.87495L16.1819 3.82331L23.814 1Z\",\n fill: \"#E17726\",\n stroke: \"#E17726\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.18555 1.00049L11.4776 7.9396L9.81765 3.8238L2.18555 1.00049Z\",\n fill: \"#E27625\",\n stroke: \"#E27625\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.4379 16.9409L17.9434 20.7176L23.2849 22.175L24.815 17.0234L20.4379 16.9409Z\",\n fill: \"#E27625\",\n stroke: \"#E27625\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.19434 17.0234L2.71519 22.175L8.04746 20.7176L5.56216 16.9409L1.19434 17.0234Z\",\n fill: \"#E27625\",\n stroke: \"#E27625\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.76013 10.5617L6.27637 12.78L11.5623 13.0183L11.3861 7.38086L7.76013 10.5617Z\",\n fill: \"#E27625\",\n stroke: \"#E27625\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.2387 10.5614L14.5571 7.31641L14.4365 13.018L19.7224 12.7797L18.2387 10.5614Z\",\n fill: \"#E27625\",\n stroke: \"#E27625\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.04785 20.718L11.2472 19.1872L8.49298 17.0605L8.04785 20.718Z\",\n fill: \"#E27625\",\n stroke: \"#E27625\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.7529 19.1872L17.943 20.718L17.5072 17.0605L14.7529 19.1872Z\",\n fill: \"#E27625\",\n stroke: \"#E27625\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.943 20.7173L14.7529 19.1865L15.0126 21.2398L14.9848 22.1107L17.943 20.7173Z\",\n fill: \"#D5BFB2\",\n stroke: \"#D5BFB2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.04883 20.7183L11.0164 22.1116L10.9978 21.2408L11.2482 19.1875L8.04883 20.7183Z\",\n fill: \"#D5BFB2\",\n stroke: \"#D5BFB2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.0721 15.7031L8.41992 14.9331L10.2932 14.0806L11.0721 15.7031Z\",\n fill: \"#233447\",\n stroke: \"#233447\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.9307 15.7031L15.7096 14.0806L17.5922 14.9331L14.9307 15.7031Z\",\n fill: \"#233447\",\n stroke: \"#233447\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.04683 20.7176L8.5105 16.941L5.56152 17.0235L8.04683 20.7176Z\",\n fill: \"#CC6228\",\n stroke: \"#CC6228\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.4873 16.9409L17.9417 20.7176L20.4363 17.0234L17.4873 16.9409Z\",\n fill: \"#CC6228\",\n stroke: \"#CC6228\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.7224 12.7793L14.4365 13.0176L14.928 15.7034L15.707 14.081L17.5895 14.9334L19.7224 12.7793Z\",\n fill: \"#CC6228\",\n stroke: \"#CC6228\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.4166 14.9334L10.2898 14.081L11.0688 15.7034L11.5603 13.0176L6.27441 12.7793L8.4166 14.9334Z\",\n fill: \"#CC6228\",\n stroke: \"#CC6228\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.27734 12.7797L8.49371 17.0605L8.41953 14.9339L6.27734 12.7797Z\",\n fill: \"#E27525\",\n stroke: \"#E27525\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5893 14.9334L17.5059 17.0601L19.7222 12.7793L17.5893 14.9334Z\",\n fill: \"#E27525\",\n stroke: \"#E27525\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5618 13.0176L11.0703 15.7034L11.6916 18.875L11.8307 14.6951L11.5618 13.0176Z\",\n fill: \"#E27525\",\n stroke: \"#E27525\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.4374 13.0176L14.1777 14.6859L14.3076 18.875L14.9289 15.7034L14.4374 13.0176Z\",\n fill: \"#E27525\",\n stroke: \"#E27525\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.9289 15.7036L14.3076 18.8752L14.7527 19.1869L17.507 17.0602L17.5904 14.9336L14.9289 15.7036Z\",\n fill: \"#F5841F\",\n stroke: \"#F5841F\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.41992 14.9336L8.49411 17.0602L11.2483 19.1869L11.6935 18.8752L11.0721 15.7036L8.41992 14.9336Z\",\n fill: \"#F5841F\",\n stroke: \"#F5841F\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.9854 22.1106L15.0132 21.2398L14.7721 21.0381H11.2296L10.9978 21.2398L11.0164 22.1106L8.04883 20.7173L9.08746 21.5606L11.1926 22.9998H14.7999L16.9143 21.5606L17.9437 20.7173L14.9854 22.1106Z\",\n fill: \"#C0AC9D\",\n stroke: \"#C0AC9D\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.7538 19.1867L14.3087 18.875H11.6936L11.2484 19.1867L10.998 21.24L11.2299 21.0383H14.7724L15.0135 21.24L14.7538 19.1867Z\",\n fill: \"#161616\",\n stroke: \"#161616\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.2119 8.32411L25.0002 4.52914L23.8132 1L14.7529 7.64578L18.2398 10.5608L23.164 11.9816L24.249 10.7258L23.7761 10.3866L24.5272 9.70827L23.9523 9.26827L24.7034 8.69994L24.2119 8.32411Z\",\n fill: \"#763E1A\",\n stroke: \"#763E1A\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 4.52963L1.79752 8.3246L1.28748 8.70043L2.04791 9.26876L1.47295 9.70875L2.2241 10.3871L1.75115 10.7262L2.83616 11.9821L7.76039 10.5612L11.2472 7.64627L2.18701 1.00049L1 4.52963Z\",\n fill: \"#763E1A\",\n stroke: \"#763E1A\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.1637 11.9823L18.2394 10.5615L19.7232 12.7798L17.5068 17.0606L20.4373 17.024H24.8144L23.1637 11.9823Z\",\n fill: \"#F5841F\",\n stroke: \"#F5841F\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.75999 10.5615L2.83575 11.9823L1.19434 17.024H5.56216L8.49259 17.0606L6.27622 12.7798L7.75999 10.5615Z\",\n fill: \"#F5841F\",\n stroke: \"#F5841F\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.4375 13.0178L14.7528 7.6462L16.181 3.82373H9.81934L11.2475 7.6462L11.5628 13.0178L11.6833 14.7045L11.6926 18.8753H14.3077L14.317 14.7045L14.4375 13.0178Z\",\n fill: \"#F5841F\",\n stroke: \"#F5841F\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMetaMaskLogo);\nexport default __webpack_public_path__ + \"static/media/metaMaskLogo.45653b7b.svg\";\nexport { ForwardRef as ReactComponent };","import BigNumber from 'bignumber.js';\r\nimport {NetworkState, TokenId} from 'types';\r\nimport { getToken } from 'utilities';\r\n\r\nexport const convertTokensToWei = ({ value, tokenId, network }: { value: BigNumber; tokenId: TokenId; network: NetworkState }) => {\r\n const tokenDecimals = getToken(tokenId, network).decimals;\r\n return value.multipliedBy(new BigNumber(10).pow(tokenDecimals));\r\n};\r\n\r\nexport default convertTokensToWei;\r\n","export const truncateAddress = (address: string) => `${address.slice(0, 4)}...${address.slice(-4)}`;\r\n","// eslint-disable-next-line\r\nexport default (...args: any[]): any => {};\r\n","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\nimport { truncateAddress } from 'utilities';\r\n\r\nimport { useStyles } from './styles';\r\nimport { Breakpoint } from './types';\r\n\r\nexport * from './types';\r\n\r\ninterface AddressProps {\r\n address: string;\r\n ellipseBreakpoint?: Breakpoint;\r\n className?: string;\r\n}\r\n\r\n// TODO: add story\r\n\r\nexport const EllipseAddress: React.FC = ({\r\n className,\r\n address,\r\n ellipseBreakpoint,\r\n}) => {\r\n const styles = useStyles();\r\n\r\n const truncatedAddress = truncateAddress(address);\r\n\r\n return (\r\n <>\r\n \r\n {address}\r\n \r\n\r\n \r\n {truncatedAddress}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default EllipseAddress;\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Breakpoint } from './types';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n getAddress: ({ ellipseBreakpoint }: { ellipseBreakpoint?: Breakpoint }) => css`\r\n ${ellipseBreakpoint\r\n ? css`\r\n ${theme.breakpoints.down(ellipseBreakpoint)} {\r\n display: none;\r\n }\r\n `\r\n : css`\r\n display: none;\r\n `}\r\n `,\r\n getFormattedAddress: ({ ellipseBreakpoint }: { ellipseBreakpoint?: Breakpoint }) => css`\r\n ${ellipseBreakpoint &&\r\n css`\r\n display: none;\r\n\r\n ${theme.breakpoints.down(ellipseBreakpoint)} {\r\n display: block;\r\n }\r\n `}\r\n `,\r\n };\r\n};\r\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgFortmaticLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 0H18H24V6.00827H18H12H5.99999V12.0165V12.4018V17.9898V18.0249V23.9981H0V18.0249V17.9898V12.4018V12.0165V6.00827V0H5.99999H12ZM18.0004 17.9917H12.0354V12.0184H23.9969V18.2018C23.9969 19.739 23.3873 21.2132 22.3022 22.3005C21.2171 23.3877 19.7453 23.999 18.2102 24H18.0004V17.9917Z\",\n fill: \"#6851FF\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFortmaticLogo);\nexport default __webpack_public_path__ + \"static/media/fortmaticLogo.7ed251fc.svg\";\nexport { ForwardRef as ReactComponent };","var _linearGradient, _linearGradient2, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgOperaWalletLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 75.591 75.591\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a\",\n gradientTransform: \"matrix(0 -54.944 -54.944 0 23.62 79.474)\",\n gradientUnits: \"userSpaceOnUse\",\n x2: 1\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff1b2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.3,\n stopColor: \"#ff1b2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.614,\n stopColor: \"#ff1b2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#a70014\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"b\",\n gradientTransform: \"matrix(0 -48.595 -48.595 0 37.854 76.235)\",\n gradientUnits: \"userSpaceOnUse\",\n x2: 1\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#9c0000\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.7,\n stopColor: \"#ff4b4b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#ff4b4b\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(1.3333 0 0 -1.3333 0 107.2)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m28.346 80.398c-15.655 0-28.346-12.691-28.346-28.346 0-15.202 11.968-27.609 26.996-28.313.44848-.02115.89766-.03314 1.3504-.03314 7.2574 0 13.876 2.7289 18.891 7.2137-3.3227-2.2036-7.2074-3.4715-11.359-3.4715-6.7504 0-12.796 3.3488-16.862 8.6297-3.1344 3.6999-5.1645 9.1691-5.3028 15.307v1.3349c.13821 6.1377 2.1683 11.608 5.302 15.307 4.0666 5.2809 10.112 8.6297 16.862 8.6297 4.1526 0 8.038-1.2679 11.361-3.4729-4.9904 4.4643-11.569 7.1876-18.786 7.2144-.03596 0-.07122.0014-.10718.0014z\",\n fill: \"url(#a)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m19.016 68.025c2.6013 3.0709 5.9607 4.9227 9.631 4.9227 8.2524 0 14.941-9.356 14.941-20.897s-6.6891-20.897-14.941-20.897c-3.6703 0-7.0297 1.851-9.6303 4.922 4.0659-5.2809 10.111-8.6297 16.862-8.6297 4.1519 0 8.0366 1.2679 11.359 3.4715 5.802 5.1906 9.4554 12.735 9.4554 21.133 0 8.397-3.6527 15.941-9.4533 21.131-3.3234 2.205-7.2088 3.4729-11.361 3.4729-6.7504 0-12.796-3.3488-16.862-8.6297\",\n fill: \"url(#b)\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOperaWalletLogo);\nexport default __webpack_public_path__ + \"static/media/operaWalletLogo.88ec577f.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgWalletConnectLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 28,\n height: 17,\n viewBox: \"0 0 28 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 28,\n height: 17,\n transform: \"matrix(-1 0 0 1 28 0)\",\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_29_3496\",\n transform: \"translate(0 -0.00784314) scale(0.00333333 0.0054902)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_29_3496\",\n width: 300,\n height: 185,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWalletConnectLogo);\nexport default __webpack_public_path__ + \"static/media/walletConnectLogo.da46c2c9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgTrustWalletLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.047 2.65981L24.0629 1.34704C23.772 1.12206 23.4147 1 23.047 1C22.6792 1 22.3219 1.12206 22.0311 1.34704L23.047 2.65981ZM40.4561 7.7743L42.1176 7.80139C42.1211 7.58101 42.0807 7.36216 41.9987 7.15756C41.9167 6.95297 41.7949 6.76672 41.6403 6.60967C41.4856 6.45262 41.3013 6.3279 41.098 6.24278C40.8947 6.15766 40.6765 6.11384 40.4561 6.11387V7.7743ZM23.047 43.3386L22.127 44.7214C22.3994 44.9031 22.7195 45 23.047 45C23.3744 45 23.6945 44.9031 23.9669 44.7214L23.047 43.3386ZM5.66382 7.7743V6.11387C5.44351 6.11399 5.22543 6.15793 5.02226 6.24311C4.81909 6.3283 4.63489 6.45304 4.48037 6.61007C4.32586 6.76711 4.20412 6.9533 4.12223 7.15782C4.04034 7.36235 3.99994 7.58111 4.00339 7.80139L5.66382 7.7743ZM22.0311 3.97258C29.5679 9.81174 38.1918 9.43586 40.4572 9.43586V6.11387C38.1139 6.11387 30.5996 6.40961 24.0651 1.34704L22.0311 3.97258ZM38.7968 7.74721C38.6726 15.4613 38.3453 20.9031 37.7211 24.934C37.1036 28.923 36.222 31.3127 35.0865 32.9923C33.9363 34.7362 32.4903 35.7713 30.3558 37.0491C28.1987 38.3404 25.475 39.7322 22.1281 41.9559L23.9681 44.7214C27.1523 42.5993 29.8072 41.247 32.0614 39.8993C34.3336 38.5368 36.3315 37.0378 37.8385 34.8525C39.36 32.6017 40.3489 29.6692 40.999 25.4419C41.6447 21.2564 41.9878 15.5888 42.1154 7.80139L38.7968 7.74721ZM23.9669 41.9559C20.6201 39.7322 17.8975 38.3438 15.7438 37.0491C13.6081 35.7725 12.1678 34.7374 11.021 32.9934C9.89221 31.3149 9.00951 28.9298 8.39433 24.9351C7.77124 20.9031 7.44615 15.4613 7.32086 7.74721L4 7.80139C4.12755 15.5899 4.46844 21.2564 5.11184 25.4408C5.76315 29.668 6.7497 32.6006 8.27242 34.8514C9.77482 37.0367 11.7716 38.5368 14.0416 39.8993C16.2924 41.2459 18.9461 42.5993 22.1315 44.7214L23.9669 41.9559ZM5.66043 9.43586C7.90331 9.43586 16.5272 9.81174 24.0595 3.97258L22.0277 1.34704C15.4921 6.40961 7.97781 6.11387 5.66043 6.11387V9.43586Z\",\n fill: \"#3A78FF\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrustWalletLogo);\nexport default __webpack_public_path__ + \"static/media/trustWalletLogo.4a75702e.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgCoinbase(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"url(#pattern0)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image0_35_22693\",\n transform: \"scale(0.00125)\"\n })), /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0_35_22693\",\n width: 800,\n height: 800,\n xlinkHref: \"data:image/png;base64,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\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCoinbase);\nexport default __webpack_public_path__ + \"static/media/coinbase.969314b9.svg\";\nexport { ForwardRef as ReactComponent };","export enum Connector {\r\n MetaMask = 'MetaMask',\r\n WalletConnect = 'WalletConnect',\r\n CoinbaseWallet = 'CoinbaseWallet',\r\n Fortmatic = 'Fortmatic',\r\n TrustWallet = 'TrustWallet',\r\n OperaWallet = 'OperaWallet',\r\n InfinityWallet = 'InfinityWallet',\r\n}\r\n","import Web3 from 'web3';\r\nimport sample from \"lodash/sample\";\r\n\r\n// @todo: we will get the \"No 'Access-Control-Allow-Origin' header is present on the requested resource\"\r\n// error on the frontend in testnet when the wallet is unconnected, because the bsc official testnet endpoints\r\n// don't support CORS request right now, and we didn't find any working testnet endpoints for\r\n// HTTPProvider or WebSocketProvider neither.\r\nconst getWeb3NoAccount = (rpcUrls: string[]) => {\r\n const rpcUrl = sample(rpcUrls) as string;\r\n const httpProvider = new Web3.providers.HttpProvider(rpcUrl, {\r\n timeout: 10000,\r\n });\r\n return new Web3(httpProvider);\r\n};\r\n\r\nexport default getWeb3NoAccount;\r\n","import { useWeb3React } from '@web3-react/core';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport Web3 from 'web3';\r\n\r\nimport getWeb3NoAccount from './getWeb3NoAccount';\r\nimport config from \"../../config\";\r\nimport {RPC_URLS} from \"../../constants/endpoints\";\r\nimport {NetworkState, TPYChainId} from \"../../types\";\r\n\r\nconst useWeb3 = (chainId: TPYChainId | NetworkState) => {\r\n const { library } = useWeb3React();\r\n const refEth = useRef(library);\r\n const [web3, setWeb3] = useState(library ? new Web3(library) : getWeb3NoAccount(RPC_URLS[chainId || config.chainId]));\r\n useEffect(() => {\r\n if (library !== refEth.current) {\r\n setWeb3(library ? new Web3(library) : getWeb3NoAccount(RPC_URLS[chainId]));\r\n refEth.current = library;\r\n }\r\n if((library === refEth.current && chainId !== config.chainId)){\r\n setWeb3(library ? new Web3(library) :getWeb3NoAccount(RPC_URLS[chainId]));\r\n }\r\n }, [library, chainId]);\r\n\r\n return web3;\r\n};\r\n\r\nexport default useWeb3;\r\n","export const LS_KEY_CONNECTED_CONNECTOR = 'connected-connector';\r\n","import {InjectedConnector} from '@web3-react/injected-connector';\r\nimport {WalletConnectConnector} from '@web3-react/walletconnect-connector';\r\nimport {WalletLinkConnector} from '@web3-react/walletlink-connector';\r\nimport {FortmaticConnector} from '@web3-react/fortmatic-connector';\r\nimport {InfinityWalletConnector} from '@infinitywallet/infinity-connector';\r\n\r\nimport config from 'config';\r\nimport {TPYChainId} from 'types';\r\n\r\nimport {Connector} from './types';\r\n\r\nexport const injectedConnector = new InjectedConnector({ supportedChainIds: [TPYChainId.MAINNET, TPYChainId.ARBITRUM_ONE] });\r\n\r\nconst walletConnectConnector = new WalletConnectConnector({\r\n rpc: { [TPYChainId.MAINNET]: config.rpcUrl },\r\n chainId: TPYChainId.MAINNET,\r\n bridge: 'https://bridge.walletconnect.org',\r\n qrcode: true,\r\n});\r\n\r\nconst coinbaseWalletConnector = new WalletLinkConnector({\r\n url: config.rpcUrl,\r\n appName: 'Thrupenny',\r\n});\r\n\r\nconst infinityWalletConnector = new InfinityWalletConnector({\r\n supportedChainIds: [TPYChainId.MAINNET, TPYChainId.ARBITRUM_ONE],\r\n});\r\n\r\nconst fortmaticConnector = new FortmaticConnector({\r\n apiKey: config.fortmaticApiKey,\r\n chainId: Number(1),\r\n});\r\n\r\nexport const connectorsByName = {\r\n [Connector.MetaMask]: injectedConnector,\r\n [Connector.WalletConnect]: walletConnectConnector,\r\n [Connector.CoinbaseWallet]: coinbaseWalletConnector,\r\n [Connector.Fortmatic]: fortmaticConnector,\r\n [Connector.TrustWallet]: injectedConnector,\r\n [Connector.OperaWallet]: injectedConnector,\r\n [Connector.InfinityWallet]: infinityWalletConnector,\r\n\r\n};\r\n","export enum ComptrollerErrorReporterError {\r\n NO_ERROR,\r\n UNAUTHORIZED,\r\n COMPTROLLER_MISMATCH,\r\n INSUFFICIENT_SHORTFALL,\r\n INSUFFICIENT_LIQUIDITY,\r\n INVALID_CLOSE_FACTOR,\r\n INVALID_COLLATERAL_FACTOR,\r\n INVALID_LIQUIDATION_INCENTIVE,\r\n MARKET_NOT_ENTERED, // no longer possible\r\n MARKET_NOT_LISTED,\r\n MARKET_ALREADY_LISTED,\r\n MATH_ERROR,\r\n NONZERO_BORROW_BALANCE,\r\n PRICE_ERROR,\r\n REJECTION,\r\n SNAPSHOT_ERROR,\r\n TOO_MANY_ASSETS,\r\n TOO_MUCH_REPAY,\r\n INSUFFICIENT_BALANCE_FOR_VAI,\r\n}\r\n\r\nexport enum ComptrollerErrorReporterFailureInfo {\r\n ACCEPT_ADMIN_PENDING_ADMIN_CHECK,\r\n ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK,\r\n EXIT_MARKET_BALANCE_OWED,\r\n EXIT_MARKET_REJECTION,\r\n SET_CLOSE_FACTOR_OWNER_CHECK,\r\n SET_CLOSE_FACTOR_VALIDATION,\r\n SET_COLLATERAL_FACTOR_OWNER_CHECK,\r\n SET_COLLATERAL_FACTOR_NO_EXISTS,\r\n SET_COLLATERAL_FACTOR_VALIDATION,\r\n SET_COLLATERAL_FACTOR_WITHOUT_PRICE,\r\n SET_IMPLEMENTATION_OWNER_CHECK,\r\n SET_LIQUIDATION_INCENTIVE_OWNER_CHECK,\r\n SET_LIQUIDATION_INCENTIVE_VALIDATION,\r\n SET_MAX_ASSETS_OWNER_CHECK,\r\n SET_PENDING_ADMIN_OWNER_CHECK,\r\n SET_PENDING_IMPLEMENTATION_OWNER_CHECK,\r\n SET_PRICE_ORACLE_OWNER_CHECK,\r\n SUPPORT_MARKET_EXISTS,\r\n SUPPORT_MARKET_OWNER_CHECK,\r\n SET_PAUSE_GUARDIAN_OWNER_CHECK,\r\n SET_VAI_MINT_RATE_CHECK,\r\n SET_VAICONTROLLER_OWNER_CHECK,\r\n SET_MINTED_VAI_REJECTION,\r\n SET_TREASURY_OWNER_CHECK,\r\n}\r\n\r\nexport enum TokenErrorReporterError {\r\n NO_ERROR,\r\n UNAUTHORIZED,\r\n BAD_INPUT,\r\n COMPTROLLER_REJECTION,\r\n COMPTROLLER_CALCULATION_ERROR,\r\n INTEREST_RATE_MODEL_ERROR,\r\n INVALID_ACCOUNT_PAIR,\r\n INVALID_CLOSE_AMOUNT_REQUESTED,\r\n INVALID_COLLATERAL_FACTOR,\r\n MATH_ERROR,\r\n MARKET_NOT_FRESH,\r\n MARKET_NOT_LISTED,\r\n TOKEN_INSUFFICIENT_ALLOWANCE,\r\n TOKEN_INSUFFICIENT_BALANCE,\r\n TOKEN_INSUFFICIENT_CASH,\r\n TOKEN_TRANSFER_IN_FAILED,\r\n TOKEN_TRANSFER_OUT_FAILED,\r\n TOKEN_PRICE_ERROR,\r\n}\r\n\r\n/*\r\n * Note: FailureInfo (but not Error) is kept in alphabetical order\r\n * This is because FailureInfo grows significantly faster, and\r\n * the order of Error has some meaning, while the order of FailureInfo\r\n * is entirely arbitrary.\r\n */\r\nexport enum TokenErrorReporterFailureInfo {\r\n ACCEPT_ADMIN_PENDING_ADMIN_CHECK,\r\n ACCRUE_INTEREST_ACCUMULATED_INTEREST_CALCULATION_FAILED,\r\n ACCRUE_INTEREST_BORROW_RATE_CALCULATION_FAILED,\r\n ACCRUE_INTEREST_NEW_BORROW_INDEX_CALCULATION_FAILED,\r\n ACCRUE_INTEREST_NEW_TOTAL_BORROWS_CALCULATION_FAILED,\r\n ACCRUE_INTEREST_NEW_TOTAL_RESERVES_CALCULATION_FAILED,\r\n ACCRUE_INTEREST_SIMPLE_INTEREST_FACTOR_CALCULATION_FAILED,\r\n BORROW_ACCUMULATED_BALANCE_CALCULATION_FAILED,\r\n BORROW_ACCRUE_INTEREST_FAILED,\r\n BORROW_CASH_NOT_AVAILABLE,\r\n BORROW_FRESHNESS_CHECK,\r\n BORROW_NEW_TOTAL_BALANCE_CALCULATION_FAILED,\r\n BORROW_NEW_ACCOUNT_BORROW_BALANCE_CALCULATION_FAILED,\r\n BORROW_MARKET_NOT_LISTED,\r\n BORROW_COMPTROLLER_REJECTION,\r\n LIQUIDATE_ACCRUE_BORROW_INTEREST_FAILED,\r\n LIQUIDATE_ACCRUE_COLLATERAL_INTEREST_FAILED,\r\n LIQUIDATE_COLLATERAL_FRESHNESS_CHECK,\r\n LIQUIDATE_COMPTROLLER_REJECTION,\r\n LIQUIDATE_COMPTROLLER_CALCULATE_AMOUNT_SEIZE_FAILED,\r\n LIQUIDATE_CLOSE_AMOUNT_IS_UINT_MAX,\r\n LIQUIDATE_CLOSE_AMOUNT_IS_ZERO,\r\n LIQUIDATE_FRESHNESS_CHECK,\r\n LIQUIDATE_LIQUIDATOR_IS_BORROWER,\r\n LIQUIDATE_REPAY_BORROW_FRESH_FAILED,\r\n LIQUIDATE_SEIZE_BALANCE_INCREMENT_FAILED,\r\n LIQUIDATE_SEIZE_BALANCE_DECREMENT_FAILED,\r\n LIQUIDATE_SEIZE_COMPTROLLER_REJECTION,\r\n LIQUIDATE_SEIZE_LIQUIDATOR_IS_BORROWER,\r\n LIQUIDATE_SEIZE_TOO_MUCH,\r\n MINT_ACCRUE_INTEREST_FAILED,\r\n MINT_COMPTROLLER_REJECTION,\r\n MINT_EXCHANGE_CALCULATION_FAILED,\r\n MINT_EXCHANGE_RATE_READ_FAILED,\r\n MINT_FRESHNESS_CHECK,\r\n MINT_NEW_ACCOUNT_BALANCE_CALCULATION_FAILED,\r\n MINT_NEW_TOTAL_SUPPLY_CALCULATION_FAILED,\r\n MINT_TRANSFER_IN_FAILED,\r\n MINT_TRANSFER_IN_NOT_POSSIBLE,\r\n REDEEM_ACCRUE_INTEREST_FAILED,\r\n REDEEM_COMPTROLLER_REJECTION,\r\n REDEEM_EXCHANGE_TOKENS_CALCULATION_FAILED,\r\n REDEEM_EXCHANGE_AMOUNT_CALCULATION_FAILED,\r\n REDEEM_EXCHANGE_RATE_READ_FAILED,\r\n REDEEM_FRESHNESS_CHECK,\r\n REDEEM_NEW_ACCOUNT_BALANCE_CALCULATION_FAILED,\r\n REDEEM_NEW_TOTAL_SUPPLY_CALCULATION_FAILED,\r\n REDEEM_TRANSFER_OUT_NOT_POSSIBLE,\r\n REDUCE_RESERVES_ACCRUE_INTEREST_FAILED,\r\n REDUCE_RESERVES_ADMIN_CHECK,\r\n REDUCE_RESERVES_CASH_NOT_AVAILABLE,\r\n REDUCE_RESERVES_FRESH_CHECK,\r\n REDUCE_RESERVES_VALIDATION,\r\n REPAY_BEHALF_ACCRUE_INTEREST_FAILED,\r\n REPAY_BORROW_ACCRUE_INTEREST_FAILED,\r\n REPAY_BORROW_ACCUMULATED_BALANCE_CALCULATION_FAILED,\r\n REPAY_BORROW_COMPTROLLER_REJECTION,\r\n REPAY_BORROW_FRESHNESS_CHECK,\r\n REPAY_BORROW_NEW_ACCOUNT_BORROW_BALANCE_CALCULATION_FAILED,\r\n REPAY_BORROW_NEW_TOTAL_BALANCE_CALCULATION_FAILED,\r\n REPAY_BORROW_TRANSFER_IN_NOT_POSSIBLE,\r\n SET_COLLATERAL_FACTOR_OWNER_CHECK,\r\n SET_COLLATERAL_FACTOR_VALIDATION,\r\n SET_COMPTROLLER_OWNER_CHECK,\r\n SET_INTEREST_RATE_MODEL_ACCRUE_INTEREST_FAILED,\r\n SET_INTEREST_RATE_MODEL_FRESH_CHECK,\r\n SET_INTEREST_RATE_MODEL_OWNER_CHECK,\r\n SET_MAX_ASSETS_OWNER_CHECK,\r\n SET_ORACLE_MARKET_NOT_LISTED,\r\n SET_PENDING_ADMIN_OWNER_CHECK,\r\n SET_RESERVE_FACTOR_ACCRUE_INTEREST_FAILED,\r\n SET_RESERVE_FACTOR_ADMIN_CHECK,\r\n SET_RESERVE_FACTOR_FRESH_CHECK,\r\n SET_RESERVE_FACTOR_BOUNDS_CHECK,\r\n TRANSFER_COMPTROLLER_REJECTION,\r\n TRANSFER_NOT_ALLOWED,\r\n TRANSFER_NOT_ENOUGH,\r\n TRANSFER_TOO_MUCH,\r\n ADD_RESERVES_ACCRUE_INTEREST_FAILED,\r\n ADD_RESERVES_FRESH_CHECK,\r\n ADD_RESERVES_TRANSFER_IN_NOT_POSSIBLE,\r\n TOKEN_GET_UNDERLYING_PRICE_ERROR,\r\n REPAY_VAI_COMPTROLLER_REJECTION,\r\n REPAY_VAI_FRESHNESS_CHECK,\r\n VAI_MINT_EXCHANGE_CALCULATION_FAILED,\r\n SFT_MINT_NEW_ACCOUNT_BALANCE_CALCULATION_FAILED,\r\n REDEEM_FEE_CALCULATION_FAILED,\r\n}\r\n\r\nexport enum VaiControllerErrorReporterError {\r\n NO_ERROR,\r\n UNAUTHORIZED,\r\n REJECTION,\r\n SNAPSHOT_ERROR,\r\n PRICE_ERROR,\r\n MATH_ERROR,\r\n INSUFFICIENT_BALANCE_FOR_VAI,\r\n}\r\n\r\nexport enum VaiControllerErrorReporterFailureInfo {\r\n SET_PENDING_ADMIN_OWNER_CHECK,\r\n SET_PENDING_IMPLEMENTATION_OWNER_CHECK,\r\n SET_COMPTROLLER_OWNER_CHECK,\r\n ACCEPT_ADMIN_PENDING_ADMIN_CHECK,\r\n ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK,\r\n VAI_MINT_REJECTION,\r\n VAI_BURN_REJECTION,\r\n VAI_LIQUIDATE_ACCRUE_BORROW_INTEREST_FAILED,\r\n VAI_LIQUIDATE_ACCRUE_COLLATERAL_INTEREST_FAILED,\r\n VAI_LIQUIDATE_COLLATERAL_FRESHNESS_CHECK,\r\n VAI_LIQUIDATE_COMPTROLLER_REJECTION,\r\n VAI_LIQUIDATE_COMPTROLLER_CALCULATE_AMOUNT_SEIZE_FAILED,\r\n VAI_LIQUIDATE_CLOSE_AMOUNT_IS_UINT_MAX,\r\n VAI_LIQUIDATE_CLOSE_AMOUNT_IS_ZERO,\r\n VAI_LIQUIDATE_FRESHNESS_CHECK,\r\n VAI_LIQUIDATE_LIQUIDATOR_IS_BORROWER,\r\n VAI_LIQUIDATE_REPAY_BORROW_FRESH_FAILED,\r\n VAI_LIQUIDATE_SEIZE_BALANCE_INCREMENT_FAILED,\r\n VAI_LIQUIDATE_SEIZE_BALANCE_DECREMENT_FAILED,\r\n VAI_LIQUIDATE_SEIZE_COMPTROLLER_REJECTION,\r\n VAI_LIQUIDATE_SEIZE_LIQUIDATOR_IS_BORROWER,\r\n VAI_LIQUIDATE_SEIZE_TOO_MUCH,\r\n MINT_FEE_CALCULATION_FAILED,\r\n SET_TREASURY_OWNER_CHECK,\r\n}\r\n\r\nexport enum VaiVaultErrorReporterError {\r\n NO_ERROR,\r\n UNAUTHORIZED,\r\n}\r\n\r\nexport enum VaiVaultErrorReporterInfo {\r\n ACCEPT_ADMIN_PENDING_ADMIN_CHECK,\r\n ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK,\r\n SET_PENDING_ADMIN_OWNER_CHECK,\r\n SET_PENDING_IMPLEMENTATION_OWNER_CHECK,\r\n}\r\n\r\nexport enum XvsVaultProxyErrorReporterError {\r\n NO_ERROR,\r\n UNAUTHORIZED,\r\n}\r\n\r\nexport enum XvsVaultProxyErrorReporterInfo {\r\n ACCEPT_ADMIN_PENDING_ADMIN_CHECK,\r\n ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK,\r\n SET_PENDING_ADMIN_OWNER_CHECK,\r\n SET_PENDING_IMPLEMENTATION_OWNER_CHECK,\r\n}\r\n","import { useEffect, useState } from 'react';\r\n\r\nimport { useWeb3Account } from 'clients/web3';\r\nimport { LS_KEY_CONNECTED_CONNECTOR } from 'constants/localStorageKeys';\r\n\r\nimport { injectedConnector } from './connectors';\r\n\r\nconst useEagerConnect = () => {\r\n const { activate, active } = useWeb3Account();\r\n // Only try to connect if we are not running the storybook\r\n const [tried, setTried] = useState(!process.env.STORYBOOK);\r\n\r\n useEffect(() => {\r\n const init = async () => {\r\n // Check if user previously connected their wallet with the dApp\r\n const connectedConnector = window.localStorage.getItem(LS_KEY_CONNECTED_CONNECTOR);\r\n if (!connectedConnector) {\r\n return;\r\n }\r\n\r\n // Check if user previously connected their wallet with the dApp\r\n const isAuthorized = await injectedConnector.isAuthorized();\r\n if (!isAuthorized) {\r\n setTried(true);\r\n return;\r\n }\r\n\r\n // Fetch user account details\r\n try {\r\n await activate(injectedConnector, undefined, true);\r\n } catch {\r\n // TODO: handle error (?)\r\n setTried(true);\r\n }\r\n };\r\n\r\n init();\r\n }, []); //eslint-disable-line\r\n // intentionally only running on mount(make sure it's only mounted once :))\r\n\r\n // if the connection worked, wait until we get confirmation of that to flip the flag\r\n useEffect(() => {\r\n if (!tried && active) {\r\n setTried(true);\r\n }\r\n }, [tried, active]);\r\n\r\n return tried;\r\n};\r\n\r\nexport default useEagerConnect;\r\n","import { useEffect } from 'react';\r\n\r\nimport { useWeb3Account } from 'clients/web3';\r\n\r\nimport { injectedConnector } from './connectors';\r\n\r\nconst useInactiveListener = (suppress = false) => {\r\n const { active, error, activate } = useWeb3Account();\r\n\r\n useEffect(() => {\r\n const { ethereum } = window;\r\n\r\n if (ethereum && 'on' in ethereum && !active && !error && !suppress && !process.env.STORYBOOK) {\r\n const handleChainChanged = () => {\r\n // eat errors\r\n activate(injectedConnector, undefined, true).catch(err => {\r\n console.error('Failed to activate after chain changed', err);\r\n });\r\n };\r\n\r\n const handleAccountsChanged = (accounts: $TSFixMe) => {\r\n if (accounts.length > 0) {\r\n // eat errors\r\n activate(injectedConnector, undefined, true).catch(err => {\r\n console.error('Failed to activate after accounts changed', err);\r\n });\r\n }\r\n };\r\n\r\n ethereum.on('chainChanged', handleChainChanged);\r\n ethereum.on('accountsChanged', handleAccountsChanged);\r\n\r\n return () => {\r\n if (ethereum.removeListener) {\r\n ethereum.removeListener('chainChanged', handleChainChanged);\r\n ethereum.removeListener('accountsChanged', handleAccountsChanged);\r\n }\r\n };\r\n }\r\n return undefined;\r\n }, [active, error, suppress, activate]);\r\n};\r\n\r\nexport default useInactiveListener;\r\n","import { interactionErrorPhrases } from './interactionErrorPhrases';\r\nimport { transactionErrorPhrases } from './transactionErrorPhrases';\r\nimport { unexpectedErrorPhrases } from './unexpectedErrorPhrases';\r\n\r\nexport interface VErrorParamMap {\r\n transaction: {\r\n error: keyof typeof transactionErrorPhrases;\r\n info: keyof typeof transactionErrorPhrases;\r\n };\r\n unexpected: { message: string } | undefined;\r\n interaction: { assetName: string };\r\n}\r\n\r\nexport interface VErrorPhraseMap {\r\n transaction: keyof typeof transactionErrorPhrases;\r\n unexpected: keyof typeof unexpectedErrorPhrases;\r\n interaction: keyof typeof interactionErrorPhrases;\r\n}\r\n\r\nexport type ErrorCodes = keyof VErrorParamMap;\r\n\r\nexport class VError extends Error {\r\n data: VErrorParamMap[E] | undefined;\r\n\r\n type: E;\r\n\r\n code: VErrorPhraseMap[E];\r\n\r\n constructor({\r\n type,\r\n code,\r\n data,\r\n }: {\r\n type: E;\r\n code: VErrorPhraseMap[E];\r\n data?: VErrorParamMap[E];\r\n }) {\r\n super(code);\r\n this.type = type;\r\n this.code = code;\r\n this.data = data;\r\n }\r\n}\r\n","import type { TransactionReceipt } from 'web3-core';\r\n\r\nimport {\r\n ComptrollerErrorReporterError,\r\n ComptrollerErrorReporterFailureInfo,\r\n TokenErrorReporterError,\r\n TokenErrorReporterFailureInfo,\r\n VaiControllerErrorReporterError,\r\n VaiControllerErrorReporterFailureInfo,\r\n VaiVaultErrorReporterError,\r\n VaiVaultErrorReporterInfo,\r\n XvsVaultProxyErrorReporterError,\r\n XvsVaultProxyErrorReporterInfo,\r\n} from 'constants/contracts/errorReporter';\r\n\r\nimport { VError, VErrorPhraseMap } from './VError';\r\n\r\nconst checkForTransactionError = (\r\n receipt: TransactionReceipt,\r\n errorEnum:\r\n | typeof ComptrollerErrorReporterError\r\n | typeof TokenErrorReporterError\r\n | typeof VaiControllerErrorReporterError\r\n | typeof VaiVaultErrorReporterError\r\n | typeof XvsVaultProxyErrorReporterError,\r\n infoEnum:\r\n | typeof ComptrollerErrorReporterFailureInfo\r\n | typeof TokenErrorReporterFailureInfo\r\n | typeof VaiControllerErrorReporterFailureInfo\r\n | typeof VaiVaultErrorReporterInfo\r\n | typeof XvsVaultProxyErrorReporterInfo,\r\n) => {\r\n if (receipt.events?.Failure) {\r\n const { error, info } = receipt.events?.Failure.returnValues;\r\n throw new VError({\r\n type: 'transaction',\r\n code: errorEnum[error] as VErrorPhraseMap['transaction'],\r\n data: {\r\n error: errorEnum[error] as VErrorPhraseMap['transaction'],\r\n info: infoEnum[info] as VErrorPhraseMap['transaction'],\r\n },\r\n });\r\n }\r\n return receipt;\r\n};\r\n\r\nexport const checkForTokenTransactionError = (receipt: TransactionReceipt) =>\r\n checkForTransactionError(receipt, TokenErrorReporterError, TokenErrorReporterFailureInfo);\r\n","import config from 'config';\r\nimport {TPYChainId} from \"../../../types\";\r\n// Prompt the user to add BSC as a network, or switch to BSC if the wallet is on\r\n// a different network\r\nconst switchNetwork = async (chainId?: TPYChainId) => {\r\n if (!window.ethereum) {\r\n // TODO: send error to Sentry\r\n\r\n console.error(\"Can't set up the BSC network on wallet because window.ethereum is undefined\");\r\n return false;\r\n }\r\n\r\n try {\r\n await window.ethereum.request({\r\n method: 'wallet_switchEthereumChain',\r\n params: [\r\n {\r\n chainId: `0x${chainId ? chainId.toString(16) : config.chainId.toString(16)}`,\r\n },\r\n ],\r\n });\r\n\r\n return true;\r\n } catch (error) {\r\n const err = error as { code: number; message: string};\r\n throw err.message;\r\n }\r\n};\r\n\r\nexport default switchNetwork;\r\n","import { openInfinityWallet } from '@infinitywallet/infinity-connector';\r\nimport { UnsupportedChainIdError, useWeb3React } from '@web3-react/core';\r\nimport {\r\n NoEthereumProviderError,\r\n UserRejectedRequestError as UserRejectedRequestErrorInjected,\r\n} from '@web3-react/injected-connector';\r\nimport {\r\n UserRejectedRequestError as UserRejectedRequestErrorWalletConnect,\r\n WalletConnectConnector,\r\n} from '@web3-react/walletconnect-connector';\r\nimport config from 'config';\r\nimport { VError } from 'errors';\r\nimport { useCallback, useState } from 'react';\r\n\r\nimport { LS_KEY_CONNECTED_CONNECTOR } from 'constants/localStorageKeys';\r\n\r\nimport { connectorsByName } from '../connectors';\r\nimport { Connector } from '../types';\r\nimport switchNetwork from './switchNetwork';\r\n\r\nconst isRunningInInfinityWalletApp = () => window.ethereum && window.ethereum?.isInfinityWallet;\r\n\r\nconst getConnectedConnector = (): Connector | undefined => {\r\n const lsConnectedConnector = window.localStorage.getItem(LS_KEY_CONNECTED_CONNECTOR);\r\n\r\n return lsConnectedConnector &&\r\n Object.values(Connector).includes(lsConnectedConnector as Connector)\r\n ? (lsConnectedConnector as Connector)\r\n : undefined;\r\n};\r\n\r\nconst useAuth = () => {\r\n const { activate, deactivate, account } = useWeb3React();\r\n\r\n const [connectedConnector, setConnectedConnector] = useState(getConnectedConnector());\r\n\r\n const login = useCallback(\r\n async (connectorID: Connector) => {\r\n // If user are attempting to connect their Infinity wallet but the dApp\r\n // isn't currently running in the Infinity Wallet app, open it\r\n if (connectorID === Connector.InfinityWallet && !isRunningInInfinityWalletApp()) {\r\n openInfinityWallet(window.location.href, config.chainId);\r\n return;\r\n }\r\n\r\n const connector = connectorsByName[connectorID];\r\n if (!connector) {\r\n // TODO: log error (this case should never happen, as it means\r\n // an incorrect connectorID was passed to this function)\r\n throw new VError({ type: 'interaction', code: 'unsupportedWallet' });\r\n }\r\n\r\n try {\r\n // Log user in\r\n await activate(connector, undefined, true);\r\n\r\n // Mark user as logged in\r\n window.localStorage.setItem(LS_KEY_CONNECTED_CONNECTOR, connectorID);\r\n setConnectedConnector(connectorID);\r\n } catch (error) {\r\n if (error instanceof UnsupportedChainIdError) {\r\n try {\r\n await switchNetwork();\r\n await activate(connector);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n\r\n return;\r\n }\r\n\r\n // Reset wallet connect provider if user denied access to their account\r\n if (\r\n (error instanceof UserRejectedRequestErrorInjected ||\r\n error instanceof UserRejectedRequestErrorWalletConnect) &&\r\n connector instanceof WalletConnectConnector\r\n ) {\r\n connector.walletConnectProvider = undefined;\r\n }\r\n\r\n // Display error message\r\n // let errorMessage;\r\n\r\n if (\r\n error instanceof UserRejectedRequestErrorInjected ||\r\n error instanceof UserRejectedRequestErrorWalletConnect\r\n ) {\r\n throw new VError({ type: 'interaction', code: 'authorizeAccess' });\r\n } else if (\r\n error instanceof NoEthereumProviderError\r\n ) {\r\n // TODO: log error\r\n throw new VError({ type: 'interaction', code: 'noProvider' });\r\n } else {\r\n // errorMessage = (error as Error).message;\r\n }\r\n }\r\n },\r\n [activate],\r\n );\r\n\r\n const loginShowToast = async (connectorID: Connector) => {\r\n try {\r\n await login(connectorID);\r\n } catch (error) {\r\n // let { message } = error as Error;\r\n\r\n if (error instanceof VError) {\r\n // message = formatVErrorToReadableString(error);\r\n }\r\n }\r\n };\r\n\r\n const logOut = useCallback(() => {\r\n deactivate();\r\n // This localStorage key is set by @web3-react/walletconnect-connector\r\n if (window.localStorage.getItem('walletconnect')) {\r\n connectorsByName[Connector.WalletConnect].close();\r\n connectorsByName[Connector.WalletConnect].walletConnectProvider = undefined;\r\n }\r\n\r\n // Remove flag indicating user is logged in\r\n window.localStorage.removeItem(LS_KEY_CONNECTED_CONNECTOR);\r\n setConnectedConnector(undefined);\r\n }, [deactivate]);\r\n\r\n return { login: loginShowToast, logOut, accountAddress: account, connectedConnector };\r\n};\r\n\r\nexport default useAuth;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { useWeb3Account } from 'clients/web3';\r\n\r\nimport useEagerConnect from '../useEagerConnect';\r\nimport useInactiveListener from '../useInactiveListener';\r\n\r\nconst Web3ReactManager: React.FC = ({ children }) => {\r\n const context = useWeb3Account();\r\n const {\r\n connector,\r\n chainId,\r\n active,\r\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'networkError' does not exist on type 'We... Remove this comment to see the full error message\r\n networkError,\r\n } = context;\r\n const triedEager = useEagerConnect();\r\n\r\n // handle logic to recognize the connector currently being activated\r\n const [activatingConnector, setActivatingConnector] = useState();\r\n\r\n useEffect(() => {\r\n if (activatingConnector && activatingConnector === connector) {\r\n setActivatingConnector(undefined);\r\n }\r\n }, [activatingConnector, connector, chainId]);\r\n\r\n // when there's no account connected, react to logins (broadly speaking) on\r\n // the injected provider, if it exists\r\n useInactiveListener(!triedEager);\r\n\r\n // on page load, do nothing until we've tried to connect to the injected\r\n // connector\r\n if (!triedEager) {\r\n return null;\r\n }\r\n\r\n // if the account context isn't active, and there's an error on the network\r\n // context, it's an irrecoverable error\r\n if (!active && networkError) {\r\n // TODO: log error to Sentry\r\n return <>An internal error occurred. Please try again later.;\r\n }\r\n\r\n return <>{children};\r\n};\r\n\r\nexport default Web3ReactManager;\r\n","import { Web3ReactProvider } from '@web3-react/core';\r\nimport React from 'react';\r\n\r\nimport Web3ReactManager from './Web3ReactManager';\r\n\r\nconst Web3Wrapper: React.FC = ({ children }) => (\r\n provider}>\r\n {children}\r\n \r\n);\r\n\r\nexport default Web3Wrapper;\r\n","import { t } from 'translation';\r\n\r\nimport { ReactComponent as MetaMaskLogo } from '../../assets/img/wallets/metaMaskLogo.svg';\r\nimport { ReactComponent as FortmaticLogo } from '../../assets/img/wallets/fortmaticLogo.svg';\r\nimport { ReactComponent as OperaWalletLogo } from '../../assets/img/wallets/operaWalletLogo.svg';\r\nimport { ReactComponent as WalletConnectLogo } from '../../assets/img/wallets/walletConnectLogo.svg';\r\nimport { ReactComponent as TrustWalletLogo } from '../../assets/img/wallets/trustWalletLogo.svg';\r\nimport { ReactComponent as CoinbaseWalletLogo } from '../../assets/img/wallets/coinbase.svg';\r\nimport { Connector } from 'clients/web3';\r\nimport { isRunningInOperaBrowser } from 'clients/web3/walletDetectionUtils';\r\n\r\nimport { BaseWallet, Wallet } from './types';\r\n\r\nexport const WALLETS: Wallet[] = [\r\n {\r\n name: t('wallets.metamask'),\r\n Logo: MetaMaskLogo,\r\n connector: Connector.MetaMask,\r\n },\r\n {\r\n name: t('wallets.trustWallet'),\r\n Logo: TrustWalletLogo,\r\n connector: Connector.TrustWallet,\r\n },\r\n {\r\n name: t('wallets.walletConnect'),\r\n Logo: WalletConnectLogo,\r\n connector: Connector.WalletConnect,\r\n },\r\n {\r\n name: t('wallets.coinbaseWallet'),\r\n Logo: CoinbaseWalletLogo,\r\n connector: Connector.CoinbaseWallet,\r\n },\r\n {\r\n name: t('wallets.fortmatic'),\r\n Logo: FortmaticLogo,\r\n connector: Connector.Fortmatic,\r\n },\r\n];\r\n\r\n// Add Opera Wallet to the top of the list if dApp is running in Opera\r\nif (isRunningInOperaBrowser()) {\r\n WALLETS.unshift({\r\n name: t('wallets.opera'),\r\n Logo: OperaWalletLogo,\r\n connector: Connector.OperaWallet,\r\n mainnetOnly: true,\r\n });\r\n}\r\nexport const UPCOMING_WALLETS: BaseWallet[] = [];\r\n","export const isRunningInOperaBrowser = () => window.ethereum?.isOpera;\r\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgMedium(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 30\",\n width: \"30px\",\n height: \"30px\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5 7A8.5 8.5 0 108.5 24 8.5 8.5 0 108.5 7zM22 8A4 7.5 0 1022 23 4 7.5 0 1022 8zM28.5 9A1.5 6.5 0 1028.5 22 1.5 6.5 0 1028.5 9z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMedium);\nexport default __webpack_public_path__ + \"static/media/medium.d7821c8a.svg\";\nexport { ForwardRef as ReactComponent };","/** @jsxImportSource @emotion/react */\r\nimport Typography from '@mui/material/Typography';\r\nimport React from 'react';\r\nimport { useTranslation } from 'translation';\r\n\r\nimport { Connector } from 'clients/web3';\r\n\r\nimport { SecondaryButton } from '../../Button';\r\nimport { EllipseAddress } from '../../EllipseAddress';\r\nimport { WALLETS } from '../constants';\r\nimport { useStyles } from './styles';\r\n\r\nexport interface AccountDetailsProps {\r\n onLogOut: () => void;\r\n account: {\r\n address: string;\r\n connector?: Connector;\r\n };\r\n}\r\n\r\nexport const AccountDetails: React.FC = ({\r\n onLogOut,\r\n account,\r\n}) => {\r\n const styles = useStyles();\r\n const { t } = useTranslation();\r\n\r\n // Grab the wallet info. Note that we default to the first wallet in the list\r\n // if no match is found, but in reality that case should never happen\r\n const { Logo: WalletLogo, name: walletName } =\r\n WALLETS.find(wallet => wallet.connector === account.connector) || WALLETS[0];\r\n\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n {walletName}\r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n {t('authModal.accountDetails.logOutButtonLabel')}\r\n \r\n
\r\n );\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n theme,\r\n container: css`\r\n color: ${theme.palette.text.primary};\r\n\r\n ${theme.breakpoints.down('md')} {\r\n text-align: center;\r\n }\r\n `,\r\n infoContainer: css`\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: ${theme.spacing(4)};\r\n\r\n ${theme.breakpoints.down('md')} {\r\n display: block;\r\n margin-bottom: ${theme.spacing(6)};\r\n }\r\n `,\r\n walletLogo: css`\r\n width: ${theme.spacing(12)};\r\n height: auto;\r\n margin-right: ${theme.spacing(4)};\r\n flex-shrink: 0;\r\n\r\n ${theme.breakpoints.down('md')} {\r\n margin-right: 0;\r\n margin-bottom: ${theme.spacing(2)};\r\n }\r\n `,\r\n infoRightColumn: css`\r\n flex: 1;\r\n `,\r\n walletName: css`\r\n display: block;\r\n margin-bottom: ${theme.spacing(1)};\r\n color: ${theme.palette.text.secondary};\r\n\r\n ${theme.breakpoints.down('md')} {\r\n margin-bottom: ${theme.spacing(4)};\r\n }\r\n `,\r\n accountAddressContainer: css`\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n\r\n ${theme.breakpoints.down('md')} {\r\n justify-content: center;\r\n }\r\n `,\r\n accountAddress: css`\r\n margin-right: ${theme.spacing(2)};\r\n letter-spacing: -0.75px;\r\n `,\r\n copyButton: css`\r\n cursor: pointer;\r\n background-color: transparent;\r\n border: 0;\r\n padding: ${theme.spacing(1)};\r\n margin: ${theme.spacing(-1)};\r\n line-height: 0;\r\n\r\n :hover > svg {\r\n color: ${theme.palette.button.medium};\r\n }\r\n\r\n :active > svg {\r\n color: ${theme.palette.button.dark};\r\n }\r\n `,\r\n copyButtonIcon: css`\r\n color: ${theme.palette.button.main};\r\n width: ${theme.spacing(6)};\r\n height: ${theme.spacing(6)};\r\n transition: color 0.3s;\r\n `,\r\n bscScanLinkContainer: css`\r\n margin-left: ${theme.spacing(16)};\r\n margin-bottom: ${theme.spacing(10)};\r\n\r\n ${theme.breakpoints.down('md')} {\r\n margin: 0 auto ${theme.spacing(8)};\r\n }\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport Typography from '@mui/material/Typography';\r\nimport config from 'config';\r\nimport React from 'react';\r\n\r\nimport { Connector } from 'clients/web3';\r\nimport { useTranslation } from 'translation';\r\n\r\nimport {\r\n WALLETS,\r\n} from '../constants';\r\nimport { useStyles } from './styles';\r\nimport {Box} from \"@mui/material\";\r\n\r\nexport interface WalletListProps {\r\n onLogin: (connector: Connector) => void;\r\n}\r\n\r\nexport const WalletList: React.FC = ({ onLogin }) => {\r\n const styles = useStyles();\r\n const { t } = useTranslation();\r\n return (\r\n
\r\n \r\n {t('authModal.title.connectWalletSelected')}\r\n \r\n
\r\n {WALLETS.filter(({ mainnetOnly }) => !mainnetOnly || !config.isOnTestnet).map(\r\n ({ name, connector, Logo }) => (\r\n onLogin(connector)}\r\n >\r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n ),\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n theme,\r\n container: css`\r\n margin: ${theme.spacing(0, 10)};\r\n text-align: center;\r\n\r\n ${theme.breakpoints.down('md')} {\r\n margin: ${theme.spacing(-2, 4, 0)};\r\n }\r\n `,\r\n walletList: css`\r\n margin-bottom: ${theme.spacing(8)};\r\n display: flex;\r\n align-items: center;\r\n margin-top: 48px;\r\n flex-direction: column;\r\n row-gap: ${theme.spacing(5)};\r\n & > button{\r\n max-width: 292px;\r\n }\r\n ${theme.breakpoints.down('md')} {\r\n margin-top: 40px;\r\n margin-bottom: ${theme.spacing(2)};\r\n & > button{\r\n max-width: 280px;\r\n }\r\n }\r\n `,\r\n subtitle: css`\r\n font-size: 16px;\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 14px;\r\n }\r\n `,\r\n getListItem: ({ isActionable }: { isActionable: boolean }) => css`\r\n width: 100%;\r\n display: flex;\r\n background: ${theme.palette.interactive.primary};\r\n align-items: center;\r\n box-shadow: none;\r\n border: 2px solid transparent;\r\n border-radius: 12px;\r\n padding: 8px 24px;\r\n color: ${theme.palette.text.primary};\r\n text-align: center;\r\n ${theme.breakpoints.down('md')} {\r\n padding: 8px 18px;\r\n }\r\n ${isActionable &&\r\n css`\r\n cursor: pointer;\r\n\r\n :hover {\r\n background: ${theme.palette.interactive.hover};\r\n border: 2px solid transparent;\r\n }\r\n `}\r\n `,\r\n walletLogo: css`\r\n margin: ${theme.spacing(0, 'auto', 1)};\r\n display: block;\r\n\r\n ${theme.breakpoints.down('md')} {\r\n width: ${theme.spacing(10)};\r\n }\r\n `,\r\n comingSoonText: css`\r\n color: ${theme.palette.text.secondary};\r\n `,\r\n footer: css`\r\n text-align: center;\r\n padding: ${theme.spacing(0, 4)};\r\n `,\r\n footerLink: css`\r\n color: ${theme.palette.button.main};\r\n\r\n :hover {\r\n color: ${theme.palette.button.medium};\r\n }\r\n\r\n :active {\r\n color: ${theme.palette.button.dark};\r\n }\r\n `,\r\n };\r\n};\r\n","import React from 'react';\r\nimport { useTranslation } from 'translation';\r\n\r\nimport { Modal, ModalProps } from '../Modal';\r\nimport { AccountDetails, AccountDetailsProps } from './AccountDetails';\r\nimport { WalletList, WalletListProps } from './WalletList';\r\n\r\nexport interface AuthModalProps {\r\n isOpen: boolean;\r\n onClose: ModalProps['handleClose'];\r\n onLogin: WalletListProps['onLogin'];\r\n onLogOut: AccountDetailsProps['onLogOut'];\r\n account?: AccountDetailsProps['account'];\r\n}\r\n\r\nexport const AuthModal: React.FC = ({\r\n isOpen,\r\n onClose,\r\n onLogin,\r\n onLogOut,\r\n account,\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n {!account ? t('authModal.title.connectWallet') : t('authModal.title.yourWallet')}\r\n }\r\n >\r\n {!account ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\n\r\nimport { Connector, useAuth } from 'clients/web3';\r\nimport { AuthModal } from 'components/AuthModal';\r\nimport noop from '../utilities/noop-ts';\r\n\r\nexport interface Account {\r\n address: string;\r\n connector?: Connector;\r\n}\r\n\r\nexport interface AuthContextValue {\r\n login: (connector: Connector) => Promise;\r\n logOut: () => void;\r\n openAuthModal: () => void;\r\n closeAuthModal: () => void;\r\n account?: Account;\r\n}\r\n\r\nexport const AuthContext = React.createContext({\r\n login: noop,\r\n logOut: noop,\r\n openAuthModal: noop,\r\n closeAuthModal: noop,\r\n});\r\n\r\nexport const AuthProvider: React.FC = ({ children }) => {\r\n const [isAuthModalOpen, setIsAuthModalOpen] = React.useState(false);\r\n\r\n const { login, accountAddress, logOut, connectedConnector } = useAuth();\r\n\r\n const openAuthModal = () => setIsAuthModalOpen(true);\r\n const closeAuthModal = () => setIsAuthModalOpen(false);\r\n\r\n const handleLogin = (connector: Connector) => {\r\n login(connector);\r\n closeAuthModal();\r\n };\r\n\r\n const account = accountAddress\r\n ? {\r\n address: accountAddress,\r\n connector: connectedConnector,\r\n }\r\n : undefined;\r\n\r\n return (\r\n \r\n \r\n\r\n {children}\r\n \r\n );\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const styles = () => {\r\n const theme = useTheme();\r\n return {\r\n line: css`\r\n width: 100%;\r\n height: 1px;\r\n background: ${theme.palette.customBackground.line};\r\n `,\r\n };\r\n};\r\n\r\nexport default styles;\r\n","/** @jsxImportSource @emotion/react */\r\nimport useStyles from './styles';\r\nimport {Box} from \"@mui/material\";\r\n\r\nexport const Line = () => {\r\n const styles = useStyles();\r\n\r\n return ;\r\n};\r\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgGitBookIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n width: \"800px\",\n height: \"800px\",\n viewBox: \"0 0 24 24\",\n role: \"img\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.802 17.77a.703.703 0 1 1-.002 1.406.703.703 0 0 1 .002-1.406m11.024-4.347a.703.703 0 1 1 .001-1.406.703.703 0 0 1-.001 1.406m0-2.876a2.176 2.176 0 0 0-2.174 2.174c0 .233.039.465.115.691l-7.181 3.823a2.165 2.165 0 0 0-1.784-.937c-.829 0-1.584.475-1.95 1.216l-6.451-3.402c-.682-.358-1.192-1.48-1.138-2.502.028-.533.212-.947.493-1.107.178-.1.392-.092.62.027l.042.023c1.71.9 7.304 3.847 7.54 3.956.363.169.565.237 1.185-.057l11.564-6.014c.17-.064.368-.227.368-.474 0-.342-.354-.477-.355-.477-.658-.315-1.669-.788-2.655-1.25-2.108-.987-4.497-2.105-5.546-2.655-.906-.474-1.635-.074-1.765.006l-.252.125C7.78 6.048 1.46 9.178 1.1 9.397.457 9.789.058 10.57.006 11.539c-.08 1.537.703 3.14 1.824 3.727l6.822 3.518a2.175 2.175 0 0 0 2.15 1.862 2.177 2.177 0 0 0 2.173-2.14l7.514-4.073c.38.298.853.461 1.337.461A2.176 2.176 0 0 0 24 12.72a2.176 2.176 0 0 0-2.174-2.174\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGitBookIcon);\nexport default __webpack_public_path__ + \"static/media/gitBookIcon.99a5112a.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgArbitrumIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 28,\n viewBox: \"0 0 24 28\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.0361 12.7712L17.0149 9.29787L22.3487 17.8912L22.3511 19.5404L22.3337 8.192C22.3211 7.9145 22.1787 7.66067 21.9516 7.51094L12.3488 1.79736C12.1243 1.68314 11.8393 1.68451 11.6152 1.80096C11.5848 1.81674 11.5565 1.83372 11.5293 1.85241L11.4958 1.87419L2.17477 7.46155L2.13863 7.4787C2.09204 7.50065 2.04512 7.52895 2.00085 7.56154C1.82411 7.69257 1.70672 7.88654 1.66875 8.10384C1.66312 8.13677 1.65881 8.17039 1.65698 8.20434L1.67157 17.4522L6.63973 9.48687C7.26512 8.43073 8.62799 8.09029 9.8932 8.10899L11.3779 8.14946L2.62923 22.6629L3.66049 23.2771L12.514 8.16421L16.4273 8.14946L7.59672 23.6437L11.2766 25.8334L11.7163 26.0947C11.9023 26.173 12.1215 26.1769 12.309 26.1068L22.0467 20.2693L20.185 21.3853L15.0361 12.7712ZM15.791 24.0195L12.0743 17.985L14.3432 14.0023L19.2245 21.9611L15.791 24.0195Z\",\n fill: \"#2D374B\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.0732 17.985L15.7901 24.0193L19.2235 21.961L14.3422 14.0022L12.0732 17.985Z\",\n fill: \"#28A0F0\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.3507 19.5404L22.3482 17.8912L17.0144 9.29785L15.0356 12.7712L20.1847 21.3853L22.0464 20.2693C22.229 20.116 22.3396 19.8908 22.3512 19.6479L22.3507 19.5404Z\",\n fill: \"#28A0F0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 21.0957L2.62907 22.6628L11.3778 8.14934L9.89303 8.10887C8.62799 8.09034 7.26513 8.43061 6.63957 9.48675L1.67141 17.452L0 20.1085V21.0957Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.427 8.14941L12.5136 8.16416L3.66016 23.277L6.75479 25.12L7.59621 23.6437L16.427 8.14941Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24 8.12839C23.9673 7.28184 23.5242 6.50697 22.8301 6.05573L13.1016 0.268408C12.415 -0.0891835 11.5573 -0.0896979 10.8694 0.268237C10.7882 0.310599 1.40862 5.93774 1.40862 5.93774C1.2788 6.00205 1.15379 6.07872 1.03624 6.16584C0.416652 6.62531 0.0389627 7.33912 0 8.12325V20.1087L1.67141 17.4522L1.65682 8.2042C1.65881 8.17041 1.66296 8.13697 1.6686 8.10421C1.7064 7.88657 1.82395 7.69259 2.00069 7.56139C2.04496 7.52881 11.5845 1.8166 11.6149 1.80082C11.8392 1.68437 12.124 1.683 12.3485 1.79722L21.9512 7.5108C22.1784 7.66052 22.3208 7.91435 22.3334 8.19185V19.6476C22.3218 19.8905 22.2289 20.1157 22.0464 20.269L20.1846 21.385L19.224 21.9609L15.7907 24.0192L12.3087 26.1064C12.1212 26.1766 11.9018 26.1726 11.716 26.0944L7.59639 23.6434L6.7548 25.1197L10.4571 27.3246C10.5794 27.3967 10.6885 27.4605 10.7781 27.5126C10.9167 27.593 11.0112 27.6467 11.0445 27.6635C11.3076 27.7958 11.6861 27.8726 12.0274 27.8726C12.3401 27.8726 12.6451 27.8133 12.9338 27.6963L23.0473 21.6378C23.6278 21.1725 23.9693 20.4709 24 19.7109V8.12839Z\",\n fill: \"#96BEDC\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArbitrumIcon);\nexport default __webpack_public_path__ + \"static/media/arbitrumIcon.a27f0bc4.svg\";\nexport { ForwardRef as ReactComponent };","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\nimport TelegramIcon from '@mui/icons-material/Telegram';\r\nimport TwitterIcon from '@mui/icons-material/Twitter';\r\nimport LinkedInIcon from '@mui/icons-material/LinkedIn';\r\nimport YouTubeIcon from '@mui/icons-material/YouTube';\r\nimport {ReactComponent as MediumIcon} from '../../../../../assets/img/icons/medium.svg';\r\nimport {ReactComponent as GitBookIcon} from '../../../../../assets/img/icons/gitBookIcon.svg';\r\nimport {Box, useTheme} from '@mui/material';\r\nimport {useStyles} from \"./styles\";\r\n\r\nconst SocialMedia: React.FC = () => {\r\n const styles = useStyles();\r\n const theme = useTheme();\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SocialMedia;\r\n","// import { css } from '@emotion/react';\r\nimport {css, useTheme} from \"@mui/material\";\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n return {\r\n socialMedia: css `\r\n display: flex;\r\n gap: 24px;\r\n & > a {\r\n width: 28px;\r\n height: 28px;\r\n background: ${theme.palette.customBackground.social};\r\n border-radius: 50%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n & > svg {\r\n width: 16px;\r\n height: 16px;\r\n }\r\n }\r\n ${theme.breakpoints.down('md')} {\r\n gap: 13px;\r\n }\r\n `,\r\n icons: css`\r\n & > path {\r\n fill: ${theme.palette.text.primary};\r\n }\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\nimport { useTranslation } from 'translation';\r\nimport {Container, Box, Typography} from '@mui/material';\r\nimport { useStyles } from './styles';\r\nimport {Line} from \"../../Line\";\r\nimport SocialMedia from \"./components/socialMedia\";\r\n\r\nconst FooterUi: React.FC = () => {\r\n const styles = useStyles();\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {t('footer.projects')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n © {t('footer.text')}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FooterUi;\r\n","import { css } from '@emotion/react';\r\nimport {useTheme} from \"@mui/material\";\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n return {\r\n footer: css`\r\n border-radius: 0;\r\n padding: 0 !important;\r\n background: transparent;\r\n `,\r\n footerLinks: css`\r\n font-size: 14px;\r\n color: ${theme.palette.text.primary};\r\n `,\r\n footerInfo: css`\r\n font-size: 14px;\r\n color: ${theme.palette.text.secondary};\r\n ${theme.breakpoints.down('sm')} {\r\n font-size: 12px;\r\n }\r\n `,\r\n footerThrupenny: css`\r\n display: flex;\r\n padding: 19px 80px 26px;\r\n ${theme.breakpoints.down('md')} {\r\n padding: 20px 18px;\r\n }\r\n `,\r\n pageLinks: css`\r\n display: flex;\r\n padding: 0 80px 16px;\r\n justify-content: space-between;\r\n ${theme.breakpoints.down('md')} {\r\n display: none;\r\n }\r\n `,\r\n };\r\n};\r\n","export default __webpack_public_path__ + \"static/media/thrupennyLogo.b7376098.svg\";","export default __webpack_public_path__ + \"static/media/thrupennyLogoLight.724abb80.svg\";","export default __webpack_public_path__ + \"static/media/walletIcon.ee63f683.svg\";","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\nimport { useTranslation } from 'translation';\r\nimport { truncateAddress } from 'utilities';\r\n\r\nimport { AuthContext } from 'context/AuthContext';\r\n\r\nimport { ButtonProps, PrimaryButton } from '../../Button';\r\nimport WalletIcon from '../../../assets/img/icons/walletIcon.svg';\r\nimport {Typography} from \"@mui/material\";\r\nimport {useStyles} from \"./styles\";\r\n\r\nexport interface ConnectButtonProps extends ButtonProps {\r\n accountAddress?: string;\r\n}\r\n\r\nexport const ConnectButtonUi: React.FC = ({\r\n accountAddress,\r\n ...otherProps\r\n}) => {\r\n const { t } = useTranslation();\r\n const styles = useStyles();\r\n return (\r\n \r\n <>\r\n \r\n \r\n {!accountAddress ? t('connectButton.title') : truncateAddress(accountAddress)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const ConnectButton: React.FC = props => {\r\n const { account, openAuthModal } = React.useContext(AuthContext);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ConnectButton;\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n text: css`\r\n font-size: 13px;\r\n color: #FCFCFF;\r\n ${theme.breakpoints.down('md')}{\r\n font-size: 12px;\r\n }\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport MuiToolbar, { ToolbarProps } from '@mui/material/Toolbar';\r\nimport React from 'react';\r\n\r\nimport { useStyles } from './styles';\r\n\r\nexport const Toolbar = (props: ToolbarProps) => {\r\n const styles = useStyles();\r\n return ;\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n return css`\r\n padding-top: ${theme.spacing(3)};\r\n padding-bottom: ${theme.spacing(3)};\r\n [${theme.breakpoints.down('md')}]: {\r\n min-height: none;\r\n }\r\n `;\r\n};\r\n","export default __webpack_public_path__ + \"static/media/moonIcon.6302a59e.svg\";","export default __webpack_public_path__ + \"static/media/sunIcon.8cc91b31.svg\";","import * as React from 'react';\r\nimport {styled} from '@mui/material/styles';\r\nimport FormGroup from '@mui/material/FormGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Switch from '@mui/material/Switch';\r\nimport {getMode, useAppSelector} from 'features';\r\nimport {LANGUAGES} from \"../../constants/languages\";\r\nimport MoonIcon from \"../../assets/img/icons/moonIcon.svg\";\r\nimport SunIcon from \"../../assets/img/icons/sunIcon.svg\";\r\nimport {Mode} from \"../../types\";\r\n\r\nconst MaterialUISwitch = styled(Switch)(({ theme }) => ({\r\n width: 56,\r\n height: 30,\r\n padding: 2,\r\n '& .MuiSwitch-switchBase': {\r\n margin: 3,\r\n padding: 0,\r\n transform: 'translateX(3)',\r\n color: theme.palette.interactive.success50,\r\n fontWeight: 500,\r\n '&.Mui-checked': {\r\n color: theme.palette.interactive.success50,\r\n transform: 'translateX(25px)',\r\n '& .MuiSwitch-thumb:before': {\r\n content: \"''\",\r\n fontSize: 12,\r\n fontWeight: 500,\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n left: '0',\r\n top: '0',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center',\r\n backgroundImage: `url(${SunIcon})`\r\n },\r\n '& + .MuiSwitch-track': {\r\n opacity: 1,\r\n background: theme.palette.switchMode.background,\r\n },\r\n },\r\n },\r\n '& .MuiSwitch-thumb': {\r\n backgroundColor: '#FCFCFF',\r\n width: 24,\r\n height: 24,\r\n '&:before': {\r\n content: \"''\",\r\n backgroundImage: `url(${MoonIcon})`,\r\n fontSize: 12,\r\n fontWeight: 600,\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n left: '-1px',\r\n top: '0',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center',\r\n },\r\n },\r\n '& .MuiSwitch-track': {\r\n opacity: 1,\r\n background: theme.palette.switchMode.background,\r\n borderRadius: 26 / 2,\r\n '&:before': {\r\n content: '\"Off\"',\r\n position: 'absolute',\r\n fontSize: 11,\r\n fontWeight: 500,\r\n color: theme.palette.switchMode.text,\r\n top: '50%',\r\n right: 8,\r\n transform: 'translateY(-50%)',\r\n width: 'auto',\r\n height: 16,\r\n },\r\n '&:after': {\r\n content: '\"On\"',\r\n fontSize: 12,\r\n position: 'absolute',\r\n fontWeight: 500,\r\n color: theme.palette.switchMode.text,\r\n top: '47%',\r\n left: 5,\r\n transform: 'translateY(-50%)',\r\n width: 16,\r\n height: 16,\r\n },\r\n },\r\n}));\r\n\r\n\r\nconst MaterialUILanguageSwitch = styled(Switch)(({ theme }) => ({\r\n width: 56,\r\n height: 30,\r\n padding: 2,\r\n '& .MuiSwitch-switchBase': {\r\n margin: 3,\r\n padding: 0,\r\n transform: 'translateX(3)',\r\n fontWeight: 500,\r\n '&.Mui-checked': {\r\n transform: 'translateX(25px)',\r\n '& .MuiSwitch-thumb:before': {\r\n content: \"'中文'\",\r\n fontSize: 12,\r\n fontWeight: 500,\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n left: '0',\r\n top: '3px',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center',\r\n },\r\n '& + .MuiSwitch-track': {\r\n opacity: 1,\r\n background: theme.palette.switchLang.background,\r\n },\r\n },\r\n },\r\n '& .MuiSwitch-thumb': {\r\n background: theme.palette.switchLang.iconBackground,\r\n width: 24,\r\n height: 24,\r\n '&:before': {\r\n content: \"'EN'\",\r\n fontSize: 12,\r\n color: theme.palette.switchLang.activeText,\r\n fontWeight: 600,\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n left: '3px',\r\n top: '3px',\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center',\r\n },\r\n },\r\n '& .MuiSwitch-track': {\r\n opacity: 1,\r\n background: theme.palette.switchLang.background,\r\n borderRadius: 26 / 2,\r\n '&:before': {\r\n content: '\"中文\"',\r\n position: 'absolute',\r\n fontSize: 11,\r\n fontWeight: 500,\r\n color: theme.palette.switchLang.text,\r\n top: '50%',\r\n right: 5,\r\n transform: 'translateY(-50%)',\r\n width: 'auto',\r\n height: 16,\r\n },\r\n '&:after': {\r\n content: '\"EN\"',\r\n fontSize: 12,\r\n position: 'absolute',\r\n fontWeight: 500,\r\n color: theme.palette.switchLang.text,\r\n top: '50%',\r\n left: 5,\r\n transform: 'translateY(-50%)',\r\n width: 16,\r\n height: 16,\r\n },\r\n },\r\n}));\r\n\r\nexport const SwitchComponent = ({ change }: { change: () => void }) => {\r\n const mode = useAppSelector(getMode);\r\n return \r\n }\r\n sx={{\r\n margin: 0,\r\n }}\r\n label=\"\"\r\n />\r\n ;\r\n};\r\n\r\n\r\nexport const SwitchLanguageComponent = ({ change }: { change: () => void }) => {\r\n const lang = localStorage.getItem('i18next') || LANGUAGES[0];\r\n return \r\n }\r\n sx={{\r\n margin: 0,\r\n }}\r\n label=\"\"\r\n />\r\n ;\r\n};\r\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgEthereumIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 25,\n viewBox: \"0 0 24 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 24.8C18.6274 24.8 24 19.2483 24 12.4C24 5.55167 18.6274 0 12 0C5.37258 0 0 5.55167 0 12.4C0 19.2483 5.37258 24.8 12 24.8Z\",\n fill: \"#627EEA\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.374 3.09814V9.97272L17.9968 12.5693L12.374 3.09814Z\",\n fill: \"white\",\n fillOpacity: 0.602\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.374 3.09814L6.75122 12.5693L12.374 9.97272V3.09814Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.374 17.0235V21.6947L18 13.6506L12.374 17.0235Z\",\n fill: \"white\",\n fillOpacity: 0.602\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.374 21.6947V17.0235L6.75122 13.6506L12.374 21.6947Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.374 15.9424L17.9968 12.5695L12.374 9.9729V15.9424Z\",\n fill: \"white\",\n fillOpacity: 0.2\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.75122 12.5695L12.374 15.9424V9.9729L6.75122 12.5695Z\",\n fill: \"white\",\n fillOpacity: 0.602\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEthereumIcon);\nexport default __webpack_public_path__ + \"static/media/ethereumIcon.492188dd.svg\";\nexport { ForwardRef as ReactComponent };","import {API_ENDPOINT_URLS} from 'constants/endpoints';\r\nimport {TPYChainId} from \"../../../types\";\r\nimport {ETH_SCAN_NAMES, ETH_SCAN_SYMBOl, ETH_SCAN_URLS} from \"../../../constants/eth\";\r\n\r\n// Prompt the user to add BSC as a network, or switch to BSC if the wallet is on\r\n// a different network\r\nconst setUpNetwork = async (chainId: TPYChainId) => {\r\n if (!window.ethereum) {\r\n // TODO: send error to Sentry\r\n\r\n console.error(\"Can't set up the BSC network on wallet because window.ethereum is undefined\");\r\n return false;\r\n }\r\n try {\r\n await window.ethereum.request({\r\n method: 'wallet_addEthereumChain',\r\n params: [\r\n {\r\n chainId: `0x${chainId.toString(16)}`,\r\n chainName: ETH_SCAN_NAMES[chainId],\r\n rpcUrls: [API_ENDPOINT_URLS[chainId]],\r\n blockExplorerUrls: [`${ETH_SCAN_URLS[chainId]}/`],\r\n nativeCurrency: {\r\n name: ETH_SCAN_SYMBOl[chainId],\r\n symbol: ETH_SCAN_SYMBOl[chainId],\r\n decimals: 18\r\n }\r\n },\r\n ],\r\n });\r\n\r\n return true;\r\n } catch (error) {\r\n // TODO: send error to Sentry\r\n\r\n console.error('Failed to set up network on wallet:', error);\r\n return false;\r\n }\r\n};\r\n\r\nexport default setUpNetwork;\r\n","/** @jsxImportSource @emotion/react */\r\nimport * as React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport {NetworkState, TPYChainId} from \"../../../types\"\r\nimport FormControl from '@mui/material/FormControl';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select, { SelectChangeEvent } from '@mui/material/Select';\r\nimport { useSelector } from 'react-redux';\r\nimport {changeConfig, getConfig} from \"../../../features\";\r\nimport switchNetwork from \"../../../clients/web3/useAuth/switchNetwork\";\r\nimport {ReactComponent as ArbitrumIcon} from '../../../assets/img/icons/arbitrumIcon.svg';\r\nimport {ReactComponent as EthereumIcon} from '../../../assets/img/icons/ethereumIcon.svg';\r\nimport {useStyles} from \"./styles\";\r\nimport setUpNetwork from \"../../../clients/web3/useAuth/setUpNetwork\";\r\n\r\nexport default function SelectSmall() {\r\n const dispatch = useDispatch();\r\n const {network} = useSelector(getConfig);\r\n const styles = useStyles();\r\n\r\n const handleChange = async (event:SelectChangeEvent) => {\r\n try {\r\n await switchNetwork(+event.target.value as TPYChainId);\r\n localStorage.setItem('network', event.target.value);\r\n await dispatch(changeConfig({ network: event.target.value as NetworkState }));\r\n }catch (e: unknown){\r\n const message = e as string;\r\n if (message.includes('wallet_addEthereumChain')){\r\n await setUpNetwork(+event.target.value as TPYChainId);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n Ethereum\r\n Arbitrum\r\n \r\n \r\n );\r\n}\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n return {\r\n select: css`\r\n & > .MuiOutlinedInput-input {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n },\r\n & .MuiOutlinedInput-notchedOutline{\r\n border-color: ${theme.palette.customBackground.card} !important;\r\n },\r\n & > fieldset{\r\n border: 1px solid ${theme.palette.customBackground.card};\r\n border-radius: 10px;\r\n &:hover{\r\n border: 1px solid ${theme.palette.customBackground.card};\r\n }\r\n &:focus-visible{\r\n border: 1px solid ${theme.palette.customBackground.card};\r\n border-color: ${theme.palette.customBackground.card};\r\n }\r\n }\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport * as React from 'react';\r\nimport Drawer from '@mui/material/Drawer';\r\nimport Button from '@mui/material/Button';\r\nimport MenuIcon from '@mui/icons-material/Menu';\r\nimport Box from \"@mui/material/Box\";\r\nimport {Mode} from \"../../types\";\r\nimport {useTranslation} from 'translation';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nimport ThrupennyLogoLight from \"../../assets/img/thrupennyLogoLight.svg\";\r\nimport ThrupennyLogo from \"../../assets/img/thrupennyLogo.svg\";\r\nimport {changeMode, getMode, useAppDispatch, useAppSelector} from \"../../features\";\r\nimport {useStyles} from './styles';\r\nimport {Typography, useTheme} from \"@mui/material\";\r\nimport {SwitchComponent, SwitchLanguageComponent} from \"../Switch\";\r\nimport {Line} from \"../Line\";\r\nimport SocialMedia from \"../Layout/Footer/components/socialMedia\";\r\nimport SelectNetworkButton from 'components/Layout/SelectNetworkButton';\r\n\r\nexport const DrawerComponent: React.FC = () => {\r\n const mode = useAppSelector(getMode);\r\n const theme = useTheme();\r\n const dispatch = useAppDispatch();\r\n const {t, i18n} = useTranslation();\r\n const [right, setRight] = React.useState(false);\r\n const styles = useStyles();\r\n const toggleDrawer =\r\n (open: boolean) =>\r\n (event: React.KeyboardEvent | React.MouseEvent) => {\r\n if (\r\n event.type === 'keydown' &&\r\n ((event as React.KeyboardEvent).key === 'Tab' ||\r\n (event as React.KeyboardEvent).key === 'Shift')\r\n ) {\r\n return;\r\n }\r\n setRight(open);\r\n };\r\n const handleClose = () => {\r\n setRight(false);\r\n }\r\n const handleMode = () => {\r\n dispatch(changeMode((mode === Mode.LIGHT && Mode.DARK) || Mode.LIGHT));\r\n };\r\n const handleChange = () => {\r\n const lang = localStorage.getItem('i18next');\r\n i18n.changeLanguage(lang === \"en\" ? \"zh\" : \"en\");\r\n localStorage.setItem('i18next', lang === \"en\" ? \"zh\" : \"en\");\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n Select Network\r\n \r\n \r\n\r\n \r\n \r\n \r\n {t('drawer.languages')}\r\n \r\n \r\n \r\n \r\n \r\n {mode === Mode.LIGHT ? t('drawer.light') : t('drawer.dark')}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {t('footer.yieldFarming')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('footer.projects')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('drawer.socialMedia')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","enum FunctionKey {\r\n // Queries\r\n GET_TOKEN_PRICE = 'GET_TOKEN_PRICE',\r\n GET_BLOCK_NUMBER = 'GET_BLOCK_NUMBER',\r\n GET_TOKEN_ALLOWANCE = 'GET_TOKEN_ALLOWANCE',\r\n GET_BALANCE_OF = 'GET_BALANCE_OF',\r\n GET_TRANSACTIONS = 'GET_TRANSACTIONS',\r\n GET_POOL_INFO = 'GET_POOL_INFO',\r\n GET_USER_INFO = 'GET_USER_INFO',\r\n GET_USER_ID = 'GET_USER_ID',\r\n\r\n // Mutations\r\n APPROVE_TOKEN = 'APPROVE_TOKEN',\r\n STAKE_TOKEN = 'STAKE_TOKEN',\r\n WITHDRAW_TOKEN = 'WITHDRAW_TOKEN',\r\n}\r\n\r\nexport default FunctionKey;\r\n","import {css} from '@emotion/react';\r\nimport {useTheme} from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n drawer: css`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n `,\r\n closeIcon: css`\r\n margin-top: 5px;\r\n height: ${theme.shape.iconSize.xLarge}px;\r\n width: ${theme.shape.iconSize.xLarge}px;\r\n margin-left: auto;\r\n min-width: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n `,SelectNetworkButton: css`\r\n margin-top: 5px;\r\n height: ${theme.shape.iconSize.xLarge}px;\r\n width: ${theme.shape.iconSize.xLarge}px;\r\n margin-left: auto;\r\n min-width: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n `,\r\n switches: css`\r\n display: flex;\r\n justify-content: space-between; \r\n margin-top: 16px;\r\n align-items: center;\r\n `,\r\n drawerText: css`\r\n color: ${theme.palette.text.primary};\r\n font-size: 12px;\r\n `,\r\n products: css`\r\n color: ${theme.palette.text.primary};\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport Typography from '@mui/material/Typography';\r\nimport React, {useEffect, useState} from 'react';\r\nimport {useTranslation} from 'translation';\r\n\r\nimport ThrupennyLogo from 'assets/img/thrupennyLogo.svg';\r\nimport ThrupennyLogoLight from 'assets/img/thrupennyLogoLight.svg';\r\n\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Box from '@mui/material/Box';\r\nimport {Button, FormControl, Select, SelectChangeEvent} from '@mui/material';\r\nimport AppBar from '@mui/material/AppBar';\r\nimport {useHistory} from 'react-router';\r\nimport {useLocation} from 'react-router-dom';\r\nimport ConnectButton from '../ConnectButton';\r\nimport {Toolbar} from '../Toolbar';\r\nimport {useStyles} from './styles';\r\nimport {Mode, NetworkState, TPYChainId} from '../../../types';\r\nimport {LANGUAGES} from '../../../constants/languages';\r\nimport {changeConfig, changeMode, getMode, useAppDispatch, useAppSelector} from '../../../features';\r\nimport {SwitchComponent} from '../../Switch';\r\nimport {DrawerComponent} from \"../../Drawer\";\r\nimport SelectNetworkButton from \"../SelectNetworkButton\"\r\nimport switchNetwork from \"../../../clients/web3/useAuth/switchNetwork\";\r\nimport setUpNetwork from \"../../../clients/web3/useAuth/setUpNetwork\";\r\n\r\nconst NavbarUi: React.FC = () => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const {t, i18n} = useTranslation();\r\n const styles = useStyles();\r\n const mode = useAppSelector(getMode);\r\n const pages = [{name: 'stake', link: '/'}];\r\n const dispatch = useAppDispatch();\r\n const [language, setLanguage] = useState(localStorage.getItem('i18next') || LANGUAGES[0]);\r\n const handleNavigateToPage = (page: string | null) => page && history.push(page);\r\n\r\n useEffect(() => {\r\n const params = location.pathname.split('/');\r\n if (params[2] && params[3]) {\r\n const chainId = params[2] as TPYChainId;\r\n switchNetwork(+params[2] as TPYChainId).then().catch((e) => {\r\n const message = e as string;\r\n if (message.includes('wallet_addEthereumChain')) {\r\n setUpNetwork(+chainId).then(async () => {\r\n localStorage.setItem('network', chainId.toString());\r\n await dispatch(changeConfig({network: chainId.toString() as NetworkState}));\r\n })\r\n }\r\n })\r\n }\r\n },\r\n [location.pathname]\r\n );\r\n const handleMode = () => {\r\n dispatch(changeMode((mode === Mode.LIGHT && Mode.DARK) || Mode.LIGHT));\r\n };\r\n\r\n const handleChange = (event: SelectChangeEvent) => {\r\n setLanguage(event.target.value);\r\n i18n.changeLanguage(event.target.value);\r\n localStorage.setItem('i18next', event.target.value);\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {pages.map((page) => (\r\n handleNavigateToPage(page.link)}\r\n css={location.pathname === page.link ? styles.activeLink : styles.item}\r\n >\r\n {t(`header.menuItems.${page.name}`)}\r\n \r\n ))}\r\n \r\n \r\n {t('footer.yieldFarming')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {LANGUAGES.map(lang => {t(`languages.${lang}`)}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NavbarUi;\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n return {\r\n appbar: css`\r\n height: 69px;\r\n padding: 0 28px;\r\n border-radius: 0;\r\n background: ${theme.palette.customBackground.navBar};\r\n ${theme.breakpoints.down('md')} {\r\n padding: 0 0 0 16px;\r\n height: 64px;\r\n }\r\n `,\r\n connectPart: css`\r\n flex-grow: 0;\r\n display: flex;\r\n gap: 30px;\r\n align-items: center;\r\n ${theme.breakpoints.down('md')} {\r\n gap: 10px;\r\n }\r\n `,\r\n toolbar: css`\r\n height: 100%;\r\n padding: 0;\r\n display: flex;\r\n justify-content: space-between;\r\n ${theme.breakpoints.down('md')} {\r\n & > a {\r\n height: 20px !important;\r\n }\r\n }\r\n `,\r\n listItem: css`\r\n color: ${theme.palette.text.secondary};\r\n padding: 0;\r\n\r\n ${theme.breakpoints.down('xl')} {\r\n :hover {\r\n background-color: var(--color-bg-appbar-active);\r\n }\r\n\r\n :hover > a {\r\n background-color: ${theme.palette.secondary.light};\r\n }\r\n }\r\n\r\n a {\r\n padding: ${theme.spacing(4)} ${theme.spacing(4)} ${theme.spacing(4)} ${theme.spacing(8)};\r\n display: inline-flex;\r\n justify-content: start;\r\n width: 100%;\r\n\r\n ${theme.breakpoints.down('xl')} {\r\n width: auto;\r\n margin: auto;\r\n border-radius: ${theme.shape.borderRadius.medium}px;\r\n padding: ${theme.spacing(4)};\r\n justify-content: center;\r\n }\r\n\r\n ${theme.breakpoints.down('lg')} {\r\n border-radius: 0;\r\n }\r\n }\r\n\r\n .active-menu-item {\r\n background-color: ${theme.palette.secondary.light};\r\n\r\n .left-border {\r\n border: 2px solid ${theme.palette.interactive.primary};\r\n border-radius: 0 ${theme.shape.borderRadius.small}px ${theme.shape.borderRadius.small}px 0;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n\r\n ${theme.breakpoints.down('xl')} {\r\n display: none;\r\n }\r\n }\r\n svg,\r\n p {\r\n color: ${theme.palette.text.primary};\r\n }\r\n }\r\n `,\r\n item: css`\r\n color: ${theme.palette.text.primary};\r\n display: block;\r\n text-transform: none;\r\n font-size: 14px;\r\n font-weight: 500;\r\n padding: 12px;\r\n background-color: ${theme.palette.customBackground.navItems};\r\n &:hover {\r\n background-color: ${theme.palette.customBackground.navItems};\r\n }\r\n }\r\n `,\r\n linkHref: css`\r\n color: ${theme.palette.text.primary};\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n text-transform: none;\r\n font-size: 14px;\r\n font-weight: 500;\r\n padding: 12px;\r\n background-color: transparent;\r\n \r\n &:hover {\r\n background-color: ${theme.palette.customBackground.navItems};\r\n }\r\n &:active {\r\n color: ${theme.palette.text.primary};\r\n }\r\n }\r\n `,\r\n activeLink: css`\r\n color: ${theme.palette.text.primary};\r\n display: block;\r\n text-transform: none;\r\n font-size: 14px;\r\n padding: 12px;\r\n background-color: ${theme.palette.customBackground.navItems};\r\n &:hover {\r\n background-color: ${theme.palette.customBackground.navItems};\r\n }\r\n }\r\n `,\r\n listItemIcon: css`\r\n min-width: ${theme.spacing(8)};\r\n ${theme.breakpoints.down('xl')} {\r\n min-width: 0;\r\n justify-content: center;\r\n }\r\n color: inherit;\r\n svg {\r\n height: ${theme.spacing(5)};\r\n width: ${theme.spacing(5)};\r\n }\r\n `,\r\n listItemText: css`\r\n display: block;\r\n ${theme.breakpoints.down('xl')} {\r\n display: none;\r\n }\r\n ${theme.breakpoints.down('lg')} {\r\n display: block;\r\n }\r\n `,\r\n logo: css`\r\n ${theme.breakpoints.down('md')} {\r\n & > img {\r\n height: 20px;\r\n }\r\n }\r\n `,\r\n logoClosed: css`\r\n display: none;\r\n ${theme.breakpoints.down('xl')} {\r\n display: block;\r\n }\r\n `,\r\n mobileMenuBox: css`\r\n display: none;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: ${theme.spacing(4)};\r\n ${theme.breakpoints.down('lg')} {\r\n display: flex;\r\n }\r\n `,\r\n mobileLogo: css`\r\n flex-shrink: 0;\r\n height: ${theme.spacing(10)};\r\n width: ${theme.spacing(10)};\r\n `,\r\n burger: css`\r\n height: ${theme.spacing(6)};\r\n width: ${theme.spacing(6)};\r\n `,\r\n mobileMenu: css`\r\n .MuiMenu-list {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n > .MuiPaper-root {\r\n background-color: ${theme.palette.customBackground.default};\r\n height: 100vh;\r\n max-height: 100vh;\r\n width: 100vw;\r\n max-width: 100vw;\r\n border-radius: 0;\r\n border: 0;\r\n box-shadow: none;\r\n padding: 0;\r\n top: 0 !important;\r\n }\r\n `,\r\n mobileListItem: css`\r\n a {\r\n color: ${theme.palette.text.primary};\r\n display: flex;\r\n flex-direction: row;\r\n flex: 1;\r\n padding-top: ${theme.spacing(4)};\r\n padding-bottom: ${theme.spacing(4)};\r\n justify-content: space-between;\r\n padding-left: ${theme.spacing(6)};\r\n padding-right: ${theme.spacing(6)};\r\n }\r\n :hover {\r\n margin-left: 0;\r\n margin-right: 0;\r\n border-radius: 0;\r\n }\r\n .active-mobile-menu-item {\r\n background-color: ${theme.palette.secondary.light};\r\n svg {\r\n color: ${theme.palette.interactive.primary};\r\n }\r\n }\r\n `,\r\n mobileListItemText: css`\r\n color: ${theme.palette.text.primary};\r\n `,\r\n mobileArrow: css`\r\n height: ${theme.spacing(6)};\r\n width: ${theme.spacing(6)};\r\n `,\r\n mobileLabel: css`\r\n flex-direction: row;\r\n justify-content: center;\r\n display: inline-flex;\r\n align-items: center;\r\n svg {\r\n margin-right: ${theme.spacing(4)};\r\n }\r\n `,\r\n flexRow: css`\r\n display: flex;\r\n flex: 1;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: center;\r\n `,\r\n doublePadding: css`\r\n padding: ${theme.spacing(2)} ${theme.spacing(4)}; ;\r\n `,\r\n actionButton: css`\r\n flex-shrink: 0;\r\n width: ${theme.spacing(10)};\r\n cursor: pointer;\r\n box-shadow: none;\r\n background-color: transparent;\r\n border: none;\r\n display: flex;\r\n justify-content: center;\r\n padding: 0;\r\n `,\r\n mobileConnectButton: css`\r\n margin-left: ${theme.spacing(8)};\r\n margin-right: ${theme.spacing(8)};\r\n `,\r\n claimXvsRewardButton: css`\r\n margin: ${theme.spacing(4, 4, 0, 4)};\r\n `,\r\n select: css`\r\n & > fieldset{\r\n border: none;\r\n }\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport Box from '@mui/material/Box';\r\nimport React, { ReactNode } from 'react';\r\n\r\nimport { useStyles } from './styles';\r\n\r\ninterface PageContainerProps {\r\n children: ReactNode;\r\n}\r\n\r\nexport const PageContainer = ({ children }: PageContainerProps) => {\r\n const styles = useStyles();\r\n return (\r\n <>\r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n return {\r\n main: css`\r\n flex-grow: 1;\r\n padding: ${theme.spacing(9)} ${theme.spacing(16)} ${theme.shape.footerHeight};\r\n background: transparent;\r\n ${theme.breakpoints.down('lg')} {\r\n padding-left: ${theme.spacing(6)};\r\n padding-right: ${theme.spacing(6)};\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n padding: ${theme.spacing(5)} ${theme.spacing(4)} 48px;\r\n }\r\n `,\r\n footer: css`\r\n position: fixed;\r\n bottom: 0;\r\n right: 0;\r\n width: calc(100% - ${theme.shape.drawerWidthDesktop});\r\n ${theme.breakpoints.down('xl')} {\r\n width: calc(100% - ${theme.shape.drawerWidthTablet});\r\n }\r\n\r\n ${theme.breakpoints.down('lg')} {\r\n width: 100%;\r\n }\r\n `,\r\n };\r\n};\r\n","export default __webpack_public_path__ + \"static/media/bg.2f0d0a8f.svg\";","export default __webpack_public_path__ + \"static/media/bgLight.a1ce606f.svg\";","/** @jsxImportSource @emotion/react */\r\nimport Box from '@mui/material/Box';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { useWeb3Account } from '../../clients/web3';\r\nimport { Modal } from 'components/Modal';\r\nimport { LANGUAGES } from 'constants/languages';\r\n\r\nimport { changeConfig } from '../../features';\r\nimport { NetworkState } from '../../types';\r\nimport Footer from './Footer';\r\nimport Navbar from './Navbar';\r\nimport { PageContainer } from './PageContainer';\r\nimport { useStyles } from './styles';\r\n\r\nexport const Layout: React.FC = ({ children }) => {\r\n const styles = useStyles();\r\n const dispatch = useDispatch();\r\n const { chainId } = useWeb3Account();\r\n const [isOpen, setIsOpen] = useState(true);\r\n const language = localStorage.getItem('i18next') || LANGUAGES[0];\r\n\r\n useEffect(() => {\r\n if (chainId?.toString() === NetworkState.ETH || chainId?.toString() === NetworkState.ARBITRUM) {\r\n dispatch(changeConfig({ network: chainId?.toString() as NetworkState }));\r\n }\r\n }, [chainId]);\r\n return (\r\n <>\r\n \r\n
\r\n

\r\n {language === 'zh' ? '📢 重要公告! 📢' : '📢 Important Announcement! 📢'}\r\n

\r\n

\r\n {language === 'zh'\r\n ? `亲爱的TPY持有者,\r\n\r\n我们想提醒您,所有质押的TPY将于 23:59时分(UTC+8), 2025年3月31日停止产生奖励。在2025年4月1日之前获得的所有奖励将不受影响。\r\n\r\n截止日期之后,您仍然可以通过平台解锁您的质押TPY,但在2025年4月1日之后,将不再生成任何奖励。\r\n\r\n如果您有任何问题或需要帮助,我们的支持团队随时为您提供帮助。\r\n\r\n感谢您的合作与持续支持!\r\n\r\n此致,\r\nThrupenny 团队`\r\n .split('\\n')\r\n .map((line, index) => (\r\n \r\n {line}\r\n
\r\n
\r\n ))\r\n : `Dear TPY Holders,\r\n\r\nWe would like to remind you that all staked TPY will stop generating rewards from 23:59hrs (UTC+8), March 31st, 2025. All previously earned rewards before 1st April, 2025 will not be affected.\r\n\r\nAfter the deadline, your staked TPY will still be accessible for unstaking via the platform, but no further rewards will be generated after 1st April, 2025.\r\n\r\nIf you have any questions or need assistance, our support team is here to help.\r\n\r\nThank you for your cooperation and continued support!\r\n\r\nSincerely,\r\nThrupenny Team`\r\n .split('\\n')\r\n .map((line, index) => (\r\n \r\n {line}\r\n
\r\n
\r\n ))}\r\n

\r\n
\r\n \r\n }\r\n handleClose={() => {\r\n setIsOpen(false);\r\n }}\r\n isOpen={isOpen}\r\n />\r\n \r\n
\r\n
\r\n
\r\n \r\n {children}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\nimport { getMode } from 'features';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport DarkBg from '../../assets/img/bg.svg';\r\nimport Light from '../../assets/img/bgLight.svg';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n const mode = useSelector(getMode);\r\n\r\n return {\r\n main: css`\r\n background: ${theme.palette.customBackground.default};\r\n `,\r\n background: css`\r\n background-image: url(${mode === 'dark' ? DarkBg : Light});\r\n background-repeat: no-repeat;\r\n background-position-y: 0;\r\n background-size: ${mode === 'dark' ? '100% 112%' : '100% 130%'};\r\n ${theme.breakpoints.down('lg')} {\r\n background-image: none;\r\n }\r\n `,\r\n layout: css`\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n min-height: 91vh;\r\n ${theme.breakpoints.down('lg')} {\r\n flex-direction: column;\r\n }\r\n `,\r\n annoucement: css`\r\n width: 100%;\r\n background-color: ${mode === 'dark' ? '#1e1b4b' : '#c7d2fe'};\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n `,\r\n annoucementModal: css`\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 32px 20px;\r\n `,\r\n modalContainer: css`\r\n display: flex;\r\n flex-direction: column;\r\n gap: 16px;\r\n text-align: center;\r\n `,\r\n modalTitle: css`\r\n font-size: 24px;\r\n font-weight: 700;\r\n color: ${mode === 'dark' ? '#c7d2fe' : '#4f46e5'};\r\n margin: 0;\r\n `,\r\n modalMessage: css`\r\n font-size: 18px;\r\n line-height: 1.5;\r\n margin: 0;\r\n font-weight: 500;\r\n color: ${mode === 'dark' ? theme.palette.text.primary : theme.palette.text.primary};\r\n text-align: left;\r\n `,\r\n };\r\n};\r\n","import * as React from 'react';\r\nimport { SVGProps } from 'react';\r\n\r\nconst SvgInfo = (props: SVGProps) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgInfo;\r\n","import * as React from 'react';\r\nimport { SVGProps } from 'react';\r\n\r\nconst SvgLogoMobile = (props: SVGProps) => {\r\n const { id = 'logoMobile' } = props;\r\n const gradientId = `gradient_${id}`;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SvgLogoMobile;\r\n","import * as React from 'react';\r\nimport { SVGProps } from 'react';\r\n\r\nconst SvgClose = (props: SVGProps) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgClose;\r\n","import * as React from 'react';\r\nimport { SVGProps } from 'react';\r\n\r\nconst SvgBurger = (props: SVGProps) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgBurger;\r\n","import * as React from 'react';\r\nimport { SVGProps } from 'react';\r\n\r\nconst SvgArrowRight = (props: SVGProps) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgArrowRight;\r\n","import * as React from 'react';\r\nimport { SVGProps } from 'react';\r\n\r\nconst SvgAave = ({ id, ...props }: SVGProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgAave;\r\n","import { QueryClient } from 'react-query';\r\n\r\nconst queryClient = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n // Set a stale time of 10 seconds so query results don't get wiped out of\r\n // the cache instantly after their hook unmounts (see documentation for\r\n // more info: https://react-query.tanstack.com/guides/important-defaults)\r\n staleTime: 10000,\r\n },\r\n },\r\n});\r\nexport default queryClient;\r\n","import BigNumber from 'bignumber.js';\r\n\r\nconst ALLOWANCE_AMOUNT_WEI = new BigNumber(2).pow(256).minus(1).toFixed();\r\nexport default ALLOWANCE_AMOUNT_WEI;\r\n","import type { TransactionReceipt } from 'web3-core';\r\n\r\nimport ALLOWANCE_AMOUNT_WEI from 'constants/allowanceAmountWei';\r\nimport { Tpy } from 'types/contracts';\r\n\r\nexport interface ApproveTokenInput {\r\n tokenContract: Tpy;\r\n accountAddress: string;\r\n spenderAddress: string;\r\n allowance?: string;\r\n}\r\n\r\nexport type ApproveTokenOutput = TransactionReceipt;\r\n\r\nconst approveToken = ({\r\n tokenContract,\r\n accountAddress,\r\n spenderAddress,\r\n allowance = ALLOWANCE_AMOUNT_WEI,\r\n}: ApproveTokenInput): Promise =>\r\n tokenContract.methods.approve(spenderAddress, allowance).send({ from: accountAddress });\r\n\r\nexport default approveToken;\r\n","import mainContractAddresses from 'constants/contracts/addresses/main.json';\r\nimport { TPYChainId } from 'types';\r\nconst getContractAddress = (contractId: keyof typeof mainContractAddresses, chainId:TPYChainId ) => {\r\n return mainContractAddresses[contractId][chainId] ;\r\n}\r\nexport default getContractAddress;\r\n","import { TokenId, TPYChainId } from 'types';\r\nimport { getToken } from 'utilities';\r\nimport Web3 from 'web3';\r\nimport { AbiItem } from 'web3-utils';\r\n\r\nimport { getWeb3NoAccount } from 'clients/web3';\r\nimport stakeAbi from 'constants/contracts/abis/staking.json';\r\nimport tpyAbi from 'constants/contracts/abis/tpy.json';\r\n\r\nimport { TokenContract } from './types';\r\nimport { Staking } from 'types/contracts';\r\nimport getContractAddress from \"../../utilities/getContractAddress\";\r\n// import mainContractAddresses from 'constants/contracts/addresses/main.json';\r\nimport { NetworkState } from '../../types'\r\nimport {RPC_URLS} from \"../../constants/endpoints\";\r\n\r\nconst getContract = (abi: AbiItem | AbiItem[], address: string, chainId: NetworkState | TPYChainId,web3Instance: Web3) => {\r\n const web3 = web3Instance ?? getWeb3NoAccount(RPC_URLS[chainId]);\r\n\r\n return new web3.eth.Contract(abi, address) as unknown as T;\r\n};\r\n\r\nexport const getTokenContract = (tokenId: T, network: G, web3: Web3): TokenContract => {\r\n const tokenAddress = getToken(tokenId, network).address;\r\n return getContract>(tpyAbi as AbiItem[], tokenAddress, network, web3);\r\n};\r\n\r\nexport const getStakeContract = (web3: Web3, chainId: TPYChainId) => {\r\n const contractAddress = getContractAddress('staking',chainId);\r\n return getContract(stakeAbi as AbiItem[], contractAddress, chainId, web3, ) as unknown as Staking;\r\n};\r\n","import { useMemo } from 'react';\r\nimport { TokenId, TPYChainId } from 'types';\r\n\r\nimport { useWeb3 } from 'clients/web3';\r\nimport { NetworkState } from '../../types';\r\n\r\nimport {\r\n getTokenContract,\r\n getStakeContract\r\n} from './getters';\r\n\r\nexport const useTokenContract = (name: T, network:G) => {\r\n const web3 = useWeb3(network);\r\n\r\n return useMemo(() => getTokenContract(name, network ,web3), [name, network, web3]);\r\n};\r\nexport const useStakeContract = (chainId: TPYChainId) => {\r\n const web3 = useWeb3(chainId);\r\n return useMemo(() => getStakeContract(web3, chainId), [web3, chainId]);\r\n};\r\n","export enum Subdirectory {\r\n DASHBOARD = '/',\r\n STAKE = '/',\r\n REFERRAL = '/stake/:network/:id',\r\n}\r\n\r\nconst routeSubdirectories = {\r\n stake: [Subdirectory.STAKE],\r\n referral: [Subdirectory.REFERRAL],\r\n dashboard: [Subdirectory.DASHBOARD],\r\n};\r\n\r\ntype RouteName = keyof typeof routeSubdirectories;\r\n\r\ntype Routes = {\r\n [key in RouteName]: {\r\n path: string;\r\n subdirectories: Subdirectory[];\r\n };\r\n};\r\n\r\nexport const routes = Object.keys(routeSubdirectories).reduce(\r\n (obj, key) =>\r\n Object.prototype.hasOwnProperty.call(routeSubdirectories, key)\r\n ? {\r\n ...obj,\r\n [key]: {\r\n path: routeSubdirectories[key as RouteName].join(''),\r\n subdirectories: routeSubdirectories[key as RouteName],\r\n },\r\n }\r\n : obj,\r\n {} as Routes,\r\n);\r\n","import BigNumber from 'bignumber.js';\r\n\r\nconst MAX_UINT256 = new BigNumber(2).pow(256).minus(1);\r\n\r\nexport default MAX_UINT256;\r\n","import { QueryClient } from 'react-query';\r\nimport { TokenId } from 'types';\r\n\r\nimport { GetAllowanceOutput } from 'clients/api';\r\nimport FunctionKey from 'constants/functionKey';\r\nimport MAX_UINT256 from 'constants/maxUint256';\r\n\r\nimport type { UseGetAllowanceQueryKey } from './useGetAllowance';\r\n\r\nconst setCachedTokenAllowanceToMax = ({\r\n queryClient,\r\n tokenId,\r\n spenderAddress,\r\n accountAddress,\r\n}: {\r\n queryClient: QueryClient;\r\n tokenId: TokenId;\r\n spenderAddress: string;\r\n accountAddress: string;\r\n}) => {\r\n const queryKey: UseGetAllowanceQueryKey = [\r\n FunctionKey.GET_TOKEN_ALLOWANCE,\r\n {\r\n tokenId,\r\n spenderAddress,\r\n accountAddress,\r\n },\r\n ];\r\n\r\n queryClient.setQueryData(queryKey, {\r\n allowanceWei: MAX_UINT256,\r\n });\r\n};\r\n\r\nexport default setCachedTokenAllowanceToMax;\r\n","import { MutationObserverOptions, useMutation } from 'react-query';\r\nimport { TokenId } from 'types';\r\n\r\nimport { ApproveTokenInput, ApproveTokenOutput, approveToken, queryClient } from 'clients/api';\r\nimport { useTokenContract } from 'clients/contracts/hooks';\r\nimport FunctionKey from 'constants/functionKey';\r\nimport { NetworkState } from '../../../../types';\r\n\r\n\r\nimport setCachedTokenAllowanceToMax from '../../queries/getAllowance/setCachedTokenAllowanceToMax';\r\n\r\nconst useApproveToken = (\r\n { tokenId, network }: { tokenId: TokenId; network: NetworkState },\r\n options?: MutationObserverOptions<\r\n ApproveTokenOutput,\r\n Error,\r\n Omit\r\n >,\r\n) => {\r\n const tokenContract = useTokenContract(tokenId,network);\r\n\r\n return useMutation(\r\n [FunctionKey.APPROVE_TOKEN, { tokenId, network }],\r\n params =>\r\n approveToken({\r\n tokenContract,\r\n ...params,\r\n }),\r\n {\r\n ...options,\r\n onSuccess: (...onSuccessParams) => {\r\n const { spenderAddress, accountAddress } = onSuccessParams[1];\r\n setCachedTokenAllowanceToMax({ queryClient, tokenId, spenderAddress, accountAddress });\r\n\r\n if (options?.onSuccess) {\r\n options.onSuccess(...onSuccessParams);\r\n }\r\n },\r\n },\r\n );\r\n};\r\n\r\nexport default useApproveToken;\r\n","import type { TransactionReceipt } from 'web3-core';\r\n\r\nimport { Staking } from 'types/contracts';\r\nimport {checkForTokenTransactionError} from \"../../../../errors\";\r\nimport BigNumber from \"bignumber.js\";\r\nimport convertTokensToWei from \"../../../../utilities/convertTokensToWei\";\r\nimport {NetworkState} from \"../../../../types\";\r\n\r\nexport interface StakingInput {\r\n stakingContract: Staking;\r\n accountAddress: string;\r\n poolId: number;\r\n amount: string;\r\n referralId: number;\r\n network: NetworkState;\r\n}\r\n\r\nexport type StakeTokenOutput = TransactionReceipt;\r\n\r\nconst stakeToken = async ({\r\n stakingContract,\r\n accountAddress,\r\n poolId,\r\n referralId,\r\n amount,\r\n network\r\n }: StakingInput): Promise =>{\r\n const resp = await stakingContract.methods.stake(poolId, convertTokensToWei({\r\n value: new BigNumber(amount),\r\n tokenId: 'tpy',\r\n network: network\r\n }).toString(), referralId).send({ from: accountAddress });\r\n\r\n return checkForTokenTransactionError(resp);\r\n}\r\n\r\nexport default stakeToken;\r\n","export const POOLS = [0, 1, 2, 3, 6, 4, 7];\r\n","import { MutationObserverOptions, useMutation } from 'react-query';\r\n\r\nimport FunctionKey from 'constants/functionKey';\r\n\r\nimport stakeToken, {StakeTokenOutput, StakingInput} from \"./index\";\r\nimport {useStakeContract} from \"../../../contracts\";\r\nimport queryClient from \"../../queryClient\";\r\nimport {POOLS} from \"../../../../constants/pools\";\r\nimport { TPYChainId } from 'types';\r\n\r\nconst useStakeToken = (\r\n { accountAddress, chainId }: { accountAddress: string; chainId: TPYChainId },\r\n options?: MutationObserverOptions<\r\n StakeTokenOutput,\r\n Error,\r\n Omit\r\n >,\r\n) => {\r\n const stakingContract = useStakeContract(chainId);\r\n\r\n return useMutation(\r\n [FunctionKey.STAKE_TOKEN, `stakeContract ${chainId}` ],\r\n params =>\r\n stakeToken({\r\n stakingContract,\r\n ...params\r\n }),\r\n {\r\n ...options,\r\n onSuccess: (...onSuccessParams) => {\r\n queryClient.invalidateQueries([FunctionKey.GET_USER_INFO, `${POOLS.join(',')} ${accountAddress} ${chainId}`]);\r\n if (options?.onSuccess) {\r\n options.onSuccess(...onSuccessParams);\r\n }\r\n },\r\n },\r\n );\r\n};\r\n\r\nexport default useStakeToken;\r\n","import type { TransactionReceipt } from 'web3-core';\r\n\r\nimport { Staking } from 'types/contracts';\r\nimport {checkForTokenTransactionError} from \"../../../../errors\";\r\nimport convertTokensToWei from \"../../../../utilities/convertTokensToWei\";\r\nimport BigNumber from \"bignumber.js\";\r\nimport {NetworkState} from \"../../../../types\";\r\n\r\nexport interface WithdrawInput {\r\n stakingContract: Staking;\r\n accountAddress: string;\r\n poolId: number;\r\n amount: number;\r\n network: NetworkState;\r\n}\r\n\r\nexport type WithdrawTokenOutput = TransactionReceipt;\r\n\r\nconst withdrawToken = async ({\r\n stakingContract,\r\n accountAddress,\r\n poolId,\r\n amount,\r\n network\r\n }: WithdrawInput): Promise =>{\r\n const resp = await stakingContract.methods.unstake(poolId, (convertTokensToWei({\r\n value: new BigNumber(amount.toFixed(8)),\r\n tokenId: 'tpy',\r\n network: network\r\n }).toString())).send({ from: accountAddress });\r\n\r\n return checkForTokenTransactionError(resp);\r\n}\r\n\r\nexport default withdrawToken;\r\n","import { MutationObserverOptions, useMutation } from 'react-query';\r\n\r\nimport FunctionKey from 'constants/functionKey';\r\n\r\nimport withdrawToken, {WithdrawTokenOutput, WithdrawInput} from \"./index\";\r\nimport {useStakeContract} from \"../../../contracts\";\r\nimport queryClient from \"../../queryClient\";\r\nimport {POOLS} from \"../../../../constants/pools\";\r\nimport { TPYChainId } from 'types';\r\n\r\nconst useWithdrawToken = (\r\n { accountAddress, chainId }: { accountAddress: string; chainId: TPYChainId },\r\n options?: MutationObserverOptions<\r\n WithdrawTokenOutput,\r\n Error,\r\n Omit\r\n >,\r\n) => {\r\n const stakingContract = useStakeContract(chainId);\r\n\r\n return useMutation(\r\n [FunctionKey.WITHDRAW_TOKEN, 'withdrawContract' ],\r\n params =>\r\n withdrawToken({\r\n stakingContract,\r\n ...params\r\n }),\r\n {\r\n ...options,\r\n onSuccess: (...onSuccessParams) => {\r\n queryClient.invalidateQueries([FunctionKey.GET_USER_INFO, `${POOLS.join(',')} ${accountAddress}`]);\r\n if (options?.onSuccess) {\r\n options.onSuccess(...onSuccessParams);\r\n }\r\n },\r\n },\r\n );\r\n};\r\n\r\nexport default useWithdrawToken;\r\n","import { TPYChainId } from 'types';\r\nimport { Staking } from 'types/contracts';\r\n\r\nexport interface GetAddressToldInput {\r\n stakeContract: Staking;\r\n accountAddress: string;\r\n chainId: TPYChainId;\r\n}\r\nexport type GetAddressToldOutput = {\r\n userId: string;\r\n};\r\n\r\nconst getAddressTold = async ({\r\n stakeContract,\r\n accountAddress\r\n}: GetAddressToldInput): Promise => {\r\n const resP = await stakeContract.methods.addressToId(accountAddress).call();\r\n return {\r\n userId: resP.toString()\r\n };\r\n};\r\n\r\nexport default getAddressTold;\r\n","import { QueryObserverOptions, useQuery } from 'react-query';\r\n\r\nimport { useStakeContract } from 'clients/contracts/hooks';\r\nimport FunctionKey from 'constants/functionKey';\r\nimport { GetAddressToldInput, GetAddressToldOutput } from \"./index\";\r\nimport getAddressTold from \"./index\";\r\n\r\ntype Options = QueryObserverOptions<\r\n GetAddressToldOutput,\r\n Error,\r\n GetAddressToldOutput,\r\n GetAddressToldOutput,\r\n [FunctionKey.GET_USER_ID, string]\r\n>;\r\n\r\nconst useGetAddressTold = (\r\n { accountAddress, chainId }: Omit,\r\n options?: Options,\r\n) => {\r\n const stakeContract = useStakeContract(chainId);\r\n return useQuery(\r\n [FunctionKey.GET_USER_ID, `${accountAddress} ${chainId}`],\r\n () => getAddressTold({ stakeContract ,accountAddress, chainId }),\r\n options,\r\n );\r\n};\r\n\r\nexport default useGetAddressTold;\r\n","import BigNumber from 'bignumber.js';\r\n\r\nimport { Tpy } from 'types/contracts';\r\n\r\nexport interface GetAllowanceInput {\r\n tokenContract: Tpy;\r\n accountAddress: string;\r\n spenderAddress: string;\r\n}\r\n\r\nexport type GetAllowanceOutput = {\r\n allowanceWei: BigNumber;\r\n};\r\n\r\nconst getAllowance = async ({\r\n tokenContract,\r\n accountAddress,\r\n spenderAddress,\r\n}: GetAllowanceInput): Promise => {\r\n const res = await tokenContract.methods.allowance(accountAddress, spenderAddress).call();\r\n\r\n return {\r\n allowanceWei: new BigNumber(res),\r\n };\r\n};\r\n\r\nexport default getAllowance;\r\n","import { QueryObserverOptions, useQuery } from 'react-query';\r\nimport { TokenId } from 'types';\r\n\r\nimport getAllowance, {\r\n GetAllowanceInput,\r\n GetAllowanceOutput,\r\n} from 'clients/api/queries/getAllowance';\r\nimport { useTokenContract } from 'clients/contracts/hooks';\r\nimport FunctionKey from 'constants/functionKey';\r\nimport { NetworkState } from '../../../../types';\r\n\r\nexport type UseGetAllowanceQueryKey = [\r\n FunctionKey.GET_TOKEN_ALLOWANCE,\r\n {\r\n tokenId: TokenId;\r\n spenderAddress: string;\r\n accountAddress: string;\r\n },\r\n];\r\n\r\ntype Options = QueryObserverOptions<\r\n GetAllowanceOutput,\r\n Error,\r\n GetAllowanceOutput,\r\n GetAllowanceOutput,\r\n UseGetAllowanceQueryKey\r\n>;\r\n\r\nconst useGetAllowance = (\r\n {\r\n tokenId,\r\n network,\r\n spenderAddress,\r\n accountAddress,\r\n }: Omit & { tokenId: TokenId; network: NetworkState },\r\n options?: Options,\r\n) => {\r\n const tokenContract = useTokenContract(tokenId, network);\r\n\r\n return useQuery(\r\n [\r\n FunctionKey.GET_TOKEN_ALLOWANCE,\r\n {\r\n tokenId,\r\n spenderAddress,\r\n accountAddress,\r\n },\r\n ],\r\n () =>\r\n getAllowance({\r\n tokenContract,\r\n spenderAddress,\r\n accountAddress,\r\n }),\r\n options,\r\n );\r\n};\r\n\r\nexport default useGetAllowance;\r\n","import BigNumber from 'bignumber.js';\r\n\r\nimport { Tpy } from 'types/contracts';\r\n\r\nexport interface GetBalanceOfInput {\r\n tokenContract: Tpy;\r\n accountAddress: string;\r\n}\r\n\r\nexport type GetBalanceOfOutput = {\r\n balanceWei: BigNumber;\r\n};\r\n\r\nconst getBalanceOf = async ({\r\n tokenContract,\r\n accountAddress,\r\n}: GetBalanceOfInput): Promise => {\r\n const resp = await tokenContract.methods.balanceOf(accountAddress).call();\r\n return {\r\n balanceWei: new BigNumber(resp),\r\n };\r\n};\r\n\r\nexport default getBalanceOf;\r\n","import { QueryObserverOptions, useQuery } from 'react-query';\r\nimport { TokenId } from 'types';\r\n\r\nimport { GetBalanceOfInput, GetBalanceOfOutput, getBalanceOf } from 'clients/api';\r\nimport { useTokenContract } from 'clients/contracts/hooks';\r\nimport FunctionKey from 'constants/functionKey';\r\nimport { NetworkState } from '../../../../types';\r\n\r\n\r\ntype Options = QueryObserverOptions<\r\n GetBalanceOfOutput,\r\n Error,\r\n GetBalanceOfOutput,\r\n GetBalanceOfOutput,\r\n [FunctionKey.GET_BALANCE_OF, string, string]\r\n>;\r\n\r\nconst useGetBalanceOf = (\r\n { accountAddress, tokenId,network }: Omit & { tokenId: TokenId; network:NetworkState },\r\n options?: Options,\r\n) => {\r\n const tokenContract = useTokenContract(tokenId, network);\r\n return useQuery(\r\n [FunctionKey.GET_BALANCE_OF, accountAddress, `${tokenId} ${network}`],\r\n () => getBalanceOf({ tokenContract, accountAddress }),\r\n options,\r\n );\r\n};\r\n\r\nexport default useGetBalanceOf;\r\n","import { Staking } from 'types/contracts';\r\nimport BigNumber from \"bignumber.js\";\r\nimport convertWeiToTokens from \"../../../../utilities/convertWeiToTokens\";\r\nimport { NetworkState, TPYChainId } from '../../../../types';\r\n\r\nexport interface GetPoolInfoInput {\r\n stakeContract: Staking;\r\n stakeContractOtherNetwork: Staking;\r\n poolIds: number[];\r\n chainId: TPYChainId;\r\n network: NetworkState;\r\n}\r\n\r\nexport interface PoolInfo{\r\n poolId: number;\r\n totalStakes: BigNumber;\r\n}\r\n\r\nexport type GetPoolInfoOutput = {\r\n poolInfo: {\r\n res: { [network: number]: {[p: number]: PoolInfo} };\r\n locked: number;\r\n totalStakes: number;\r\n };\r\n};\r\n\r\nconst getPoolInfo = async ({\r\n stakeContract,\r\n stakeContractOtherNetwork,\r\n poolIds,\r\n network\r\n}: GetPoolInfoInput): Promise => {\r\n const res: {[network: number]: { [poolId: number]: PoolInfo }} = {\r\n [network]: {},\r\n [network === NetworkState.ETH ? NetworkState.ARBITRUM : NetworkState.ETH]: {},\r\n }; let locked = 0;\r\n let allTotalStakes = 0;\r\n let lockedOtherNetwork = 0;\r\n let allTotalStakesOtherNetwork = 0;\r\n for (const poolId of poolIds) {\r\n const resP = await stakeContract.methods.poolInfo(poolId).call();\r\n const resPOtherNetwork = await stakeContractOtherNetwork.methods.poolInfo(poolId).call();\r\n\r\n locked += +convertWeiToTokens({valueWei: new BigNumber(resP.lockPeriod), tokenId: 'tpy', network: network});\r\n lockedOtherNetwork += +convertWeiToTokens({valueWei: new BigNumber(resPOtherNetwork.lockPeriod), tokenId: 'tpy', network: network});\r\n\r\n allTotalStakes += +convertWeiToTokens({valueWei: new BigNumber(resP.totalStakes), tokenId: 'tpy', network: network});\r\n allTotalStakesOtherNetwork += +convertWeiToTokens({valueWei: new BigNumber(resPOtherNetwork.totalStakes), tokenId: 'tpy', network: network});\r\n\r\n res[network][poolId] = {\r\n poolId: poolId,\r\n totalStakes: new BigNumber(resP.totalStakes)\r\n }\r\n res[network === NetworkState.ETH ? NetworkState.ARBITRUM : NetworkState.ETH][poolId] = {\r\n poolId: poolId,\r\n totalStakes: new BigNumber(resPOtherNetwork.totalStakes)\r\n }\r\n }\r\n return {\r\n poolInfo: {\r\n res,\r\n locked: locked + lockedOtherNetwork,\r\n totalStakes: allTotalStakes + allTotalStakesOtherNetwork\r\n },\r\n };\r\n};\r\n\r\nexport default getPoolInfo;\r\n","import { QueryObserverOptions, useQuery } from 'react-query';\r\nimport { useStakeContract } from 'clients/contracts/hooks';\r\nimport FunctionKey from 'constants/functionKey';\r\nimport getPoolInfo, { GetPoolInfoInput, GetPoolInfoOutput } from './index';\r\nimport {TPYChainId} from \"../../../../types\";\r\n\r\ntype Options = QueryObserverOptions<\r\n GetPoolInfoOutput,\r\n Error,\r\n GetPoolInfoOutput,\r\n GetPoolInfoOutput,\r\n [FunctionKey.GET_POOL_INFO, string,]\r\n>;\r\n\r\nconst useGetPoolInfo = (\r\n { poolIds, network, chainId }: Omit,\r\n options?: Options,\r\n) => {\r\n const stakeContract = useStakeContract(chainId);\r\n const stakeContractOtherNetwork = useStakeContract(chainId === TPYChainId.MAINNET ? TPYChainId.ARBITRUM_ONE : TPYChainId.MAINNET);\r\n\r\n return useQuery(\r\n [FunctionKey.GET_POOL_INFO, `${poolIds.join(',')}`], // Pass the network state as a query key\r\n () => getPoolInfo({ stakeContract, stakeContractOtherNetwork, poolIds, network, chainId }),\r\n options,\r\n );\r\n};\r\n\r\nexport default useGetPoolInfo;\r\n","import CoinGecko from 'coingecko-api';\r\nimport {TokenId} from \"../../../../types\";\r\nimport {getToken} from \"../../../../utilities\";\r\nimport { NetworkState } from \"../../../../types\";\r\n\r\nexport interface GetPriceOfInput {\r\n tokenId: TokenId;\r\n network: NetworkState;\r\n}\r\n\r\nexport type GetPriceOfOutput = {\r\n price: number;\r\n};\r\n\r\nconst getPriceOf = async ({ tokenId, network }: GetPriceOfInput): Promise => {\r\n const CoinGeckoClient = new CoinGecko();\r\n const resp = await CoinGeckoClient.simple.price({\r\n ids: [getToken(tokenId, network).coingeckoId],\r\n vs_currencies: ['usd'],\r\n });\r\n return {\r\n price: resp.data.thrupenny.usd,\r\n };\r\n};\r\n\r\nexport default getPriceOf;\r\n","import { QueryObserverOptions, useQuery } from 'react-query';\r\nimport { TokenId } from 'types';\r\nimport { NetworkState } from \"../../../../types\"\r\n\r\nimport FunctionKey from 'constants/functionKey';\r\nimport getPriceOf from \"./index\";\r\n\r\nexport interface GetPriceOfInput {\r\n accountAddress: string;\r\n}\r\n\r\nexport type GetPriceOfOutput = {\r\n price: number;\r\n};\r\n\r\ntype Options = QueryObserverOptions<\r\n GetPriceOfOutput,\r\n Error,\r\n GetPriceOfOutput,\r\n GetPriceOfOutput,\r\n [FunctionKey.GET_TOKEN_PRICE, string, string]\r\n>;\r\n\r\nconst useGetPriceOf = (\r\n { accountAddress, tokenId, network }: Omit & { tokenId: TokenId; network: NetworkState },\r\n options?: Options,\r\n) => {\r\n return useQuery(\r\n [FunctionKey.GET_TOKEN_PRICE, accountAddress, tokenId],\r\n () => getPriceOf({tokenId , network } ),\r\n options,\r\n );\r\n};\r\n\r\nexport default useGetPriceOf;\r\n","import { Staking } from 'types/contracts';\r\nimport BigNumber from \"bignumber.js\";\r\nimport convertWeiToTokens from \"../../../../utilities/convertWeiToTokens\";\r\nimport { NetworkState, TPYChainId } from \"../../../../types\";\r\n\r\nexport interface GetUserInfoPerPoolInput {\r\n stakeContract: Staking;\r\n accountAddress: string;\r\n chainId: TPYChainId;\r\n poolIds: number[];\r\n network: NetworkState;\r\n}\r\n\r\nexport interface UserInfo{\r\n poolId: number;\r\n stake: BigNumber;\r\n reward: BigNumber;\r\n startDate: string;\r\n endDate: string;\r\n network: NetworkState;\r\n}\r\n\r\nexport type GetUserInfoPerPoolOutput = {\r\n userInfo: { [p: number]: UserInfo };\r\n stakes: number;\r\n reward: number;\r\n network: NetworkState;\r\n};\r\n\r\nconst getUserInfo = async ({\r\n stakeContract,\r\n accountAddress,\r\n poolIds,\r\n network\r\n}: GetUserInfoPerPoolInput): Promise => {\r\n const res: { [poolId:number]: UserInfo } = {};\r\n let stakes = 0;\r\n let reward = 0;\r\n for (const poolId of poolIds) {\r\n const resUStakes = await stakeContract.methods.stakes(poolId, accountAddress).call();\r\n let resURewards = '0';\r\n try {\r\n resURewards = await stakeContract.methods.stakeOfAuto(poolId, accountAddress).call();\r\n }catch (e) {\r\n console.log(e);\r\n }\r\n stakes += +convertWeiToTokens({valueWei: new BigNumber(resUStakes.amount), tokenId: 'tpy', network });\r\n reward += +convertWeiToTokens({valueWei: new BigNumber(resURewards === '0' ? resUStakes.amount : resURewards), tokenId: 'tpy' , network});\r\n res[poolId] = {\r\n poolId: poolId,\r\n network : network,\r\n stake: new BigNumber(resUStakes.amount),\r\n reward: new BigNumber(resURewards === '0' ? resUStakes.amount : resURewards),\r\n startDate: resUStakes.checkpoint,\r\n endDate: resUStakes.releaseCheckpoint\r\n }\r\n }\r\n return {\r\n userInfo: res,\r\n network : network,\r\n stakes: stakes,\r\n reward: reward\r\n };\r\n};\r\n\r\nexport default getUserInfo;\r\n","import { QueryObserverOptions, useQuery } from 'react-query';\r\n\r\nimport { useStakeContract } from 'clients/contracts/hooks';\r\nimport FunctionKey from 'constants/functionKey';\r\nimport {GetUserInfoPerPoolInput, GetUserInfoPerPoolOutput} from \"./index\";\r\nimport getUserInfo from \"./index\";\r\n\r\ntype Options = QueryObserverOptions<\r\n GetUserInfoPerPoolOutput,\r\n Error,\r\n GetUserInfoPerPoolOutput,\r\n GetUserInfoPerPoolOutput,\r\n [FunctionKey.GET_USER_INFO, string]\r\n>;\r\n\r\nconst useGetUserInfoPerPool = (\r\n { poolIds, accountAddress, network, chainId }: Omit,\r\n options?: Options,\r\n) => {\r\n const stakeContract = useStakeContract(chainId);\r\n return useQuery(\r\n [FunctionKey.GET_USER_INFO, `${poolIds.join(',')} ${accountAddress} ${network}`],\r\n () => getUserInfo({ stakeContract, accountAddress ,poolIds, network, chainId }),\r\n options,\r\n );\r\n};\r\n\r\nexport default useGetUserInfoPerPool;\r\n","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\n\r\nimport { useStyles } from './styles';\r\nimport { Card } from \"@mui/material\";\r\n\r\nexport interface CardType {\r\n children?: React.ReactNode;\r\n variant?: \"small\" | \"normal\" | \"modal\";\r\n}\r\n\r\nexport const MaterialUICard: React.FC = ({ children, variant = \"normal\" }) => {\r\n const styles = useStyles({ variant });\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const CardComponent = (props: CardType) => ;\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\nimport {Variant} from \"./types\";\r\n\r\nexport const useStyles = ({ variant } : { variant: Variant }) => {\r\n const theme = useTheme();\r\n\r\n const getCardVariantCss = (refVariant: Variant) => {\r\n if (refVariant === 'normal') {\r\n return css`\r\n border-radius: 18px;\r\n padding: 24px 12px 30px;\r\n `;\r\n }\r\n if (refVariant === 'small') {\r\n return css`\r\n border-radius: 14px;\r\n padding: 24px;\r\n `;\r\n }\r\n if (refVariant === 'modal') {\r\n return css`\r\n border-radius: 18px;\r\n padding: 16px;\r\n ${theme.breakpoints.down('sm')} {\r\n padding: ${variant === 'small' ? '16px' : '24px 0 0'};\r\n border: none;\r\n border-radius: 0;\r\n }\r\n `;\r\n }\r\n };\r\n\r\n\r\n return {\r\n card: css`\r\n width: 100%;\r\n height: 100%;\r\n border: 3px solid ${theme.palette.customBackground.card};\r\n background: transparent;\r\n backdrop-filter: blur(12px);\r\n box-shadow: none;\r\n ${theme.breakpoints.down('sm')} {\r\n padding: ${variant === 'small' ? '16px' : '24px 0 0'};\r\n }\r\n ${getCardVariantCss(variant)};\r\n `,\r\n };\r\n};\r\n","import {PoolType} from \"../../types\";\r\n\r\nexport const pools: PoolType[] = [\r\n {\r\n \"poolId\": 0,\r\n \"percent\": 10,\r\n \"term\": 0,\r\n \"total\": '0',\r\n \"accountBalance\": '0',\r\n \"disabled\": true\r\n },\r\n {\r\n \"poolId\": 1,\r\n \"percent\": 20,\r\n \"term\": 30,\r\n \"total\": '0',\r\n \"accountBalance\": '0',\r\n \"disabled\": true\r\n },\r\n {\r\n \"poolId\": 2,\r\n \"percent\": 30,\r\n \"term\": 90,\r\n \"total\": '0',\r\n \"accountBalance\": '0',\r\n \"disabled\": true\r\n },\r\n {\r\n \"poolId\": 3,\r\n \"percent\": 50,\r\n \"term\": 180,\r\n \"total\": '0',\r\n \"accountBalance\": '0',\r\n \"disabled\": true\r\n },\r\n {\r\n \"poolId\": 6,\r\n \"percent\": 65,\r\n \"term\": 270,\r\n \"total\": '0',\r\n \"accountBalance\": '0',\r\n \"disabled\": true\r\n },\r\n {\r\n \"poolId\": 7,\r\n \"percent\": 75,\r\n \"term\": 365,\r\n \"total\": '0',\r\n \"accountBalance\": '0',\r\n \"disabled\": true\r\n },\r\n {\r\n \"poolId\": 4,\r\n \"percent\": 100,\r\n \"term\": 365,\r\n \"total\": '0',\r\n \"accountBalance\": '0',\r\n \"disabled\": true\r\n }\r\n]\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = ({ isEmptyPool } : {isEmptyPool?: boolean}) => {\r\n const theme = useTheme();\r\n\r\n return {\r\n pool: css`\r\n width: 100%;\r\n padding: 15px 19px;\r\n border-radius: 12px;\r\n background: ${theme.palette.customBackground.navBar};\r\n box-shadow: none;\r\n ${theme.breakpoints.down('sm')} {\r\n padding: 12px 14px 24px;\r\n background: ${isEmptyPool ? 'transparent' : theme.palette.customBackground.navBar};\r\n }\r\n `,\r\n emptyPool: css`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n ${theme.breakpoints.down('lg')} {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n `,\r\n buttons: css`\r\n ${theme.breakpoints.down('lg')} {\r\n margin-top:21px;\r\n width: 100%;\r\n display: flex;\r\n justify-content: flex-end;\r\n }\r\n `,\r\n poolContainer: css`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n ${theme.breakpoints.down('lg')} {\r\n flex-direction: column;\r\n }\r\n `,\r\n actions: css`\r\n min-width: 240px;\r\n display: flex;\r\n justify-content: flex-end;\r\n gap: 12px;\r\n ${theme.breakpoints.down('lg')} {\r\n width: 100%;\r\n justify-content: space-between;\r\n }\r\n ${theme.breakpoints.down('md')} {\r\n & > button {\r\n min-width: 140px;\r\n height: 36px;\r\n }\r\n }\r\n `,\r\n };\r\n};\r\n","export default __webpack_public_path__ + \"static/media/thrupennyIcon.e68f9e47.svg\";","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\n\r\nimport {useTranslation} from 'translation';\r\n\r\nimport { useStyles } from './styles';\r\nimport {Box, Typography} from \"@mui/material\";\r\nimport Icon from'../../../../assets/img/icons/thrupennyIcon.svg';\r\n\r\n\r\nexport const PoolIcon: React.FC = () => {\r\n const {t} = useTranslation();\r\n const styles = useStyles();\r\n\r\n return \r\n \r\n \"...\"\r\n \r\n
\r\n TPY\r\n
\r\n
\r\n {t('layout.stake.pools.stakeEarn')}\r\n
\r\n
\r\n
\r\n
;\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n pool: css`\r\n width: fit-content;\r\n display: flex;\r\n padding: 10px 11px;\r\n background-color: ${theme.palette.customBackground.navItems};\r\n border-radius: 6px;\r\n gap: 13px;\r\n align-items: center;\r\n border: 1px solid ${theme.palette.customBackground.poolBorder};\r\n ${theme.breakpoints.down('md')} {\r\n align-self: flex-start;\r\n }\r\n `,\r\n emptyPool: css`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n `,\r\n poolContainer: css`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n `,\r\n actions: css`\r\n display: flex;\r\n gap: 12px;\r\n `,\r\n tpy: css`\r\n font-size: 14px;\r\n font-weight: 500;\r\n color: ${theme.palette.text.primary};\r\n `,\r\n earn: css`\r\n font-size: 12px;\r\n color: ${theme.palette.text.secondary};\r\n `,\r\n };\r\n};\r\n","export interface NumberFormatInput {\r\n value: string | null | number;\r\n}\r\n\r\nexport type NumberFormatOutput = T extends true ? string : 0;\r\n\r\nfunction numberFormat ({ value }: NumberFormatInput): NumberFormatOutput {\r\n return (\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n (value && new Intl.NumberFormat('en-EN').format(value)) || 0\r\n ) as NumberFormatOutput;\r\n}\r\nexport default numberFormat;\r\n","var _circle, _g, _path, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgSuccessIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 200,\n height: 190,\n viewBox: \"0 0 200 190\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 100,\n cy: 72,\n r: 28,\n fill: \"#51CC73\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n filter: \"url(#filter0_f_669_11133)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 100,\n cy: 95,\n rx: 28,\n ry: 23,\n fill: \"#51CC73\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86 68.5L96.4185 78.0897C96.9837 78.61 97.8476 78.6286 98.4347 78.1332L114 65\",\n stroke: \"#FCFCFF\",\n strokeWidth: 4,\n strokeLinecap: \"round\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"filter0_f_669_11133\",\n x: 0,\n y: 0,\n width: 200,\n height: 190,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n }), /*#__PURE__*/React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }), /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 36,\n result: \"effect1_foregroundBlur_669_11133\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSuccessIcon);\nexport default __webpack_public_path__ + \"static/media/successIcon.40ddac8b.svg\";\nexport { ForwardRef as ReactComponent };","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\n\r\nimport {useTranslation} from 'translation';\r\n\r\nimport { useStyles } from './styles';\r\nimport {Box, Tooltip, Typography} from \"@mui/material\";\r\nimport InfoOutlinedIcon from \"@mui/icons-material/InfoOutlined\";\r\nimport numberFormat from \"../../../../utilities/numberFormat\";\r\n\r\nexport interface PoolInfoType {\r\n percent: number;\r\n term: number;\r\n startDate?: string;\r\n stake: string;\r\n accountStake: string;\r\n type?: string;\r\n}\r\n\r\nexport const PoolInfo: React.FC = ({percent, term,startDate, stake, accountStake, type=\"active\"}) => {\r\n const {t} = useTranslation();\r\n const styles = useStyles();\r\n let endDate = new Date();\r\n if(startDate){\r\n endDate = new Date(+startDate * 1000);\r\n }\r\n return \r\n \r\n \r\n \r\n {t('layout.stake.pools.reward')}\r\n \r\n \r\n \r\n \r\n \r\n {t('layout.stake.pools.lockTerm')}\r\n \r\n \r\n \r\n \r\n \r\n {t('layout.stake.pools.totalStaked')}\r\n \r\n \r\n \r\n \r\n \r\n {t('layout.stake.pools.yourStake')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {percent} %\r\n \r\n \r\n {t('layout.stake.pools.autoCompounding')}\r\n \r\n \r\n {startDate?\r\n \r\n {\r\n term ? <>\r\n {endDate.toLocaleString('default', { month: 'short' })} \r\n {endDate.getDate()}, {endDate.getFullYear()}\r\n \r\n : t('stakeModal.flexible')\r\n }\r\n \r\n :\r\n {type === \"active\"? (term && `${term} ${t('layout.stake.pools.days')}` || t('layout.stake.pools.none')) : term}\r\n }\r\n {numberFormat({value: stake})}\r\n {numberFormat({value: (+accountStake).toFixed(2)})}\r\n \r\n ;\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n infoContainer: css`\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-evenly;\r\n align-items: center;\r\n ${theme.breakpoints.down('md')} {\r\n flex-direction: column;\r\n gap: 24px;\r\n width: auto;\r\n & > div{\r\n align-items: flex-end;\r\n } \r\n }\r\n `,\r\n autoCompoundingPercent: css`\r\n font-size: 17px;\r\n font-weight: 600;\r\n color: ${theme.palette.customText.sometimes};\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 20px;\r\n }\r\n `,\r\n autoCompounding: css`\r\n font-weight: 500;\r\n font-size: 13px;\r\n color: ${theme.palette.text.secondary};\r\n ${theme.breakpoints.down('xl')} {\r\n font-size: 14px;\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 12px;\r\n }\r\n `,\r\n infoText: css`\r\n font-weight: 600;\r\n text-align: center;\r\n width: 100%;\r\n color: ${theme.palette.text.primary};\r\n font-size: 15px;\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 16px;\r\n text-align: end;\r\n }\r\n `,\r\n lockTerm: css`\r\n width: 100%;\r\n font-weight: 600;\r\n color: ${theme.palette.text.primary};\r\n font-size: 18px;\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 16px;\r\n text-align: end;\r\n }\r\n `,\r\n poolHeaderMobile: css`\r\n display: none;\r\n\r\n ${theme.breakpoints.down('md')} {\r\n display: flex;\r\n }\r\n `,\r\n poolData: css`\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n justify-content: space-between;\r\n ${theme.breakpoints.down('md')} {\r\n margin: 32px 0 40px;\r\n }\r\n `,\r\n columnsTitle: css`\r\n width: 100%;\r\n font-weight: 500;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 16px;\r\n color: ${theme.palette.text.secondary};\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 14px;\r\n & > svg{\r\n width: 18px;\r\n height: 18px;\r\n }\r\n }\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\n\r\nimport {useTranslation} from 'translation';\r\n\r\nimport { useStyles } from './styles';\r\nimport {Box, Card, Tooltip, Typography} from \"@mui/material\";\r\nimport {Button} from \"../Button\";\r\nimport {toggleModal, useAppDispatch} from \"../../features\";\r\nimport ConnectButton from \"../Layout/ConnectButton\";\r\nimport EastIcon from \"@mui/icons-material/East\";\r\nimport {PoolIcon} from \"./components/Pool\";\r\nimport {PoolInfo} from \"./components/PoolInfo\";\r\n\r\nexport interface PoolProps {\r\n isEmpty: boolean;\r\n percent: number;\r\n startDate?: string;\r\n term: number;\r\n stake: string;\r\n accountStake: string;\r\n disable: boolean;\r\n account: boolean;\r\n type: string;\r\n poolId: number;\r\n disabled: boolean;\r\n}\r\n\r\nexport interface EmptyPoolProps {\r\n account: string| undefined;\r\n scrollTo: () => void;\r\n}\r\n\r\n\r\nexport const PoolUI: React.FC<{ children: React.ReactNode; isEmptyPool: boolean}> = ({children, isEmptyPool}) => {\r\n const styles = useStyles({isEmptyPool: isEmptyPool});\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const ConnectedPool: React.FC = ({ account, scrollTo }) => {\r\n const {t} = useTranslation();\r\n const styles = useStyles({isEmptyPool: true});\r\n return (\r\n \r\n \r\n \r\n {t(`layout.stake.pools.${account ? 'emptyPool' : 'engagedConnect'}`)}\r\n \r\n \r\n {account ? : }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const Pool: React.FC = ({\r\n account,\r\n percent,\r\n term,\r\n startDate,\r\n stake,\r\n accountStake,\r\n type,\r\n poolId,\r\n disabled\r\n }) => {\r\n\r\n const {t} = useTranslation();\r\n const styles = useStyles({isEmptyPool: false});\r\n const dispatch = useAppDispatch();\r\n const openModal = (type: string) => {\r\n dispatch(toggleModal({\r\n isOpen: true,\r\n percent: percent,\r\n date: term,\r\n startDate: startDate,\r\n type: type,\r\n poolId: poolId,\r\n userStaked: accountStake,\r\n stakeDisabled: disabled\r\n }))\r\n }\r\n return \r\n \r\n \r\n \r\n \r\n {disabled ?\r\n \r\n \r\n \r\n \r\n \r\n : \r\n }\r\n \r\n \r\n \r\n ;\r\n};\r\n","var _path, _path2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLinkIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.4375 1.125V6.1875C17.4375 6.49842 17.1859 6.75 16.875 6.75C16.5641 6.75 16.3125 6.49842 16.3125 6.1875V2.48287L8.27269 10.5227C8.16286 10.6325 8.01886 10.6875 7.875 10.6875C7.73114 10.6875 7.58714 10.6325 7.47731 10.5227C7.25752 10.3029 7.25752 9.94697 7.47731 9.72731L15.5171 1.6875H11.8125C11.5016 1.6875 11.25 1.43592 11.25 1.125C11.25 0.814078 11.5016 0.5625 11.8125 0.5625H16.875C17.1859 0.5625 17.4375 0.814078 17.4375 1.125ZM15.1875 15.75V9C15.1875 8.68908 14.9359 8.4375 14.625 8.4375C14.3141 8.4375 14.0625 8.68908 14.0625 9V15.75C14.0625 16.0604 13.8104 16.3125 13.5 16.3125H2.25C1.93964 16.3125 1.6875 16.0604 1.6875 15.75V4.5C1.6875 4.18964 1.93964 3.9375 2.25 3.9375H9C9.31092 3.9375 9.5625 3.68592 9.5625 3.375C9.5625 3.06408 9.31092 2.8125 9 2.8125H2.25C1.31948 2.8125 0.5625 3.56948 0.5625 4.5V15.75C0.5625 16.6805 1.31948 17.4375 2.25 17.4375H13.5C14.4305 17.4375 15.1875 16.6805 15.1875 15.75Z\",\n fill: \"#151323\",\n fillOpacity: 0.64\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5375 6.1875V1.125C17.5375 0.75885 17.2412 0.4625 16.875 0.4625H11.8125C11.4464 0.4625 11.15 0.75885 11.15 1.125C11.15 1.49115 11.4464 1.7875 11.8125 1.7875H15.2757L7.40662 9.65658C7.40662 9.65659 7.40661 9.65659 7.4066 9.6566C7.14773 9.91533 7.14777 10.3346 7.4066 10.5934C7.53592 10.7227 7.70567 10.7875 7.875 10.7875C8.04433 10.7875 8.21408 10.7227 8.3434 10.5934L16.2125 2.7243V6.1875C16.2125 6.55365 16.5088 6.85 16.875 6.85C17.2412 6.85 17.5375 6.55365 17.5375 6.1875ZM15.2875 15.75V9C15.2875 8.63385 14.9911 8.3375 14.625 8.3375C14.2589 8.3375 13.9625 8.63385 13.9625 9V15.75C13.9625 16.0051 13.7551 16.2125 13.5 16.2125H2.25C1.99487 16.2125 1.7875 16.0051 1.7875 15.75V4.5C1.7875 4.24487 1.99487 4.0375 2.25 4.0375H9C9.36615 4.0375 9.6625 3.74115 9.6625 3.375C9.6625 3.00885 9.36615 2.7125 9 2.7125H2.25C1.26426 2.7125 0.4625 3.51426 0.4625 4.5V15.75C0.4625 16.7357 1.26426 17.5375 2.25 17.5375H13.5C14.4857 17.5375 15.2875 16.7357 15.2875 15.75Z\",\n stroke: \"#151323\",\n strokeOpacity: 0.64,\n strokeWidth: 0.2\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLinkIcon);\nexport default __webpack_public_path__ + \"static/media/linkIcon.1f707a4d.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgCopyIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.8571 3.21429H1.92857C0.863449 3.21429 0 4.07774 0 5.14286V16.0714C0 17.1365 0.863449 18 1.92857 18H12.8571C13.9222 18 14.7857 17.1365 14.7857 16.0714V5.14286C14.7857 4.07774 13.9222 3.21429 12.8571 3.21429Z\",\n fill: \"#151323\",\n fillOpacity: 0.64\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.0715 1.24529e-09H4.5001C3.44075 -3.76661e-05 2.57967 0.854447 2.57153 1.91377C2.57153 1.91893 2.57153 1.92341 2.57153 1.92857H12.8573C14.6316 1.93068 16.0694 3.36852 16.0715 5.14284V15.4286C16.0767 15.4286 16.0812 15.4286 16.0863 15.4286C17.1457 15.4204 18.0001 14.5593 18.0001 13.5V1.92857C18.0001 0.863449 17.1366 1.24529e-09 16.0715 1.24529e-09Z\",\n fill: \"#151323\",\n fillOpacity: 0.64\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopyIcon);\nexport default __webpack_public_path__ + \"static/media/copyIcon.8b58d92d.svg\";\nexport { ForwardRef as ReactComponent };","/** @jsxImportSource @emotion/react */\r\nimport React, {useEffect, useState} from 'react';\r\nimport { useTranslation } from 'translation';\r\nimport {Modal} from '../Modal';\r\nimport {useSelector} from \"react-redux\";\r\nimport {changeType, getConfig, getStakeModal, reset, useAppDispatch} from \"../../features\";\r\nimport {Box, Input, Tooltip, Typography, useTheme} from \"@mui/material\";\r\nimport {PoolIcon} from \"../Pool/components/Pool\";\r\nimport {Button} from \"../Button\";\r\nimport { useStyles } from \"./styles\";\r\nimport InfoOutlinedIcon from \"@mui/icons-material/InfoOutlined\";\r\nimport {CardComponent} from \"../Card\";\r\nimport {ButtonGroup} from \"../ButtonGroup\";\r\nimport TPYIcon from '../../assets/img/icons/thrupennyIcon.svg'\r\nimport {useGetBalanceOf, useApproveToken, useGetAllowance, useStakeToken, useWithdrawToken, GetPriceOfOutput} from \"../../clients/api\";\r\nimport convertWeiToTokens from \"../../utilities/convertWeiToTokens\";\r\nimport {AuthContext} from \"../../context/AuthContext\";\r\nimport getContractAddress from \"../../utilities/getContractAddress\";\r\n\r\nimport {ReactComponent as SuccessIcon } from '../../assets/img/icons/successIcon.svg';\r\nimport {ReactComponent as LinkIcon} from \"../../assets/img/icons/linkIcon.svg\";\r\nimport {TX_URLS} from \"../../constants/endpoints\";\r\nexport interface StakeModalProps {\r\n price: GetPriceOfOutput | undefined;\r\n referralId: number;\r\n}\r\n\r\nexport const StakeModal: React.FC = ({price, referralId}) => {\r\n const styles = useStyles();\r\n const { t } = useTranslation();\r\n const theme = useTheme();\r\n const { account } = React.useContext(AuthContext);\r\n const dispatch = useAppDispatch();\r\n const { network } = useSelector(getConfig);\r\n const { isOpen, percent, date, type, poolId, startDate, userStaked, stakeDisabled } = useSelector(getStakeModal);\r\n const startTerm = startDate ? new Date(+startDate * 1000): new Date();\r\n const endDate = new Date();\r\n const [balance, setBalance] = useState('0');\r\n const [amount, setAmount] = useState('');\r\n const [txHash, setTxHash] = useState('');\r\n endDate.setDate(endDate.getDate() + date);\r\n const { chainId } = useSelector(getConfig);\r\n const spenderAddress = getContractAddress('staking',chainId);\r\n const { mutate: contractApproveToken, isLoading: approveTokenLoading, } = useApproveToken({\r\n tokenId: 'tpy',\r\n network: network\r\n });\r\n const { mutateAsync: stakeTPYToken, isLoading: stakingLoading } = useStakeToken({accountAddress: account?.address || '', chainId: chainId});\r\n\r\n const { mutateAsync: withdrawTPYToken, isLoading: withdrawLoading } = useWithdrawToken({accountAddress: account?.address || '', chainId: chainId});\r\n\r\n const { data: getTokenAllowanceData } = useGetAllowance(\r\n {\r\n accountAddress: account?.address || '',\r\n spenderAddress,\r\n tokenId: 'tpy',\r\n network: network\r\n\r\n },\r\n {\r\n enabled: !!account?.address,\r\n },\r\n );\r\n const isTokenApproved = (!!getTokenAllowanceData && getTokenAllowanceData.allowanceWei.isGreaterThan(0));\r\n\r\n const { data: availableTokensData, isLoading, status } = useGetBalanceOf(\r\n {\r\n accountAddress: account?.address || '',\r\n tokenId: 'tpy',\r\n network: network\r\n },\r\n {\r\n enabled: !!account?.address,\r\n },\r\n );\r\n useEffect(() => {\r\n if(status === \"success\"){\r\n const balanceValue = convertWeiToTokens({valueWei: availableTokensData.balanceWei, tokenId: 'tpy', network: network});\r\n setBalance(balanceValue.toString());\r\n }\r\n },[isLoading, account?.address, network, status])\r\n\r\n const onClose = () => {\r\n setTxHash('');\r\n setAmount('')\r\n dispatch(reset());\r\n }\r\n const changeButton = (index: number) => {\r\n setAmount('');\r\n dispatch(changeType({type: (index ? 'withdraw' : 'stake')}));\r\n }\r\n const changeAmount = (event: React.ChangeEvent) => {\r\n const maxAmount = (type === \"withdraw\" && userStaked) || balance;\r\n if((!isNaN(+event.target.value) && !isNaN(parseFloat(event.target.value))) || (event.target.value[event.target.value.length - 1] === '.' && event.target.value.indexOf('.') === event.target.value.length - 1)){\r\n if(+event.target.value > +maxAmount){\r\n return setAmount(maxAmount);\r\n }\r\n return setAmount(event.target.value);\r\n }\r\n if(event.target.value === ''){\r\n return setAmount('');\r\n }\r\n }\r\n const allowanceBalance = () => {\r\n contractApproveToken({\r\n accountAddress: account?.address || '',\r\n spenderAddress,\r\n })\r\n }\r\n const stakeTpy = async () => {\r\n if(type === \"withdraw\"){\r\n let maxAmount = +amount;\r\n if(amount === userStaked){\r\n maxAmount = +amount * 10;\r\n }\r\n const res = await withdrawTPYToken({\r\n accountAddress: account?.address || '',\r\n poolId: poolId,\r\n amount: maxAmount,\r\n network:network\r\n })\r\n return setTxHash(res.transactionHash);\r\n }else{\r\n const res = await stakeTPYToken({\r\n accountAddress: account?.address || '',\r\n poolId: poolId,\r\n referralId: referralId,\r\n amount: amount,\r\n network: network\r\n })\r\n return setTxHash(res.transactionHash);\r\n }\r\n }\r\n const setAllBalance = () => {\r\n setAmount((type === \"withdraw\" && userStaked) || balance);\r\n }\r\n const getEndDate = () => {\r\n return type===\"withdraw\"\r\n ? `${startTerm.toLocaleString('default', {month: 'short'})} ${startTerm.getDate()},${startTerm.getFullYear()}`\r\n : `${endDate.toLocaleString('default', {month: 'short'})} ${endDate.getDate()},${endDate.getFullYear()}`\r\n }\r\n return (\r\n \r\n \r\n {!txHash ? <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {percent} %\r\n \r\n \r\n {date ? `${date} ${t('stakeModal.daysLock')}` : t('stakeModal.flexible')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \"...\"\r\n \r\n TPY\r\n \r\n \r\n
\r\n \r\n
\r\n $ {((+amount) * (price?.price || 0)).toFixed(2)}\r\n
\r\n \r\n \r\n {userStaked && type === \"withdraw\" ? t('stakeModal.alreadyStaked') : t('stakeModal.balance')} {(+((type === \"withdraw\" && userStaked) || balance)).toFixed(2)}\r\n \r\n \r\n {t('stakeModal.max')}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {t('stakeModal.lockEnd')}\r\n \r\n \r\n \r\n \r\n \r\n {date ? getEndDate() : t('stakeModal.flexible')}\r\n \r\n \r\n \r\n {type === \"stake\"\r\n ? \r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n {t('successModal.done')}\r\n \r\n \r\n \r\n \r\n \r\n {type === \"stake\" ? t('successModal.staked') :t('successModal.withdraw')} {amount} TPYs\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('successModal.reviewDetails')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n \r\n );\r\n};\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n percent: css`\r\n color: ${theme.palette.customText.sometimes};\r\n font-size: 32px;\r\n ${theme.breakpoints.down('lg')} {\r\n font-size: 24px;\r\n }\r\n `,\r\n lockDay: css`\r\n font-size: 18px;\r\n color: ${theme.palette.text.primary};\r\n ${theme.breakpoints.down('lg')} {\r\n font-size: 14px;\r\n }\r\n `,\r\n columnsTitle: css`\r\n display: flex;\r\n gap: 8px;\r\n align-items: center;\r\n font-size: 16px;\r\n color: ${theme.palette.text.secondary};\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 12px;\r\n & > svg{\r\n width: 12px;\r\n height: 12px;\r\n }\r\n }\r\n `,\r\n balances: css`\r\n margin-top: 24px;\r\n padding: 20px 24px;\r\n background: rgba(46, 90, 244, 0.12);\r\n border: 1px solid #2E5AF4;\r\n border-radius: 12px;\r\n ${theme.breakpoints.down('md')} {\r\n padding: 16px 13px;\r\n }\r\n `,\r\n amount: css`\r\n display: flex;\r\n justify-content: space-between;\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 12px;\r\n }\r\n `,\r\n maxAmount: css`\r\n font-weight: 600;\r\n font-size: 16px;\r\n color: #2E5AF4;\r\n cursor: pointer;\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 14px;\r\n }\r\n `,\r\n balance: css`\r\n font-weight: 500;\r\n font-size: 16px;\r\n color: ${theme.palette.text.secondary};\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 12px;\r\n }\r\n `,\r\n input: css`\r\n outline: none;\r\n width: auto;\r\n `,\r\n tpy: css`\r\n font-size: 20px;\r\n color: ${theme.palette.text.primary};\r\n font-weight: 600;\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 18px;\r\n }\r\n `,\r\n buttons: css`\r\n margin-top: 50px;\r\n ${theme.breakpoints.down('md')} {\r\n margin-top: 40px;\r\n }\r\n `,\r\n allDone: css`\r\n font-weight: 600;\r\n font-size: 24px;\r\n color: ${theme.palette.text.primary};\r\n `,\r\n reviewDetails: css`\r\n display: flex;\r\n justify-content: flex-end;\r\n & > a{\r\n display: flex;\r\n align-items: center;\r\n gap: 9px; \r\n } \r\n margin: 40px 0 20px;\r\n `,\r\n reviewDetailsText: css`\r\n font-weight: 500;\r\n font-size: 14px;\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport React from 'react';\r\nimport {useTranslation} from 'translation';\r\n\r\nimport InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';\r\n\r\nimport {useStyles} from './styles';\r\nimport {Box, Tooltip, Typography} from \"@mui/material\";\r\nimport {Line} from \"../../../../components/Line\";\r\n\r\nconst PoolHeader: React.FC<{title: string}> = ({title}) => {\r\n const {t} = useTranslation();\r\n const styles = useStyles();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {t(`layout.stake.pools.${title}`)}\r\n \r\n \r\n \r\n \r\n {t('layout.stake.pools.pools')}\r\n \r\n \r\n \r\n \r\n {t('layout.stake.pools.reward')}\r\n \r\n \r\n \r\n \r\n \r\n {t('layout.stake.pools.lockTerm')}\r\n \r\n \r\n \r\n \r\n \r\n {t('layout.stake.pools.totalStaked')}\r\n \r\n \r\n \r\n \r\n \r\n {t('layout.stake.pools.yourStake')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PoolHeader;\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n poolHeader: css`\r\n padding: 0 24px;\r\n ${theme.breakpoints.down('md')} {\r\n padding: 0 16px;\r\n }\r\n `,\r\n poolTitle: css`\r\n font-size: 25px;\r\n font-weight: 700;\r\n color: ${theme.palette.text.primary};\r\n ${theme.breakpoints.down('xl')} {\r\n font-size: 25px;\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 18px;\r\n margin-bottom: 24px;\r\n }\r\n `,\r\n columns: css`\r\n width: 100%;\r\n margin: 24px 0 17px;\r\n display: flex;\r\n justify-content: space-between;\r\n ${theme.breakpoints.down('md')} {\r\n display: none;\r\n }\r\n `,\r\n columnsTitle: css`\r\n width: 100%;\r\n font-weight: 500;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 13px;\r\n justify-content: center;\r\n color: ${theme.palette.text.secondary};\r\n `,\r\n columnsPoolTitle: css`\r\n width: 190px;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 13px;\r\n color: ${theme.palette.text.secondary};\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport React, {useState} from 'react';\r\n\r\nimport {ReactComponent as CopyIcon} from '../../../../assets/img/icons/copyIcon.svg';\r\n\r\nimport {useStyles} from './styles';\r\nimport {Box, Snackbar, Typography} from \"@mui/material\";\r\nimport {useGetAddressTold} from \"../../../../clients/api\";\r\nimport {AuthContext} from \"../../../../context/AuthContext\";\r\nimport { getConfig } from 'features';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst ReferralLink: React.FC = () => {\r\n const styles = useStyles();\r\n const {account} = React.useContext(AuthContext);\r\n const { chainId } = useSelector(getConfig);\r\n const [open, setOpen] = useState(false);\r\n\r\n const {data} = useGetAddressTold(\r\n {\r\n accountAddress: account?.address || '',\r\n chainId: chainId\r\n },\r\n {\r\n enabled: !!account?.address,\r\n },\r\n );\r\n\r\n const copyLink = () => {\r\n setOpen(true);\r\n navigator.clipboard.writeText(`${process.env.REACT_APP_URL || 'https://staking.thrupenny.io/'}stake/${chainId}/${data?.userId}`);\r\n }\r\n\r\n return (\r\n <>\r\n setOpen(false)}\r\n open={open}\r\n anchorOrigin={{vertical: 'top', horizontal: 'right'}}\r\n />\r\n \r\n
\r\n \r\n {`${process.env.REACT_APP_URL || 'https://staking.thrupenny.io/'}stake/${chainId}/${data?.userId}`}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ReferralLink;\r\n\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = () => {\r\n const theme = useTheme();\r\n\r\n return {\r\n referralContainer: css`\r\n width: 100%;\r\n padding: 13px 12px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background-color: ${theme.palette.customBackground.navBar};\r\n box-shadow: 2px 12px 32px -12px rgba(14, 114, 102, 0.06);\r\n border-radius: 12px;\r\n `,\r\n icons: css`\r\n display: flex;\r\n gap: 24px;\r\n align-items: center;\r\n a {\r\n height: 18px;\r\n }\r\n `,\r\n icon: css`\r\n & > path {\r\n fill: ${theme.palette.text.primary};\r\n }\r\n `,\r\n link: css`\r\n color: ${theme.palette.text.primary};\r\n font-size: 13px;\r\n `,\r\n };\r\n};\r\n","/** @jsxImportSource @emotion/react */\r\nimport React, {useEffect, useRef, useState} from 'react';\r\nimport {useTranslation} from 'translation';\r\nimport {useParams} from 'react-router';\r\n\r\nimport EastIcon from '@mui/icons-material/East';\r\nimport {useStyles} from './styles';\r\nimport {Box, Tooltip, Typography, useTheme} from \"@mui/material\";\r\nimport {CardComponent} from \"../../components/Card\";\r\nimport {pools} from \"../../__mocks__/api/pools\";\r\nimport {ConnectedPool, Pool} from \"../../components/Pool\";\r\nimport {StakeModal} from \"../../components/StakeModal\";\r\nimport ConnectButton from \"../../components/Layout/ConnectButton\";\r\nimport {AuthContext} from \"../../context/AuthContext\";\r\nimport {Button} from \"../../components\";\r\nimport PoolHeader from \"./components/Pool\";\r\nimport {PoolType} from \"../../types\";\r\nimport ReferralLink from \"./components/ReferralLink\";\r\nimport {useGetPriceOf, useGetPoolInfo, useGetUserInfoPerPool, useGetAddressTold} from \"../../clients/api\";\r\nimport {POOLS} from \"../../constants/pools\";\r\nimport convertWeiToTokens from \"../../utilities/convertWeiToTokens\";\r\nimport ReactLoading from \"react-loading\";\r\nimport numberFormat from \"../../utilities/numberFormat\";\r\nimport { useSelector } from 'react-redux';\r\nimport {getConfig} from \"../../features\";\r\n\r\nexport const StakeUi: React.FC = () => {\r\n const {id}: never = useParams();\r\n const {t} = useTranslation();\r\n const theme = useTheme();\r\n const {network, chainId} = useSelector(getConfig)\r\n const scrollToPools = useRef(null);\r\n const {account} = React.useContext(AuthContext);\r\n const styles = useStyles({account: account?.address});\r\n const [activePools, setActivePools] = useState(pools);\r\n const [engagedPools, setEngagedPools] = useState([]);\r\n const { data: poolsInfo } = useGetPoolInfo(\r\n { poolIds: POOLS, network : network, chainId: chainId },\r\n {\r\n enabled: !!chainId\r\n }\r\n );\r\n const {data: referrerId} = useGetAddressTold(\r\n {\r\n accountAddress: account?.address || '',\r\n chainId: chainId\r\n },\r\n {\r\n enabled: !!account?.address,\r\n },\r\n );\r\n const {data: userInfo, isLoading} = useGetUserInfoPerPool({\r\n poolIds: POOLS,\r\n accountAddress: account?.address || '',\r\n network: network,\r\n chainId: chainId\r\n }, {\r\n enabled: !!account?.address,\r\n });\r\n const {data: price} = useGetPriceOf(\r\n {\r\n accountAddress: account?.address || '',\r\n tokenId: 'tpy',\r\n network: network\r\n }\r\n );\r\n useEffect(() => {\r\n if (poolsInfo) {\r\n const activePool: PoolType[] = [];\r\n if (userInfo) {\r\n const engagedPool: PoolType[] = [];\r\n pools.forEach((pool: PoolType) => {\r\n if (convertWeiToTokens({valueWei: userInfo.userInfo[pool.poolId].stake, tokenId: 'tpy', network: network}) !== \"0\") {\r\n engagedPool.push({\r\n ...pool,\r\n total: convertWeiToTokens({\r\n valueWei: poolsInfo.poolInfo.res[chainId][pool.poolId].totalStakes,\r\n tokenId: 'tpy',\r\n network: network\r\n }),\r\n accountBalance: convertWeiToTokens({\r\n valueWei: userInfo.userInfo[pool.poolId].reward,\r\n tokenId: 'tpy',\r\n network: network\r\n }),\r\n startDate: userInfo.userInfo[pool.poolId].startDate,\r\n endDate: userInfo.userInfo[pool.poolId].endDate\r\n })\r\n } else {\r\n activePool.push({\r\n ...pool,\r\n total: convertWeiToTokens({\r\n valueWei: poolsInfo.poolInfo.res[chainId][pool.poolId].totalStakes,\r\n tokenId: 'tpy',\r\n network: network\r\n })\r\n })\r\n }\r\n })\r\n setEngagedPools(engagedPool)\r\n } else {\r\n pools.forEach((pool: PoolType) => {\r\n activePool.push({\r\n ...pool,\r\n total: convertWeiToTokens({\r\n valueWei: poolsInfo.poolInfo.res[chainId][pool.poolId].totalStakes,\r\n tokenId: 'tpy',\r\n network: network\r\n })\r\n })\r\n })\r\n }\r\n\r\n setActivePools(activePool)\r\n }\r\n }, [poolsInfo, userInfo, network]);\r\n const handleScroll = () => {\r\n scrollToPools?.current?.scrollIntoView({behavior: \"smooth\"});\r\n }\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {t('layout.stake.referral.title')}\r\n \r\n \r\n {(isLoading\r\n &&\r\n \r\n \r\n )\r\n ||\r\n \r\n \r\n {account ? (engagedPools.length || Number(referrerId?.userId) ? t('layout.stake.referral.referralLink') : t('layout.stake.referral.referralGenerator')) : t('layout.stake.referral.connectText')}\r\n \r\n \r\n {\r\n account ?\r\n ((engagedPools.length || Number(referrerId?.userId)) ?\r\n :\r\n )\r\n :\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {t('layout.stake.myAccount.title')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n + {\r\n userInfo && (((userInfo?.reward - userInfo?.stakes).toFixed(2)).toString().length > 10\r\n ?\r\n <>\r\n \r\n {(numberFormat({value: (userInfo?.reward - userInfo?.stakes)}).toString().slice(0, 10))}...\r\n \r\n \r\n :\r\n numberFormat({value: ((userInfo?.reward - userInfo?.stakes).toFixed(2))}))\r\n || 0\r\n } TPY\r\n \r\n \r\n + {\r\n userInfo && ((((userInfo?.reward - userInfo?.stakes) * (price?.price || 0)).toFixed(2)).toString().length > 10\r\n ?\r\n <>\r\n \r\n {((numberFormat({value: ((userInfo?.reward - userInfo?.stakes) * (price?.price || 0)).toFixed(2)})).toString().slice(0, 10))}...\r\n \r\n \r\n :\r\n numberFormat({value: (((userInfo?.reward - userInfo?.stakes) * (price?.price || 0)).toFixed(2))}))\r\n || 0} USD\r\n \r\n \r\n \r\n {t('layout.stake.myAccount.totalRewards')}\r\n \r\n \r\n \r\n \r\n \r\n {numberFormat({value: ((userInfo?.reward)?.toFixed(1)) || 0})} TPY\r\n \r\n \r\n ~ {numberFormat({value: ((userInfo?.reward || 0) * (price?.price || 0)).toFixed(1)})} USD\r\n \r\n \r\n \r\n {t('layout.stake.myAccount.totalStaked')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t('layout.stake.platform.title')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ~ {\r\n numberFormat({value: ((price?.price || 0) * (poolsInfo?.poolInfo.totalStakes || 0)).toFixed(2)})\r\n } USD\r\n \r\n \r\n \r\n {t('layout.stake.platform.totalLocked')}\r\n \r\n \r\n \r\n \r\n \r\n ~ {numberFormat({value: (poolsInfo?.poolInfo.totalStakes.toFixed(2) || null)})} TPY\r\n \r\n \r\n \r\n {t('layout.stake.platform.totalTPYStaked')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(isLoading\r\n && \r\n \r\n )\r\n ||\r\n \r\n {account && engagedPools.length ? engagedPools.map((item, key) =>\r\n \r\n ) : }\r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {activePools.map((item, key) =>\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst Stake: React.FC = () => (\r\n \r\n);\r\n\r\nexport default Stake;\r\n","import { css } from '@emotion/react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nexport const useStyles = (account?: { account: string | undefined }) => {\r\n const theme = useTheme();\r\n\r\n return {\r\n referralBodyText: css`\r\n font-size: 14px;\r\n color: ${theme.palette.text.primary};\r\n\r\n ${theme.breakpoints.down('xl')} {\r\n font-size: 16px;\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 14px;\r\n margin-bottom: ${account ? '14px' : ''}\r\n }\r\n `,\r\n sectionTitle: css`\r\n font-size: 22px;\r\n //font-size: 28px;\r\n font-weight: 600;\r\n color: ${theme.palette.text.primary};\r\n\r\n ${theme.breakpoints.down('xl')} {\r\n font-size: 22px;\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 18px;\r\n }\r\n `,\r\n sectionBodyTexts: css`\r\n font-size: 14px;\r\n font-weight: 500;\r\n color: ${theme.palette.text.secondary};\r\n\r\n ${theme.breakpoints.down('xl')} {\r\n font-size: 16px;\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 14px;\r\n }\r\n `,\r\n sectionBodyValues: css`\r\n //font-size: 24px;\r\n font-size: 19px;\r\n color: ${theme.palette.text.primary};\r\n\r\n ${theme.breakpoints.down('xl')} {\r\n font-size: 20px;\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 16px;\r\n }\r\n `,\r\n sectionBodyRewards: css`\r\n //font-size: 24px;\r\n font-size: 19px;\r\n font-weight: 500;\r\n color: ${theme.palette.customText.sometimes};\r\n\r\n ${theme.breakpoints.down('xl')} {\r\n font-size: 20px;\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 16px;\r\n }\r\n `,\r\n sectionTitleText: css`\r\n ${theme.breakpoints.down('md')} {\r\n font-size: ${theme.typography.h4.fontSize};\r\n font-weight: ${theme.typography.h4.fontWeight};\r\n }\r\n `,\r\n sectionBody: css`\r\n ${theme.breakpoints.down('md')} {\r\n margin-bottom: ${theme.spacing(6)};\r\n }\r\n `,\r\n cards: css`\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 16px;\r\n `,\r\n cardsWrapper: css`\r\n display: flex;\r\n justify-content: space-between;\r\n gap: 24px;\r\n ${theme.breakpoints.down('xl')} {\r\n flex-direction: column;\r\n }\r\n `,\r\n poolTitle: css`\r\n font-size: 32px;\r\n color: ${theme.palette.text.primary};\r\n ${theme.breakpoints.down('xl')} {\r\n font-size: 25px;\r\n }\r\n\r\n ${theme.breakpoints.down('md')} {\r\n font-size: 18px;\r\n }\r\n `,\r\n pools: css`\r\n margin-top: 13px;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 16px;\r\n ${theme.breakpoints.down('md')} {\r\n margin-top: 20px;\r\n margin-bottom: 24px;\r\n }\r\n `,\r\n };\r\n};\r\n","/* https://mui.com/customization/theming/ */\r\nimport { ThemeOptions, createTheme } from '@mui/material/styles';\r\n\r\nconst fontFamily = 'Montserrat';\r\n\r\nexport const FONTS = {\r\n primary: fontFamily,\r\n};\r\n\r\nexport const PALETTE = {\r\n mode: 'dark',\r\n background: {\r\n default: '#2A2741',\r\n paper: '#2A2741',\r\n },\r\n customBackground:{\r\n default: 'linear-gradient(112deg, #2e2a45 0%, #25264b 100%)',\r\n drawer: 'linear-gradient(69.18deg, rgba(42, 39, 64, 0.88) 0%, rgba(55, 52, 78, 0.88) 100%)',\r\n navBar: 'rgba(53, 49, 75, 0.44)',\r\n navItems: '#2A2741',\r\n modal: '#2A2741',\r\n card: '#2A3C68',\r\n poolBorder: '#3B3960',\r\n icon: '#FCFCFF',\r\n social: '#312E47',\r\n line: '#3B3960',\r\n },\r\n button: {\r\n main: 'linear-gradient(95.17deg, #2F5CF5 1.42%, #57A4F5 100%)',\r\n secondary: 'rgba(54, 51, 78, 0.8)',\r\n disable: 'rgba(47, 92, 245, 0.24)',\r\n groupDisable: 'rgba(46, 90, 244, 0.64)',\r\n border: 'linear-gradient(rgba(54, 51, 78, 1),rgba(54, 51, 78, 1)) padding-box, linear-gradient(45deg, rgba(46, 90, 244, 1),rgba(88, 166, 244, 1)) border-box',\r\n },\r\n modal: {\r\n border: 'linear-gradient(#2A2741,#2A2741) padding-box, linear-gradient(45deg, rgba(39, 141, 254, 0.18),rgba(39, 141, 254, 0.18)) border-box',\r\n },\r\n primary: {\r\n light: '#EBBF6E',\r\n main: '#EBBF6E',\r\n dark: 'var(--color-blue-hover)',\r\n },\r\n secondary: {\r\n light: 'rgba(56, 57, 68, 1)',\r\n main: 'rgba(40, 41, 49, 1)',\r\n dark: 'rgba(31, 32, 40, 1)',\r\n },\r\n warning: {\r\n light: 'rgba(53, 49, 75, 0.44)',\r\n main: '#2A2741',\r\n dark: 'rgba(31, 32, 40, 1)',\r\n },\r\n text: {\r\n primary: '#FCFCFF',\r\n secondary: 'rgba(252, 252, 255, 0.64)',\r\n disabled: 'rgba(252, 252, 255, 0.4)',\r\n },\r\n customText: {\r\n sometimes: '#51CC73',\r\n primary: '#FCFCFF',\r\n secondary: '#FCFCFF',\r\n },\r\n interactive: {\r\n primary: 'rgba(49, 46, 71, 0.64)',\r\n success: 'rgba(59, 57, 96, 1)',\r\n success50: '#3B3960',\r\n error: 'rgba(233, 61, 68, 1)',\r\n error50: 'rgba(233, 61, 68, 0.5)',\r\n tan: 'rgba(255, 231, 206, 1)',\r\n delimiter: 'rgba(49, 50, 60, 1)',\r\n warning: 'rgba(220, 148, 68, 1)',\r\n hover: 'linear-gradient(rgba(49, 46, 71, 1),rgba(49, 46, 71, 1)) padding-box, linear-gradient(45deg, rgba(47, 92, 245, 1),rgba(87, 164, 245, 1)) border-box',\r\n },\r\n switchLang: {\r\n background: '#3B3960',\r\n iconBackground: '#FCFCFF',\r\n activeText: '#3B3960',\r\n text: 'rgba(255, 255, 255, 0.64)'\r\n },\r\n switchMode: {\r\n background: '#3B3960',\r\n iconBackground: '#FCFCFF',\r\n text: 'rgba(255, 255, 255, 0.64)'\r\n }\r\n};\r\n\r\nexport const PALETTE_LIGHT = {\r\n mode: 'light',\r\n background: {\r\n default: '#FCFCFF',\r\n paper: '#FCFCFF',\r\n },\r\n customBackground:{\r\n default: 'linear-gradient(74.36deg, rgba(247, 247, 255, 0.88) 0%, rgba(247, 247, 255, 0.36) 101.26%)',\r\n drawer: 'rgba(228, 231, 255, 0.64)',\r\n navBar: '#FCFCFF',\r\n navItems: 'rgba(228, 231, 255, 1)',\r\n modal: '#FCFCFF',\r\n card: '#CDE1FF',\r\n poolBorder: '#DADEFF',\r\n icon: '#151323',\r\n social: '#FCFCFF',\r\n line: '#DFE2FF',\r\n },\r\n button: {\r\n main: 'linear-gradient(95.17deg, #2F5CF5 1.42%, #57A4F5 100%)',\r\n medium: 'rgba(38, 90, 204, 1)',\r\n dark: 'rgba(2, 7, 1, 1)',\r\n disable: 'rgba(47, 92, 245, 0.24)',\r\n groupDisable: 'rgba(46, 90, 244, 0.32)',\r\n border: 'linear-gradient(#FCFCFF,#FCFCFF) padding-box, linear-gradient(45deg, rgba(46, 90, 244, 1),rgba(88, 166, 244, 1)) border-box',\r\n },\r\n primary: {\r\n light: '#EBBF6E',\r\n main: '#EBBF6E',\r\n dark: 'var(--color-blue-hover)',\r\n },\r\n modal: {\r\n border: 'linear-gradient(#2A2741,#2A2741) padding-box, linear-gradient(45deg, rgba(39, 141, 254, 0.18),rgba(39, 141, 254, 0.18)) border-box',\r\n },\r\n warning: {\r\n light: '#E4E7FF',\r\n main: '#FCFCFF',\r\n dark: 'var(--color-blue-hover)',\r\n },\r\n secondary: {\r\n light: 'rgba(56, 57, 68, 1)',\r\n main: 'rgba(40, 41, 49, 1)',\r\n dark: 'rgba(31, 32, 40, 1)',\r\n },\r\n text: {\r\n primary: 'rgba(21, 19, 35, 1)',\r\n secondary: 'rgba(21, 19, 35, 0.64)',\r\n disabled: 'rgba(21, 19, 35, 0.44)',\r\n },\r\n customText: {\r\n sometimes: '#51CC73',\r\n primary: '#FCFCFF',\r\n secondary: '#2E5AF4',\r\n },\r\n interactive: {\r\n primary: '#E4E7FF',\r\n success: 'linear-gradient(95.17deg, #2E5AF4 1.42%, #58A6F4 100%)',\r\n success50: '#3B3960',\r\n error: 'rgba(233, 61, 68, 1)',\r\n error50: 'rgba(233, 61, 68, 0.5)',\r\n tan: 'rgba(255, 231, 206, 1)',\r\n delimiter: 'rgba(49, 50, 60, 1)',\r\n warning: 'rgba(220, 148, 68, 1)',\r\n hover: 'rgba(255, 255, 255, 0.08)',\r\n },\r\n switchLang: {\r\n background: 'rgba(21, 19, 35, 0.64)',\r\n iconBackground: '#FCFCFF',\r\n activeText: '#3B3960',\r\n text: 'rgba(255, 255, 255, 0.64)'\r\n },\r\n switchMode: {\r\n background: 'linear-gradient(95.17deg, #2E5AF4 1.42%, #58A6F4 100%)',\r\n iconBackground: '#FCFCFF',\r\n text: 'rgba(255, 255, 255, 0.8)'\r\n }\r\n};\r\n\r\nexport const BREAKPOINTS = {\r\n values: {\r\n xs: 0,\r\n sm: 576,\r\n md: 768,\r\n lg: 1040,\r\n xl: 1280,\r\n xxl: 1440,\r\n },\r\n};\r\n\r\nexport const SPACING = 4;\r\n\r\nexport const SHAPE = {\r\n borderRadius: {\r\n verySmall: SPACING,\r\n small: SPACING * 2,\r\n medium: SPACING * 4,\r\n large: SPACING * 6,\r\n } as never, // our custom types seem to clash with the default MUI types\r\n iconSize: {\r\n small: SPACING * 3,\r\n medium: SPACING * 4,\r\n large: SPACING * 5,\r\n xLarge: SPACING * 6,\r\n xxLarge: SPACING * 10,\r\n },\r\n footerHeight: '56px',\r\n drawerWidthDesktop: '224px',\r\n drawerWidthTablet: '80px',\r\n};\r\n\r\n\r\nexport default function mainTheme(mode = 'dark'){\r\n return createTheme({\r\n spacing: SPACING,\r\n palette: mode === 'dark' ? PALETTE : PALETTE_LIGHT,\r\n breakpoints: BREAKPOINTS,\r\n shape: SHAPE,\r\n typography: {\r\n fontFamily: FONTS.primary,\r\n color: PALETTE.text.primary,\r\n h1: {\r\n fontSize: '2.5rem',\r\n fontWeight: 600,\r\n lineHeight: 1.5,\r\n },\r\n span: {\r\n fontSize: '18px',\r\n fontWeight: 400,\r\n color: PALETTE.text.primary,\r\n '@media (min-width:768px)': {\r\n fontSize: '14px',\r\n },\r\n },\r\n },\r\n components: {\r\n\r\n },\r\n } as ThemeOptions);\r\n}\r\n","import { CssBaseline } from '@mui/material';\r\nimport { ThemeProvider } from '@mui/material/styles';\r\nimport React, { ReactNode } from 'react';\r\n\r\nimport 'assets/styles/normalize.scss';\r\nimport mainTheme from './muiTheme';\r\nimport { getMode, useAppSelector } from '../../features';\r\n\r\nexport function MuiThemeProvider({ children }: { children: ReactNode }) {\r\n const mode = useAppSelector(getMode);\r\n return (\r\n \r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import {Layout} from 'components';\r\nimport React, {useEffect} from 'react';\r\nimport {QueryClientProvider} from 'react-query';\r\nimport {BrowserRouter, Redirect, Route, Switch} from 'react-router-dom';\r\n\r\nimport 'assets/styles/App.scss';\r\nimport {queryClient} from 'clients/api';\r\nimport {Web3Wrapper} from 'clients/web3';\r\nimport {routes} from 'constants/routing';\r\nimport {AuthProvider} from 'context/AuthContext';\r\nimport Stake from 'pages/Stake';\r\nimport {MuiThemeProvider} from 'theme/MuiThemeProvider';\r\nimport {changeMode, getMode, useAppDispatch, useAppSelector} from '../features';\r\n\r\nconst App = () => {\r\n const mode = useAppSelector(getMode);\r\n const dispatch = useAppDispatch();\r\n\r\n useEffect(() => {\r\n const lastMode = localStorage.getItem('mode');\r\n if (lastMode && lastMode !== mode) {\r\n dispatch(changeMode(lastMode));\r\n }\r\n }, []);\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ;\r\n};\r\n\r\nexport default App;\r\n","import BigNumber from 'bignumber.js';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { configureStore } from '@reduxjs/toolkit';\r\nimport { Provider } from 'react-redux';\r\n\r\nimport 'assets/styles/index.scss';\r\n// eslint-disable-next-line import/no-cycle\r\nimport App from 'pages/App';\r\n// eslint-disable-next-line import/no-cycle\r\nimport { themeSlice, stakeModalSlice, configSlice } from './features';\r\n\r\n// Initialize BigNumber format\r\nBigNumber.config({\r\n FORMAT: {\r\n decimalSeparator: '.',\r\n groupSize: 3,\r\n groupSeparator: ',',\r\n },\r\n});\r\nconst store = configureStore({\r\n reducer: {\r\n theme: themeSlice.reducer,\r\n stakeModal: stakeModalSlice.reducer,\r\n config: configSlice.reducer,\r\n },\r\n});\r\nexport type RootState = ReturnType;\r\nexport type AppDispatch = typeof store.dispatch;\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n"],"sourceRoot":""}