{"version":3,"sources":["constants/blockchain.ts","helpers/bond/constants.ts","constants/addresses.ts","constants/messages.ts","helpers/switch-network.ts","hooks/web3/web3-context.tsx","hooks/web3/helpers/get-mainnet-uri.ts","helpers/token-price.ts","helpers/bond/bond.ts","helpers/bond-calculator.ts","helpers/bond/lp-bond.ts","helpers/bond/stable-bond.ts","assets/tokens/MIM.svg","assets/tokens/AVAX.svg","helpers/bond/index.ts","assets/tokens/DB-MIM.png","assets/tokens/DB-AVAX.png","helpers/get-market-price.ts","helpers/shorten.ts","helpers/trim.ts","helpers/seconds-until-block.ts","helpers/prettify-seconds.ts","assets/tokens/DB.png","assets/tokens/SDB.png","helpers/get-token-image.tsx","helpers/set-all.ts","webpack:///./src/assets/tokens/MIM.svg?d8d6","helpers/price-units.tsx","helpers/sleep.ts","store/slices/account-slice.ts","store/slices/pending-txns-slice.ts","store/slices/messages-slice.ts","helpers/get-gas-price.ts","helpers/metamask-error-wrap.ts","store/slices/bond-slice.ts","store/slices/app-slice.ts","hooks/bonds.ts","assets/icons/diamond.svg","assets/icons/hamburger.svg","components/Header/db-menu/index.tsx","assets/icons/twitter.svg","assets/icons/discord.svg","assets/icons/github.svg","assets/icons/youtube.svg","assets/icons/instagram.svg","assets/icons/medium.svg","assets/icons/telegram.svg","assets/icons/facebook.svg","assets/icons/tiktok.svg","assets/icons/reddit.svg","views/Dashboard/social.tsx","components/Header/connect-button/index.tsx","assets/icons/x.svg","assets/icons/arrows.svg","store/slices/wrap-slice.ts","components/Header/wrap-button/index.tsx","constants/style.ts","components/Header/index.tsx","assets/icons/stake.svg","assets/icons/bond.svg","assets/icons/diamondbankdao-nav-header.png","assets/icons/buy.svg","assets/icons/pro.svg","assets/icons/reward.svg","assets/icons/launchpad.svg","assets/icons/info.svg","assets/icons/airdrop.svg","assets/icons/dashboard.svg","assets/icons/docs.svg","components/Drawer/drawer-content/index.tsx","components/Drawer/mobile-drawer.tsx","components/Drawer/index.tsx","store/store.ts","components/Messages/console-interceptor.js","components/Messages/index.tsx","components/ViewBase/index.tsx","components/TabPanel.tsx","components/BondLogo.tsx","views/Bond/AdvancedSettings.tsx","assets/icons/settings.svg","views/Bond/BondHeader.tsx","hooks/use-escape.ts","views/Bond/BondRedeem.tsx","helpers/pretty-vesting-period.ts","views/Bond/BondPurchase.tsx","hooks/debounce.ts","views/Bond/index.tsx","views/ChooseBond/BondRow.tsx","views/ChooseBond/index.tsx","components/RebaseTimer/index.tsx","store/slices/stake-thunk.ts","views/Stake/index.tsx","assets/icons/centerpng.png","assets/icons/footer-diamond.png","views/Dashboard/index.tsx","views/Mining/index.tsx","views/404/index.tsx","views/Calculator/index.tsx","assets/tokens/WAVAX.png","helpers/tokens.ts","hooks/tokens.ts","Root/App.tsx","Root/index.tsx","components/Messages/snackbar.tsx","index.tsx"],"names":["Networks","BondType","DEFAULT_NETWORK","AVAX","AVAX_MAINNET","DB_MIM_ADDRESS","DB_AVAX_ADDRESS","DAO_ADDRESS","SDB_ADDRESS","DB_ADDRESS","MIM_ADDRESS","STAKING_ADDRESS","STAKING_HELPER_ADDRESS","DB_BONDING_CALC_ADDRESS","TREASURY_ADDRESS","ZAPIN_ADDRESS","WDB_ADDRESS","AVAX_TESTNET","getAddresses","networkID","FUJI","Error","messages","value","switchRequest","window","ethereum","request","method","params","chainId","swithNetwork","a","code","chainName","rpcUrls","blockExplorerUrls","nativeCurrency","name","symbol","decimals","console","log","Web3Context","React","createContext","useWeb3Context","web3Context","useContext","onChainProvider","useMemo","useAddress","address","Web3ContextProvider","children","useDispatch","useState","connected","setConnected","chainID","providerChainID","setProviderChainID","setAddress","uri","StaticJsonRpcProvider","provider","setProvider","Web3Modal","cacheProvider","providerOptions","walletconnect","package","WalletConnectProvider","options","rpc","web3Modal","hasCachedProvider","cachedProvider","_initListeners","useCallback","rawProvider","on","setTimeout","location","reload","chain","changeNetwork","_newNetwork","oldNetwork","otherChainID","network","Number","connect","connectedProvider","Web3Provider","getNetwork","then","getSigner","getAddress","connectedAddress","checkWrongNetwork","confirm","disconnect","clearCachedProvider","Provider","cache","loadTokenPrices","axios","get","data","usd","getTokenPrice","Object","keys","length","Bond","type","bondOpts","displayName","bondIconSvg","bondContractABI","networkAddrs","bondToken","lpUrl","tokensInStrategy","isLP","reserveContractAbi","displayUnits","this","bondAddress","getAddressForBond","Contract","reserveAddress","getAddressForReserve","getBondCalculator","addresses","ethers","BondingCalcContract","LPBond","lpBondOpts","LP","token","getContractForReserve","tokenAddress","bondCalculator","balanceOf","tokenAmount","valuation","markdown","tokenUSD","Math","pow","getReserves","isToken","reserve0","reserve1","token1","isDb","toLowerCase","toTokenDecimal","reserve","CustomLPBond","customBondOpts","getTreasuryBalance","tokenPrice","getTokenAmount","StableBond","stableBondOpts","StableAsset","BigNumber","from","add","toString","Promise","CustomBond","mim","MimIcon","StableBondContract","StableReserveContract","wavax","AvaxIcon","WavaxBondContract","mimDb","LpBondContract","LpReserveContract","avaxDb","getMarketPrice","mimDbAddress","pairContract","reserves","marketPrice","trim","number","precision","array","fromExponential","split","push","pop","substring","trimmedNumber","join","secondsUntilBlock","startBlock","endBlock","prettifySeconds","seconds","resolution","d","floor","h","m","toUrl","tokenPath","host","origin","getTokenUrl","DbImg","sDbImg","_defs","_g","setAll","state","properties","forEach","key","_excluded","_extends","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgMim","_ref","svgRef","title","titleId","props","xmlns","xmlnsXlink","width","height","viewBox","ref","id","xlinkHref","transform","ForwardRef","priceUnits","bond","SvgIcon","component","MimImg","style","sleep","resolve","getBalances","createAsyncThunk","sdbContract","sDbTokenContract","sdbBalance","dbContract","DbTokenContract","dbBalance","wdbContract","wDbTokenContract","wdbBalance","balances","sdb","utils","formatUnits","db","wdb","formatEther","loadAccountDetails","sdbWdbAllowance","stakeAllowance","unstakeAllowance","allowance","staking","wraping","calculateUserBondDetails","resevle","balance","interestDue","bondMaturationBlock","pendingPayout","avaxBalance","bondContract","getContractForBond","reserveContract","bondInfo","bondDetails","payout","vesting","lastTime","pendingPayoutFor","balanceVal","getBalance","avaxVal","pendingPayoutVal","calculateUserTokenDetails","img","isAvax","tokenIcon","tokenContract","MimTokenContract","accountSlice","createSlice","initialState","loading","bonds","tokens","reducers","fetchAccountSuccess","action","payload","extraReducers","builder","addCase","pending","fulfilled","rejected","error","actions","pendingTxnsSlice","createSelector","account","fetchPendingTxns","clearPendingTxn","find","x","txnHash","splice","getStakingTypeText","getWrapingTypeText","isWrap","isPendingTxn","pendingTransactions","map","includes","txnButtonText","defaultText","createMessage","severity","text","message","messagesSlice","info","warning","success","close","getGasPrice","gasPrice","convertGas","parseUnits","metamaskErrorWrap","err","dispatch","changeApproval","signer","bondAddr","approve","constants","MaxUint256","approveTx","hash","wait","calcBondDetails","amountInWei","parseEther","bondPrice","bondDiscount","bondQuote","bondCalcContract","terms","maxPayout","maxBondPrice","mimPrice","bondPriceInUSD","avaxPrice","maxBondPriceToken","maxBodValue","payoutFor","maxValuation","maxBondQuote","toFixed","purchased","assetAddress","vestingTerm","bondAsset","slippage","useAvax","depositorAddress","acceptedSlippage","valueInWei","calculatePremium","maxPremium","round","deposit","bondTx","redeemBond","autostake","redeem","redeemTx","pendingTxnType","bondingSlice","fetchBondSuccess","newState","setBondState","loadAppDetails","bonding","stakingContract","StakingContract","getBlockNumber","currentBlock","getBlock","currentBlockTime","timestamp","totalSupply","circulatingSupply","circSupply","stakingTVL","marketCap","tokenBalPromises","allBonds","all","tokenBalances","treasuryBalance","reduce","tokenBalance0","tokenBalance1","tokenAmountsPromises","tokenAmounts","rfvTreasury","tokenAmount0","tokenAmount1","dbBondsAmountsPromises","getDbAmount","dbBondsAmounts","dbAmount","dbAmount0","dbAmount1","rfv","epoch","stakingReward","distribute","circ","stakingRebase","fiveDayRate","stakingAPY","index","currentIndex","nextRebase","endTime","warmupInfo","warmup","expiry","toNumber","warmupbalanceof","treasuryRunway","runway","appSlice","fetchAppSuccess","initialBondArray","app","useBonds","_image","bondLoading","useSelector","bondState","accountBondsState","setBonds","useEffect","mostProfitableBonds","flatMap","concat","sort","b","SvgDiamond","y","addTokenToWallet","tokenSymbol","tokenImage","image","AVALANCHE_MAINNET_PARAMS","injected","InjectedConnector","supportedChainIds","addAvalancheNetwork","getProvider","catch","DbMenu","_style","anchorEl","setAnchorEl","isEthereumAPIAvailable","handleClick","event","currentTarget","open","Boolean","className","onMouseEnter","e","onMouseLeave","Popper","transition","TransitionProps","Fade","timeout","Link","href","onClick","Diamond","SvgTwitter","baseProfile","undefined","_path","SvgDiscord","fill","SvgGithub","SvgYoutube","SvgInstagram","SvgMedium","fillRule","SvgTelegram","SvgFacebook","SvgTiktok","SvgReddit","Social","color","Twitter","Telegram","Discord","Monogram","Instagram","Youtube","Github","Facebook","Tiktok","Reddit","ConnectMenu","web3","isConnected","buttonText","clickFunc","buttonStyle","backgroundColor","CircularProgress","size","SvgX","strokeWidth","strokeLinecap","strokeLinejoin","stroke","strokeOpacity","strokeMiterlimit","calcWrapDetails","wdbAllowance","wrap","wrapTx","unwrap","wrapValue","sDBTowDB","wdbValue","wDBTosDB","sdbValue","wrapSlice","fetchWrapSuccess","WrapButton","DRAWER_WIDTH","TRANSITION_DURATION","useStyles","makeStyles","theme","appBar","breakpoints","up","padding","topBar","transitions","create","easing","sharp","duration","marginLeft","topBarShift","easeOut","Header","handleDrawerToggle","drawe","classes","isVerySmallScreen","useMediaQuery","AppBar","position","elevation","Zoom","in","Grid","container","spacing","item","lg","md","sm","xs","Toolbar","disableGutters","src","MenuIcon","alt","NavContent","str","isActive","checkPage","page","currentPath","pathname","replace","DiamondbankIcon","maxWidth","slice","NavLink","to","match","classnames","active","DashboardIcon","StakeIcon","BondIcon","Skeleton","variant","BuyIcon","InfoIcon","RewardIcon","AirdropIcon","DocsIcon","ProIcon","LaunchpadIcon","drawer","flexShrink","drawerPaper","borderRight","NavDrawer","mobileOpen","Drawer","anchor","onClose","paper","ModalProps","keepMounted","Sidebar","store","configureStore","reducer","accountReducer","bondingReducer","appReducer","pendingTransactionsReducer","messagesReducer","wrapingReducer","middleware","getDefaultMiddleware","serializableCheck","interceptedConsoleMessages","consoleInterceptor","_error_old","isInterceptor","Messages","enqueueSnackbar","useSnackbar","JSON","stringify","content","overflow","contentShift","ViewBase","setMobileOpen","isSmallerScreen","Hidden","mdUp","smDown","TabPanel","other","role","hidden","Box","p","BondLogo","display","alignItems","justifyContent","AdvancedSettings","handleClose","onSlippageChange","setValue","timeount","clearTimeout","Modal","hideBackdrop","Paper","IconButton","XIcon","InputLabel","htmlFor","FormControl","fullWidth","OutlinedInput","onChange","endAdornment","InputAdornment","SvgSettings","BondHeader","onEscape","setOpen","history","useHistory","handleEsc","keyCode","addEventListener","removeEventListener","SettingsIcon","BondRedeem","isBondLoading","bondingState","onRedeem","flexDirection","flexWrap","Slide","direction","mountOnEnter","unmountOnExit","vestingBlock","prettyVestingPeriod","BondPurchase","quantity","setQuantity","setUseAvax","onBond","isNaN","trimBalance","clearInput","hasAllowance","bondDetailsDebounce","delay","debouncedValue","setDebouncedValue","handler","useDebounce","onSeekApproval","checked","placeholder","labelWidth","amount","min","setSlippage","view","setView","changeView","newView","Backdrop","BondDataCard","Intl","NumberFormat","currency","maximumFractionDigits","minimumFractionDigits","format","BondTableData","TableRow","TableCell","align","ChooseBond","isSmallScreen","isAppLoading","textAlign","TableContainer","Table","TableHead","TableBody","RebaseTimer","timeUntilRebase","dbStake","sdbUnstake","changeStake","stakingHelper","StakingHelperContract","claim","stakeTx","forfeit","stake","unstake","Stake","marketprice","onChangeStake","parseFloat","String","trimmedSdbBalance","trimmedStakingAPY","stakingRebasePercentage","nextRewardValue","toPrecision","Dashboard","Centerpng","minWidth","Footerpng","Mining","fontSize","NotFound","Calculator","trimeMarketPrice","sdbAmount","setSdbAmount","rewardYield","setRewardYield","priceAtPurchase","setPriceAtPurchase","futureMarketPrice","setFutureMarketPrice","days","setDays","rewardsEstimation","setRewardsEstimation","potentialReturn","setPotentialReturn","calcInitialInvestment","price","initialInvestment","setInitialInvestment","newInitialInvestment","newBalance","calcNewBalance","newPotentialReturn","autoFocus","parseInt","calcCurrentWealth","DbIcon","WavaxIcon","initialTokenArray","allTokens","useTokens","accountLoading","accountTokensState","setTokens","App","walletChecked","setWalletChecked","isAppLoaded","loadDetails","whichDetails","loadProvider","loadApp","loadAccount","exact","path","Root","setLoading","root","card","typography","fontFamily","actionRoot","icons","expand","shortest","expandOpen","collapse","checkIcon","paddingRight","checkIconCopy","button","textTransform","errorWrap","marginTop","errorText","whiteSpace","maxHeight","background","borderRadius","SnackMessage","forwardRef","closeSnackbar","expanded","setExpanded","isCopy","setIsCopy","handleExpandClick","oldExpanded","handleDismiss","Card","CardActions","getIcon","Typography","Collapse","onCopy","Button","ReactDOM","render","maxSnack","anchorOrigin","vertical","horizontal","parse","autoHideDuration","document","getElementById"],"mappings":"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","file":"static/js/main.3eafffe3.chunk.js","sourcesContent":["export const TOKEN_DECIMALS = 9;\n\nexport enum Networks {\n FUJI = 43113,\n AVAX = 43114,\n}\n\nexport const DEFAULT_NETWORK = Networks.AVAX;\n","import { Networks } from \"../../constants/blockchain\";\n\nexport enum BondType {\n StableAsset,\n LP,\n}\n\nexport interface BondAddresses {\n reserveAddress: string;\n bondAddress: string;\n}\n\nexport interface NetworkAddresses {\n [Networks.AVAX]: BondAddresses;\n [Networks.FUJI]: BondAddresses;\n}\n","import { Networks } from \"./blockchain\";\n\nconst AVAX_MAINNET = {\n DB_MIM_ADDRESS: \"0x1ab6844e765335c94d749e73bedd8d228bc9f1d0\",\n DB_AVAX_ADDRESS: \"0xe4d460aba520d0016c4ff5d321e54b3e6ce54866\",\n DAO_ADDRESS: \"0xDc6eA2393fc53B5822c728a5479d809b529519Cb\",\n SDB_ADDRESS: \"0xA219D088Fdd958ED30aF8a9b85c82e188260D237\",\n DB_ADDRESS: \"0x3B760B2527a4C2bb5E0F2B9e7BC77744adE2484E\",\n MIM_ADDRESS: \"0x130966628846bfd36ff31a822705796e8cb8c18d\",\n STAKING_ADDRESS: \"0x80f75237559aCB7B9A0f09a2a54509E328D4f715\",\n STAKING_HELPER_ADDRESS: \"0xB993fE46d02580a43E9163946E66cb1698541737\",\n DB_BONDING_CALC_ADDRESS: \"0xf5E72b5e6E73a0614a7bfe74Aa053CF9AcAbc7c5\",\n TREASURY_ADDRESS: \"0x7212A824A45dA0eeF1681a96F119414A0cC1bA27\",\n ZAPIN_ADDRESS: \"0x9ABE63C5A2fBcd54c8bAec3553d326356a530cae\", //\"0xb98007C04f475022bE681a890512518052CE6104\",\n WDB_ADDRESS: \"0xD936fA3Fec181AfbD0c4D3798ADfAFC39523c1e4\",\n};\n\nconst AVAX_TESTNET = {\n DB_MIM_ADDRESS: \"0xc7d96be44090d8a25c0d52733e22ddfd57ae4004\",\n DB_AVAX_ADDRESS: \"0x439d25a6f91c0342d54b63ec1e3b9a079a45fdaf\",\n DAO_ADDRESS: \"0x1EF0272BDBd9b522769a832665dB1F368Eb5de78\",\n SDB_ADDRESS: \"0x00875eC07F3a443c19Dd6002C38B88ED9d221E2d\",\n DB_ADDRESS: \"0xb392c73e48147BEB3EAAA315C2b41D330b2181f0\",\n MIM_ADDRESS: \"0xfE162B97497dB5942604833Cba13E57A66Ce0391\",\n STAKING_ADDRESS: \"0xB60D02Dfd76fCbD842c7B4A012Aac9C2116F102e\",\n STAKING_HELPER_ADDRESS: \"0x1a06F3f973921fBC6E370F7965c906d0f8f29C26\",\n DB_BONDING_CALC_ADDRESS: \"0x06ac77c7Ae6279F1773fC5030F45D6CC056b6a0d\",\n TREASURY_ADDRESS: \"0x155b70E6eA0395E2BCd1198498C7B05D6D1e6128\",\n ZAPIN_ADDRESS: \"0x9ABE63C5A2fBcd54c8bAec3553d326356a530cae\",\n WDB_ADDRESS: \"0x89F6AE694E793A30f56f3B60534BDCaf2Aad1317\",\n};\n\nexport const getAddresses = (networkID: number) => {\n if (networkID === Networks.AVAX) return AVAX_MAINNET;\n if (networkID === Networks.FUJI) return AVAX_TESTNET;\n\n throw Error(\"Network don't support\");\n};\n","export const messages = {\n please_connect: \"Please connect your wallet to the Avalanche network to use DiamondbankDAO.\",\n please_connect_wallet: \"Please connect your wallet.\",\n try_mint_more: (value: string) => `You're trying to mint more than the maximum payout available! The maximum mint payout is ${value} DB.`,\n before_minting: \"Before minting, enter a value.\",\n existing_mint:\n \"You have an existing mint. Minting will reset your vesting period and forfeit any pending claimable rewards. We recommend claiming rewards first or using a fresh wallet. Do you still wish to proceed?\",\n before_stake: \"Before staking, enter a value.\",\n before_unstake: \"Before un staking, enter a value.\",\n tx_successfully_send: \"Your transaction was successfully sent\",\n your_balance_updated: \"Your balance was successfully updated\",\n nothing_to_claim: \"You have nothing to claim\",\n something_wrong: \"Something went wrong\",\n switch_to_avalanche: \"Switch to the Avalanche network?\",\n slippage_too_small: \"Slippage too small\",\n slippage_too_big: \"Slippage too big\",\n your_balance_update_soon: \"Your balance will update soon\",\n before_wrap: \"Before wraping, enter a value.\",\n before_unwrap: \"Before un wraping, enter a value.\",\n};\n","import { Networks } from \"../constants/blockchain\";\n\nconst switchRequest = () => {\n return window.ethereum.request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: \"0xa86a\" }],\n });\n};\n\nconst addChainRequest = () => {\n return window.ethereum.request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainId: \"0xa86a\",\n chainName: \"Avalanche Mainnet\",\n rpcUrls: [\"https://api.avax.network/ext/bc/C/rpc\"],\n blockExplorerUrls: [\"https://cchain.explorer.avax.network/\"],\n nativeCurrency: {\n name: \"AVAX\",\n symbol: \"AVAX\",\n decimals: 18,\n },\n },\n ],\n });\n};\n\nexport const swithNetwork = async () => {\n if (window.ethereum) {\n try {\n await switchRequest();\n } catch (error: any) {\n if (error.code === 4902) {\n try {\n await addChainRequest();\n await switchRequest();\n } catch (addError) {\n console.log(error);\n }\n }\n console.log(error);\n }\n }\n};\n","import React, { useState, ReactElement, useContext, useMemo, useCallback } from \"react\";\nimport Web3Modal from \"web3modal\";\nimport { StaticJsonRpcProvider, JsonRpcProvider, Web3Provider } from \"@ethersproject/providers\";\nimport WalletConnectProvider from \"@walletconnect/web3-provider\";\nimport { getMainnetURI, getTestnetURI } from \"./helpers\";\nimport { DEFAULT_NETWORK } from \"../../constants\";\nimport { Networks } from \"../../constants\";\nimport { messages } from \"../../constants/messages\";\nimport { useDispatch } from \"react-redux\";\nimport { swithNetwork } from \"../../helpers/switch-network\";\n\ntype onChainProvider = {\n connect: () => Promise;\n disconnect: () => void;\n checkWrongNetwork: () => Promise;\n provider: JsonRpcProvider;\n address: string;\n connected: Boolean;\n web3Modal: Web3Modal;\n chainID: number;\n web3?: any;\n providerChainID: number;\n hasCachedProvider: () => boolean;\n};\n\nexport type Web3ContextData = {\n onChainProvider: onChainProvider;\n} | null;\n\nconst Web3Context = React.createContext(null);\n\nexport const useWeb3Context = () => {\n const web3Context = useContext(Web3Context);\n if (!web3Context) {\n throw new Error(\"useWeb3Context() can only be used inside of , \" + \"please declare it at a higher level.\");\n }\n const { onChainProvider } = web3Context;\n return useMemo(() => {\n return { ...onChainProvider };\n }, [web3Context]);\n};\n\nexport const useAddress = () => {\n const { address } = useWeb3Context();\n return address;\n};\n\nexport const Web3ContextProvider: React.FC<{ children: ReactElement }> = ({ children }) => {\n const dispatch = useDispatch();\n\n const [connected, setConnected] = useState(false);\n const [chainID, setChainID] = useState(DEFAULT_NETWORK);\n const [providerChainID, setProviderChainID] = useState(DEFAULT_NETWORK);\n const [address, setAddress] = useState(\"\");\n\n const [uri, setUri] = useState(getMainnetURI());\n const [provider, setProvider] = useState(new StaticJsonRpcProvider(uri));\n\n const [web3Modal] = useState(\n new Web3Modal({\n cacheProvider: true,\n providerOptions: {\n walletconnect: {\n package: WalletConnectProvider,\n options: {\n rpc: {\n [Networks.AVAX]: getMainnetURI(),\n [Networks.FUJI]: getTestnetURI(),\n },\n },\n },\n },\n }),\n );\n\n const hasCachedProvider = (): boolean => {\n if (!web3Modal) return false;\n if (!web3Modal.cachedProvider) return false;\n return true;\n };\n\n const _initListeners = useCallback(\n (rawProvider: JsonRpcProvider) => {\n if (!rawProvider.on) {\n return;\n }\n\n rawProvider.on(\"accountsChanged\", () => setTimeout(() => window.location.reload(), 1));\n\n rawProvider.on(\"chainChanged\", async (chain: number) => {\n changeNetwork(chain);\n });\n\n rawProvider.on(\"network\", (_newNetwork, oldNetwork) => {\n if (!oldNetwork) return;\n window.location.reload();\n });\n },\n [provider],\n );\n\n const changeNetwork = async (otherChainID: number) => {\n const network = Number(otherChainID);\n\n setProviderChainID(network);\n };\n\n const connect = useCallback(async () => {\n const rawProvider = await web3Modal.connect();\n\n _initListeners(rawProvider);\n\n const connectedProvider = new Web3Provider(rawProvider, \"any\");\n\n const chainId = await connectedProvider.getNetwork().then(network => Number(network.chainId));\n const connectedAddress = await connectedProvider.getSigner().getAddress();\n\n setAddress(connectedAddress);\n\n setProviderChainID(chainId);\n\n if (chainId === Networks.AVAX || chainId === Networks.FUJI) {\n setProvider(connectedProvider);\n }\n\n setConnected(true);\n\n return connectedProvider;\n }, [provider, web3Modal, connected]);\n\n const checkWrongNetwork = async (): Promise => {\n if (providerChainID !== DEFAULT_NETWORK) {\n const shouldSwitch = window.confirm(messages.switch_to_avalanche);\n if (shouldSwitch) {\n await swithNetwork();\n window.location.reload();\n }\n return true;\n }\n\n return false;\n };\n\n const disconnect = useCallback(async () => {\n web3Modal.clearCachedProvider();\n setConnected(false);\n\n setTimeout(() => {\n window.location.reload();\n }, 1);\n }, [provider, web3Modal, connected]);\n\n const onChainProvider = useMemo(\n () => ({\n connect,\n disconnect,\n hasCachedProvider,\n provider,\n connected,\n address,\n chainID,\n web3Modal,\n providerChainID,\n checkWrongNetwork,\n }),\n [connect, disconnect, hasCachedProvider, provider, connected, address, chainID, web3Modal, providerChainID],\n );\n //@ts-ignore\n return {children};\n};\n","export const getMainnetURI = (): string => {\n return \"https://api.avax.network/ext/bc/C/rpc\";\n};\n\nexport const getTestnetURI = (): string => {\n return \"https://api.avax-test.network/ext/bc/C/rpc\";\n};\n","import axios from \"axios\";\n\nconst cache: { [key: string]: number } = {};\n\nexport const loadTokenPrices = async () => {\n const url = \"https://api.coingecko.com/api/v3/simple/price?ids=avalanche-2,olympus,magic-internet-money&vs_currencies=usd\";\n const { data } = await axios.get(url);\n\n cache[\"AVAX\"] = data[\"avalanche-2\"].usd;\n cache[\"MIM\"] = data[\"magic-internet-money\"].usd;\n};\n\nexport const getTokenPrice = (symbol: string): number => {\n if (Object.keys(cache).length === 0) {\n return 1;\n }\n return Number(cache[symbol]);\n};\n","import { BondType, NetworkAddresses } from \"./constants\";\nimport { Networks } from \"../../constants/blockchain\";\nimport { ContractInterface, Contract } from \"ethers\";\nimport React from \"react\";\nimport { JsonRpcSigner, StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport { getTokenPrice } from \"../token-price\";\n\nexport interface BondOpts {\n readonly name: string; // Internal name used for references\n readonly displayName: string; // Displayname on UI\n readonly bondIconSvg: string; // SVG path for icons\n readonly bondContractABI: ContractInterface; // ABI for contract\n readonly networkAddrs: NetworkAddresses; // Mapping of network --> Addresses\n readonly bondToken: string; // Unused, but native token to buy the bond.\n}\n\nexport abstract class Bond {\n public readonly name: string;\n public readonly displayName: string;\n public readonly type: BondType;\n public readonly bondIconSvg: string;\n public readonly bondContractABI: ContractInterface; // Bond ABI\n public readonly networkAddrs: NetworkAddresses;\n public readonly bondToken: string;\n public readonly lpUrl?: string;\n public readonly tokensInStrategy?: string;\n\n // The following two fields will differ on how they are set depending on bond type\n public abstract isLP: boolean;\n protected abstract reserveContractAbi: ContractInterface; // Token ABI\n public abstract displayUnits: string;\n\n // Async method that returns a Promise\n public abstract getTreasuryBalance(networkID: Networks, provider: StaticJsonRpcProvider): Promise;\n public abstract getTokenAmount(networkID: Networks, provider: StaticJsonRpcProvider): Promise;\n public abstract getDbAmount(networkID: Networks, provider: StaticJsonRpcProvider): Promise;\n\n constructor(type: BondType, bondOpts: BondOpts) {\n this.name = bondOpts.name;\n this.displayName = bondOpts.displayName;\n this.type = type;\n this.bondIconSvg = bondOpts.bondIconSvg;\n this.bondContractABI = bondOpts.bondContractABI;\n this.networkAddrs = bondOpts.networkAddrs;\n this.bondToken = bondOpts.bondToken;\n }\n\n public getAddressForBond(networkID: Networks) {\n return this.networkAddrs[networkID].bondAddress;\n }\n\n public getContractForBond(networkID: Networks, provider: StaticJsonRpcProvider | JsonRpcSigner) {\n const bondAddress = this.getAddressForBond(networkID);\n return new Contract(bondAddress, this.bondContractABI, provider);\n }\n\n public getAddressForReserve(networkID: Networks) {\n return this.networkAddrs[networkID].reserveAddress;\n }\n\n public getContractForReserve(networkID: Networks, provider: StaticJsonRpcProvider | JsonRpcSigner) {\n const reserveAddress = this.getAddressForReserve(networkID);\n return new Contract(reserveAddress, this.reserveContractAbi, provider);\n }\n\n protected getTokenPrice(): number {\n return getTokenPrice(this.bondToken);\n }\n}\n","import { StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport { Networks } from \"../constants/blockchain\";\nimport { BondingCalcContract } from \"../abi\";\nimport { ethers } from \"ethers\";\nimport { getAddresses } from \"../constants/addresses\";\n\nexport function getBondCalculator(networkID: Networks, provider: StaticJsonRpcProvider) {\n const addresses = getAddresses(networkID);\n return new ethers.Contract(addresses.DB_BONDING_CALC_ADDRESS, BondingCalcContract, provider);\n}\n","import { ContractInterface } from \"ethers\";\nimport { Bond, BondOpts } from \"./bond\";\nimport { BondType } from \"./constants\";\nimport { Networks } from \"../../constants/blockchain\";\nimport { StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport { getBondCalculator } from \"../bond-calculator\";\nimport { getAddresses } from \"../../constants/addresses\";\n\n// Keep all LP specific fields/logic within the LPBond class\nexport interface LPBondOpts extends BondOpts {\n readonly reserveContractAbi: ContractInterface;\n readonly lpUrl: string;\n}\n\nexport class LPBond extends Bond {\n readonly isLP = true;\n readonly lpUrl: string;\n readonly reserveContractAbi: ContractInterface;\n readonly displayUnits: string;\n\n constructor(lpBondOpts: LPBondOpts) {\n super(BondType.LP, lpBondOpts);\n\n this.lpUrl = lpBondOpts.lpUrl;\n this.reserveContractAbi = lpBondOpts.reserveContractAbi;\n this.displayUnits = \"LP\";\n }\n\n async getTreasuryBalance(networkID: Networks, provider: StaticJsonRpcProvider) {\n const addresses = getAddresses(networkID);\n\n const token = this.getContractForReserve(networkID, provider);\n const tokenAddress = this.getAddressForReserve(networkID);\n const bondCalculator = getBondCalculator(networkID, provider);\n const tokenAmount = await token.balanceOf(addresses.TREASURY_ADDRESS);\n const valuation = await bondCalculator.valuation(tokenAddress, tokenAmount);\n const markdown = await bondCalculator.markdown(tokenAddress);\n const tokenUSD = (valuation / Math.pow(10, 9)) * (markdown / Math.pow(10, 18));\n\n return tokenUSD;\n }\n\n public getTokenAmount(networkID: Networks, provider: StaticJsonRpcProvider) {\n return this.getReserves(networkID, provider, true);\n }\n\n public getDbAmount(networkID: Networks, provider: StaticJsonRpcProvider) {\n return this.getReserves(networkID, provider, false);\n }\n\n private async getReserves(networkID: Networks, provider: StaticJsonRpcProvider, isToken: boolean): Promise {\n const addresses = getAddresses(networkID);\n\n const token = this.getContractForReserve(networkID, provider);\n\n let [reserve0, reserve1] = await token.getReserves();\n const token1: string = await token.token1();\n const isDb = token1.toLowerCase() === addresses.DB_ADDRESS.toLowerCase();\n\n return isToken ? this.toTokenDecimal(false, isDb ? reserve0 : reserve1) : this.toTokenDecimal(true, isDb ? reserve1 : reserve0);\n }\n\n private toTokenDecimal(isDb: boolean, reserve: number) {\n return isDb ? reserve / Math.pow(10, 9) : reserve / Math.pow(10, 18);\n }\n}\n\n// These are special bonds that have different valuation methods\nexport interface CustomLPBondOpts extends LPBondOpts {}\n\nexport class CustomLPBond extends LPBond {\n constructor(customBondOpts: CustomLPBondOpts) {\n super(customBondOpts);\n\n this.getTreasuryBalance = async (networkID: Networks, provider: StaticJsonRpcProvider) => {\n const tokenAmount = await super.getTreasuryBalance(networkID, provider);\n const tokenPrice = this.getTokenPrice();\n\n return tokenAmount * tokenPrice;\n };\n\n this.getTokenAmount = async (networkID: Networks, provider: StaticJsonRpcProvider) => {\n const tokenAmount = await super.getTokenAmount(networkID, provider);\n const tokenPrice = this.getTokenPrice();\n\n return tokenAmount * tokenPrice;\n };\n }\n}\n","import { ContractInterface } from \"ethers\";\nimport { Bond, BondOpts } from \"./bond\";\nimport { BondType } from \"./constants\";\nimport { Networks } from \"../../constants/blockchain\";\nimport { StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport { getAddresses } from \"../../constants/addresses\";\nimport { BigNumber } from \"ethers\";\n\nexport interface StableBondOpts extends BondOpts {\n readonly reserveContractAbi: ContractInterface;\n readonly tokensInStrategy?: string;\n}\n\nexport class StableBond extends Bond {\n readonly isLP = false;\n readonly reserveContractAbi: ContractInterface;\n readonly displayUnits: string;\n readonly tokensInStrategy?: string;\n\n constructor(stableBondOpts: StableBondOpts) {\n super(BondType.StableAsset, stableBondOpts);\n\n // For stable bonds the display units are the same as the actual token\n this.displayUnits = stableBondOpts.displayName;\n this.reserveContractAbi = stableBondOpts.reserveContractAbi;\n this.tokensInStrategy = stableBondOpts.tokensInStrategy;\n }\n\n public async getTreasuryBalance(networkID: Networks, provider: StaticJsonRpcProvider) {\n const addresses = getAddresses(networkID);\n const token = this.getContractForReserve(networkID, provider);\n let tokenAmount = await token.balanceOf(addresses.TREASURY_ADDRESS);\n if (this.tokensInStrategy) {\n tokenAmount = BigNumber.from(tokenAmount).add(BigNumber.from(this.tokensInStrategy)).toString();\n }\n return tokenAmount / Math.pow(10, 18);\n }\n\n public async getTokenAmount(networkID: Networks, provider: StaticJsonRpcProvider) {\n return this.getTreasuryBalance(networkID, provider);\n }\n\n public getDbAmount(networkID: Networks, provider: StaticJsonRpcProvider) {\n return new Promise(reserve => reserve(0));\n }\n}\n\n// These are special bonds that have different valuation methods\nexport interface CustomBondOpts extends StableBondOpts {}\n\nexport class CustomBond extends StableBond {\n constructor(customBondOpts: CustomBondOpts) {\n super(customBondOpts);\n\n this.getTreasuryBalance = async (networkID: Networks, provider: StaticJsonRpcProvider) => {\n const tokenAmount = await super.getTreasuryBalance(networkID, provider);\n const tokenPrice = this.getTokenPrice();\n\n return tokenAmount * tokenPrice;\n };\n }\n}\n","export default __webpack_public_path__ + \"static/media/MIM.9214b060.svg\";","export default __webpack_public_path__ + \"static/media/AVAX.1b6b3fb1.svg\";","import { Networks } from \"../../constants/blockchain\";\nimport { LPBond, CustomLPBond } from \"./lp-bond\";\nimport { StableBond, CustomBond } from \"./stable-bond\";\n\nimport MimIcon from \"../../assets/tokens/MIM.svg\";\nimport AvaxIcon from \"../../assets/tokens/AVAX.svg\";\nimport MimDbIcon from \"../../assets/tokens/DB-MIM.png\";\nimport AvaxDbIcon from \"../../assets/tokens/DB-AVAX.png\";\n\nimport { StableBondContract, LpBondContract, WavaxBondContract, StableReserveContract, LpReserveContract } from \"../../abi\";\n\nexport const mim = new StableBond({\n name: \"mim\",\n displayName: \"MIM\",\n bondToken: \"MIM\",\n bondIconSvg: MimIcon,\n bondContractABI: StableBondContract,\n reserveContractAbi: StableReserveContract,\n networkAddrs: {\n [Networks.AVAX]: {\n bondAddress: \"0xe04D7f52D61B0fE5061Ac49D4d973aA80144193C\",\n reserveAddress: \"0x130966628846bfd36ff31a822705796e8cb8c18d\",\n },\n [Networks.FUJI]: {\n bondAddress: \"0xe132B78184753eE53187F27AaDbcee0306FB84a5\",\n reserveAddress: \"0xfE162B97497dB5942604833Cba13E57A66Ce0391\",\n },\n },\n tokensInStrategy: \"0\",\n});\n\nexport const wavax = new CustomBond({\n name: \"wavax\",\n displayName: \"wAVAX\",\n bondToken: \"AVAX\",\n bondIconSvg: AvaxIcon,\n bondContractABI: WavaxBondContract,\n reserveContractAbi: StableReserveContract,\n networkAddrs: {\n [Networks.AVAX]: {\n bondAddress: \"0x252130c711157eD251c7E1d54FaF73672E186850\",\n reserveAddress: \"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7\",\n },\n [Networks.FUJI]: {\n bondAddress: \"0xBe33FAcA2DC19fC3F34f80Bd42aB3B72562Eb004\",\n reserveAddress: \"0xd00ae08403b9bbb9124bb305c09058e32c39a48c\",\n },\n },\n tokensInStrategy: \"0\",\n});\n\nexport const mimDb = new LPBond({\n name: \"mim_db_lp\",\n displayName: \"DB-MIM LP\",\n bondToken: \"MIM\",\n bondIconSvg: MimDbIcon,\n bondContractABI: LpBondContract,\n reserveContractAbi: LpReserveContract,\n networkAddrs: {\n [Networks.AVAX]: {\n bondAddress: \"0x81Edd94fB7303D1F275C792446CC5E25C54D19dB\",\n reserveAddress: \"0x1ab6844e765335c94d749e73bedd8d228bc9f1d0\",\n },\n [Networks.FUJI]: {\n bondAddress: \"0x9185a696689D182742f9370C04bA1b05888F58fA\",\n reserveAddress: \"0xc7d96be44090d8a25c0d52733e22ddfd57ae4004\",\n },\n },\n lpUrl: \"https://www.traderjoexyz.com/#/pool/0x3B760B2527a4C2bb5E0F2B9e7BC77744adE2484E/0x130966628846bfd36ff31a822705796e8cb8c18d\",\n});\n\nexport const avaxDb = new CustomLPBond({\n name: \"avax_db_lp\",\n displayName: \"DB-AVAX LP\",\n bondToken: \"AVAX\",\n bondIconSvg: AvaxDbIcon,\n bondContractABI: LpBondContract,\n reserveContractAbi: LpReserveContract,\n networkAddrs: {\n [Networks.AVAX]: {\n bondAddress: \"0x88407D8ecc2561595907C18aDEA62527b8Ac297E\",\n reserveAddress: \"0xe4d460aba520d0016c4ff5d321e54b3e6ce54866\",\n },\n [Networks.FUJI]: {\n bondAddress: \"0x491e860A0188e91500feD64d4BcE8f96D6689dD7\",\n reserveAddress: \"0x439d25a6f91c0342d54b63ec1e3b9a079a45fdaf\",\n },\n },\n lpUrl: \"https://www.traderjoexyz.com/#/pool/0x3B760B2527a4C2bb5E0F2B9e7BC77744adE2484E/AVAX\",\n});\n\nexport default [mim, wavax, mimDb, avaxDb];\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import { ethers } from \"ethers\";\nimport { LpReserveContract } from \"../abi\";\nimport { mimDb } from \"../helpers/bond\";\nimport { Networks } from \"../constants/blockchain\";\n\nexport async function getMarketPrice(networkID: Networks, provider: ethers.Signer | ethers.providers.Provider): Promise {\n const mimDbAddress = mimDb.getAddressForReserve(networkID);\n const pairContract = new ethers.Contract(mimDbAddress, LpReserveContract, provider);\n const reserves = await pairContract.getReserves();\n const marketPrice = reserves[0] / reserves[1];\n return marketPrice;\n}\n","export const shorten = (str: string): string => {\n if (str.length < 10) return str;\n return `${str.slice(0, 6)}...${str.slice(str.length - 4)}`;\n};\n","import fromExponential from \"from-exponential\";\n\nexport const trim = (number: number = 0, precision?: number) => {\n const array = fromExponential(number).split(\".\");\n if (array.length === 1) return fromExponential(number);\n //@ts-ignore\n array.push(array.pop().substring(0, precision));\n const trimmedNumber = array.join(\".\");\n return trimmedNumber;\n};\n","export const secondsUntilBlock = (startBlock: number, endBlock: number) => {\n return endBlock - startBlock;\n};\n","export const prettifySeconds = (seconds?: number, resolution?: string) => {\n if (seconds !== 0 && !seconds) {\n return \"\";\n }\n\n const d = Math.floor(seconds / (3600 * 24));\n const h = Math.floor((seconds % (3600 * 24)) / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n\n if (resolution === \"day\") {\n return d + (d == 1 ? \" day\" : \" days\");\n }\n\n const dDisplay = d > 0 ? d + (d == 1 ? \" day, \" : \" days, \") : \"\";\n const hDisplay = h > 0 ? h + (h == 1 ? \" Hour, \" : \" Hours, \") : \"\";\n const mDisplay = m > 0 ? m + (m == 1 ? \" Min\" : \" Mins\") : \"\";\n\n return dDisplay + hDisplay + mDisplay;\n};\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/SDB.9a224de8.png\";","import DbImg from \"../assets/tokens/DB.png\";\nimport sDbImg from \"../assets/tokens/SDB.png\";\n\nfunction toUrl(tokenPath: string): string {\n const host = window.location.origin;\n return `${host}/${tokenPath}`;\n}\n\nexport function getTokenUrl(name: string) {\n if (name === \"db\") {\n return toUrl(DbImg);\n }\n\n if (name === \"sdb\") {\n return toUrl(sDbImg);\n }\n\n if (name === \"dmlp\") {\n return toUrl(sDbImg);\n }\n\n if (name === \"dalp\") {\n return toUrl(sDbImg);\n }\n\n throw Error(`Token url doesn't support: ${name}`);\n}\n","export const setAll = (state: any, properties: any) => {\n const props = Object.keys(properties);\n props.forEach(key => {\n state[key] = properties[key];\n });\n};\n","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgMim(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"32pt\",\n height: \"32pt\",\n viewBox: \"0 0 32 32\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"image\", {\n id: \"image5\",\n width: 250,\n height: 250,\n xlinkHref: \"data:image/png;base64,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\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"surface2\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#image5\",\n transform: \"matrix(0.128,0,0,0.128,0,0)\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMim);\nexport default __webpack_public_path__ + \"static/media/MIM.9214b060.svg\";\nexport { ForwardRef as ReactComponent };","import { SvgIcon } from \"@material-ui/core\";\nimport { ReactComponent as MimImg } from \"../assets/tokens/MIM.svg\";\nimport { IAllBondData } from \"../hooks/bonds\";\nimport { mim } from \"../helpers/bond\";\n\nexport const priceUnits = (bond: IAllBondData) => {\n if (bond.name === mim.name) return ;\n\n return \"$\";\n};\n","export const sleep = (seconds: number) => {\n return new Promise(resolve => setTimeout(() => resolve(null), seconds * 1000));\n};\n","import { ethers } from \"ethers\";\nimport { getAddresses } from \"../../constants\";\nimport { DbTokenContract, sDbTokenContract, MimTokenContract, wDbTokenContract } from \"../../abi\";\nimport { setAll } from \"../../helpers\";\n\nimport { createSlice, createSelector, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { JsonRpcProvider, StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport { Bond } from \"../../helpers/bond/bond\";\nimport { Networks } from \"../../constants/blockchain\";\nimport React from \"react\";\nimport { RootState } from \"../store\";\nimport { IToken } from \"../../helpers/tokens\";\n\ninterface IGetBalances {\n address: string;\n networkID: Networks;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n}\n\ninterface IAccountBalances {\n balances: {\n sdb: string;\n db: string;\n wdb: string;\n };\n}\n\nexport const getBalances = createAsyncThunk(\"account/getBalances\", async ({ address, networkID, provider }: IGetBalances): Promise => {\n const addresses = getAddresses(networkID);\n\n const sdbContract = new ethers.Contract(addresses.SDB_ADDRESS, sDbTokenContract, provider);\n const sdbBalance = await sdbContract.balanceOf(address);\n const dbContract = new ethers.Contract(addresses.DB_ADDRESS, DbTokenContract, provider);\n const dbBalance = await dbContract.balanceOf(address);\n const wdbContract = new ethers.Contract(addresses.WDB_ADDRESS, wDbTokenContract, provider);\n const wdbBalance = await wdbContract.balanceOf(address);\n\n return {\n balances: {\n sdb: ethers.utils.formatUnits(sdbBalance, \"gwei\"),\n db: ethers.utils.formatUnits(dbBalance, \"gwei\"),\n wdb: ethers.utils.formatEther(wdbBalance),\n },\n };\n});\n\ninterface ILoadAccountDetails {\n address: string;\n networkID: Networks;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n}\n\ninterface IUserAccountDetails {\n balances: {\n db: string;\n sdb: string;\n wdb: string;\n };\n staking: {\n db: number;\n sdb: number;\n };\n wraping: {\n sdb: number;\n };\n}\n\nexport const loadAccountDetails = createAsyncThunk(\"account/loadAccountDetails\", async ({ networkID, provider, address }: ILoadAccountDetails): Promise => {\n let dbBalance = 0;\n let sdbBalance = 0;\n\n let wdbBalance = 0;\n let sdbWdbAllowance = 0;\n\n let stakeAllowance = 0;\n let unstakeAllowance = 0;\n\n const addresses = getAddresses(networkID);\n\n if (addresses.DB_ADDRESS) {\n const dbContract = new ethers.Contract(addresses.DB_ADDRESS, DbTokenContract, provider);\n dbBalance = await dbContract.balanceOf(address);\n stakeAllowance = await dbContract.allowance(address, addresses.STAKING_HELPER_ADDRESS);\n }\n\n if (addresses.SDB_ADDRESS) {\n const sdbContract = new ethers.Contract(addresses.SDB_ADDRESS, sDbTokenContract, provider);\n sdbBalance = await sdbContract.balanceOf(address);\n unstakeAllowance = await sdbContract.allowance(address, addresses.STAKING_ADDRESS);\n\n if (addresses.WDB_ADDRESS) {\n sdbWdbAllowance = await sdbContract.allowance(address, addresses.WDB_ADDRESS);\n }\n }\n\n if (addresses.WDB_ADDRESS) {\n const wdbContract = new ethers.Contract(addresses.WDB_ADDRESS, wDbTokenContract, provider);\n wdbBalance = await wdbContract.balanceOf(address);\n }\n\n return {\n balances: {\n sdb: ethers.utils.formatUnits(sdbBalance, \"gwei\"),\n db: ethers.utils.formatUnits(dbBalance, \"gwei\"),\n wdb: ethers.utils.formatEther(wdbBalance),\n },\n staking: {\n db: Number(stakeAllowance),\n sdb: Number(unstakeAllowance),\n },\n wraping: {\n sdb: Number(sdbWdbAllowance),\n },\n };\n});\n\ninterface ICalcUserBondDetails {\n address: string;\n bond: Bond;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n networkID: Networks;\n}\n\nexport interface IUserBondDetails {\n allowance: number;\n balance: number;\n avaxBalance: number;\n interestDue: number;\n bondMaturationBlock: number;\n pendingPayout: number; //Payout formatted in gwei.\n}\n\nexport const calculateUserBondDetails = createAsyncThunk(\"account/calculateUserBondDetails\", async ({ address, bond, networkID, provider }: ICalcUserBondDetails) => {\n if (!address) {\n return new Promise(resevle => {\n resevle({\n bond: \"\",\n displayName: \"\",\n bondIconSvg: \"\",\n isLP: false,\n allowance: 0,\n balance: 0,\n interestDue: 0,\n bondMaturationBlock: 0,\n pendingPayout: \"\",\n avaxBalance: 0,\n });\n });\n }\n\n const bondContract = bond.getContractForBond(networkID, provider);\n const reserveContract = bond.getContractForReserve(networkID, provider);\n\n let interestDue, pendingPayout, bondMaturationBlock;\n\n const bondDetails = await bondContract.bondInfo(address);\n interestDue = bondDetails.payout / Math.pow(10, 9);\n bondMaturationBlock = Number(bondDetails.vesting) + Number(bondDetails.lastTime);\n pendingPayout = await bondContract.pendingPayoutFor(address);\n\n let allowance,\n balance = \"0\";\n\n allowance = await reserveContract.allowance(address, bond.getAddressForBond(networkID));\n balance = await reserveContract.balanceOf(address);\n const balanceVal = ethers.utils.formatEther(balance);\n\n const avaxBalance = await provider.getSigner().getBalance();\n const avaxVal = ethers.utils.formatEther(avaxBalance);\n\n const pendingPayoutVal = ethers.utils.formatUnits(pendingPayout, \"gwei\");\n\n return {\n bond: bond.name,\n displayName: bond.displayName,\n bondIconSvg: bond.bondIconSvg,\n isLP: bond.isLP,\n allowance: Number(allowance),\n balance: Number(balanceVal),\n avaxBalance: Number(avaxVal),\n interestDue,\n bondMaturationBlock,\n pendingPayout: Number(pendingPayoutVal),\n };\n});\n\ninterface ICalcUserTokenDetails {\n address: string;\n token: IToken;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n networkID: Networks;\n}\n\nexport interface IUserTokenDetails {\n allowance: number;\n balance: number;\n isAvax?: boolean;\n}\n\nexport const calculateUserTokenDetails = createAsyncThunk(\"account/calculateUserTokenDetails\", async ({ address, token, networkID, provider }: ICalcUserTokenDetails) => {\n if (!address) {\n return new Promise(resevle => {\n resevle({\n token: \"\",\n address: \"\",\n img: \"\",\n allowance: 0,\n balance: 0,\n });\n });\n }\n\n if (token.isAvax) {\n const avaxBalance = await provider.getSigner().getBalance();\n const avaxVal = ethers.utils.formatEther(avaxBalance);\n\n return {\n token: token.name,\n tokenIcon: token.img,\n balance: Number(avaxVal),\n isAvax: true,\n };\n }\n\n const addresses = getAddresses(networkID);\n\n const tokenContract = new ethers.Contract(token.address, MimTokenContract, provider);\n\n let allowance,\n balance = \"0\";\n\n allowance = await tokenContract.allowance(address, addresses.ZAPIN_ADDRESS);\n balance = await tokenContract.balanceOf(address);\n\n const balanceVal = Number(balance) / Math.pow(10, token.decimals);\n\n return {\n token: token.name,\n address: token.address,\n img: token.img,\n allowance: Number(allowance),\n balance: Number(balanceVal),\n };\n});\n\nexport interface IAccountSlice {\n bonds: { [key: string]: IUserBondDetails };\n balances: {\n sdb: string;\n db: string;\n wdb: string;\n };\n loading: boolean;\n staking: {\n db: number;\n sdb: number;\n };\n wraping: {\n sdb: number;\n };\n tokens: { [key: string]: IUserTokenDetails };\n}\n\nconst initialState: IAccountSlice = {\n loading: true,\n bonds: {},\n balances: { sdb: \"\", db: \"\", wdb: \"\" },\n staking: { db: 0, sdb: 0 },\n wraping: { sdb: 0 },\n tokens: {},\n};\n\nconst accountSlice = createSlice({\n name: \"account\",\n initialState,\n reducers: {\n fetchAccountSuccess(state, action) {\n setAll(state, action.payload);\n },\n },\n extraReducers: builder => {\n builder\n .addCase(loadAccountDetails.pending, state => {\n state.loading = true;\n })\n .addCase(loadAccountDetails.fulfilled, (state, action) => {\n setAll(state, action.payload);\n state.loading = false;\n })\n .addCase(loadAccountDetails.rejected, (state, { error }) => {\n state.loading = false;\n console.log(error);\n })\n .addCase(getBalances.pending, state => {\n state.loading = true;\n })\n .addCase(getBalances.fulfilled, (state, action) => {\n setAll(state, action.payload);\n state.loading = false;\n })\n .addCase(getBalances.rejected, (state, { error }) => {\n state.loading = false;\n console.log(error);\n })\n .addCase(calculateUserBondDetails.pending, (state, action) => {\n state.loading = true;\n })\n .addCase(calculateUserBondDetails.fulfilled, (state, action) => {\n if (!action.payload) return;\n const bond = action.payload.bond;\n state.bonds[bond] = action.payload;\n state.loading = false;\n })\n .addCase(calculateUserBondDetails.rejected, (state, { error }) => {\n state.loading = false;\n console.log(error);\n })\n .addCase(calculateUserTokenDetails.pending, (state, action) => {\n state.loading = true;\n })\n .addCase(calculateUserTokenDetails.fulfilled, (state, action) => {\n if (!action.payload) return;\n const token = action.payload.token;\n state.tokens[token] = action.payload;\n state.loading = false;\n })\n .addCase(calculateUserTokenDetails.rejected, (state, { error }) => {\n state.loading = false;\n console.log(error);\n });\n },\n});\n\nexport default accountSlice.reducer;\n\nexport const { fetchAccountSuccess } = accountSlice.actions;\n\nconst baseInfo = (state: RootState) => state.account;\n\nexport const getAccountState = createSelector(baseInfo, account => account);\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\n\nexport interface IPendingTxn {\n readonly txnHash: string;\n readonly text: string;\n readonly type: string;\n}\n\nconst initialState: Array = [];\n\nconst pendingTxnsSlice = createSlice({\n name: \"pendingTransactions\",\n initialState,\n reducers: {\n fetchPendingTxns(state, action: PayloadAction) {\n state.push(action.payload);\n },\n clearPendingTxn(state, action: PayloadAction) {\n const target = state.find(x => x.txnHash === action.payload);\n if (target) {\n state.splice(state.indexOf(target), 1);\n }\n },\n },\n});\n\nexport const getStakingTypeText = (action: string) => {\n return action.toLowerCase() === \"stake\" ? \"Staking DB\" : \"Unstaking DB\";\n};\n\nexport const getWrapingTypeText = (isWrap: boolean) => {\n return isWrap ? \"Wrap DB\" : \"Unwrap wDB\";\n};\n\nexport const isPendingTxn = (pendingTransactions: IPendingTxn[], type: string) => {\n return pendingTransactions.map(x => x.type).includes(type);\n};\n\nexport const txnButtonText = (pendingTransactions: IPendingTxn[], type: string, defaultText: string) => {\n return isPendingTxn(pendingTransactions, type) ? \"Pending...\" : defaultText;\n};\n\nexport const { fetchPendingTxns, clearPendingTxn } = pendingTxnsSlice.actions;\n\nexport default pendingTxnsSlice.reducer;\n","import { Color } from \"@material-ui/lab/Alert\";\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\n\nexport type Message = IMessage & {\n severity: Color;\n};\n\nexport interface MessagesState {\n message: Message | null;\n}\n\ninterface IMessage {\n text: string;\n error?: any;\n}\n\n// Adds a message to the store\nconst createMessage = function (state: MessagesState, severity: Color, text: IMessage) {\n const message: Message = {\n severity,\n ...text,\n };\n state.message = message;\n};\nconst initialState: MessagesState = {\n message: null,\n};\nconst messagesSlice = createSlice({\n name: \"messages\",\n initialState,\n reducers: {\n // Creates an error message\n error(state, action: PayloadAction) {\n createMessage(state, \"error\", action.payload);\n },\n // Creates an information message\n info(state, action: PayloadAction) {\n createMessage(state, \"info\", action.payload);\n },\n warning(state, action: PayloadAction) {\n createMessage(state, \"warning\", action.payload);\n },\n success(state, action: PayloadAction) {\n createMessage(state, \"success\", action.payload);\n },\n // Closes a message\n close(state) {\n state.message = null;\n },\n },\n});\n\nexport const { error, info, close, warning, success } = messagesSlice.actions;\n\nexport default messagesSlice.reducer;\n","import { JsonRpcProvider } from \"@ethersproject/providers\";\nimport { utils } from \"ethers\";\n\nconst GAS = \"5\";\n\nexport const getGasPrice = async (provider: JsonRpcProvider) => {\n const gasPrice = await provider.getGasPrice();\n const convertGas = utils.parseUnits(GAS, \"gwei\");\n return gasPrice.add(convertGas);\n};\n","import { Dispatch } from \"redux\";\nimport { error } from \"../store/slices/messages-slice\";\nimport { messages } from \"../constants/messages\";\n\nexport const metamaskErrorWrap = (err: any, dispatch: Dispatch) => {\n let text = messages.something_wrong;\n\n if (err.code && err.code === -32603) {\n if (err.message.indexOf(\"ds-math-sub-underflow\") >= 0) {\n text = \"You may be trying to bond more than your balance! Error code: 32603. Message: ds-math-sub-underflow\";\n }\n\n if (err.data && err.data.message) {\n text = err.data.message.includes(\":\") ? err.data.message.split(\":\")[1].trim() : err.data.data || err.data.message;\n }\n\n if (err.data && err.data.message && err.data.message.includes(\"gas required exceeds allowance\")) {\n text = \"Insufficient balance to make a transaction\";\n }\n\n if (err.data && err.data.message && err.data.message.includes(\"Bond too small\")) {\n text = \"Bond too small\";\n }\n }\n\n if (err.code && err.code === 4001) {\n if (err.message.includes(\"User denied transaction signature\")) {\n text = \"User denied transaction signature\";\n }\n }\n\n return dispatch(error({ text, error: err }));\n};\n","import { ethers, constants } from \"ethers\";\nimport { getMarketPrice, getTokenPrice } from \"../../helpers\";\nimport { calculateUserBondDetails, getBalances } from \"./account-slice\";\nimport { getAddresses } from \"../../constants\";\nimport { fetchPendingTxns, clearPendingTxn } from \"./pending-txns-slice\";\nimport { createSlice, createSelector, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { JsonRpcProvider, StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport { fetchAccountSuccess } from \"./account-slice\";\nimport { Bond } from \"../../helpers/bond/bond\";\nimport { Networks } from \"../../constants/blockchain\";\nimport { getBondCalculator } from \"../../helpers/bond-calculator\";\nimport { RootState } from \"../store\";\nimport { avaxDb, wavax } from \"../../helpers/bond\";\nimport { error, warning, success, info } from \"../slices/messages-slice\";\nimport { messages } from \"../../constants/messages\";\nimport { getGasPrice } from \"../../helpers/get-gas-price\";\nimport { metamaskErrorWrap } from \"../../helpers/metamask-error-wrap\";\nimport { sleep } from \"../../helpers\";\nimport { BigNumber } from \"ethers\";\n\ninterface IChangeApproval {\n bond: Bond;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n networkID: Networks;\n address: string;\n}\n\nexport const changeApproval = createAsyncThunk(\"bonding/changeApproval\", async ({ bond, provider, networkID, address }: IChangeApproval, { dispatch }) => {\n if (!provider) {\n dispatch(warning({ text: messages.please_connect_wallet }));\n return;\n }\n\n const signer = provider.getSigner();\n const reserveContract = bond.getContractForReserve(networkID, signer);\n\n let approveTx;\n try {\n const gasPrice = await getGasPrice(provider);\n const bondAddr = bond.getAddressForBond(networkID);\n approveTx = await reserveContract.approve(bondAddr, constants.MaxUint256, { gasPrice });\n dispatch(\n fetchPendingTxns({\n txnHash: approveTx.hash,\n text: \"Approving \" + bond.displayName,\n type: \"approve_\" + bond.name,\n }),\n );\n await approveTx.wait();\n dispatch(success({ text: messages.tx_successfully_send }));\n } catch (err: any) {\n metamaskErrorWrap(err, dispatch);\n } finally {\n if (approveTx) {\n dispatch(clearPendingTxn(approveTx.hash));\n }\n }\n\n await sleep(2);\n\n let allowance = \"0\";\n\n allowance = await reserveContract.allowance(address, bond.getAddressForBond(networkID));\n\n return dispatch(\n fetchAccountSuccess({\n bonds: {\n [bond.name]: {\n allowance: Number(allowance),\n },\n },\n }),\n );\n});\n\ninterface ICalcBondDetails {\n bond: Bond;\n value: string | null;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n networkID: Networks;\n}\n\nexport interface IBondDetails {\n bond: string;\n bondDiscount: number;\n bondQuote: number;\n purchased: number;\n vestingTerm: number;\n maxBondPrice: number;\n bondPrice: number;\n marketPrice: number;\n maxBondPriceToken: number;\n}\n\nexport const calcBondDetails = createAsyncThunk(\"bonding/calcBondDetails\", async ({ bond, value, provider, networkID }: ICalcBondDetails, { dispatch }) => {\n if (!value) {\n value = \"0\";\n }\n\n const amountInWei = ethers.utils.parseEther(value);\n\n let bondPrice = 0,\n bondDiscount = 0,\n valuation = 0,\n bondQuote = 0;\n\n const addresses = getAddresses(networkID);\n\n const bondContract = bond.getContractForBond(networkID, provider);\n const bondCalcContract = getBondCalculator(networkID, provider);\n\n const terms = await bondContract.terms();\n const maxBondPrice = (await bondContract.maxPayout()) / Math.pow(10, 9);\n\n let marketPrice = await getMarketPrice(networkID, provider);\n\n const mimPrice = getTokenPrice(\"MIM\");\n marketPrice = (marketPrice / Math.pow(10, 9)) * mimPrice;\n marketPrice = marketPrice ? marketPrice : 0;\n\n try {\n bondPrice = await bondContract.bondPriceInUSD();\n\n if (bond.name === avaxDb.name) {\n const avaxPrice = getTokenPrice(\"AVAX\");\n bondPrice = bondPrice * avaxPrice;\n }\n\n bondDiscount = (marketPrice * Math.pow(10, 18) - bondPrice) / bondPrice;\n } catch (e) {\n console.log(\"error getting bondPriceInUSD\", e);\n }\n\n let maxBondPriceToken = 0;\n const maxBodValue = ethers.utils.parseEther(\"1\");\n\n if (bond.isLP) {\n valuation = await bondCalcContract.valuation(bond.getAddressForReserve(networkID), amountInWei);\n bondQuote = await bondContract.payoutFor(valuation);\n bondQuote = bondQuote / Math.pow(10, 9);\n\n const maxValuation = await bondCalcContract.valuation(bond.getAddressForReserve(networkID), maxBodValue);\n const maxBondQuote = await bondContract.payoutFor(maxValuation);\n maxBondPriceToken = maxBondPrice / (maxBondQuote * Math.pow(10, -9));\n } else {\n bondQuote = await bondContract.payoutFor(amountInWei);\n bondQuote = bondQuote / Math.pow(10, 18);\n\n const maxBondQuote = await bondContract.payoutFor(maxBodValue);\n maxBondPriceToken = maxBondPrice / (maxBondQuote * Math.pow(10, -18));\n }\n\n if (!!value && bondQuote > maxBondPrice) {\n dispatch(error({ text: messages.try_mint_more(maxBondPrice.toFixed(2).toString()) }));\n }\n\n // Calculate bonds purchased\n const token = bond.getContractForReserve(networkID, provider);\n let purchased = await token.balanceOf(addresses.TREASURY_ADDRESS);\n\n if (bond.isLP) {\n const assetAddress = bond.getAddressForReserve(networkID);\n const markdown = await bondCalcContract.markdown(assetAddress);\n\n purchased = await bondCalcContract.valuation(assetAddress, purchased);\n purchased = (markdown / Math.pow(10, 18)) * (purchased / Math.pow(10, 9));\n\n if (bond.name === avaxDb.name) {\n const avaxPrice = getTokenPrice(\"AVAX\");\n purchased = purchased * avaxPrice;\n }\n } else {\n if (bond.tokensInStrategy) {\n purchased = BigNumber.from(purchased).add(BigNumber.from(bond.tokensInStrategy)).toString();\n }\n purchased = purchased / Math.pow(10, 18);\n\n if (bond.name === wavax.name) {\n const avaxPrice = getTokenPrice(\"AVAX\");\n purchased = purchased * avaxPrice;\n }\n }\n\n return {\n bond: bond.name,\n bondDiscount,\n bondQuote,\n purchased,\n vestingTerm: Number(terms.vestingTerm),\n maxBondPrice,\n bondPrice: bondPrice / Math.pow(10, 18),\n marketPrice,\n maxBondPriceToken,\n };\n});\n\ninterface IBondAsset {\n value: string;\n address: string;\n bond: Bond;\n networkID: Networks;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n slippage: number;\n useAvax: boolean;\n}\nexport const bondAsset = createAsyncThunk(\"bonding/bondAsset\", async ({ value, address, bond, networkID, provider, slippage, useAvax }: IBondAsset, { dispatch }) => {\n const depositorAddress = address;\n const acceptedSlippage = slippage / 100 || 0.005;\n const valueInWei = ethers.utils.parseUnits(value, \"ether\");\n const signer = provider.getSigner();\n const bondContract = bond.getContractForBond(networkID, signer);\n\n const calculatePremium = await bondContract.bondPrice();\n const maxPremium = Math.round(calculatePremium * (1 + acceptedSlippage));\n\n let bondTx;\n try {\n const gasPrice = await getGasPrice(provider);\n\n if (useAvax) {\n bondTx = await bondContract.deposit(valueInWei, maxPremium, depositorAddress, { value: valueInWei, gasPrice });\n } else {\n bondTx = await bondContract.deposit(valueInWei, maxPremium, depositorAddress, { gasPrice });\n }\n dispatch(\n fetchPendingTxns({\n txnHash: bondTx.hash,\n text: \"Bonding \" + bond.displayName,\n type: \"bond_\" + bond.name,\n }),\n );\n await bondTx.wait();\n dispatch(success({ text: messages.tx_successfully_send }));\n dispatch(info({ text: messages.your_balance_update_soon }));\n await sleep(10);\n await dispatch(calculateUserBondDetails({ address, bond, networkID, provider }));\n dispatch(info({ text: messages.your_balance_updated }));\n return;\n } catch (err: any) {\n return metamaskErrorWrap(err, dispatch);\n } finally {\n if (bondTx) {\n dispatch(clearPendingTxn(bondTx.hash));\n }\n }\n});\n\ninterface IRedeemBond {\n address: string;\n bond: Bond;\n networkID: Networks;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n autostake: boolean;\n}\n\nexport const redeemBond = createAsyncThunk(\"bonding/redeemBond\", async ({ address, bond, networkID, provider, autostake }: IRedeemBond, { dispatch }) => {\n if (!provider) {\n dispatch(warning({ text: messages.please_connect_wallet }));\n return;\n }\n\n const signer = provider.getSigner();\n const bondContract = bond.getContractForBond(networkID, signer);\n\n let redeemTx;\n try {\n const gasPrice = await getGasPrice(provider);\n\n redeemTx = await bondContract.redeem(address, autostake === true, { gasPrice });\n const pendingTxnType = \"redeem_bond_\" + bond.name + (autostake === true ? \"_autostake\" : \"\");\n dispatch(\n fetchPendingTxns({\n txnHash: redeemTx.hash,\n text: \"Redeeming \" + bond.displayName,\n type: pendingTxnType,\n }),\n );\n await redeemTx.wait();\n dispatch(success({ text: messages.tx_successfully_send }));\n await sleep(0.01);\n dispatch(info({ text: messages.your_balance_update_soon }));\n await sleep(10);\n await dispatch(calculateUserBondDetails({ address, bond, networkID, provider }));\n await dispatch(getBalances({ address, networkID, provider }));\n dispatch(info({ text: messages.your_balance_updated }));\n return;\n } catch (err: any) {\n metamaskErrorWrap(err, dispatch);\n } finally {\n if (redeemTx) {\n dispatch(clearPendingTxn(redeemTx.hash));\n }\n }\n});\n\nexport interface IBondSlice {\n loading: boolean;\n [key: string]: any;\n}\n\nconst initialState: IBondSlice = {\n loading: true,\n};\n\nconst setBondState = (state: IBondSlice, payload: any) => {\n const bond = payload.bond;\n const newState = { ...state[bond], ...payload };\n state[bond] = newState;\n state.loading = false;\n};\n\nconst bondingSlice = createSlice({\n name: \"bonding\",\n initialState,\n reducers: {\n fetchBondSuccess(state, action) {\n state[action.payload.bond] = action.payload;\n },\n },\n extraReducers: builder => {\n builder\n .addCase(calcBondDetails.pending, state => {\n state.loading = true;\n })\n .addCase(calcBondDetails.fulfilled, (state, action) => {\n setBondState(state, action.payload);\n state.loading = false;\n })\n .addCase(calcBondDetails.rejected, (state, { error }) => {\n state.loading = false;\n console.log(error);\n });\n },\n});\n\nexport default bondingSlice.reducer;\n\nexport const { fetchBondSuccess } = bondingSlice.actions;\n\nconst baseInfo = (state: RootState) => state.bonding;\n\nexport const getBondingState = createSelector(baseInfo, bonding => bonding);\n","import { ethers } from \"ethers\";\nimport { getAddresses } from \"../../constants\";\nimport { StakingContract, sDbTokenContract, DbTokenContract } from \"../../abi\";\nimport { setAll } from \"../../helpers\";\nimport { createSlice, createSelector, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { JsonRpcProvider } from \"@ethersproject/providers\";\nimport { getMarketPrice, getTokenPrice } from \"../../helpers\";\nimport { RootState } from \"../store\";\nimport allBonds from \"../../helpers/bond\";\n\ninterface ILoadAppDetails {\n networkID: number;\n provider: JsonRpcProvider;\n}\n\nexport const loadAppDetails = createAsyncThunk(\n \"app/loadAppDetails\",\n //@ts-ignore\n async ({ networkID, provider }: ILoadAppDetails) => {\n const mimPrice = getTokenPrice(\"MIM\");\n const addresses = getAddresses(networkID);\n const signer = provider.getSigner();\n const stakingContract = new ethers.Contract(addresses.STAKING_ADDRESS, StakingContract, provider);\n const currentBlock = await provider.getBlockNumber();\n const currentBlockTime = (await provider.getBlock(currentBlock)).timestamp;\n const sdbContract = new ethers.Contract(addresses.SDB_ADDRESS, sDbTokenContract, provider);\n const dbContract = new ethers.Contract(addresses.DB_ADDRESS, DbTokenContract, provider);\n\n const marketPrice = ((await getMarketPrice(networkID, provider)) / Math.pow(10, 9)) * mimPrice;\n\n const totalSupply = (await dbContract.totalSupply()) / Math.pow(10, 9);\n const circSupply = (await sdbContract.circulatingSupply()) / Math.pow(10, 9);\n\n const stakingTVL = circSupply * marketPrice;\n const marketCap = totalSupply * marketPrice;\n\n const tokenBalPromises = allBonds.map(bond => bond.getTreasuryBalance(networkID, provider));\n const tokenBalances = await Promise.all(tokenBalPromises);\n const treasuryBalance = tokenBalances.reduce((tokenBalance0, tokenBalance1) => tokenBalance0 + tokenBalance1, 0);\n console.log(\"-----\", treasuryBalance);\n\n const tokenAmountsPromises = allBonds.map(bond => bond.getTokenAmount(networkID, provider));\n const tokenAmounts = await Promise.all(tokenAmountsPromises);\n const rfvTreasury = tokenAmounts.reduce((tokenAmount0, tokenAmount1) => tokenAmount0 + tokenAmount1, 0);\n\n const dbBondsAmountsPromises = allBonds.map(bond => bond.getDbAmount(networkID, provider));\n const dbBondsAmounts = await Promise.all(dbBondsAmountsPromises);\n const dbAmount = dbBondsAmounts.reduce((dbAmount0, dbAmount1) => dbAmount0 + dbAmount1, 0);\n const dbSupply = totalSupply - dbAmount;\n const rfv = rfvTreasury / dbSupply;\n\n const epoch = await stakingContract.epoch();\n const stakingReward = epoch.distribute;\n const circ = await sdbContract.circulatingSupply();\n const stakingRebase = stakingReward / circ;\n const fiveDayRate = Math.pow(1 + stakingRebase, 5 * 3) - 1;\n const stakingAPY = Math.pow(1 + stakingRebase, 365 * 3) - 1;\n\n const currentIndex = await stakingContract.index();\n const nextRebase = epoch.endTime;\n\n const warmupInfo = await stakingContract.warmupInfo(signer.getAddress());\n\n const warmup = warmupInfo.expiry.toNumber() !== 0 ? warmupInfo.expiry - epoch.number : 0;\n const warmupbalanceof = warmupInfo.deposit.toNumber() / Math.pow(10, 9);\n\n const treasuryRunway = rfvTreasury / circSupply;\n const runway = Math.log(treasuryRunway) / Math.log(1 + stakingRebase) / 3;\n\n return {\n currentIndex: Number(ethers.utils.formatUnits(currentIndex, \"gwei\")) / 4.5,\n totalSupply,\n marketCap,\n currentBlock,\n circSupply,\n warmupbalanceof,\n warmup,\n fiveDayRate,\n treasuryBalance,\n stakingAPY,\n stakingTVL,\n stakingRebase,\n marketPrice,\n currentBlockTime,\n nextRebase,\n rfv,\n runway,\n };\n },\n);\n\nconst initialState = {\n loading: true,\n warmupbalanceof: 0,\n};\n\nexport interface IAppSlice {\n loading: boolean;\n stakingTVL: number;\n marketPrice: number;\n marketCap: number;\n circSupply: number;\n currentIndex: string;\n currentBlock: number;\n warmup: number;\n warmupbalanceof: number;\n currentBlockTime: number;\n fiveDayRate: number;\n treasuryBalance: number;\n stakingAPY: number;\n stakingRebase: number;\n networkID: number;\n nextRebase: number;\n totalSupply: number;\n rfv: number;\n runway: number;\n}\n\nconst appSlice = createSlice({\n name: \"app\",\n initialState,\n reducers: {\n fetchAppSuccess(state, action) {\n setAll(state, action.payload);\n },\n // fetchWarmUpBalanceOf(state, action) {\n // state.warmupbalanceof = action.payload.warmupbalanceof;\n // },\n },\n extraReducers: builder => {\n builder\n .addCase(loadAppDetails.pending, (state, action) => {\n state.loading = true;\n })\n .addCase(loadAppDetails.fulfilled, (state, action) => {\n setAll(state, action.payload);\n state.loading = false;\n })\n .addCase(loadAppDetails.rejected, (state, { error }) => {\n state.loading = false;\n console.log(error);\n });\n },\n});\n\nconst baseInfo = (state: RootState) => state.app;\n\nexport default appSlice.reducer;\n\nexport const { fetchAppSuccess } = appSlice.actions;\n\nexport const getAppState = createSelector(baseInfo, app => app);\n","import { useSelector } from \"react-redux\";\nimport { useEffect, useState } from \"react\";\nimport allBonds from \"../helpers/bond\";\nimport { IUserBondDetails } from \"../store/slices/account-slice\";\nimport { Bond } from \"../helpers/bond/bond\";\nimport { IBondDetails, IBondSlice } from \"../store/slices/bond-slice\";\nimport { IReduxState } from \"../store/slices/state.interface\";\n\n// Smash all the interfaces together to get the BondData Type\nexport interface IAllBondData extends Bond, IBondDetails, IUserBondDetails {}\n\nconst initialBondArray = allBonds;\n// Slaps together bond data within the account & bonding states\nfunction useBonds() {\n const bondLoading = useSelector(state => state.bonding.loading);\n const bondState = useSelector(state => state.bonding);\n const accountBondsState = useSelector(state => state.account.bonds);\n //@ts-ignore\n const [bonds, setBonds] = useState(initialBondArray);\n\n useEffect(() => {\n let bondDetails: IAllBondData[];\n bondDetails = allBonds\n .flatMap(bond => {\n if (bondState[bond.name] && bondState[bond.name].bondDiscount) {\n return Object.assign(bond, bondState[bond.name]); // Keeps the object type\n }\n return bond;\n })\n .flatMap(bond => {\n if (accountBondsState[bond.name]) {\n return Object.assign(bond, accountBondsState[bond.name]);\n }\n return bond;\n });\n\n const mostProfitableBonds = bondDetails.concat().sort((a, b) => {\n return a[\"bondDiscount\"] > b[\"bondDiscount\"] ? -1 : b[\"bondDiscount\"] > a[\"bondDiscount\"] ? 1 : 0;\n });\n\n setBonds(mostProfitableBonds);\n }, [bondState, accountBondsState, bondLoading]);\n\n return { bonds, loading: bondLoading };\n}\n\nexport default useBonds;\n","var _image;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgDiamond(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _image || (_image = /*#__PURE__*/React.createElement(\"image\", {\n x: 1,\n y: 1,\n width: 22,\n height: 23,\n xlinkHref: \"data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAXCAYAAAAP6L+eAAAE/0lEQVQ4jY2VCUxUVxSGz33bbDAMDnSwQVmExg0dWSyZpqm2Fm1qXRNibeOCytZq1ZiqrUqjNU1tjTEx1ASbNhrbGjdwaesWkwK2xQVEoEMZGKXKIsMsjsPMW+ad5g2M4oJ6kj/vJfee7557zz3nEkSEx4wGAGbg+yzDAQUHJA+eyzzmyFZXV4+sqapMp1COJRSlOBBlQJZlkBGBpWkYCCUIiHKfIHYuXZHfYIqLax8SbG1uHrdt02fzK23/vadPTo0HSZQBAYOEoMxyqFdx4PN6gSKhxRBoBu/WX+nodPQeK9my5dAwo7FtYBcPwbKML+8o2Tz7or3z/ciFK5M1EzIJ+n3gkwFe4ijIjdOByLBQ2toLEXQ/mbAqMNReGl56cI82JTHBv6K4+Ge1St0VAipnjIi6H/btWxKp014dtm4HZrQgZt1CTLMhZrQh7vSgjIiCG1Eo7kac1IqY0YqYZUfMbEFUzVwkpyYlVZ6uKJ+HiFwob4jIWK3WN2MjdSc0M3IDaX/cxgwb4vi6Pky77sfP2wV0igq337oFxA9aAqExc70/FETahX8REsb4cqZO+f6m3T4WEVm6qKjIsGzx4lw7cDPjN+6K1o56BSQ/D4QikBNFwcdxLJhY8iAPOhogVU1Bg18Gj0xAliRQJ5qAiR3B1lYc1lLOblt8QmI3bTKZYsrKyuYN37DHbJhoUZFAEARegkQWIDeGhRFqAh4JwBt8KANDQAsA9S4JArwM4JVAP348OBsbta7qsy2dPQ47Y7FYAjHGqD7pfJWfwRQdG2EkGkEkPZEcbOjVgxirBZAeuaIh41wB0DW7IEIIhpIoeKyAjTZffHKS12w285TFYnFsLtl21vfnj1ZHU5WIBAmqGKADIqj9IqgZAhoKnpDazfffOZpCOiIK2s7s5Y0+29W8ZcsvFxYWdlHKWH5BQU1OzrQLPedKO+7drJdpdQQQSQaqTwLCBwEIeTRcAkA7eVAqhtbqoaPyJ3BcPmH/KD/v3Jy58xsAwEuFtsVxXaV7y35LMpDKttOl9/xdrUBpIpD4RKA8PCgV8cAQgHILQMQgUDQDfJeNtOzf6ixY8O75opWrTrMs61DKggrXh9FovL79q6+PRfVcu2a7cEBCmScUD0C8AiBDHkQKiEA5A6EfRhtF6vZvEiamxPy9JC/vpMEQ3RruGdSgDQrTZ7xTlb9s6angjZO22zWngOP0QPtEBFEOt4z+LtUbQEZjgLbyb0Fuv9K4YeOn5ekZWVcAQArPGQwGlmV7i1atPZOTnXbu5q/f3XVZLwFH6QnlCgDQRDlToHwS0CJBT8tl0n70m1sl69dWzJoz9wzHcc5H8jBQ0oPFXK+rfT1z0sRDzJjp9y17W3Hy7x40WwVMr+3DySd6MHt3IxLTaMfcObNLHY4epdLI45yngRWpjh/+ZdbIlNEXo99eLb123I3mfxRwAF/dZ0fTWyv6Ro9KqGhquDENEamnMYYCQzAY1O/Y/sUnGmNSc8q6g5jdgDipyoWpeXt4juNqyisq8hDRMJT/kGBFHXfujFm0cMFuOjmzK+PobUzbX4fa2ERrcWHBJkQc8SzfZ4KVLvVXdeUU82TLAf3UD9tHLv+y7Y3s9J08z499jt9zwYrUx44ezonWcltTx01Y39TUlPUCPvC0x/QJc7vd7JEjR+Lve73y6jVrOpU7/zyfFwKH54ZrL/yuDWkA8D+7nF9J99n3+QAAAABJRU5ErkJggg==\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDiamond);\nexport default __webpack_public_path__ + \"static/media/diamond.fd3c3c6c.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/hamburger.f09dcc2a.svg\";","import { useState } from \"react\";\nimport { getAddresses, TOKEN_DECIMALS, DEFAULT_NETWORK } from \"../../../constants\";\nimport { SvgIcon } from \"@material-ui/core\";\nimport { ReactComponent as Diamond } from \"../../../assets/icons/diamond.svg\";\nimport { useSelector } from \"react-redux\";\nimport { Link, Fade, Popper } from \"@material-ui/core\";\nimport { InjectedConnector } from \"@web3-react/injected-connector\";\nimport \"./db-menu.scss\";\nimport { IReduxState } from \"../../../store/slices/state.interface\";\nimport { getTokenUrl } from \"../../../helpers\";\n\nconst addTokenToWallet = (tokenSymbol: string, tokenAddress: string) => async () => {\n const tokenImage = getTokenUrl(tokenSymbol.toLowerCase());\n console.log(tokenImage);\n\n if (window.ethereum) {\n try {\n await window.ethereum.request({\n method: \"wallet_watchAsset\",\n params: {\n type: \"ERC20\",\n options: {\n address: tokenAddress,\n symbol: tokenSymbol,\n decimals: TOKEN_DECIMALS,\n image: tokenImage,\n },\n },\n });\n } catch (error) {\n console.log(error);\n }\n }\n};\n\nconst AVALANCHE_MAINNET_PARAMS = {\n chainId: \"0xA86A\",\n chainName: \"Avalanche Mainnet C-Chain\",\n nativeCurrency: {\n name: \"Avalanche\",\n symbol: \"AVAX\",\n decimals: 18,\n },\n rpcUrls: [\"https://api.avax.network/ext/bc/C/rpc\"],\n blockExplorerUrls: [\"https://snowtrace.io/\"],\n};\nconst injected = new InjectedConnector({\n supportedChainIds: [1, 3, 4, 5, 42, 43113, 43114],\n});\n\nconst AVALANCHE_TESTNET_PARAMS = {\n chainId: \"0xA869\",\n chainName: \"Avalanche Testnet C-Chain\",\n nativeCurrency: {\n name: \"Avalanche\",\n symbol: \"AVAX\",\n decimals: 18,\n },\n rpcUrls: [\"https://api.avax-test.network/ext/bc/C/rpc\"],\n blockExplorerUrls: [\"https://testnet.snowtrace.io/\"],\n};\n\nconst addAvalancheNetwork = () => {\n injected.getProvider().then(provider => {\n provider\n .request({\n method: \"wallet_addEthereumChain\",\n params: [AVALANCHE_MAINNET_PARAMS],\n })\n .catch((error: any) => {\n console.log(error);\n });\n });\n};\n\nfunction DbMenu() {\n const [anchorEl, setAnchorEl] = useState(null);\n const isEthereumAPIAvailable = window.ethereum;\n\n const networkID = useSelector(state => {\n return (state.app && state.app.networkID) || DEFAULT_NETWORK;\n });\n\n const addresses = getAddresses(networkID);\n\n const SDB_ADDRESS = addresses.SDB_ADDRESS;\n const DB_ADDRESS = addresses.DB_ADDRESS;\n const DB_MIM_ADDRESS = addresses.DB_MIM_ADDRESS;\n const DB_AVAX_ADDRESS = addresses.DB_AVAX_ADDRESS;\n\n const handleClick = (event: any) => {\n setAnchorEl(anchorEl ? null : event.currentTarget);\n };\n\n const open = Boolean(anchorEl);\n\n return (\n
handleClick(e)} onMouseLeave={e => handleClick(e)}>\n
\n

DB

\n
\n\n \n {({ TransitionProps }) => (\n \n
\n \n

Buy on Trader Joe

\n \n\n {isEthereumAPIAvailable && (\n
\n
\n

ADD TOKEN TO WALLET

\n
\n
\n

\n (,) DB\n

\n
\n
\n

\n (,) sDB\n

\n
\n {/*
\n

(,) DB/MIM

\n
\n
\n

(💎,💎) DB/AVAX

\n
*/}\n
\n

ADD CHAIN TO WALLET

\n
\n
\n

AVAX C

\n
\n
\n )}\n
\n \n )}\n \n
\n );\n}\n\nexport default DbMenu;\n","var _style, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgTwitter(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n baseProfile: \"tiny-ps\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n width: 20,\n height: 20,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"twitter-svg\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \"\\n\\t\\ttspan { white-space:pre }\\n\\t\\t.shp0 { fill: #ffffff } \\n\\t\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"surface1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Layer\",\n className: \"shp0\",\n d: \"M19.7 5.12C19.18 5.89 18.52 6.57 17.77 7.13C17.77 7.29 17.78 7.46 17.78 7.63C17.78 12.76 13.87 18.67 6.73 18.67C4.62 18.68 2.55 18.07 0.78 16.93C1.09 16.96 1.4 16.98 1.71 16.98C3.46 16.98 5.15 16.4 6.53 15.32C5.72 15.3 4.93 15.04 4.29 14.55C3.63 14.07 3.15 13.39 2.9 12.63C3.48 12.73 4.09 12.71 4.66 12.56C3.78 12.38 2.99 11.9 2.42 11.21C1.85 10.52 1.54 9.65 1.54 8.75L1.54 8.7C2.08 9 2.68 9.17 3.3 9.19C2.77 8.83 2.33 8.35 2.03 7.79C1.73 7.22 1.57 6.59 1.57 5.95C1.57 5.25 1.77 4.58 2.1 4C3.07 5.2 4.29 6.18 5.67 6.88C7.05 7.58 8.55 7.98 10.1 8.06C9.91 7.23 9.99 6.35 10.34 5.57C10.7 4.79 11.29 4.15 12.05 3.75C12.8 3.34 13.67 3.2 14.51 3.34C15.36 3.48 16.13 3.89 16.71 4.52C17.59 4.35 18.42 4.03 19.18 3.58C18.89 4.48 18.29 5.24 17.47 5.73C18.26 5.63 19.01 5.42 19.7 5.11L19.7 5.12Z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitter);\nexport default __webpack_public_path__ + \"static/media/twitter.490ee963.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgDiscord(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n height: \"24px\",\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: \"M19.229,6.012c-0.903-0.73-2.015-1.246-2.872-1.572c-0.307-0.117-0.653-0.076-0.923,0.111C15.162,4.737,15,5.045,15,5.374 C15,5.72,14.72,6,14.374,6c-1.573,0-3.176,0-4.749,0C9.28,6,9,5.72,9,5.375c0-0.329-0.162-0.638-0.433-0.824 C8.296,4.364,7.95,4.323,7.643,4.441c-0.86,0.329-1.978,0.85-2.894,1.59C3.831,6.882,2,11.861,2,16.165 c0,0.076,0.019,0.15,0.057,0.216c1.265,2.233,4.714,2.817,5.499,2.842c0.005,0.001,0.009,0.001,0.014,0.001 c0.139,0,0.286-0.056,0.351-0.18l0.783-1.485c-0.646-0.164-1.313-0.359-2.04-0.617c-0.521-0.185-0.792-0.757-0.607-1.277 s0.759-0.791,1.277-0.607c3.527,1.254,5.624,1.253,9.345-0.005c0.523-0.175,1.091,0.104,1.268,0.627s-0.104,1.091-0.627,1.268 c-0.728,0.246-1.392,0.434-2.035,0.594l0.793,1.503c0.065,0.124,0.213,0.18,0.351,0.18c0.005,0,0.009,0,0.014-0.001 c0.786-0.025,4.235-0.61,5.499-2.843C21.981,16.315,22,16.241,22,16.164C22,11.861,20.169,6.882,19.229,6.012z M9.04,13.988 c-0.829,0-1.5-0.893-1.5-1.996c0-1.102,0.671-1.996,1.5-1.996c0.832-0.11,1.482,0.893,1.5,1.996 C10.54,13.095,9.869,13.988,9.04,13.988z M14.996,14.012c-0.829,0-1.5-0.895-1.5-2s0.671-2,1.5-2s1.5,0.895,1.5,2 S15.825,14.012,14.996,14.012z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDiscord);\nexport default __webpack_public_path__ + \"static/media/discord.a4694afd.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgGithub(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n height: \"24px\",\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.9,2.1c-4.6,0.5-8.3,4.2-8.8,8.7c-0.5,4.7,2.2,8.9,6.3,10.5C8.7,21.4,9,21.2,9,20.8v-1.6c0,0-0.4,0.1-0.9,0.1 c-1.4,0-2-1.2-2.1-1.9c-0.1-0.4-0.3-0.7-0.6-1C5.1,16.3,5,16.3,5,16.2C5,16,5.3,16,5.4,16c0.6,0,1.1,0.7,1.3,1c0.5,0.8,1.1,1,1.4,1 c0.4,0,0.7-0.1,0.9-0.2c0.1-0.7,0.4-1.4,1-1.8c-2.3-0.5-4-1.8-4-4c0-1.1,0.5-2.2,1.2-3C7.1,8.8,7,8.3,7,7.6c0-0.4,0-0.9,0.2-1.3 C7.2,6.1,7.4,6,7.5,6c0,0,0.1,0,0.1,0C8.1,6.1,9.1,6.4,10,7.3C10.6,7.1,11.3,7,12,7s1.4,0.1,2,0.3c0.9-0.9,2-1.2,2.5-1.3 c0,0,0.1,0,0.1,0c0.2,0,0.3,0.1,0.4,0.3C17,6.7,17,7.2,17,7.6c0,0.8-0.1,1.2-0.2,1.4c0.7,0.8,1.2,1.8,1.2,3c0,2.2-1.7,3.5-4,4 c0.6,0.5,1,1.4,1,2.3v2.6c0,0.3,0.3,0.6,0.7,0.5c3.7-1.5,6.3-5.1,6.3-9.3C22,6.1,16.9,1.4,10.9,2.1z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGithub);\nexport default __webpack_public_path__ + \"static/media/github.da1467d9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgYoutube(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#ffffff\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"49px\",\n height: \"49px\",\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: \"M 12 4 C 12 4 5.7455469 3.9999687 4.1855469 4.4179688 C 3.3245469 4.6479688 2.6479687 5.3255469 2.4179688 6.1855469 C 1.9999687 7.7455469 2 12 2 12 C 2 12 1.9999687 16.254453 2.4179688 17.814453 C 2.6479687 18.675453 3.3255469 19.352031 4.1855469 19.582031 C 5.7455469 20.000031 12 20 12 20 C 12 20 18.254453 20.000031 19.814453 19.582031 C 20.674453 19.352031 21.352031 18.674453 21.582031 17.814453 C 22.000031 16.254453 22 12 22 12 C 22 12 22.000031 7.7455469 21.582031 6.1855469 C 21.352031 5.3255469 20.674453 4.6479688 19.814453 4.4179688 C 18.254453 3.9999687 12 4 12 4 z M 12 6 C 14.882 6 18.490875 6.1336094 19.296875 6.3496094 C 19.465875 6.3946094 19.604391 6.533125 19.650391 6.703125 C 19.891391 7.601125 20 10.342 20 12 C 20 13.658 19.891391 16.397875 19.650391 17.296875 C 19.605391 17.465875 19.466875 17.604391 19.296875 17.650391 C 18.491875 17.866391 14.882 18 12 18 C 9.119 18 5.510125 17.866391 4.703125 17.650391 C 4.534125 17.605391 4.3956094 17.466875 4.3496094 17.296875 C 4.1086094 16.398875 4 13.658 4 12 C 4 10.342 4.1086094 7.6011719 4.3496094 6.7011719 C 4.3946094 6.5331719 4.533125 6.3946094 4.703125 6.3496094 C 5.508125 6.1336094 9.118 6 12 6 z M 10 8.5351562 L 10 15.464844 L 16 12 L 10 8.5351562 z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgYoutube);\nexport default __webpack_public_path__ + \"static/media/youtube.5cbad3c4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgInstagram(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#ffffff\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n height: \"24px\",\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: \"M 8 3 C 5.243 3 3 5.243 3 8 L 3 16 C 3 18.757 5.243 21 8 21 L 16 21 C 18.757 21 21 18.757 21 16 L 21 8 C 21 5.243 18.757 3 16 3 L 8 3 z M 8 5 L 16 5 C 17.654 5 19 6.346 19 8 L 19 16 C 19 17.654 17.654 19 16 19 L 8 19 C 6.346 19 5 17.654 5 16 L 5 8 C 5 6.346 6.346 5 8 5 z M 17 6 A 1 1 0 0 0 16 7 A 1 1 0 0 0 17 8 A 1 1 0 0 0 18 7 A 1 1 0 0 0 17 6 z M 12 7 C 9.243 7 7 9.243 7 12 C 7 14.757 9.243 17 12 17 C 14.757 17 17 14.757 17 12 C 17 9.243 14.757 7 12 7 z M 12 9 C 13.654 9 15 10.346 15 12 C 15 13.654 13.654 15 12 15 C 10.346 15 9 13.654 9 12 C 9 10.346 10.346 9 12 9 z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInstagram);\nexport default __webpack_public_path__ + \"static/media/instagram.575474dc.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgMedium(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n baseProfile: \"tiny-ps\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: 20,\n height: 20,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"medium-svg\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \"\\n\\t\\ttspan { white-space:pre }\\n\\t\\t.shp0 { fill: #ffffff } \\n\\t\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Layer\",\n fillRule: \"evenodd\",\n className: \"shp0\",\n d: \"M4.38 7.28C4.4 7.02 4.3 6.78 4.12 6.61L2.25 4.34L2.25 4L8.05 4L12.53 13.93L16.48 4L22 4L22 4.34L20.4 5.89C20.27 6 20.2 6.17 20.23 6.34L20.23 17.72C20.2 17.88 20.27 18.06 20.4 18.16L21.96 19.71L21.96 20.05L14.12 20.05L14.12 19.71L15.73 18.13C15.89 17.97 15.89 17.92 15.89 17.67L15.89 8.48L11.4 20.02L10.79 20.02L5.57 8.48L5.57 16.21C5.52 16.54 5.63 16.87 5.86 17.1L7.96 19.67L7.96 20.02L2 20.02L2 19.67L4.1 17.1C4.32 16.87 4.42 16.54 4.38 16.21L4.38 7.28L4.38 7.28Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMedium);\nexport default __webpack_public_path__ + \"static/media/medium.f5820012.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgTelegram(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n height: \"24px\",\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: \"M 20.302734 2.984375 C 20.013769 2.996945 19.748583 3.080055 19.515625 3.171875 C 19.300407 3.256634 18.52754 3.5814726 17.296875 4.0976562 C 16.06621 4.61384 14.435476 5.2982348 12.697266 6.0292969 C 9.2208449 7.4914211 5.314238 9.1361259 3.3125 9.9785156 C 3.243759 10.007156 2.9645852 10.092621 2.65625 10.328125 C 2.3471996 10.564176 2.0039062 11.076462 2.0039062 11.636719 C 2.0039062 12.088671 2.2295201 12.548966 2.5019531 12.8125 C 2.7743861 13.076034 3.0504903 13.199244 3.28125 13.291016 C 3.9563403 13.559857 6.0424892 14.392968 6.9492188 14.755859 C 7.2668647 15.707799 8.0129251 17.950071 8.1875 18.501953 L 8.1855469 18.501953 C 8.3275588 18.951162 8.4659791 19.243913 8.6582031 19.488281 C 8.7543151 19.610465 8.8690398 19.721184 9.0097656 19.808594 C 9.0637596 19.842134 9.1235454 19.868148 9.1835938 19.892578 C 9.191962 19.896131 9.2005867 19.897012 9.2089844 19.900391 L 9.1855469 19.894531 C 9.2029579 19.901531 9.2185841 19.911859 9.2363281 19.917969 C 9.2652427 19.927926 9.2852873 19.927599 9.3242188 19.935547 C 9.4612233 19.977694 9.5979794 20.005859 9.7246094 20.005859 C 10.26822 20.005859 10.601562 19.710938 10.601562 19.710938 L 10.623047 19.695312 L 12.970703 17.708984 L 15.845703 20.367188 C 15.897113 20.439837 16.308174 20.998047 17.261719 20.998047 C 17.829844 20.998047 18.280978 20.718791 18.568359 20.423828 C 18.855741 20.128866 19.034757 19.82706 19.115234 19.417969 L 19.115234 19.414062 L 19.115234 19.412109 C 19.171124 19.121728 21.931641 5.265625 21.931641 5.265625 L 21.925781 5.2890625 C 22.01148 4.9067181 22.036735 4.5369631 21.935547 4.1601562 C 21.834358 3.7833495 21.561271 3.4156252 21.232422 3.2226562 C 20.903572 3.0296874 20.591699 2.9718046 20.302734 2.984375 z M 19.908203 5.1738281 C 19.799749 5.7182284 17.343164 18.059965 17.183594 18.878906 L 14.328125 16.240234 C 13.59209 15.559749 12.44438 15.535812 11.679688 16.181641 L 10.222656 17.414062 L 11 14.375 C 11 14.375 16.362547 8.9468594 16.685547 8.6308594 C 16.945547 8.3778594 17 8.2891719 17 8.2011719 C 17 8.0841719 16.939781 8 16.800781 8 C 16.675781 8 16.506016 8.1197812 16.416016 8.1757812 C 15.267511 8.8918132 10.350132 11.694224 7.96875 13.048828 C 7.8792978 12.995267 7.7913128 12.939666 7.6933594 12.900391 C 6.9119785 12.587666 5.4101276 11.985551 4.53125 11.634766 C 6.6055146 10.76177 10.161156 9.2658083 13.472656 7.8730469 C 15.210571 7.142109 16.840822 6.4570977 18.070312 5.9414062 C 19.108158 5.5060977 19.649538 5.2807035 19.908203 5.1738281 z M 17.152344 19.023438 C 17.152344 19.023438 17.154297 19.023438 17.154297 19.023438 C 17.154234 19.023761 17.152444 19.03095 17.152344 19.03125 C 17.154024 19.022709 17.151187 19.029588 17.152344 19.023438 z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTelegram);\nexport default __webpack_public_path__ + \"static/media/telegram.716b6908.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgFacebook(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n height: \"24px\",\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: \"M 12 2 C 6.4889971 2 2 6.4889971 2 12 C 2 17.511003 6.4889971 22 12 22 C 17.511003 22 22 17.511003 22 12 C 22 6.4889971 17.511003 2 12 2 z M 12 4 C 16.430123 4 20 7.5698774 20 12 C 20 16.014467 17.065322 19.313017 13.21875 19.898438 L 13.21875 14.384766 L 15.546875 14.384766 L 15.912109 12.019531 L 13.21875 12.019531 L 13.21875 10.726562 C 13.21875 9.7435625 13.538984 8.8710938 14.458984 8.8710938 L 15.935547 8.8710938 L 15.935547 6.8066406 C 15.675547 6.7716406 15.126844 6.6953125 14.089844 6.6953125 C 11.923844 6.6953125 10.654297 7.8393125 10.654297 10.445312 L 10.654297 12.019531 L 8.4277344 12.019531 L 8.4277344 14.384766 L 10.654297 14.384766 L 10.654297 19.878906 C 6.8702905 19.240845 4 15.970237 4 12 C 4 7.5698774 7.5698774 4 12 4 z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebook);\nexport default __webpack_public_path__ + \"static/media/facebook.7b31d229.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgTiktok(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n height: \"24px\",\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: \"M 6 3 C 4.3550302 3 3 4.3550302 3 6 L 3 18 C 3 19.64497 4.3550302 21 6 21 L 18 21 C 19.64497 21 21 19.64497 21 18 L 21 6 C 21 4.3550302 19.64497 3 18 3 L 6 3 z M 6 5 L 18 5 C 18.56503 5 19 5.4349698 19 6 L 19 18 C 19 18.56503 18.56503 19 18 19 L 6 19 C 5.4349698 19 5 18.56503 5 18 L 5 6 C 5 5.4349698 5.4349698 5 6 5 z M 12 7 L 12 14 C 12 14.56503 11.56503 15 11 15 C 10.43497 15 10 14.56503 10 14 C 10 13.43497 10.43497 13 11 13 L 11 11 C 9.3550302 11 8 12.35503 8 14 C 8 15.64497 9.3550302 17 11 17 C 12.64497 17 14 15.64497 14 14 L 14 10.232422 C 14.616148 10.671342 15.259118 11 16 11 L 16 9 C 15.952667 9 15.262674 8.7809373 14.78125 8.3613281 C 14.299826 7.941719 14 7.4149911 14 7 L 12 7 z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTiktok);\nexport default __webpack_public_path__ + \"static/media/tiktok.116b2a42.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgReddit(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"24px\",\n height: \"24px\",\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: \"M 14 3 C 12.300781 3 11 4.414063 11 6 L 11 8.03125 C 8.882813 8.175781 6.976563 8.785156 5.4375 9.71875 C 4.878906 9.28125 4.21875 9.03125 3.5625 9.03125 C 2.835938 9.03125 2.128906 9.308594 1.625 9.875 C 0.667969 11.070313 0.753906 13.023438 2.09375 14.03125 C 2.03125 14.347656 2 14.667969 2 15 C 2 17.054688 3.242188 18.84375 5.0625 20.0625 C 6.882813 21.28125 9.320313 22 12 22 C 14.679688 22 17.117188 21.28125 18.9375 20.0625 C 20.757813 18.84375 22 17.054688 22 15 C 22 14.667969 21.9375 14.347656 21.875 14.03125 C 23.238281 12.945313 23.378906 11.003906 22.375 9.875 C 21.871094 9.308594 21.164063 9.03125 20.4375 9.03125 C 19.78125 9.03125 19.121094 9.28125 18.5625 9.71875 C 17.023438 8.785156 15.117188 8.175781 13 8.03125 L 13 6 C 13 5.386719 13.300781 5 14 5 C 14.320313 5 14.773438 5.171875 15.53125 5.4375 C 16.203125 5.671875 17.09375 5.914063 18.25 5.96875 C 18.589844 6.585938 19.25 7 20 7 C 21.101563 7 22 6.101563 22 5 C 22 3.898438 21.101563 3 20 3 C 19.273438 3 18.632813 3.382813 18.28125 3.96875 C 17.394531 3.925781 16.769531 3.765625 16.1875 3.5625 C 15.519531 3.328125 14.878906 3 14 3 Z M 20 4 C 20.601563 4 21 4.398438 21 5 C 21 5.601563 20.601563 6 20 6 C 19.398438 6 19 5.601563 19 5 C 19 4.398438 19.398438 4 20 4 Z M 12 10 C 14.320313 10 16.382813 10.636719 17.8125 11.59375 C 19.242188 12.550781 20 13.753906 20 15 C 20 16.246094 19.242188 17.449219 17.8125 18.40625 C 16.382813 19.363281 14.320313 20 12 20 C 9.679688 20 7.617188 19.363281 6.1875 18.40625 C 4.757813 17.449219 4 16.246094 4 15 C 4 13.753906 4.757813 12.550781 6.1875 11.59375 C 7.617188 10.636719 9.679688 10 12 10 Z M 3.59375 10.03125 C 3.925781 10.03125 4.277344 10.101563 4.59375 10.28125 C 3.628906 11.023438 2.878906 11.9375 2.4375 12.96875 C 1.855469 12.28125 1.867188 11.191406 2.375 10.53125 C 2.671875 10.195313 3.121094 10.03125 3.59375 10.03125 Z M 20.40625 10.03125 C 20.878906 10.03125 21.328125 10.195313 21.625 10.53125 C 22.117188 11.085938 22.15625 12.175781 21.5625 12.9375 C 21.121094 11.914063 20.363281 11.019531 19.40625 10.28125 C 19.722656 10.101563 20.074219 10.03125 20.40625 10.03125 Z M 9 12 C 8.171875 12 7.5 12.671875 7.5 13.5 C 7.5 14.328125 8.171875 15 9 15 C 9.828125 15 10.5 14.328125 10.5 13.5 C 10.5 12.671875 9.828125 12 9 12 Z M 15 12 C 14.171875 12 13.5 12.671875 13.5 13.5 C 13.5 14.328125 14.171875 15 15 15 C 15.828125 15 16.5 14.328125 16.5 13.5 C 16.5 12.671875 15.828125 12 15 12 Z M 16.09375 16.40625 C 15.195313 17.207031 13.699219 17.6875 12 17.6875 C 10.300781 17.6875 8.804688 17.199219 7.90625 16.5 C 8.40625 17.800781 10 19 12 19 C 14 19 15.59375 17.804688 16.09375 16.40625 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReddit);\nexport default __webpack_public_path__ + \"static/media/reddit.c0cddd40.svg\";\nexport { ForwardRef as ReactComponent };","import { SvgIcon, Link } from \"@material-ui/core\";\nimport { ReactComponent as Twitter } from \"../../assets/icons/twitter.svg\";\nimport { ReactComponent as Discord } from \"../../assets/icons/discord.svg\";\nimport { ReactComponent as Github } from \"../../assets/icons/github.svg\";\nimport { ReactComponent as Youtube } from \"../../assets/icons/youtube.svg\";\nimport { ReactComponent as Instagram } from \"../../assets/icons/instagram.svg\";\nimport { ReactComponent as Monogram } from \"../../assets/icons/medium.svg\";\nimport { ReactComponent as Linktree } from \"../../assets/icons/linktree.svg\";\nimport { ReactComponent as Telegram } from \"../../assets/icons/telegram.svg\";\nimport { ReactComponent as Facebook } from \"../../assets/icons/facebook.svg\";\nimport { ReactComponent as Tiktok } from \"../../assets/icons/tiktok.svg\";\nimport { ReactComponent as Reddit } from \"../../assets/icons/reddit.svg\";\n\nexport default function Social() {\n return (\n
\n \n \n \n\n \n \n \n\n \n \n \n\n {/* \n \n */}\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useWeb3Context } from \"../../../hooks\";\nimport { DEFAULT_NETWORK } from \"../../../constants\";\nimport { IReduxState } from \"../../../store/slices/state.interface\";\nimport { IPendingTxn } from \"../../../store/slices/pending-txns-slice\";\nimport \"./connect-menu.scss\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nfunction ConnectMenu() {\n const { connect, disconnect, connected, web3, providerChainID, checkWrongNetwork } = useWeb3Context();\n const dispatch = useDispatch();\n const [isConnected, setConnected] = useState(connected);\n\n let pendingTransactions = useSelector(state => {\n return state.pendingTransactions;\n });\n\n let buttonText = \"Connect Wallet\";\n let clickFunc: any = connect;\n let buttonStyle = {};\n\n if (isConnected) {\n buttonText = \"Disconnect\";\n clickFunc = disconnect;\n }\n\n if (pendingTransactions && pendingTransactions.length > 0) {\n buttonText = `${pendingTransactions.length} Pending `;\n clickFunc = () => {};\n }\n\n if (isConnected && providerChainID !== DEFAULT_NETWORK) {\n buttonText = \"Wrong network\";\n buttonStyle = { backgroundColor: \"rgb(255, 67, 67)\" };\n clickFunc = () => {\n checkWrongNetwork();\n };\n }\n\n useEffect(() => {\n setConnected(connected);\n }, [web3, connected]);\n\n return (\n
\n

