{"version":3,"sources":["webpack:///./src/pages/tools/bao-finance-xdai-farms-tvl.js"],"names":["coinGeckoIds","initialClickedPairs","pools","contractAddress","FarmInfoRow","styled","p","FarmInfoRowBold","span","LpTokenSelectionCard","div","props","isSelected","LpTokenSelectionContainer","LpTokenSelectionInfo","LpTokenValueCard","LpTokenValueCardContainer","LpTokenValueCardTitle","formatNumber","num","decimalPlaces","numberWithCommas","toFixed","x","toString","replace","LpTokenSelection","lpTokenPair","onClick","LpTokenValue","pairName","coinPrices","useState","farmInfo","setFarmInfo","assetA","split","assetB","useEffect","tokenAddress","apiUrl","axios","get","then","totalSupplyRes","lpTokenAddress","fetchLpStakedInFarm","lpStakedRes","fetchTokenBalances","balancesRes","balances","lpTotalSupply","data","result","totalSupply","lpTokensStaked","blockscoutLookupSymbols","forEach","symbol","i","balanceObj","decimals","Number","balance","pctStaked","balanceAStaked","balanceBStaked","totalValueLocked","target","rel","href","BaoFinanceXDaiFarmsTVL","clickedPairs","setClickedPairs","setCoinPrices","noneSelected","Object","keys","reduce","acc","cur","concat","length","idsList","push","url","Set","join","fetchAllCoinPrices","res","coinPricesData","coinGeckoId","usd","collectCoinPrices","onSelectionClick","JSON","parse","stringify","showAffiliateLink","title","description","map","poolName","key"],"mappings":"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","file":"component---src-pages-tools-bao-finance-xdai-farms-tvl-js-3f4417cdbdd801e77ad7.js","sourcesContent":["import React, { useEffect, useState } from \"react\"\r\nimport axios from \"axios\"\r\nimport styled from \"styled-components\";\r\nimport PageLayout from \"../../components/page-layout\"\r\nimport SEO from \"../../components/seo\"\r\n\r\n// -- contstants\r\n\r\nconst baoMasterFarmerContract = \"0xf712a82DD8e2Ac923299193e9d6dAEda2d5a32fd\"\r\n\r\nconst coinGeckoIds = {\r\n 'BAO': 'bao-finance',\r\n 'XDAI': 1,\r\n 'WETH': 'weth',\r\n 'RUNE': 'thorchain',\r\n 'GRT': 'the-graph',\r\n '1INCH': '1inch',\r\n 'LINK': 'chainlink',\r\n 'USDC': 1,\r\n 'COMP': 'compound-governance-token',\r\n 'USDT': 1,\r\n 'SNX': 'havven',\r\n 'WBTC': 'wrapped-bitcoin',\r\n 'AAVE': 'aave',\r\n 'CRV': 'curve-dao-token',\r\n 'BAO.cx': 'bao-finance',\r\n 'CEL': 'celsius-degree-token',\r\n 'AGVE': 'agave-token',\r\n 'NFTX': 'nftx'\r\n}\r\n\r\nconst initialClickedPairs = {\r\n 'BAO-XDAI': true,\r\n 'BAO-BAO.cx': true,\r\n 'BAO-WETH': true\r\n}\r\n\r\nconst pools = {\r\n 'BAO-XDAI': {\r\n contractAddress: '0x82820a99c431d0Bb7cA775Fa7247d1AC481f2E56'\r\n },\r\n 'BAO-BAO.cx': {\r\n contractAddress: '0x42d69d4b7fC4506504dc4aaA224565B6618e5722'\r\n },\r\n 'BAO-WETH': {\r\n contractAddress: '0x4659640F3444e96ac96cb901177486c1775aAE09'\r\n },\r\n 'WBTC-XDAI': {\r\n contractAddress: '0xa498fFe098f4dc9a52FAB6fBdd5c624Ca237F39c'\r\n },\r\n 'AAVE-XDAI': {\r\n contractAddress: '0xfE146525b01dcF721d0714eb46a2E5dE3C01357a'\r\n },\r\n 'RUNE-XDAI': {\r\n contractAddress: '0x0378cc2fb49Ae06b857dEBfcbB45339dC692802C'\r\n },\r\n 'GRT-XDAI': {\r\n contractAddress: '0xF8f02044B74F34CBd83dCa483547B7F32768Fe50'\r\n },\r\n '1INCH-XDAI': {\r\n contractAddress: '0x8746355882E10AAE144d3709889dfAA39FF2a692'\r\n },\r\n 'LINK-XDAI': {\r\n contractAddress: '0x4cCB2Fe7472c0a6f73a7154023a6F652F24694ee'\r\n },\r\n 'USDC-XDAI': {\r\n contractAddress: '0x71c20bfCb1170E1643ccDf1FF25714615eEF6701'\r\n },\r\n 'COMP-XDAI': {\r\n contractAddress: '0x2fB0dD74f6365Ff77dA7Aa7D4b1B790847a5DA00'\r\n },\r\n 'SNX-XDAI': {\r\n contractAddress: '0xCEAd5C71231764aBfc8B809824666603E8614853'\r\n },\r\n 'CRV-XDAI': {\r\n contractAddress: '0xCdf15b16B5dd71f17ef1d1996292Af205f960A68'\r\n },\r\n 'GRT-WBTC': {\r\n contractAddress: '0x40B8EB2575926B1F67C939B01d1716296576dc33'\r\n },\r\n 'NFTX-XDAI': {\r\n contractAddress: '0x9fbB63681bD9939514Fc437944B404E8e5208E20'\r\n },\r\n 'CEL-XDAI': {\r\n contractAddress: '0xDb9f7C72B9bCE159dba62f3E4C84477A6Baf4597'\r\n },\r\n 'AGVE-XDAI': {\r\n contractAddress: '0xcf7f4a04f204fcFea7d8617C9c8e80f95920A8c5'\r\n },\r\n 'LINK-WBTC': {\r\n contractAddress: '0xD61F580370E8C53757935119B7c08818f238506d'\r\n },\r\n 'SNX-WBTC': {\r\n contractAddress: '0xbbB23f86cCb36c471bF466c36Ae6C38De417EF16'\r\n },\r\n 'AAVE-WBTC': {\r\n contractAddress: '0x25BFfC0B93536Ac36FEe29B028Cde0BDfA74Ff60'\r\n }\r\n}\r\n\r\n// -- styled components\r\n\r\nconst FarmInfoRow = styled.p``\r\n\r\nconst FarmInfoRowBold = styled.span`\r\n font-weight: bold;\r\n padding-right: 0.3rem;\r\n`\r\n\r\nconst LpTokenSelectionCard = styled.div`\r\n padding: 0.75rem 0;\r\n border-radius: 10px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n text-align: center;\r\n\r\n background: ${props => props.isSelected ? \"#ddd\" : \"white\"};\r\n\r\n border: ${props => props.isSelected\r\n ? \"1px solid cornflowerblue\" : \"1px solid #ccc\"};\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n`\r\n\r\nconst LpTokenSelectionContainer = styled.div`\r\n display: grid;\r\n grid-template-columns: repeat(4, 1fr);\r\n column-gap: 15px;\r\n row-gap: 15px;\r\n padding-bottom: 1rem;\r\n\r\n @media (max-width: 600px) {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n\r\n @media (min-width:600px) and (max-width: 820px) {\r\n grid-template-columns: repeat(3, 1fr);\r\n }\r\n`\r\n\r\nconst LpTokenSelectionInfo = styled.p`\r\n text-align: center;\r\n`\r\n\r\nconst LpTokenValueCard = styled.div`\r\n margin-bottom: 1.5rem;\r\n padding: 1rem;\r\n border: 1px solid #ccc;\r\n border-radius: 10px;\r\n`\r\n\r\nconst LpTokenValueCardContainer = styled.div``\r\n\r\nconst LpTokenValueCardTitle = styled.div`\r\n font-weight: bold;\r\n`\r\n\r\n// -- helper functions \r\n\r\nconst collectCoinPrices = coinPricesData => {\r\n const res = {}\r\n Object.keys(coinGeckoIds).forEach(symbol => {\r\n const coinGeckoId = coinGeckoIds[symbol]\r\n if (coinGeckoId === 1) {\r\n res[symbol] = 1\r\n return\r\n }\r\n res[symbol] = coinPricesData[coinGeckoId].usd\r\n })\r\n return res\r\n}\r\n\r\nconst fetchAllCoinPrices = () => {\r\n const idsList = []\r\n Object.keys(coinGeckoIds).forEach(symbol => {\r\n idsList.push(coinGeckoIds[symbol])\r\n })\r\n const idsListNoDups = [...new Set(idsList)]\r\n const ids = idsListNoDups.join(',')\r\n const url = `https://api.coingecko.com/api/v3/simple/price?ids=${ids}&vs_currencies=usd`\r\n return axios.get(url)\r\n}\r\n\r\nconst fetchLpStakedInFarm = (lpTokenAddress) => {\r\n const apiUrl = \"https://blockscout.com/poa/xdai/api?module=account&action=tokenbalance&\"\r\n + `contractaddress=${lpTokenAddress}`\r\n + `&address=${baoMasterFarmerContract}`\r\n return axios.get(apiUrl)\r\n}\r\n\r\nconst fetchTokenBalances = tokenAddress => {\r\n const apiUrl = \"https://blockscout.com/poa/xdai/api?module=account&\" \r\n + `action=tokenlist&address=${tokenAddress}`\r\n return axios.get(apiUrl)\r\n}\r\n\r\nconst fetchTotalTokenSupply = tokenAddress => {\r\n const apiUrl = \"https://blockscout.com/poa/xdai/api?module=token&\"\r\n + `action=getToken&contractaddress=${tokenAddress}`\r\n return axios.get(apiUrl)\r\n}\r\n\r\nconst formatNumber = (num, decimalPlaces) => {\r\n return numberWithCommas(num.toFixed(decimalPlaces))\r\n}\r\n\r\nconst numberWithCommas = x => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")\r\n}\r\n\r\n// -- helper components\r\n\r\nconst LpTokenSelection = ({lpTokenPair, isSelected, onClick}) => {\r\n return (\r\n onClick(lpTokenPair)}\r\n isSelected={isSelected}\r\n >\r\n {lpTokenPair}\r\n \r\n )\r\n}\r\n\r\nconst LpTokenValue = ({pairName, coinPrices}) => {\r\n const [farmInfo, setFarmInfo] = useState({})\r\n const assetA = pairName.split('-')[0]\r\n const assetB = pairName.split('-')[1]\r\n const contractAddress = pools[pairName]['contractAddress']\r\n\r\n useEffect(() => {\r\n fetchTotalTokenSupply(contractAddress).then(totalSupplyRes => {\r\n fetchLpStakedInFarm(contractAddress).then(lpStakedRes => {\r\n fetchTokenBalances(contractAddress).then(balancesRes => {\r\n const balances = {}\r\n const lpTotalSupply = totalSupplyRes.data.result.totalSupply / 10 ** 18\r\n const lpTokensStaked = lpStakedRes.data.result / 10 ** 18\r\n\r\n const blockscoutLookupSymbols = pools[pairName][\"blockscoutLookupSymbols\"] \r\n || [assetA, assetB]\r\n\r\n blockscoutLookupSymbols[0] = blockscoutLookupSymbols[0] === \"XDAI\" \r\n ? \"WXDAI\" : blockscoutLookupSymbols[0]\r\n\r\n blockscoutLookupSymbols[1] = blockscoutLookupSymbols[1] === \"XDAI\" \r\n ? \"WXDAI\" : blockscoutLookupSymbols[1]\r\n\r\n blockscoutLookupSymbols.forEach((symbol, i) => {\r\n balancesRes.data.result.forEach(balanceObj => {\r\n const decimals = Number(balanceObj.decimals)\r\n if (balanceObj.symbol === symbol) {\r\n balances[pairName.split('-')[i]] = balanceObj.balance / 10 ** decimals\r\n }\r\n })\r\n })\r\n \r\n setFarmInfo({\r\n lpTokensStaked,\r\n lpTotalSupply,\r\n balances\r\n })\r\n })\r\n })\r\n })\r\n }, [pairName, coinPrices, contractAddress, assetA, assetB])\r\n\r\n const lpTotalSupply = farmInfo[\"lpTotalSupply\"] ? farmInfo[\"lpTotalSupply\"] : 0\r\n const lpTokensStaked = farmInfo[\"lpTokensStaked\"] ? farmInfo[\"lpTokensStaked\"] : 0\r\n const balances = farmInfo[\"balances\"] ? farmInfo[\"balances\"] : {}\r\n\r\n const pctStaked = lpTokensStaked / lpTotalSupply\r\n const balanceAStaked = balances[assetA] * pctStaked\r\n const balanceBStaked = balances[assetB] * pctStaked\r\n\r\n const valueAStaked = balanceAStaked * coinPrices[assetA]\r\n const valueBStaked = balanceBStaked * coinPrices[assetB]\r\n const totalValueLocked = valueAStaked + valueBStaked\r\n\r\n return (\r\n \r\n \r\n {pairName}\r\n \r\n \r\n Total Value Locked:\r\n ${formatNumber(totalValueLocked, 2)}\r\n \r\n \r\n Percent Staked:\r\n {formatNumber(pctStaked * 100, 2)}%\r\n \r\n \r\n \r\n Tokens Staked:\r\n \r\n {\r\n `${formatNumber(balanceAStaked, 2)} ${assetA}\r\n + ${formatNumber(balanceBStaked, 2)} ${assetB}`\r\n }\r\n \r\n \r\n \r\n Blockscout LP Token Page\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n// -- main function\r\n\r\nexport default function BaoFinanceXDaiFarmsTVL() {\r\n const [clickedPairs, setClickedPairs] = useState(initialClickedPairs)\r\n const [coinPrices, setCoinPrices] = useState({})\r\n\r\n const noneSelected = Object.keys(clickedPairs).reduce((acc, cur) => {\r\n return clickedPairs[cur] ? acc.concat(cur) : acc\r\n }, []).length === 0\r\n\r\n useEffect(() => {\r\n fetchAllCoinPrices().then(res => {\r\n setCoinPrices(collectCoinPrices(res.data))\r\n })\r\n }, [])\r\n\r\n const onSelectionClick = lpTokenPair => {\r\n if (lpTokenPair in clickedPairs) {\r\n clickedPairs[lpTokenPair] = !clickedPairs[lpTokenPair]\r\n setClickedPairs(JSON.parse(JSON.stringify(clickedPairs)))\r\n } else {\r\n clickedPairs[lpTokenPair] = true;\r\n setClickedPairs(JSON.parse(JSON.stringify(clickedPairs)))\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n

Select Farms (only baoswap farms for now)

\r\n \r\n {\r\n Object.keys(pools).map((poolName, i) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n more being added soon :)\r\n \r\n
\r\n\r\n

Farm TVLs

\r\n \r\n {\r\n Object.keys(clickedPairs).map((pairName, i) => {\r\n if (!clickedPairs[pairName]) {\r\n return null;\r\n }\r\n return (\r\n \r\n )\r\n })\r\n }\r\n { \r\n noneSelected &&\r\n

Please select at least one farm.

\r\n }\r\n
\r\n
\r\n )\r\n}"],"sourceRoot":""}