{buttonText}

\n {pendingTransactions.length > 0 && (\n
\n \n
\n )}\n
\n );\n}\n\nexport default ConnectMenu;\n","var _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgX(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"20pt\",\n height: \"20pt\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n id: \"surface1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"none\",\n strokeWidth: 1,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n stroke: \"rgb(100%,100%,100%)\",\n strokeOpacity: 1,\n strokeMiterlimit: 4\n },\n d: \"M 21.998437 21.998437 L 2.001562 2.001562 M 2.001562 21.998437 L 21.998437 2.001562 Z M 2.001562 21.998437 \",\n transform: \"matrix(0.833333,0,0,0.833333,0,0)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgX);\nexport default __webpack_public_path__ + \"static/media/x.0e19066c.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgArrows(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\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 d: \"M6 3L2 7M6 3V21V3ZM6 3L10 7L6 3Z\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 21L14 17M18 21V3V21ZM18 21L22 17L18 21Z\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrows);\nexport default __webpack_public_path__ + \"static/media/arrows.d4da5d07.svg\";\nexport { ForwardRef as ReactComponent };","import { JsonRpcProvider, StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport { createSlice, createSelector, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { messages } from \"../../constants/messages\";\nimport { getAddresses, Networks } from \"../../constants\";\nimport { setAll, sleep } from \"../../helpers\";\nimport { info, success, warning } from \"./messages-slice\";\nimport { RootState } from \"../store\";\nimport { ethers } from \"ethers\";\nimport { metamaskErrorWrap } from \"../../helpers/metamask-error-wrap\";\nimport { wDbTokenContract } from \"../../abi\";\nimport { clearPendingTxn, fetchPendingTxns, getWrapingTypeText } from \"./pending-txns-slice\";\nimport { getGasPrice } from \"../../helpers/get-gas-price\";\nimport { fetchAccountSuccess, getBalances } from \"./account-slice\";\n\nexport interface IChangeApproval {\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n networkID: Networks;\n address: string;\n}\n\nexport const changeApproval = createAsyncThunk(\"wraping/changeApproval\", async ({ provider, address, networkID }: IChangeApproval, { dispatch }) => {\n if (!provider) {\n dispatch(warning({ text: messages.please_connect_wallet }));\n return;\n }\n\n const addresses = getAddresses(networkID);\n const signer = provider.getSigner();\n const sdbContract = new ethers.Contract(addresses.SDB_ADDRESS, wDbTokenContract, signer);\n\n let approveTx;\n try {\n const gasPrice = await getGasPrice(provider);\n\n approveTx = await sdbContract.approve(addresses.WDB_ADDRESS, ethers.constants.MaxUint256, { gasPrice });\n\n const text = \"Approve Wraping\";\n const pendingTxnType = \"approve_wraping\";\n\n dispatch(fetchPendingTxns({ txnHash: approveTx.hash, text, type: pendingTxnType }));\n await approveTx.wait();\n dispatch(success({ text: messages.tx_successfully_send }));\n } catch (err: any) {\n return metamaskErrorWrap(err, dispatch);\n } finally {\n if (approveTx) {\n dispatch(clearPendingTxn(approveTx.hash));\n }\n }\n\n await sleep(2);\n\n const wdbAllowance = await sdbContract.allowance(address, addresses.WDB_ADDRESS);\n\n return dispatch(\n fetchAccountSuccess({\n wraping: {\n wdb: Number(wdbAllowance),\n },\n }),\n );\n});\n\nexport interface IChangeWrap {\n isWrap: boolean;\n value: string;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n networkID: Networks;\n address: string;\n}\n\nexport const changeWrap = createAsyncThunk(\"wraping/changeWrap\", async ({ isWrap, value, provider, networkID, address }: IChangeWrap, { dispatch }) => {\n if (!provider) {\n dispatch(warning({ text: messages.please_connect_wallet }));\n return;\n }\n\n const addresses = getAddresses(networkID);\n const signer = provider.getSigner();\n const amountInWei = isWrap ? ethers.utils.parseUnits(value, \"gwei\") : ethers.utils.parseEther(value);\n const wdbContract = new ethers.Contract(addresses.WDB_ADDRESS, wDbTokenContract, signer);\n\n let wrapTx;\n\n try {\n const gasPrice = await getGasPrice(provider);\n\n if (isWrap) {\n wrapTx = await wdbContract.wrap(amountInWei, { gasPrice });\n } else {\n wrapTx = await wdbContract.unwrap(amountInWei, { gasPrice });\n }\n\n const pendingTxnType = isWrap ? \"wraping\" : \"unwraping\";\n dispatch(fetchPendingTxns({ txnHash: wrapTx.hash, text: getWrapingTypeText(isWrap), type: pendingTxnType }));\n await wrapTx.wait();\n dispatch(success({ text: messages.tx_successfully_send }));\n } catch (err: any) {\n return metamaskErrorWrap(err, dispatch);\n } finally {\n if (wrapTx) {\n dispatch(clearPendingTxn(wrapTx.hash));\n }\n }\n\n dispatch(info({ text: messages.your_balance_update_soon }));\n await sleep(10);\n await dispatch(getBalances({ address, networkID, provider }));\n dispatch(info({ text: messages.your_balance_updated }));\n return;\n});\n\nexport interface IWrapDetails {\n isWrap: boolean;\n value: string | null;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n networkID: Networks;\n}\n\nexport const calcWrapDetails = createAsyncThunk(\"wraping/calcWrapDetails\", async ({ isWrap, value, provider, networkID }: IWrapDetails, { dispatch }) => {\n if (!provider) {\n dispatch(warning({ text: messages.please_connect_wallet }));\n return;\n }\n\n if (!value) {\n return new Promise(resolve =>\n resolve({\n wrapValue: \"\",\n }),\n );\n }\n\n const addresses = getAddresses(networkID);\n\n const amountInWei = isWrap ? ethers.utils.parseUnits(value, \"gwei\") : ethers.utils.parseEther(value);\n\n let wrapValue = 0;\n\n const wdbContract = new ethers.Contract(addresses.WDB_ADDRESS, wDbTokenContract, provider);\n\n if (isWrap) {\n const wdbValue = await wdbContract.sDBTowDB(amountInWei);\n wrapValue = wdbValue / Math.pow(10, 18);\n } else {\n const sdbValue = await wdbContract.wDBTosDB(amountInWei);\n wrapValue = sdbValue / Math.pow(10, 9);\n }\n\n return {\n wrapValue,\n };\n});\n\nexport interface IWrapSlice {\n loading: boolean;\n wrapValue: \"\";\n}\n\nconst initialState: IWrapSlice = {\n loading: true,\n wrapValue: \"\",\n};\n\nconst wrapSlice = createSlice({\n name: \"wraping\",\n initialState,\n reducers: {\n fetchWrapSuccess(state, action) {\n setAll(state, action.payload);\n },\n },\n extraReducers: builder => {\n builder\n .addCase(calcWrapDetails.pending, state => {\n state.loading = true;\n })\n .addCase(calcWrapDetails.fulfilled, (state, action) => {\n setAll(state, action.payload);\n state.loading = false;\n })\n .addCase(calcWrapDetails.rejected, (state, { error }) => {\n state.loading = false;\n console.log(error);\n });\n },\n});\n\nexport default wrapSlice.reducer;\n\nexport const { fetchWrapSuccess } = wrapSlice.actions;\n\nconst baseInfo = (state: RootState) => state.wraping;\n\nexport const getWrapingState = createSelector(baseInfo, wraping => wraping);\n","import React, { useState } from \"react\";\nimport \"./wrap-button.scss\";\nimport Wrap from \"../../../components/Wrap\";\n\nfunction WrapButton() {\n const [showWrap, setShowWrap] = useState(false);\n\n const handelOpenWrap = () => {\n setShowWrap(true);\n };\n\n const handelCloseWrap = () => {\n setShowWrap(false);\n };\n\n return (\n
\n
\n

Wrap

\n
\n \n
\n );\n}\n\nexport default WrapButton;\n","export const DRAWER_WIDTH = 280;\nexport const TRANSITION_DURATION = 969;\n","import { AppBar, Toolbar } from \"@material-ui/core\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\nimport MenuIcon from \"../../assets/icons/hamburger.svg\";\nimport DbMenu from \"./db-menu\";\nimport Social from \"../../views/Dashboard/social\";\nimport ConnectButton from \"./connect-button\";\nimport WrapButton from \"./wrap-button\";\nimport { Grid, Zoom } from \"@material-ui/core\";\nimport \"./header.scss\";\nimport { DRAWER_WIDTH, TRANSITION_DURATION } from \"../../constants/style\";\n\ninterface IHeader {\n handleDrawerToggle: () => void;\n drawe: boolean;\n}\n\nconst useStyles = makeStyles(theme => ({\n appBar: {\n [theme.breakpoints.up(\"sm\")]: {\n width: \"100%\",\n padding: \"20px 0 30px 0\",\n },\n justifyContent: \"flex-end\",\n alignItems: \"flex-end\",\n background: \"transparent\",\n backdropFilter: \"none\",\n zIndex: 10,\n },\n topBar: {\n transition: theme.transitions.create(\"margin\", {\n easing: theme.transitions.easing.sharp,\n duration: TRANSITION_DURATION,\n }),\n marginLeft: DRAWER_WIDTH,\n },\n topBarShift: {\n transition: theme.transitions.create(\"margin\", {\n easing: theme.transitions.easing.easeOut,\n duration: TRANSITION_DURATION,\n }),\n marginLeft: 0,\n },\n}));\n\nfunction Header({ handleDrawerToggle, drawe }: IHeader) {\n const classes = useStyles();\n const isVerySmallScreen = useMediaQuery(\"(max-width: 400px)\");\n const isWrapShow = true; // useMediaQuery(\"(max-width: 480px)\");\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n \"\"\n
\n \n {/*
No Games, just true wealth!
*/}\n
\n {!isVerySmallScreen && }\n {!isWrapShow && }\n \n
\n
\n
\n
\n );\n}\n\nexport default Header;\n","export default __webpack_public_path__ + \"static/media/stake.2978e49e.svg\";","export default __webpack_public_path__ + \"static/media/bond.9bb2c50a.svg\";","export default __webpack_public_path__ + \"static/media/diamondbankdao-nav-header.5f2c7c97.png\";","export default __webpack_public_path__ + \"static/media/buy.c08cf112.svg\";","export default __webpack_public_path__ + \"static/media/pro.07f35cd6.svg\";","export default __webpack_public_path__ + \"static/media/reward.b704832d.svg\";","export default __webpack_public_path__ + \"static/media/launchpad.b29b6cfe.svg\";","export default __webpack_public_path__ + \"static/media/info.5b14b7c1.svg\";","export default __webpack_public_path__ + \"static/media/airdrop.a8fcae18.svg\";","export default __webpack_public_path__ + \"static/media/dashboard.25e1b5ce.svg\";","export default __webpack_public_path__ + \"static/media/docs.2157b85f.svg\";","import { useCallback, useState } from \"react\";\nimport { NavLink } from \"react-router-dom\";\n// import Social from \"./social\";\nimport StakeIcon from \"../../../assets/icons/stake.svg\";\nimport BondIcon from \"../../../assets/icons/bond.svg\";\nimport DiamondbankIcon from \"../../../assets/icons/diamondbankdao-nav-header.png\";\nimport BuyIcon from \"../../../assets/icons/buy.svg\";\nimport ProIcon from \"../../../assets/icons/pro.svg\";\nimport RewardIcon from \"../../../assets/icons/reward.svg\";\nimport ChartIcon from \"../../../assets/icons/chart.svg\";\nimport LaunchpadIcon from \"../../../assets/icons/launchpad.svg\";\nimport InfoIcon from \"../../../assets/icons/info.svg\";\nimport AirdropIcon from \"../../../assets/icons/airdrop.svg\";\nimport DashboardIcon from \"../../../assets/icons/dashboard.svg\";\nimport { trim, shorten } from \"../../../helpers\";\nimport { useAddress } from \"../../../hooks\";\nimport useBonds from \"../../../hooks/bonds\";\nimport { Link } from \"@material-ui/core\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport \"./drawer-content.scss\";\nimport DocsIcon from \"../../../assets/icons/docs.svg\";\nimport GlobeIcon from \"../../../assets/icons/wonderglobe.svg\";\nimport classnames from \"classnames\";\n\nfunction NavContent() {\n const [isActive] = useState();\n const address = useAddress();\n const { bonds } = useBonds();\n\n const checkPage = useCallback((location: any, page: string): boolean => {\n const currentPath = location.pathname.replace(\"/\", \"\");\n if (currentPath.indexOf(\"dashboard\") >= 0 && page === \"dashboard\") {\n return true;\n }\n if (currentPath.indexOf(\"stake\") >= 0 && page === \"stake\") {\n return true;\n }\n if (currentPath.indexOf(\"mints\") >= 0 && page === \"mints\") {\n return true;\n }\n if (currentPath.indexOf(\"calculator\") >= 0 && page === \"calculator\") {\n return true;\n }\n return false;\n }, []);\n\n return (\n
\n
\n \n \"\"\n \n\n {address && (\n
\n \n

{shorten(address)}

\n \n
\n )}\n
\n\n
\n
\n {\n return checkPage(location, \"dashboard\");\n }}\n className={classnames(\"button-dapp-menu\", { active: isActive })}\n >\n
\n \"\"\n

Bank Board

\n
\n \n\n {\n return checkPage(location, \"stake\");\n }}\n className={classnames(\"button-dapp-menu\", { active: isActive })}\n >\n
\n \"\"\n

Stake

\n
\n \n\n {\n return checkPage(location, \"mints\");\n }}\n className={classnames(\"button-dapp-menu\", { active: isActive })}\n >\n
\n \"\"\n

Bond

\n
\n \n\n
\n

Bond discounts

\n {bonds.map((bond, i) => (\n \n {!bond.bondDiscount ? (\n \n ) : (\n

\n {bond.displayName}\n {bond.bondDiscount && trim(bond.bondDiscount * 100, 2)}%\n

\n )}\n \n ))}\n
\n\n \n
\n \"\"\n

Buy

\n
\n \n\n {\n return checkPage(location, \"calculator\");\n }}\n className={classnames(\"button-dapp-menu\", { active: isActive })}\n >\n
\n \"\"\n

Diamond Appraisal

\n
\n \n\n {\n return checkPage(location, \"dashboard\");\n }}\n className={classnames(\"button-dapp-menu\", { active: isActive })}\n >\n
\n \"\"\n

Diamond Nodes

\n
\n \n\n {\n return checkPage(location, \"dashboard\");\n }}\n className={classnames(\"button-dapp-menu\", { active: isActive })}\n >\n
\n \"\"\n

Airdrops

\n
\n \n\n \n
\n \"\"\n

Docs

\n
\n \n\n {/* \n
\n \"\"\n

Charts

\n
\n */}\n\n {\n return checkPage(location, \"dashboard\");\n }}\n className={classnames(\"button-dapp-menu\", { active: isActive })}\n >\n
\n \"\"\n

\n DB Pro coming soon\n

\n
\n \n\n {\n return checkPage(location, \"dashboard\");\n }}\n className={classnames(\"button-dapp-menu\", { active: isActive })}\n >\n
\n \"\"\n

\n Diamond Pad coming soon\n

\n
\n \n
\n
\n {/*
\n \n

Legacy website

\n \n
*/}\n {/* */}\n
\n );\n}\n\nexport default NavContent;\n","import { makeStyles } from \"@material-ui/core/styles\";\nimport { Drawer } from \"@material-ui/core\";\nimport DrawerContent from \"./drawer-content\";\nimport { DRAWER_WIDTH } from \"../../constants/style\";\n\nconst useStyles = makeStyles(theme => ({\n drawer: {\n [theme.breakpoints.up(\"md\")]: {\n width: DRAWER_WIDTH,\n flexShrink: 0,\n },\n },\n drawerPaper: {\n width: DRAWER_WIDTH,\n borderRight: 0,\n },\n}));\n\ninterface INavDrawer {\n mobileOpen: boolean;\n handleDrawerToggle: () => void;\n}\n\nfunction NavDrawer({ mobileOpen, handleDrawerToggle }: INavDrawer) {\n const classes = useStyles();\n\n return (\n \n \n \n );\n}\n\nexport default NavDrawer;\n","import { Drawer } from \"@material-ui/core\";\nimport DrawerContent from \"./drawer-content\";\n\nfunction Sidebar() {\n return (\n \n \n \n );\n}\n\nexport default Sidebar;\n","import { configureStore } from \"@reduxjs/toolkit\";\n\nimport accountReducer from \"./slices/account-slice\";\nimport bondingReducer from \"./slices/bond-slice\";\nimport appReducer from \"./slices/app-slice\";\nimport pendingTransactionsReducer from \"./slices/pending-txns-slice\";\nimport messagesReducer from \"./slices/messages-slice\";\nimport wrapingReducer from \"./slices/wrap-slice\";\n\nconst store = configureStore({\n reducer: {\n account: accountReducer,\n bonding: bondingReducer,\n app: appReducer,\n pendingTransactions: pendingTransactionsReducer,\n messages: messagesReducer,\n wraping: wrapingReducer,\n },\n middleware: getDefaultMiddleware => getDefaultMiddleware({ serializableCheck: false }),\n});\n\nexport type RootState = ReturnType;\nexport type AppDispatch = typeof store.dispatch;\nexport default store;\n","import { error } from \"../../store/slices/messages-slice\";\nimport store from \"../../store/store\";\nimport { messages } from \"../../constants/messages\";\n\n// List of error messages we wish to intercept\nconst interceptedConsoleMessages = [\"Wrong network, please switch to mainnet\"];\n\n// Intercepts an error sent to console and dispatches it to the message framework.\nvar consoleInterceptor = function (message) {\n if (interceptedConsoleMessages.includes(message)) {\n store.dispatch(error({ text: messages.something_wrong, error: message }));\n }\n console._error_old(message);\n};\nconsoleInterceptor.isInterceptor = true;\n\n// Replaces the console.error function by our interceptor\nif (console.error.isInterceptor != true) {\n console._error_old = console.error;\n console.error = consoleInterceptor;\n}\n","import { useDispatch, useSelector } from \"react-redux\";\nimport { close } from \"../../store/slices/messages-slice\";\nimport \"./console-interceptor\";\nimport { MessagesState } from \"../../store/slices/messages-slice\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\nimport React, { useEffect } from \"react\";\nimport { useSnackbar } from \"notistack\";\n\n// A component that displays error messages\nfunction Messages() {\n const { enqueueSnackbar } = useSnackbar();\n const messages = useSelector(state => state.messages);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (messages.message) {\n enqueueSnackbar(JSON.stringify(messages.message));\n dispatch(close());\n }\n }, [messages.message]);\n\n return
;\n}\n\nexport default Messages;\n","import React, { useState } from \"react\";\nimport \"./view-base.scss\";\nimport Header from \"../Header\";\nimport { Hidden, makeStyles, useMediaQuery } from \"@material-ui/core\";\nimport { DRAWER_WIDTH, TRANSITION_DURATION } from \"../../constants/style\";\nimport MobileDrawer from \"../Drawer/mobile-drawer\";\nimport Drawer from \"../Drawer\";\nimport Messages from \"../Messages\";\n\ninterface IViewBaseProps {\n children: React.ReactNode;\n}\n\nconst useStyles = makeStyles(theme => ({\n drawer: {\n [theme.breakpoints.up(\"md\")]: {\n width: DRAWER_WIDTH,\n flexShrink: 0,\n },\n },\n content: {\n padding: theme.spacing(1),\n transition: theme.transitions.create(\"margin\", {\n easing: theme.transitions.easing.sharp,\n duration: TRANSITION_DURATION,\n }),\n height: \"100%\",\n overflow: \"auto\",\n marginLeft: DRAWER_WIDTH,\n },\n contentShift: {\n transition: theme.transitions.create(\"margin\", {\n easing: theme.transitions.easing.easeOut,\n duration: TRANSITION_DURATION,\n }),\n marginLeft: 0,\n },\n}));\n\nfunction ViewBase({ children }: IViewBaseProps) {\n const classes = useStyles();\n\n const [mobileOpen, setMobileOpen] = useState(false);\n\n const isSmallerScreen = useMediaQuery(\"(max-width: 960px)\");\n const isSmallScreen = useMediaQuery(\"(max-width: 600px)\");\n\n const handleDrawerToggle = () => {\n setMobileOpen(!mobileOpen);\n };\n\n return (\n
\n \n
\n
\n \n \n \n \n \n \n
\n
{children}
\n
\n );\n}\n\nexport default ViewBase;\n","import Box from \"@material-ui/core/Box\";\n\nfunction TabPanel(props: any) {\n const { children, value, index, ...other } = props;\n\n return (\n \n );\n}\n\nexport default TabPanel;\n","import { Box } from \"@material-ui/core\";\nimport { Bond } from \"../helpers/bond/bond\";\n\ninterface IBondLogoProps {\n bond: Bond;\n}\n\nfunction BondLogo({ bond }: IBondLogoProps) {\n let style = { height: \"32px\", width: \"32px\" };\n\n if (bond.isLP) {\n style = { height: \"30px\", width: \"62px\" };\n }\n\n return (\n \n \n \n );\n}\n\nexport default BondLogo;\n","import { Box, Modal, Paper, SvgIcon, IconButton, FormControl, OutlinedInput, InputLabel, InputAdornment } from \"@material-ui/core\";\nimport { useEffect, useState } from \"react\";\nimport { ReactComponent as XIcon } from \"../../assets/icons/x.svg\";\nimport \"./bondSettings.scss\";\n\ninterface IAdvancedSettingsProps {\n open: boolean;\n handleClose: () => void;\n slippage: number;\n onSlippageChange: (e: any) => void;\n}\n\nfunction AdvancedSettings({ open, handleClose, slippage, onSlippageChange }: IAdvancedSettingsProps) {\n const [value, setValue] = useState(slippage);\n\n useEffect(() => {\n let timeount: any = null;\n clearTimeout(timeount);\n\n timeount = setTimeout(() => onSlippageChange(value), 1000);\n return () => clearTimeout(timeount);\n }, [value]);\n\n return (\n \n \n
\n \n \n \n
\n\n

Settings

\n\n \n \n

Slippage

\n
\n \n setValue(e.target.value)}\n fullWidth\n type=\"number\"\n className=\"bond-input\"\n endAdornment={\n \n

%

\n
\n }\n />\n
\n

Transaction may revert if price changes by more than slippage %

\n
\n
\n
\n
\n
\n );\n}\n\nexport default AdvancedSettings;\n","var _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || 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); }\n\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; }\n\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; }\n\nimport * as React from \"react\";\n\nfunction SvgSettings(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"20pt\",\n height: \"20pt\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", {\n id: \"surface1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"none\",\n strokeWidth: 1,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n stroke: \"rgb(100%,100%,100%)\",\n strokeOpacity: 1,\n strokeMiterlimit: 4\n },\n d: \"M 19.303125 13.528125 L 19.265625 13.81875 L 19.495313 13.996875 L 21.595312 15.6 L 21.6 15.6 C 21.604688 15.6 21.609375 15.604687 21.614062 15.614062 C 21.61875 15.61875 21.61875 15.628125 21.623437 15.632812 C 21.623437 15.6375 21.623437 15.642187 21.623437 15.642187 L 21.61875 15.646875 L 19.476562 19.335938 C 19.467187 19.340625 19.4625 19.340625 19.453125 19.340625 C 19.448438 19.340625 19.44375 19.340625 19.439062 19.335938 L 16.959375 18.196875 L 16.673437 18.065625 L 16.434375 18.2625 C 15.932812 18.670312 15.328125 18.998437 14.653125 19.289062 L 14.38125 19.40625 L 14.353125 19.70625 L 14.104687 22.448438 C 14.1 22.448438 14.1 22.448438 14.1 22.448438 L 9.810937 22.448438 C 9.810937 22.448438 9.80625 22.44375 9.801562 22.434375 C 9.801562 22.429688 9.796875 22.425 9.796875 22.415625 L 9.548438 19.70625 L 9.520312 19.40625 L 9.248437 19.289062 C 8.582812 19.007812 8.020312 18.675 7.448437 18.248437 L 7.209375 18.070312 L 6.942188 18.196875 L 4.439062 19.345312 L 4.434375 19.35 C 4.429688 19.35 4.429688 19.345312 4.429688 19.345312 L 2.282812 15.646875 L 2.278125 15.642187 C 2.278125 15.642187 2.278125 15.6375 2.278125 15.632812 C 2.278125 15.628125 2.282812 15.61875 2.2875 15.614062 C 2.292187 15.609375 2.292187 15.604687 2.296875 15.604687 L 4.63125 14.015625 L 4.889062 13.8375 L 4.846875 13.528125 C 4.795312 13.176562 4.748437 12.857812 4.748437 12.501563 C 4.748437 12.140625 4.795312 11.821875 4.846875 11.470313 L 4.889062 11.170312 L 4.640625 10.992188 L 2.4 9.398438 C 2.395312 9.398438 2.390625 9.39375 2.385937 9.384375 C 2.38125 9.379687 2.38125 9.370312 2.376562 9.365625 C 2.376562 9.360938 2.376562 9.360938 2.376562 9.360938 C 2.376562 9.360938 2.376562 9.35625 2.376562 9.35625 L 2.38125 9.351562 L 4.523438 5.6625 C 4.532812 5.6625 4.5375 5.6625 4.546875 5.6625 C 4.551563 5.6625 4.55625 5.6625 4.560937 5.6625 L 7.040625 6.80625 L 7.326562 6.932812 L 7.565625 6.735937 C 8.067187 6.328125 8.671875 6 9.346875 5.709375 L 9.61875 5.592187 L 9.646875 5.296875 L 9.895312 2.55 C 9.9 2.55 9.9 2.55 9.9 2.55 L 14.189063 2.55 C 14.189063 2.554688 14.19375 2.559375 14.198437 2.564062 C 14.198437 2.56875 14.203125 2.578125 14.203125 2.582812 L 14.451562 5.296875 L 14.479687 5.592187 L 14.751562 5.709375 C 15.417187 5.995312 15.979687 6.323437 16.551562 6.75 L 16.790625 6.928125 L 17.057813 6.80625 L 19.560937 5.653125 L 19.565625 5.648438 C 19.570312 5.653125 19.570312 5.653125 19.570312 5.657812 L 21.76875 9.35625 L 21.773438 9.35625 C 21.773438 9.35625 21.773438 9.360938 21.773438 9.360938 C 21.773438 9.360938 21.773438 9.360938 21.773438 9.365625 C 21.76875 9.370312 21.76875 9.379687 21.764062 9.384375 C 21.759375 9.39375 21.754687 9.398438 21.75 9.398438 L 19.509375 10.992188 L 19.260938 11.170312 L 19.303125 11.470313 C 19.354688 11.821875 19.401563 12.140625 19.401563 12.501563 C 19.401563 12.857812 19.354688 13.176562 19.303125 13.528125 Z M 6.501562 12.501563 C 6.501562 15.525 8.971875 18 12 18 C 15.028125 18 17.498437 15.525 17.498437 12.501563 C 17.498437 9.473437 15.028125 6.998437 12 6.998437 C 8.971875 6.998437 6.501562 9.473437 6.501562 12.501563 Z M 6.501562 12.501563 \",\n transform: \"matrix(0.833333,0,0,0.833333,0,0)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSettings);\nexport default __webpack_public_path__ + \"static/media/settings.5b041d4d.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from \"react\";\nimport { NavLink, useHistory } from \"react-router-dom\";\nimport BondLogo from \"../../components/BondLogo\";\nimport AdvancedSettings from \"./AdvancedSettings\";\nimport { IconButton, SvgIcon, Link } from \"@material-ui/core\";\nimport { ReactComponent as SettingsIcon } from \"../../assets/icons/settings.svg\";\nimport { ReactComponent as XIcon } from \"../../assets/icons/x.svg\";\nimport { useEscape } from \"../../hooks\";\nimport { IAllBondData } from \"../../hooks/bonds\";\n\ninterface IBondHeaderProps {\n bond: IAllBondData;\n slippage: number;\n onSlippageChange: (e: any) => void;\n}\n\nfunction BondHeader({ bond, slippage, onSlippageChange }: IBondHeaderProps) {\n const [open, setOpen] = useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n let history = useHistory();\n\n useEscape(() => {\n if (open) handleClose;\n else history.push(\"/mints\");\n });\n\n return (\n
\n \n \n \n\n
\n \n
\n

{bond.displayName}

\n
\n
\n\n
\n \n \n \n \n
\n
\n );\n}\n\nexport default BondHeader;\n","import React, { useEffect } from \"react\";\n\nexport const useEscape = (onEscape: () => void) => {\n useEffect(() => {\n const handleEsc = (event: { keyCode: number }) => {\n if (event.keyCode === 27) onEscape();\n };\n window.addEventListener(\"keydown\", handleEsc);\n\n return () => {\n window.removeEventListener(\"keydown\", handleEsc);\n };\n }, []);\n};\n","import { useSelector, useDispatch } from \"react-redux\";\nimport { Box, Slide } from \"@material-ui/core\";\nimport { IBondDetails, redeemBond } from \"../../store/slices/bond-slice\";\nimport { useWeb3Context } from \"../../hooks\";\nimport { trim, prettifySeconds, prettyVestingPeriod } from \"../../helpers\";\nimport { IPendingTxn, isPendingTxn, txnButtonText } from \"../../store/slices/pending-txns-slice\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\nimport { IAllBondData } from \"../../hooks/bonds\";\nimport { IUserBondDetails } from \"../../store/slices/account-slice\";\nimport { messages } from \"../../constants/messages\";\nimport { warning } from \"../../store/slices/messages-slice\";\n\ninterface IBondRedeem {\n bond: IAllBondData;\n}\n\nfunction BondRedeem({ bond }: IBondRedeem) {\n const dispatch = useDispatch();\n const { provider, address, chainID, checkWrongNetwork } = useWeb3Context();\n\n const isBondLoading = useSelector(state => state.bonding.loading ?? true);\n\n const currentBlockTime = useSelector(state => {\n return state.app.currentBlockTime;\n });\n\n const pendingTransactions = useSelector(state => {\n return state.pendingTransactions;\n });\n\n const bondingState = useSelector(state => {\n return state.bonding && state.bonding[bond.name];\n });\n\n const bondDetails = useSelector(state => {\n return state.account.bonds && state.account.bonds[bond.name];\n });\n\n async function onRedeem(autostake: boolean) {\n if (await checkWrongNetwork()) return;\n\n if (bond.interestDue === 0 || bond.pendingPayout === 0) {\n dispatch(warning({ text: messages.nothing_to_claim }));\n return;\n }\n\n await dispatch(redeemBond({ address, bond, networkID: chainID, provider, autostake }));\n }\n\n const vestingTime = () => {\n if (!bondDetails) {\n return \"\";\n }\n return prettyVestingPeriod(currentBlockTime, bondDetails.bondMaturationBlock);\n };\n\n const vestingPeriod = () => {\n return prettifySeconds(bondingState.vestingTerm, \"day\");\n };\n\n return (\n \n \n {\n if (isPendingTxn(pendingTransactions, \"redeem_bond_\" + bond.name)) return;\n onRedeem(false);\n }}\n >\n

{txnButtonText(pendingTransactions, \"redeem_bond_\" + bond.name, \"Claim\")}

\n
\n {\n if (isPendingTxn(pendingTransactions, \"redeem_bond_\" + bond.name + \"_autostake\")) return;\n onRedeem(true);\n }}\n >\n

{txnButtonText(pendingTransactions, \"redeem_bond_\" + bond.name + \"_autostake\", \"Claim and Autostake\")}

\n
\n \n\n \n \n
\n

Pending Rewards

\n

{isBondLoading ? : `${trim(bond.interestDue, 4)} DB`}

\n
\n
\n

Claimable Rewards

\n

{isBondLoading ? : `${trim(bond.pendingPayout, 4)} DB`}

\n
\n
\n

Time until fully vested

\n

{isBondLoading ? : vestingTime()}

\n
\n\n
\n

ROI

\n

{isBondLoading ? : `${trim(bond.bondDiscount * 100, 2)}%`}

\n
\n\n
\n

Vesting Term

\n

{isBondLoading ? : vestingPeriod()}

\n
\n
\n
\n \n );\n}\n\nexport default BondRedeem;\n","import { prettifySeconds } from \"./prettify-seconds\";\nimport { secondsUntilBlock } from \"./seconds-until-block\";\n\nexport const prettyVestingPeriod = (currentBlock: number, vestingBlock: number) => {\n if (vestingBlock === 0) {\n return \"\";\n }\n\n const seconds = secondsUntilBlock(currentBlock, vestingBlock);\n if (seconds < 0) {\n return \"Fully Vested\";\n }\n return prettifySeconds(seconds);\n};\n","import { useState, useEffect, useCallback } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Box, OutlinedInput, InputAdornment, Slide, FormControl } from \"@material-ui/core\";\nimport { shorten, trim, prettifySeconds } from \"../../helpers\";\nimport { changeApproval, bondAsset, calcBondDetails } from \"../../store/slices/bond-slice\";\nimport { useWeb3Context } from \"../../hooks\";\nimport { IPendingTxn, isPendingTxn, txnButtonText } from \"../../store/slices/pending-txns-slice\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\nimport { IAllBondData } from \"../../hooks/bonds\";\nimport useDebounce from \"../../hooks/debounce\";\nimport { messages } from \"../../constants/messages\";\nimport { warning } from \"../../store/slices/messages-slice\";\n\ninterface IBondPurchaseProps {\n bond: IAllBondData;\n slippage: number;\n}\n\nfunction BondPurchase({ bond, slippage }: IBondPurchaseProps) {\n const dispatch = useDispatch();\n const { provider, address, chainID, checkWrongNetwork } = useWeb3Context();\n\n const [quantity, setQuantity] = useState(\"\");\n const [useAvax, setUseAvax] = useState(false);\n\n const isBondLoading = useSelector(state => state.bonding.loading ?? true);\n\n const pendingTransactions = useSelector(state => {\n return state.pendingTransactions;\n });\n\n const vestingPeriod = () => {\n return prettifySeconds(bond.vestingTerm, \"day\");\n };\n\n async function onBond() {\n if (await checkWrongNetwork()) return;\n\n if (quantity === \"\") {\n dispatch(warning({ text: messages.before_minting }));\n //@ts-ignore\n } else if (isNaN(quantity)) {\n dispatch(warning({ text: messages.before_minting }));\n } else if (bond.interestDue > 0 || bond.pendingPayout > 0) {\n const shouldProceed = window.confirm(messages.existing_mint);\n if (shouldProceed) {\n const trimBalance = trim(Number(quantity), 10);\n\n await dispatch(\n bondAsset({\n value: trimBalance,\n slippage,\n bond,\n networkID: chainID,\n provider,\n address,\n useAvax,\n }),\n );\n clearInput();\n }\n } else {\n const trimBalance = trim(Number(quantity), 10);\n await dispatch(\n //@ts-ignore\n bondAsset({\n value: trimBalance,\n slippage,\n bond,\n networkID: chainID,\n provider,\n address,\n useAvax,\n }),\n );\n clearInput();\n }\n }\n\n const clearInput = () => {\n setQuantity(\"\");\n };\n\n const hasAllowance = useCallback(() => {\n return bond.allowance > 0;\n }, [bond.allowance]);\n\n const setMax = () => {\n let amount: any = Math.min(bond.maxBondPriceToken * 0.9999, useAvax ? bond.avaxBalance * 0.99 : bond.balance);\n\n if (amount) {\n amount = trim(amount);\n }\n\n setQuantity((amount || \"\").toString());\n };\n\n const bondDetailsDebounce = useDebounce(quantity, 1000);\n\n useEffect(() => {\n dispatch(calcBondDetails({ bond, value: quantity, provider, networkID: chainID }));\n }, [bondDetailsDebounce]);\n\n const onSeekApproval = async () => {\n if (await checkWrongNetwork()) return;\n\n dispatch(changeApproval({ address, bond, provider, networkID: chainID }));\n };\n\n const displayUnits = useAvax ? \"AVAX\" : bond.displayUnits;\n\n return (\n \n \n {bond.name === \"wavax\" && (\n \n
\n setUseAvax(!useAvax)} />\n

Use AVAX

\n
\n
\n )}\n \n setQuantity(e.target.value)}\n labelWidth={0}\n className=\"bond-input\"\n endAdornment={\n \n
\n

Max

\n
\n
\n }\n />\n
\n {hasAllowance() || useAvax ? (\n {\n if (isPendingTxn(pendingTransactions, \"bond_\" + bond.name)) return;\n await onBond();\n }}\n >\n

{txnButtonText(pendingTransactions, \"bond_\" + bond.name, \"Bond\")}

\n
\n ) : (\n {\n if (isPendingTxn(pendingTransactions, \"approve_\" + bond.name)) return;\n await onSeekApproval();\n }}\n >\n

{txnButtonText(pendingTransactions, \"approve_\" + bond.name, \"Approve\")}

\n
\n )}\n\n {!hasAllowance() && !useAvax && (\n
\n

\n Note: The \"Approve\" transaction is only needed when bonding for the first time; subsequent bonding only requires you to perform the \"Bond\" transaction.\n

\n
\n )}\n \n\n \n \n
\n

Your Balance

\n

\n {isBondLoading ? (\n \n ) : (\n <>\n {trim(useAvax ? bond.avaxBalance : bond.balance, 4)} {displayUnits}\n \n )}\n

\n
\n\n
\n

You Will Get

\n

{isBondLoading ? : `${trim(bond.bondQuote, 4)} DB`}

\n
\n\n
\n

Max You Can Buy

\n

{isBondLoading ? : `${trim(bond.maxBondPrice, 4)} DB`}

\n
\n\n
\n

ROI

\n

{isBondLoading ? : `${trim(bond.bondDiscount * 100, 2)}%`}

\n
\n\n
\n

Vesting Term

\n

{isBondLoading ? : vestingPeriod()}

\n
\n\n
\n

Minimum purchase

\n

0.01 DB

\n
\n
\n
\n \n );\n}\n\nexport default BondPurchase;\n","import { useEffect, useState } from \"react\";\n\nexport default function useDebounce(value: any, delay: number) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value]);\n\n return debouncedValue;\n}\n","import { useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { trim } from \"../../helpers\";\nimport { Grid, Backdrop, Box, Fade } from \"@material-ui/core\";\nimport TabPanel from \"../../components/TabPanel\";\nimport BondHeader from \"./BondHeader\";\nimport BondRedeem from \"./BondRedeem\";\nimport BondPurchase from \"./BondPurchase\";\nimport \"./bond.scss\";\nimport { useWeb3Context } from \"../../hooks\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\nimport { IAllBondData } from \"../../hooks/bonds\";\nimport classnames from \"classnames\";\n\ninterface IBondProps {\n bond: IAllBondData;\n}\n\nfunction Bond({ bond }: IBondProps) {\n const { address } = useWeb3Context();\n\n const [slippage, setSlippage] = useState(0.5);\n\n const [view, setView] = useState(0);\n\n const isBondLoading = useSelector(state => state.bonding.loading ?? true);\n\n const onSlippageChange = (value: any) => {\n return setSlippage(value);\n };\n\n const changeView = (newView: number) => () => {\n setView(newView);\n };\n\n return (\n \n \n \n \n
\n \n {/* @ts-ignore */}\n \n
\n

Bond Price

\n

\n {isBondLoading ? : bond.isLP || bond.name === \"wavax\" ? `$${trim(bond.bondPrice, 2)}` : `${trim(bond.bondPrice, 2)} MIM`}\n

\n
\n
\n

DB Price

\n

{isBondLoading ? : `$${trim(bond.marketPrice, 2)}`}

\n
\n
\n\n
\n
\n

Bond

\n
\n
\n

Redeem

\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n
\n
\n
\n );\n}\n\nexport default Bond;\n","import { priceUnits, trim } from \"../../helpers\";\nimport BondLogo from \"../../components/BondLogo\";\nimport { Paper, TableRow, TableCell, Slide, Link } from \"@material-ui/core\";\nimport { NavLink } from \"react-router-dom\";\nimport \"./choosebond.scss\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { IAllBondData } from \"../../hooks/bonds\";\n\ninterface IBondProps {\n bond: IAllBondData;\n}\n\nexport function BondDataCard({ bond }: IBondProps) {\n const isBondLoading = !bond.bondPrice ?? true;\n\n return (\n \n \n
\n \n
\n

{bond.displayName}

\n {bond.isLP && (\n
\n \n

View Contract

\n \n
\n )}\n
\n
\n\n
\n

Price

\n

\n <>\n {priceUnits(bond)} {isBondLoading ? : trim(bond.bondPrice, 2)}\n \n

\n
\n\n
\n

ROI

\n

{isBondLoading ? : `${trim(bond.bondDiscount * 100, 2)}%`}

\n
\n\n
\n

Purchased

\n

\n {isBondLoading ? (\n \n ) : (\n new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(bond.purchased)\n )}\n

\n
\n \n
\n

Bond {bond.displayName}

\n
\n \n
\n
\n );\n}\n\nexport function BondTableData({ bond }: IBondProps) {\n const isBondLoading = !bond.bondPrice ?? true;\n\n return (\n \n \n \n
\n

{bond.displayName}

\n {bond.isLP && (\n \n

View Contract

\n \n )}\n
\n
\n \n

\n <>\n $ {isBondLoading ? : trim(bond.bondPrice, 2)}\n {/* {priceUnits(bond)} */}\n \n

\n
\n \n

{isBondLoading ? : `${trim(bond.bondDiscount * 100, 2)}%`}

\n
\n \n

\n {isBondLoading ? (\n \n ) : (\n new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(bond.purchased)\n )}\n

\n
\n \n \n
\n

Bond

\n
\n \n
\n
\n );\n}\n","import { useSelector } from \"react-redux\";\nimport { Paper, SvgIcon, Grid, Box, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Zoom } from \"@material-ui/core\";\nimport { BondTableData, BondDataCard } from \"./BondRow\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\nimport { trim } from \"../../helpers\";\nimport useBonds from \"../../hooks/bonds\";\nimport \"./choosebond.scss\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\nimport { ReactComponent as Diamond } from \"../../assets/icons/diamond.svg\";\n\nfunction ChooseBond() {\n const { bonds } = useBonds();\n const isSmallScreen = useMediaQuery(\"(max-width: 733px)\"); // change to breakpoint query\n\n const isAppLoading = useSelector(state => state.app.loading);\n const marketPrice = useSelector(state => {\n return state.app.marketPrice;\n });\n\n const treasuryBalance = useSelector(state => {\n return state.app.treasuryBalance;\n });\n\n return (\n
\n \n
\n
\n

\n {\" \"}\n Bond (,)\n

\n
\n\n \n \n \n

Treasury Balance

\n

\n {isAppLoading ? (\n \n ) : (\n new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(treasuryBalance)\n )}\n

\n
\n
\n\n \n \n

DB Price

\n

{isAppLoading ? : `$${trim(marketPrice, 2)}`}

\n
\n
\n
\n\n {!isSmallScreen && (\n \n \n \n \n \n \n

Bond

\n
\n \n

Price

\n
\n \n

ROI

\n
\n \n

Purchased

\n
\n \n
\n
\n \n {bonds.map(bond => (\n \n ))}\n \n
\n
\n
\n )}\n
\n
\n\n {isSmallScreen && (\n
\n \n {bonds.map(bond => (\n \n \n \n ))}\n \n
\n )}\n
\n );\n}\n\nexport default ChooseBond;\n","import { useSelector } from \"react-redux\";\nimport { secondsUntilBlock, prettifySeconds } from \"../../helpers\";\nimport { Box } from \"@material-ui/core\";\nimport \"./rebasetimer.scss\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { useMemo } from \"react\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\n\nfunction RebaseTimer() {\n const currentBlockTime = useSelector(state => {\n return state.app.currentBlockTime;\n });\n\n const nextRebase = useSelector(state => {\n return state.app.nextRebase;\n });\n\n const timeUntilRebase = useMemo(() => {\n if (currentBlockTime && nextRebase) {\n const seconds = secondsUntilBlock(currentBlockTime, nextRebase);\n return prettifySeconds(seconds);\n }\n }, [currentBlockTime, nextRebase]);\n\n return (\n \n

\n {currentBlockTime ? (\n timeUntilRebase ? (\n <>\n {timeUntilRebase} to Next Rebase\n \n ) : (\n Rebasing\n )\n ) : (\n \n )}\n

\n
\n );\n}\n\nexport default RebaseTimer;\n","import { ethers } from \"ethers\";\nimport { getAddresses } from \"../../constants\";\nimport { StakingHelperContract, DbTokenContract, sDbTokenContract, StakingContract } from \"../../abi\";\nimport { clearPendingTxn, fetchPendingTxns, getStakingTypeText } from \"./pending-txns-slice\";\nimport { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { fetchAccountSuccess, getBalances } from \"./account-slice\";\nimport { JsonRpcProvider, StaticJsonRpcProvider } from \"@ethersproject/providers\";\nimport { Networks } from \"../../constants/blockchain\";\nimport { warning, success, info, error } from \"../../store/slices/messages-slice\";\nimport { messages } from \"../../constants/messages\";\nimport { getGasPrice } from \"../../helpers/get-gas-price\";\nimport { metamaskErrorWrap } from \"../../helpers/metamask-error-wrap\";\nimport { sleep } from \"../../helpers\";\n\ninterface IChangeApproval {\n token: string;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n address: string;\n networkID: Networks;\n}\n\nexport const changeApproval = createAsyncThunk(\"stake/changeApproval\", async ({ token, provider, address, networkID }: IChangeApproval, { dispatch }) => {\n if (!provider) {\n dispatch(warning({ text: messages.please_connect_wallet }));\n return;\n }\n const addresses = getAddresses(networkID);\n\n const signer = provider.getSigner();\n const dbContract = new ethers.Contract(addresses.DB_ADDRESS, DbTokenContract, signer);\n const sdbContract = new ethers.Contract(addresses.SDB_ADDRESS, sDbTokenContract, signer);\n\n let approveTx;\n try {\n const gasPrice = await getGasPrice(provider);\n\n if (token === \"db\") {\n approveTx = await dbContract.approve(addresses.STAKING_HELPER_ADDRESS, ethers.constants.MaxUint256, { gasPrice });\n }\n\n if (token === \"sdb\") {\n approveTx = await sdbContract.approve(addresses.STAKING_ADDRESS, ethers.constants.MaxUint256, { gasPrice });\n }\n\n const text = \"Approve \" + (token === \"db\" ? \"Staking\" : \"Unstaking\");\n const pendingTxnType = token === \"db\" ? \"approve_staking\" : \"approve_unstaking\";\n\n dispatch(fetchPendingTxns({ txnHash: approveTx.hash, text, type: pendingTxnType }));\n await approveTx.wait();\n dispatch(success({ text: messages.tx_successfully_send }));\n } catch (err: any) {\n return metamaskErrorWrap(err, dispatch);\n } finally {\n if (approveTx) {\n dispatch(clearPendingTxn(approveTx.hash));\n }\n }\n\n await sleep(2);\n\n const stakeAllowance = await dbContract.allowance(address, addresses.STAKING_HELPER_ADDRESS);\n const unstakeAllowance = await sdbContract.allowance(address, addresses.STAKING_ADDRESS);\n\n return dispatch(\n fetchAccountSuccess({\n staking: {\n dbStake: Number(stakeAllowance),\n sdbUnstake: Number(unstakeAllowance),\n },\n }),\n );\n});\n\ninterface IChangeStake {\n action: string;\n value: string;\n provider: StaticJsonRpcProvider | JsonRpcProvider;\n address: string;\n networkID: Networks;\n}\n\nexport const changeStake = createAsyncThunk(\"stake/changeStake\", async ({ action, value, provider, address, networkID }: IChangeStake, { dispatch }) => {\n if (!provider) {\n dispatch(warning({ text: messages.please_connect_wallet }));\n return;\n }\n const addresses = getAddresses(networkID);\n const signer = provider.getSigner();\n const staking = new ethers.Contract(addresses.STAKING_ADDRESS, StakingContract, signer);\n const stakingHelper = new ethers.Contract(addresses.STAKING_HELPER_ADDRESS, StakingHelperContract, signer);\n\n let stakeTx;\n\n try {\n const gasPrice = await getGasPrice(provider);\n if (action == \"Claim\") {\n stakeTx = await staking.claim(signer.getAddress(), { gasPrice });\n } else if (action === \"forfeit\") {\n stakeTx = await staking.forfeit({ gasPrice });\n } else if (action === \"stake\") {\n stakeTx = await stakingHelper.stake(ethers.utils.parseUnits(value, \"gwei\"), address, { gasPrice });\n } else {\n stakeTx = await staking.unstake(ethers.utils.parseUnits(value, \"gwei\"), true, { gasPrice });\n }\n const pendingTxnType = action === \"stake\" ? \"staking\" : action === \"forfeit\" ? \"forfeit\" : action === \"Claim\" ? \"Claim\" : \"unstaking\";\n dispatch(fetchPendingTxns({ txnHash: stakeTx.hash, text: getStakingTypeText(action), type: pendingTxnType }));\n await stakeTx.wait();\n await sleep(2);\n dispatch(success({ text: messages.tx_successfully_send }));\n } catch (err: any) {\n return metamaskErrorWrap(err, dispatch);\n } finally {\n if (stakeTx) {\n dispatch(clearPendingTxn(stakeTx.hash));\n }\n }\n dispatch(info({ text: messages.your_balance_update_soon }));\n await sleep(10);\n await dispatch(getBalances({ address, networkID, provider }));\n dispatch(info({ text: messages.your_balance_updated }));\n return;\n});\n","import { useState, useCallback, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Grid, InputAdornment, OutlinedInput, Zoom, SvgIcon, Button, Modal, Typography, Box } from \"@material-ui/core\";\nimport RebaseTimer from \"../../components/RebaseTimer\";\nimport { trim } from \"../../helpers\";\nimport { changeStake, changeApproval } from \"../../store/slices/stake-thunk\";\nimport \"./stake.scss\";\nimport { useWeb3Context } from \"../../hooks\";\nimport { IPendingTxn, isPendingTxn, txnButtonText } from \"../../store/slices/pending-txns-slice\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\nimport { messages } from \"../../constants/messages\";\nimport classnames from \"classnames\";\nimport { warning } from \"../../store/slices/messages-slice\";\nimport { ReactComponent as Diamond } from \"../../assets/icons/diamond.svg\";\nimport { isWhiteSpaceLike } from \"typescript\";\nimport { loadAppDetails } from \"../../store/slices/app-slice\";\n\nfunction Stake() {\n const dispatch = useDispatch();\n const { provider, address, connect, chainID, checkWrongNetwork } = useWeb3Context();\n\n const [view, setView] = useState(0);\n const [quantity, setQuantity] = useState(\"\");\n\n const isAppLoading = useSelector(state => state.app.loading);\n const currentIndex = useSelector(state => {\n return state.app.currentIndex;\n });\n const fiveDayRate = useSelector(state => {\n return state.app.fiveDayRate;\n });\n const dbBalance = useSelector(state => {\n return state.account.balances && state.account.balances.db;\n });\n const sdbBalance = useSelector(state => {\n return state.account.balances && state.account.balances.sdb;\n });\n const stakeAllowance = useSelector(state => {\n return state.account.staking && state.account.staking.db;\n });\n const unstakeAllowance = useSelector(state => {\n return state.account.staking && state.account.staking.sdb;\n });\n const stakingRebase = useSelector(state => {\n return state.app.stakingRebase;\n });\n const marketprice = useSelector(state => {\n return state.app.marketPrice;\n });\n const stakingAPY = useSelector(state => {\n return state.app.stakingAPY;\n });\n // const warmupinfo = useSelector(state => {\n // return state.app.warmup;\n // });\n\n // const warmupbalance = useSelector(state => {\n // return state.app.warmupbalanceof;\n // });\n const stakingTVL = useSelector(state => {\n return state.app.stakingTVL;\n });\n\n const pendingTransactions = useSelector(state => {\n return state.pendingTransactions;\n });\n\n const setMax = () => {\n if (view === 0) {\n setQuantity(dbBalance);\n } else {\n setQuantity(sdbBalance);\n }\n };\n\n const onSeekApproval = async (token: string) => {\n if (await checkWrongNetwork()) return;\n\n await dispatch(changeApproval({ address, token, provider, networkID: chainID }));\n };\n\n const onChangeStake = async (action: string) => {\n if (await checkWrongNetwork()) return;\n if (quantity === \"\" || parseFloat(quantity) === 0) {\n dispatch(warning({ text: action === \"stake\" ? messages.before_stake : messages.before_unstake }));\n } else {\n await dispatch(changeStake({ address, action, value: String(quantity), provider, networkID: chainID }));\n await dispatch(loadAppDetails({ networkID: chainID, provider: provider }));\n setQuantity(\"\");\n }\n };\n\n // const onExitWarmUp = async (action: string) => {\n // if (await checkWrongNetwork()) return;\n // handleClose();\n // await dispatch(changeStake({ address, action, value: String(quantity), provider, networkID: chainID }));\n // // await dispatch(loadAppDetails({ networkID: chainID, provider: provider }));\n // };\n\n // const onClaimWarmUp = async (action: string) => {\n // if (await checkWrongNetwork()) return;\n // handleClose();\n // await dispatch(changeStake({ address, action, value: String(quantity), provider, networkID: chainID }));\n // await dispatch(loadAppDetails({ networkID: chainID, provider: provider }));\n // };\n const hasAllowance = useCallback(\n token => {\n if (token === \"db\") return stakeAllowance > 0;\n if (token === \"sdb\") return unstakeAllowance > 0;\n return 0;\n },\n [stakeAllowance],\n );\n\n const changeView = (newView: number) => () => {\n setView(newView);\n setQuantity(\"\");\n };\n const style = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: 500,\n bgcolor: \"black\",\n border: \"2px solid #0096FF\",\n boxShadow: 24,\n p: 4,\n };\n\n // const [open, setOpen] = useState(false);\n // const handleOpens = () => setOpen(true);\n // const handleClose = () => setOpen(false);\n\n const trimmedSdbBalance = trim(Number(sdbBalance), 6);\n // const warmupnumber = trim(Number(warmupinfo));\n const trimmedStakingAPY = trim(stakingAPY * 100, 1);\n const stakingRebasePercentage = trim(stakingRebase * 100, 4);\n const nextRewardValue = trim((Number(stakingRebasePercentage) / 100) * Number(trimmedSdbBalance), 6);\n\n return (\n
\n \n
\n \n \n
\n

\n DB Staking (\n ,)\n

\n \n
\n
\n\n \n
\n \n \n
\n

APY

\n

\n {stakingAPY ? (\n <>\n {trimmedStakingAPY.length > 3\n ? new Intl.NumberFormat().format(Math.round(Number(trimmedStakingAPY)))\n : Number.parseFloat(trimmedStakingAPY).toPrecision(10)}\n %\n \n ) : (\n \n )}\n

\n
\n
\n\n \n
\n

TVL

\n

\n {stakingTVL ? (\n new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(stakingTVL)\n ) : (\n \n )}\n

\n
\n
\n\n \n
\n

Current Index

\n

{currentIndex ? <>{trim(Number(currentIndex), 2)} DB : }

\n
\n
\n
\n
\n
\n\n
\n {!address && (\n
\n
\n

Connect Wallet

\n
\n

Connect your wallet to stake DB tokens!

\n
\n )}\n {address && (\n
\n
\n
\n
\n

Stake

\n
\n
\n

Unstake

\n
\n
\n\n
\n setQuantity(e.target.value)}\n labelWidth={0}\n endAdornment={\n \n
\n

Max

\n
\n
\n }\n />\n\n {view === 0 && (\n
\n {address && hasAllowance(\"db\") ? (\n {\n if (isPendingTxn(pendingTransactions, \"staking\")) return;\n onChangeStake(\"stake\");\n }}\n >\n

{txnButtonText(pendingTransactions, \"staking\", \"Stake DB\")}

\n
\n ) : (\n {\n if (isPendingTxn(pendingTransactions, \"approve_staking\")) return;\n onSeekApproval(\"db\");\n }}\n >\n

{txnButtonText(pendingTransactions, \"approve_staking\", \"Approve\")}

\n
\n )}\n
\n )}\n\n {view === 1 && (\n
\n {address && hasAllowance(\"sdb\") ? (\n {\n if (isPendingTxn(pendingTransactions, \"unstaking\")) return;\n onChangeStake(\"unstake\");\n }}\n >\n

{txnButtonText(pendingTransactions, \"unstaking\", \"Unstake DB\")}

\n
\n ) : (\n {\n if (isPendingTxn(pendingTransactions, \"approve_unstaking\")) return;\n onSeekApproval(\"sdb\");\n }}\n >\n

{txnButtonText(pendingTransactions, \"approve_unstaking\", \"Approve\")}

\n
\n )}\n
\n )}\n
\n\n
\n {address && ((!hasAllowance(\"db\") && view === 0) || (!hasAllowance(\"sdb\") && view === 1)) && (\n

\n Note: The \"Approve\" transaction is only needed when staking/unstaking for the first db; subsequent staking/unstaking only\n requires you to perform the \"Stake\" or \"Unstake\" transaction.\n

\n )}\n
\n
\n\n
\n
\n

Your Balance

\n

\n {isAppLoading ? (\n \n ) : (\n <>\n {trim(Number(dbBalance), 4)} DB(\n {new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(Number(dbBalance) * marketprice)}\n )\n \n )}\n

\n
\n {/* {isAppLoading ? (\n \n ) : (\n warmupbalance > 0 && (\n
\n
\n

Your Warm Up Balance

\n

\n {isAppLoading ? (\n \n ) : (\n <>\n {warmupbalance} DB(\n {new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(warmupbalance * marketprice)}\n )\n \n )}\n

\n
\n {Number(warmupnumber) > 0 ? (\n
\n
\n

Pending Warm Up Till Release

\n

\n {isAppLoading ? : <>{warmupnumber} rebase(s) left till claimable}\n

\n
\n
\n

\n

\n {isAppLoading ? (\n \n ) : (\n \n EXIT WARM UP\n \n )}\n

\n
\n
\n ) : (\n
\n
\n

\n

\n {\n if (isPendingTxn(pendingTransactions, \"Claim\")) return;\n onClaimWarmUp(\"Claim\");\n }}\n >\n Claim\n \n

\n
\n
\n )}\n
\n )\n )} */}\n {/* \n \n \n Are you srue you want to exit the Warm-Up?\n \n \n Exiting Warm-Up will return your DB balance to your account, but will not make you eligible for rebases on the current balance\n in warm-up.\n \n
\n \n Cancel\n \n {\n if (isPendingTxn(pendingTransactions, \"forfeit\")) return;\n onExitWarmUp(\"forfeit\");\n }}\n >\n Confirm\n \n
\n
\n
*/}\n
\n

Your Staked Balance

\n

\n {isAppLoading ? (\n \n ) : (\n <>\n {trimmedSdbBalance} sDB(\n {new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(Number(trimmedSdbBalance) * marketprice)}\n )\n \n )}\n

\n
\n\n
\n

Next Reward Amount

\n

\n {isAppLoading ? (\n \n ) : (\n <>\n {nextRewardValue} sDB(\n {new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(Number(nextRewardValue) * marketprice)}\n )\n \n )}\n

\n
\n\n
\n

Next Reward Yield

\n

{isAppLoading ? : <>{stakingRebasePercentage}%}

\n
\n\n
\n

ROI (5-Day Rate)

\n

{isAppLoading ? : <>{trim(Number(fiveDayRate) * 100, 4)}%}

\n
\n {/*
\n

\n Note: There is a 2 epoch warm-up staking period, where users must be staked for more than 2 epoch/rebase before claiming any rebase\n rewards. Users will accumulate rewards while in the warm-up period but will not be able to claim them for 2 epochs. When 2 epochs\n has elapsed your staked balance can be claimed from the warm up contract and you will automatically receive the rebase rewards\n thereafter.\n

\n
*/}\n
\n \n )}\n \n \n \n \n \n );\n}\n\nexport default Stake;\n","export default __webpack_public_path__ + \"static/media/centerpng.32756df9.png\";","export default __webpack_public_path__ + \"static/media/footer-diamond.06045901.png\";","import { useSelector } from \"react-redux\";\nimport { useCallback, useState } from \"react\";\nimport { Grid, Zoom } from \"@material-ui/core\";\nimport { trim } from \"../../helpers\";\nimport \"./dashboard.scss\";\nimport { Skeleton } from \"@material-ui/lab\";\nimport { Link } from \"@material-ui/core\";\nimport { NavLink } from \"react-router-dom\";\n// import Social from \"./social\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\nimport Centerpng from \"../../assets/icons/centerpng.png\";\nimport Footerpng from \"../../assets/icons/footer-diamond.png\";\nimport { IAppSlice } from \"../../store/slices/app-slice\";\n\nfunction Dashboard() {\n const isAppLoading = useSelector(state => state.app.loading);\n const app = useSelector(state => state.app);\n\n const trimmedStakingAPY = trim(app.stakingAPY * 100, 1);\n\n const checkPage = useCallback((location: any, page: string): boolean => {\n const currentPath = location.pathname.replace(\"/\", \"\");\n if (currentPath.indexOf(\"dashboard\") >= 0 && page === \"dashboard\") {\n return true;\n }\n if (currentPath.indexOf(\"stake\") >= 0 && page === \"stake\") {\n return true;\n }\n if (currentPath.indexOf(\"mints\") >= 0 && page === \"mints\") {\n return true;\n }\n if (currentPath.indexOf(\"calculator\") >= 0 && page === \"calculator\") {\n return true;\n }\n return false;\n }, []);\n\n return (\n
\n
\n \n \n {/* \n \n */}\n \n \n \n \n \n \n
No Games, just true wealth!
\n
\n \n {/*

1, 003, 025, 500, 040, 007, 088, 009, 120, 002, 004, 033, 010, 100, 420, 006, 057, 090, 000% APY

*/}\n {/*

\n One Septen-decillion, Three Sexdecillion, Twenty-Five Quindecillion, Five Hundred Quattuordecillion, Forty Tredecillion, Seven Duodecillion,\n Eighty-Eight Undecillion, Nine Decillion, One Hundred Twenty Nonillion, Two Octillion, Four Septillion, Thirty-Three Sextillion, Ten\n Quintillion, One Hundred Quadrillion, Four Hundred Twenty Trillion, Six Billion, Fifty-Seven Million and Ninety Thousand Percent APY.\n

\n

\n Rebase every 8 hours. 1095 Rebases per year. This Massive APY was only possible by Super Enriching the Treasury with investment funds. This\n cosmic space time continuum APY cannot be maintained long term. Sustainable APY’s in the first week should be around 8 billion %. Long term\n stability will range from 3 billion and 700,000 APY.\n

*/}\n {/*

\n In order to sustain such gigantic APY’s we’ve added profits from our Diamond Mining technology. Our proprietary Diamond Mining technology\n mines Kadena and Ethereum simultaneously! Our mission is to reduce energy consumption worldwide. The Sun is the only energy source we should\n ever need. All Diamond Miners run on solar panels. We give all crypto miners an energy efficient solution which should prevent them from\n ordering more power hungry asic miners.\n

*/}\n

Next Generation Hedge Fund

\n

No VC's, No Pre-Sells, No Dilution

\n

$1,000,000 Giveaway

\n

Mission to Mars

\n
\n

Elite Team: 2 hedge fund business owners,

\n

a Bank of America VP and a SpaceX engineer

\n {/*

Missions:

\n
    \n
  • Providing extreme wealth and knowledge!
  • \n
  • Reducing energy consumption worldwide!
  • \n
  • Making humanity multiplanetary!
  • \n
  • \n Inviting 1 Diamond ARMY member on a trip to MARS with our friends at SpaceX. Booking (2022) We will bring the cargo of many messages\n from the whole Diamond Army! Your message will be heard and recorded on MARS! DiamondBank to be the first bank on MARS using a crypto\n reserve currency. This will be the story your grandkids tell their grandkids! How their Great Great Grandparents helped colonize mars!\n
  • \n
*/}\n
\n
\n
\n \n \n \n \n
\n

APY

\n

\n {isAppLoading ? (\n \n ) : (\n `${\n trimmedStakingAPY.length > 3\n ? new Intl.NumberFormat().format(Math.round(Number(trimmedStakingAPY)))\n : Number.parseFloat(trimmedStakingAPY).toPrecision(10)\n }%`\n )}\n

\n
\n
\n \n
\n

$DB Price

\n

{isAppLoading ? : `$${trim(app.marketPrice, 2)}`}

\n
\n
\n\n \n
\n

Market Cap

\n

\n {isAppLoading ? (\n \n ) : (\n new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(app.marketCap)\n )}\n

\n
\n
\n\n \n
\n

Total Value Locked

\n

\n {isAppLoading ? (\n \n ) : (\n new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(app.stakingTVL)\n )}\n

\n
\n
\n\n \n
\n

Treasury Balance

\n

\n {isAppLoading ? (\n \n ) : (\n new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(app.treasuryBalance)\n )}\n

\n
\n
\n\n \n
\n

Diamond Supply

\n

\n {isAppLoading ? (\n \n ) : (\n `${new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(app.totalSupply)}`\n )}\n

\n
\n
\n\n {/* \n
\n

Diamond Supply

\n

\n {isAppLoading ? (\n \n ) : (\n `${new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(app.circSupply)}\n /\n ${new Intl.NumberFormat(\"en-US\", {\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(app.totalSupply)}`\n )}\n

\n
\n
*/}\n\n \n
\n

Backing per $DB

\n

\n {isAppLoading ? (\n \n ) : (\n new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n maximumFractionDigits: 0,\n minimumFractionDigits: 0,\n }).format(app.rfv)\n )}\n

\n
\n
\n\n \n
\n

Rebase Index Since Start

\n

{isAppLoading ? : `${trim(Number(app.currentIndex), 2)} DB`}

\n
\n
\n\n \n
\n \n

Diamond Nodes

\n

coming soon

\n \n
\n
\n
\n
\n\n \n \n \n \n \n
\n

Buy

\n
\n \n
\n
\n \n \n {\n return checkPage(location, \"mints\");\n }}\n className={\"button-link\"}\n style={{ minWidth: 120 }}\n >\n
\n

Bond

\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n );\n}\n\nexport default Dashboard;\n","import { Grid, Zoom } from \"@material-ui/core\";\nimport \"./mining.scss\";\nimport Centerpng from \"../../assets/icons/centerpng.png\";\n\nfunction Mining() {\n return (\n
\n
\n \n \n \n
\n

coming soon

\n
\n
\n {/* \n \n \n \n \n \n \n \n */}\n
\n
\n
\n );\n}\n\nexport default Mining;\n","import \"./notfound.scss\";\n\nfunction NotFound() {\n return (\n
\n

Page not found

\n
\n );\n}\n\nexport default NotFound;\n","import React, { useEffect, useState } from \"react\";\nimport \"./calculator.scss\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useWeb3Context } from \"../../hooks\";\nimport { Grid, InputAdornment, OutlinedInput, Zoom, Slider } from \"@material-ui/core\";\nimport { IReduxState } from \"../../store/slices/state.interface\";\nimport { trim } from \"../../helpers\";\nimport { Skeleton } from \"@material-ui/lab\";\n\nfunction Calculator() {\n const isAppLoading = useSelector(state => state.app.loading);\n const marketPrice = useSelector(state => {\n return state.app.marketPrice;\n });\n const stakingAPY = useSelector(state => {\n return state.app.stakingAPY;\n });\n const sdbBalance = useSelector(state => {\n return state.account.balances && state.account.balances.sdb;\n });\n\n const trimmedStakingAPY = trim(stakingAPY * 100, 1);\n const trimmedSdbBalance = trim(Number(sdbBalance), 6);\n const trimeMarketPrice = trim(marketPrice, 2);\n\n const [sdbAmount, setSdbAmount] = useState(trimmedSdbBalance);\n const [rewardYield, setRewardYield] = useState(trimmedStakingAPY);\n const [priceAtPurchase, setPriceAtPurchase] = useState(trimeMarketPrice);\n const [futureMarketPrice, setFutureMarketPrice] = useState(trimeMarketPrice);\n const [days, setDays] = useState(30);\n\n const [rewardsEstimation, setRewardsEstimation] = useState(\"0\");\n const [potentialReturn, setPotentialReturn] = useState(\"0\");\n\n const calcInitialInvestment = () => {\n const sdb = Number(sdbAmount) || 0;\n const price = parseFloat(priceAtPurchase) || 0;\n const amount = sdb * price;\n return trim(amount, 2);\n };\n\n const calcCurrentWealth = () => {\n const sdb = Number(sdbAmount) || 0;\n const price = parseFloat(trimeMarketPrice);\n const amount = sdb * price;\n return trim(amount, 2);\n };\n\n const [initialInvestment, setInitialInvestment] = useState(calcInitialInvestment());\n\n useEffect(() => {\n const newInitialInvestment = calcInitialInvestment();\n setInitialInvestment(newInitialInvestment);\n }, [sdbAmount, priceAtPurchase]);\n\n const calcNewBalance = () => {\n let value = parseFloat(rewardYield) / 100;\n value = Math.pow(value - 1, 1 / (365 * 3)) - 1 || 0;\n let balance = Number(sdbAmount);\n for (let i = 0; i < days * 3; i++) {\n balance += balance * value;\n }\n return balance;\n };\n\n useEffect(() => {\n const newBalance = calcNewBalance();\n setRewardsEstimation(trim(newBalance, 6));\n const newPotentialReturn = newBalance * (parseFloat(futureMarketPrice) || 0);\n setPotentialReturn(trim(newPotentialReturn, 2));\n }, [days, rewardYield, futureMarketPrice, sdbAmount]);\n\n return (\n
\n \n
\n \n \n
\n

Calculator

\n

Estimate your returns

\n
\n
\n \n
\n \n \n
\n

DB Price

\n

{isAppLoading ? : `$${trimeMarketPrice}`}

\n
\n
\n \n
\n

Current APY

\n

\n {isAppLoading ? (\n \n ) : (\n <>\n {trimmedStakingAPY.length > 3\n ? new Intl.NumberFormat().format(Math.round(Number(trimmedStakingAPY)))\n : Number.parseFloat(trimmedStakingAPY).toPrecision(10)}\n %\n \n )}\n

\n
\n
\n \n
\n

Your sDB Balance

\n

{isAppLoading ? : <>{trimmedSdbBalance} sDB}

\n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n

sDB Amount

\n setSdbAmount(e.target.value)}\n labelWidth={0}\n endAdornment={\n \n
setSdbAmount(trimmedSdbBalance)} className=\"stake-card-action-input-btn\">\n

Max

\n
\n
\n }\n />\n
\n
\n \n
\n

APY (%)

\n setRewardYield(e.target.value)}\n labelWidth={0}\n endAdornment={\n \n
setRewardYield(trimmedStakingAPY)} className=\"stake-card-action-input-btn\">\n

Current

\n
\n
\n }\n />\n
\n
\n \n
\n

DB price at purchase ($)

\n setPriceAtPurchase(e.target.value)}\n labelWidth={0}\n endAdornment={\n \n
setPriceAtPurchase(trimeMarketPrice)} className=\"stake-card-action-input-btn\">\n

Current

\n
\n
\n }\n />\n
\n
\n \n
\n

Future DB market price ($)

\n setFutureMarketPrice(e.target.value)}\n labelWidth={0}\n endAdornment={\n \n
setFutureMarketPrice(trimeMarketPrice)} className=\"stake-card-action-input-btn\">\n

Current

\n
\n
\n }\n />\n
\n
\n
\n
\n
\n
\n

Number of days

\n setDays(parseInt(e.target.value) > 365 ? 365 : parseInt(e.target.value))}\n labelWidth={0}\n endAdornment={\n \n
\n

{`day${days > 1 ? \"s\" : \"\"}`}

\n
\n
\n }\n />\n
\n {/*

{`${days} day${days > 1 ? \"s\" : \"\"}`}

\n setDays(newValue)} /> */}\n
\n
\n
\n

Your initial investment

\n

{isAppLoading ? : <>${initialInvestment}}

\n
\n
\n

Current wealth

\n

{isAppLoading ? : <>${calcCurrentWealth()}}

\n
\n
\n

DB rewards estimation

\n

{isAppLoading ? : <>{rewardsEstimation} DB}

\n
\n
\n

Potential return

\n

{isAppLoading ? : <>${potentialReturn}}

\n
\n
\n

Number of days till I buy a Tesla

\n

\n {isAppLoading ? (\n \n ) : (\n <>{Number(potentialReturn) == 0 ? \"ꝏ\" : Math.floor((60000 * days) / Number(potentialReturn))}\n )}\n

\n
\n
\n

When I will be a Diamond Bank Millionaire

\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n\nexport default Calculator;\n","export default __webpack_public_path__ + \"static/media/WAVAX.f39a652e.png\";","import AvaxIcon from \"../assets/tokens/AVAX.svg\";\nimport AaveIcon from \"../assets/tokens/AAVE.e.png\";\nimport ApeXIcon from \"../assets/tokens/Ape-X.png\";\nimport ApeinIcon from \"../assets/tokens/APEIN.png\";\nimport BifiIcon from \"../assets/tokens/BIFI.png\";\nimport BlizzIcon from \"../assets/tokens/BLIZZ.png\";\nimport BnbIcon from \"../assets/tokens/BNB.png\";\nimport BoofiIcon from \"../assets/tokens/BOOFI.png\";\nimport ChartIcon from \"../assets/tokens/CHART.png\";\nimport DaiEIcon from \"../assets/tokens/DAI.e.png\";\nimport DreggIcon from \"../assets/tokens/DREGG.png\";\nimport EleIcon from \"../assets/tokens/ELE.png\";\nimport ElkIcon from \"../assets/tokens/ELK.png\";\nimport FraxIcon from \"../assets/tokens/FRAX.png\";\nimport GbIcon from \"../assets/tokens/GB.png\";\nimport HatIcon from \"../assets/tokens/HAT.png\";\nimport HuskyIcon from \"../assets/tokens/HUSKY.png\";\nimport IceIcon from \"../assets/tokens/ICE.png\";\nimport JoeIcon from \"../assets/tokens/JOE.png\";\nimport KloIcon from \"../assets/tokens/KLO.png\";\nimport LinkEIcon from \"../assets/tokens/LINK.e.png\";\nimport MainIcon from \"../assets/tokens/MAI.png\";\nimport MimIcon from \"../assets/tokens/MIM.svg\";\nimport MYakIcon from \"../assets/tokens/mYAK.png\";\nimport OliveIcon from \"../assets/tokens/OLIVE.png\";\nimport PefiIcon from \"../assets/tokens/PEFI.png\";\nimport PngIcon from \"../assets/tokens/PNG.png\";\nimport QiIcon from \"../assets/tokens/QI.png\";\nimport RelayIcon from \"../assets/tokens/RELAY.png\";\nimport SherpaIcon from \"../assets/tokens/SHERPA.png\";\nimport ShibxIcon from \"../assets/tokens/SHIBX.png\";\nimport SingIcon from \"../assets/tokens/SING.png\";\nimport SnobIcon from \"../assets/tokens/SNOB.png\";\nimport SpellIcon from \"../assets/tokens/SPELL.png\";\nimport SushiEIcon from \"../assets/tokens/SUSHI.e.png\";\nimport SynIcon from \"../assets/tokens/SYN.png\";\nimport TeddyIcon from \"../assets/tokens/TEDDY.png\";\nimport DbIcon from \"../assets/tokens/DB.png\";\nimport TsdIcon from \"../assets/tokens/TSD.png\";\nimport UsdcEIcon from \"../assets/tokens/USDC.e.png\";\nimport UsdtEIcon from \"../assets/tokens/USDT.e.png\";\nimport VsoIcon from \"../assets/tokens/VSO.png\";\nimport WavaxIcon from \"../assets/tokens/WAVAX.png\";\nimport WBtcIcon from \"../assets/tokens/WBTC.e.png\";\nimport WetIcon from \"../assets/tokens/WET.png\";\nimport WethEIcon from \"../assets/tokens/WETH.e.png\";\nimport XavaIcon from \"../assets/tokens/XAVA.png\";\nimport YakIcon from \"../assets/tokens/YAK.png\";\n\nexport interface IToken {\n name: string;\n address: string;\n img: string;\n isAvax?: boolean;\n decimals: number;\n}\n\nexport const avax: IToken = {\n name: \"AVAX\",\n isAvax: true,\n img: AvaxIcon,\n address: \"\",\n decimals: 18,\n};\n\nexport const mim: IToken = {\n name: \"MIM\",\n address: \"0x130966628846bfd36ff31a822705796e8cb8c18d\",\n img: MimIcon,\n decimals: 18,\n};\n\nconst db: IToken = {\n name: \"DB\",\n address: \"0x3B760B2527a4C2bb5E0F2B9e7BC77744adE2484E\",\n img: DbIcon,\n decimals: 9,\n};\n\nexport const wavax: IToken = {\n name: \"WAVAX\",\n address: \"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7\",\n img: WavaxIcon,\n decimals: 18,\n};\n\n/*\nconst aave: IToken = {\n name: \"AAVE.e\",\n address: \"0x63a72806098Bd3D9520cC43356dD78afe5D386D9\",\n img: AaveIcon,\n decimals: 18,\n};\n\nconst apeX: IToken = {\n name: \"APE-X\",\n address: \"0xd039C9079ca7F2a87D632A9C0d7cEa0137bAcFB5\",\n img: ApeXIcon,\n decimals: 9,\n};\n\nconst apein: IToken = {\n name: \"APEIN\",\n address: \"0x938FE3788222A74924E062120E7BFac829c719Fb\",\n img: ApeinIcon,\n decimals: 18,\n};\n\nconst bifi: IToken = {\n name: \"BIFI\",\n address: \"0xd6070ae98b8069de6B494332d1A1a81B6179D960\",\n img: BifiIcon,\n decimals: 18,\n};\n\nconst blizz: IToken = {\n name: \"BLIZZ\",\n address: \"0xB147656604217a03Fe2c73c4838770DF8d9D21B8\",\n img: BlizzIcon,\n decimals: 18,\n};\n\nconst bnb: IToken = {\n name: \"BNB\",\n address: \"0x264c1383EA520f73dd837F915ef3a732e204a493\",\n img: BnbIcon,\n decimals: 18,\n};\n\nconst boofi: IToken = {\n name: \"BOOFI\",\n address: \"0xB00F1ad977a949a3CCc389Ca1D1282A2946963b0\",\n img: BoofiIcon,\n decimals: 18,\n};\n\nconst chart: IToken = {\n name: \"CHART\",\n address: \"0xD769bDFc0CaEe933dc0a047C7dBad2Ec42CFb3E2\",\n img: ChartIcon,\n decimals: 18,\n};\n\nconst dai: IToken = {\n name: \"DAI.e\",\n address: \"0xd586E7F844cEa2F87f50152665BCbc2C279D8d70\",\n img: DaiEIcon,\n decimals: 18,\n};\n\nconst dregg: IToken = {\n name: \"DREGG\",\n address: \"0x88c090496125b751B4E3ce4d3FDB8E47DD079c57\",\n img: DreggIcon,\n decimals: 18,\n};\n\nconst ele: IToken = {\n name: \"ELE\",\n address: \"0xAcD7B3D9c10e97d0efA418903C0c7669E702E4C0\",\n img: EleIcon,\n decimals: 18,\n};\n\nconst elk: IToken = {\n name: \"ELK\",\n address: \"0xE1C110E1B1b4A1deD0cAf3E42BfBdbB7b5d7cE1C\",\n img: ElkIcon,\n decimals: 18,\n};\n\nconst frax: IToken = {\n name: \"FRAX\",\n address: \"0xDC42728B0eA910349ed3c6e1c9Dc06b5FB591f98\",\n img: FraxIcon,\n decimals: 18,\n};\n\nconst gb: IToken = {\n name: \"GB\",\n address: \"0x90842eb834cFD2A1DB0b1512B254a18E4D396215\",\n img: GbIcon,\n decimals: 9,\n};\n\nconst hat: IToken = {\n name: \"HAT\",\n address: \"0x82FE038Ea4b50f9C957da326C412ebd73462077C\",\n img: HatIcon,\n decimals: 18,\n};\n\nconst husky: IToken = {\n name: \"HUSKY\",\n address: \"0x65378b697853568dA9ff8EaB60C13E1Ee9f4a654\",\n img: HuskyIcon,\n decimals: 18,\n};\n\nconst ice: IToken = {\n name: \"ICE\",\n address: \"0xe0Ce60AF0850bF54072635e66E79Df17082A1109\",\n img: IceIcon,\n decimals: 18,\n};\n\nconst joe: IToken = {\n name: \"JOE\",\n address: \"0x6e84a6216eA6dACC71eE8E6b0a5B7322EEbC0fDd\",\n img: JoeIcon,\n decimals: 18,\n};\n\nconst klo: IToken = {\n name: \"KLO\",\n address: \"0xb27c8941a7Df8958A1778c0259f76D1F8B711C35\",\n img: KloIcon,\n decimals: 18,\n};\n\nconst link: IToken = {\n name: \"LINK.e\",\n address: \"0x5947BB275c521040051D82396192181b413227A3\",\n img: LinkEIcon,\n decimals: 18,\n};\n\nconst mai: IToken = {\n name: \"MAI\",\n address: \"0x3B55E45fD6bd7d4724F5c47E0d1bCaEdd059263e\",\n img: MainIcon,\n decimals: 18,\n};\n\nexport const mim: IToken = {\n name: \"MIM\",\n address: \"0xffa3B19EDAe07A458120a91408cC00917aedF607\",\n img: MimIcon,\n decimals: 18,\n};\n\nconst myak: IToken = {\n name: \"mYAK\",\n address: \"0xdDAaAD7366B455AfF8E7c82940C43CEB5829B604\",\n img: MYakIcon,\n decimals: 12,\n};\n\nconst olive: IToken = {\n name: \"OLIVE\",\n address: \"0x617724974218A18769020A70162165A539c07E8a\",\n img: OliveIcon,\n decimals: 18,\n};\n\nconst pefi: IToken = {\n name: \"PEFI\",\n address: \"0xe896CDeaAC9615145c0cA09C8Cd5C25bced6384c\",\n img: PefiIcon,\n decimals: 18,\n};\n\nconst png: IToken = {\n name: \"PNG\",\n address: \"0x60781C2586D68229fde47564546784ab3fACA982\",\n img: PngIcon,\n decimals: 18,\n};\n\nconst qi: IToken = {\n name: \"QI\",\n address: \"0x8729438EB15e2C8B576fCc6AeCdA6A148776C0F5\",\n img: QiIcon,\n decimals: 18,\n};\n\nconst relay: IToken = {\n name: \"RELAY\",\n address: \"0x78c42324016cd91D1827924711563fb66E33A83A\",\n img: RelayIcon,\n decimals: 18,\n};\n\nconst sherpa: IToken = {\n name: \"SHERPA\",\n address: \"0xa5E59761eBD4436fa4d20E1A27cBa29FB2471Fc6\",\n img: SherpaIcon,\n decimals: 18,\n};\n\nconst shibx: IToken = {\n name: \"SHIBX\",\n address: \"0x440aBbf18c54b2782A4917b80a1746d3A2c2Cce1\",\n img: ShibxIcon,\n decimals: 18,\n};\n\nconst sing: IToken = {\n name: \"SING\",\n address: \"0xF9A075C9647e91410bF6C402bDF166e1540f67F0\",\n img: SingIcon,\n decimals: 18,\n};\n\nconst snob: IToken = {\n name: \"SNOB\",\n address: \"0xC38f41A296A4493Ff429F1238e030924A1542e50\",\n img: SnobIcon,\n decimals: 18,\n};\n\nconst spell: IToken = {\n name: \"SPELL\",\n address: \"0xCE1bFFBD5374Dac86a2893119683F4911a2F7814\",\n img: SpellIcon,\n decimals: 18,\n};\n\nconst sushi: IToken = {\n name: \"SUSHI.e\",\n address: \"0x37B608519F91f70F2EeB0e5Ed9AF4061722e4F76\",\n img: SushiEIcon,\n decimals: 18,\n};\n\nconst syn: IToken = {\n name: \"SYN\",\n address: \"0x1f1E7c893855525b303f99bDF5c3c05Be09ca251\",\n img: SynIcon,\n decimals: 18,\n};\n\nconst teddy: IToken = {\n name: \"TEBBY\",\n address: \"0x094bd7B2D99711A1486FB94d4395801C6d0fdDcC\",\n img: TeddyIcon,\n decimals: 18,\n};\n\nconst db: IToken = {\n name: \"DB\",\n address: \"0xF029354E17b67076268d387642DbB3AD1d49e3D9\",\n img: DbIcon,\n decimals: 9,\n};\n\nconst tsd: IToken = {\n name: \"TSD\",\n address: \"0x4fbf0429599460D327BD5F55625E30E4fC066095\",\n img: TsdIcon,\n decimals: 18,\n};\n\nconst usdc: IToken = {\n name: \"USDC.e\",\n address: \"0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664\",\n img: UsdcEIcon,\n decimals: 6,\n};\n\nconst usdt: IToken = {\n name: \"USDT.e\",\n address: \"0xc7198437980c041c805A1EDcbA50c1Ce5db95118\",\n img: UsdtEIcon,\n decimals: 6,\n};\n\nconst vso: IToken = {\n name: \"VSO\",\n address: \"0x846D50248BAf8b7ceAA9d9B53BFd12d7D7FBB25a\",\n img: VsoIcon,\n decimals: 18,\n};\n\nexport const wavax: IToken = {\n name: \"WAVAX\",\n address: \"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7\",\n img: WavaxIcon,\n decimals: 18,\n};\n\nconst wbtc: IToken = {\n name: \"WBTC.e\",\n address: \"0x50b7545627a5162F82A992c33b87aDc75187B218\",\n img: WBtcIcon,\n decimals: 8,\n};\n\nconst wet: IToken = {\n name: \"WET\",\n address: \"0xB1466d4cf0DCfC0bCdDcf3500F473cdACb88b56D\",\n img: WetIcon,\n decimals: 18,\n};\n\nconst weth: IToken = {\n name: \"WETH.e\",\n address: \"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB\",\n img: WethEIcon,\n decimals: 18,\n};\n\nconst xava: IToken = {\n name: \"XAVA\",\n address: \"0xd1c3f94DE7e5B45fa4eDBBA472491a9f4B166FC4\",\n img: XavaIcon,\n decimals: 18,\n};\n\nconst yak: IToken = {\n name: \"YAK\",\n address: \"0x59414b3089ce2AF0010e7523Dea7E2b35d776ec7\",\n img: YakIcon,\n decimals: 18,\n};\n\nexport default [\n avax,\n aave,\n apeX,\n apein,\n bifi,\n blizz,\n bnb,\n boofi,\n chart,\n dai,\n dregg,\n ele,\n elk,\n frax,\n gb,\n hat,\n husky,\n ice,\n joe,\n klo,\n link,\n mai,\n mim,\n myak,\n olive,\n pefi,\n png,\n qi,\n relay,\n sherpa,\n shibx,\n sing,\n snob,\n spell,\n sushi,\n syn,\n teddy,\n db,\n tsd,\n usdc,\n usdt,\n vso,\n wavax,\n wbtc,\n wet,\n weth,\n xava,\n yak,\n];\n*/\nexport default [avax, mim, db, wavax];\n","import { useSelector } from \"react-redux\";\nimport { useEffect, useState } from \"react\";\nimport allTokens from \"../helpers/tokens\";\nimport { IUserTokenDetails } from \"../store/slices/account-slice\";\nimport { IReduxState } from \"../store/slices/state.interface\";\nimport { IToken } from \"../helpers/tokens\";\n\n// Smash all the interfaces together to get the BondData Type\nexport interface IAllTokenData extends IToken, IUserTokenDetails {}\n\nconst initialTokenArray = allTokens;\n\nfunction useTokens() {\n const accountLoading = useSelector(state => state.account.loading);\n const accountTokensState = useSelector(state => state.account.tokens);\n //@ts-ignore\n const [tokens, setTokens] = useState(initialTokenArray);\n\n useEffect(() => {\n let tokenDetails: IAllTokenData[];\n //@ts-ignore\n tokenDetails = allTokens.flatMap(token => {\n if (accountTokensState[token.name]) {\n return Object.assign(token, accountTokensState[token.name]);\n }\n return token;\n });\n\n const mostProfitableBonds = tokenDetails.concat().sort((a, b) => {\n return a[\"balance\"] > b[\"balance\"] ? -1 : b[\"balance\"] > a[\"balance\"] ? 1 : 0;\n });\n\n setTokens(mostProfitableBonds);\n }, [accountTokensState, accountLoading]);\n\n return { tokens, loading: accountLoading };\n}\n\nexport default useTokens;\n","import { useEffect, useState, useCallback } from \"react\";\nimport { Route, Redirect, Switch } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useAddress, useWeb3Context } from \"../hooks\";\nimport { calcBondDetails } from \"../store/slices/bond-slice\";\nimport { loadAppDetails } from \"../store/slices/app-slice\";\nimport { loadAccountDetails, calculateUserBondDetails, calculateUserTokenDetails } from \"../store/slices/account-slice\";\nimport { IReduxState } from \"../store/slices/state.interface\";\nimport Loading from \"../components/Loader\";\nimport useBonds from \"../hooks/bonds\";\nimport Footerpng from \"../assets/icons/footer-diamond.png\";\nimport ViewBase from \"../components/ViewBase\";\nimport { Stake, ChooseBond, Bond, Dashboard, NotFound, Calculator, Mining } from \"../views\";\nimport \"./style.scss\";\nimport useTokens from \"../hooks/tokens\";\n\nfunction App() {\n const dispatch = useDispatch();\n\n const { connect, provider, hasCachedProvider, chainID, connected } = useWeb3Context();\n const address = useAddress();\n\n const [walletChecked, setWalletChecked] = useState(false);\n\n const isAppLoading = useSelector(state => state.app.loading);\n const isAppLoaded = useSelector(state => !Boolean(state.app.marketPrice));\n\n const { bonds } = useBonds();\n const { tokens } = useTokens();\n\n async function loadDetails(whichDetails: string) {\n let loadProvider = provider;\n\n if (whichDetails === \"app\") {\n loadApp(loadProvider);\n }\n\n if (whichDetails === \"account\" && address && connected) {\n loadAccount(loadProvider);\n if (isAppLoaded) return;\n\n loadApp(loadProvider);\n }\n\n if (whichDetails === \"userBonds\" && address && connected) {\n bonds.map(bond => {\n dispatch(calculateUserBondDetails({ address, bond, provider, networkID: chainID }));\n });\n }\n\n if (whichDetails === \"userTokens\" && address && connected) {\n tokens.map(token => {\n dispatch(calculateUserTokenDetails({ address, token, provider, networkID: chainID }));\n });\n }\n }\n\n const loadApp = useCallback(\n loadProvider => {\n dispatch(loadAppDetails({ networkID: chainID, provider: loadProvider }));\n bonds.map(bond => {\n dispatch(calcBondDetails({ bond, value: null, provider: loadProvider, networkID: chainID }));\n });\n tokens.map(token => {\n dispatch(calculateUserTokenDetails({ address: \"\", token, provider, networkID: chainID }));\n });\n },\n [connected],\n );\n\n const loadAccount = useCallback(\n loadProvider => {\n dispatch(loadAccountDetails({ networkID: chainID, address, provider: loadProvider }));\n },\n [connected],\n );\n\n useEffect(() => {\n if (hasCachedProvider()) {\n connect().then(() => {\n setWalletChecked(true);\n });\n } else {\n setWalletChecked(true);\n }\n }, []);\n\n useEffect(() => {\n if (walletChecked) {\n loadDetails(\"app\");\n loadDetails(\"account\");\n loadDetails(\"userBonds\");\n loadDetails(\"userTokens\");\n }\n }, [walletChecked]);\n\n useEffect(() => {\n if (connected) {\n loadDetails(\"app\");\n loadDetails(\"account\");\n loadDetails(\"userBonds\");\n loadDetails(\"userTokens\");\n }\n }, [connected]);\n\n // if (isAppLoading) return ;\n\n return (\n \n \n \n \n {/*
\n \n
*/}\n
\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n {bonds.map(bond => {\n return (\n \n \n \n );\n })}\n \n \n\n \n \n \n\n \n
\n
\n );\n}\n\nexport default App;\n","import React, { useEffect, useState } from \"react\";\nimport App from \"./App\";\nimport Landing from \"./Landing\";\nimport { HashRouter } from \"react-router-dom\";\nimport { loadTokenPrices } from \"../helpers\";\nimport Loading from \"../components/Loader\";\n\nfunction Root() {\n const isApp = (): boolean => {\n return window.location.host.includes(\"app\");\n };\n\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n loadTokenPrices().then(() => setLoading(false));\n }, []);\n\n // if (loading) return ;\n\n const app = () => (\n \n \n \n );\n\n //return isApp() ? app() : ;\n return app();\n}\n\nexport default Root;\n","import React, { useState, forwardRef, useCallback } from \"react\";\nimport classnames from \"classnames\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport { useSnackbar, SnackbarContent } from \"notistack\";\nimport Collapse from \"@material-ui/core/Collapse\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Card from \"@material-ui/core/Card\";\nimport CardActions from \"@material-ui/core/CardActions\";\nimport Button from \"@material-ui/core/Button\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\nimport { Message } from \"../../store/slices/messages-slice\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport ErrorIcon from \"@material-ui/icons/Error\";\nimport InfoIcon from \"@material-ui/icons/Info\";\nimport SuccessIcon from \"@material-ui/icons/CheckCircle\";\nimport { Color } from \"@material-ui/lab/Alert\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n\nconst useStyles = makeStyles(theme => ({\n root: {\n [theme.breakpoints.up(\"sm\")]: {\n minWidth: \"344px !important\",\n },\n maxWidth: 500,\n },\n card: {\n width: \"100%\",\n },\n error: {\n backgroundColor: \"#d32f2f\",\n },\n info: {\n backgroundColor: \"#2979ff\",\n },\n warning: {\n backgroundColor: \"#ffa000\",\n },\n success: {\n backgroundColor: \"#43a047\",\n },\n typography: {\n color: \"#FFFFFF\",\n fontFamily: \"Montserrat SemiBold\",\n },\n actionRoot: {\n padding: \"8px 8px 8px 16px\",\n justifyContent: \"space-between\",\n color: \"#FFFFFF\",\n },\n icons: {\n marginLeft: \"auto\",\n },\n expand: {\n padding: \"8px 8px\",\n transform: \"rotate(0deg)\",\n transition: theme.transitions.create(\"transform\", {\n duration: theme.transitions.duration.shortest,\n }),\n color: \"#FFFFFF\",\n },\n expandOpen: {\n transform: \"rotate(180deg)\",\n },\n collapse: {\n padding: 16,\n },\n checkIcon: {\n fontSize: 20,\n color: \"#b3b3b3\",\n paddingRight: 4,\n },\n checkIconCopy: {\n color: \"#43a047\",\n },\n button: {\n padding: 0,\n textTransform: \"none\",\n },\n errorWrap: {\n marginTop: 10,\n },\n errorText: {\n whiteSpace: \"pre-wrap\",\n maxHeight: 300,\n overflow: \"auto\",\n background: \"rgba(0,0,0,0.1)\",\n padding: 5,\n borderRadius: 5,\n },\n}));\n\nconst SnackMessage = forwardRef((props, ref) => {\n const classes = useStyles();\n const { closeSnackbar } = useSnackbar();\n const [expanded, setExpanded] = useState(false);\n const [isCopy, setIsCopy] = useState(false);\n\n const handleExpandClick = useCallback(() => {\n setExpanded(oldExpanded => !oldExpanded);\n }, []);\n\n const handleDismiss = useCallback(() => {\n closeSnackbar(props.id);\n }, [props.id, closeSnackbar]);\n\n const getIcon = (severity: Color) => {\n switch (severity) {\n case \"error\":\n return ;\n case \"info\":\n return ;\n case \"success\":\n return ;\n case \"warning\":\n return ;\n default:\n return
;\n }\n };\n\n return (\n \n \n \n {getIcon(props.message.severity)}\n \n {props.message.text}\n \n
\n {props.message.error && (\n \n \n \n )}\n \n \n \n
\n
\n \n \n setIsCopy(true)}>\n \n \n
\n Error message: \n {JSON.stringify(props.message.error, null, 2)}\n
\n
\n
\n
\n
\n );\n});\n\nexport default SnackMessage;\n","import ReactDOM from \"react-dom\";\nimport Root from \"./Root\";\nimport store from \"./store/store\";\nimport { Provider } from \"react-redux\";\nimport { Web3ContextProvider } from \"./hooks\";\nimport { SnackbarProvider } from \"notistack\";\nimport SnackMessage from \"./components/Messages/snackbar\";\n\nReactDOM.render(\n }\n autoHideDuration={10000}\n >\n \n \n \n \n \n ,\n document.getElementById(\"root\"),\n);\n"],"sourceRoot":""}