import React, {useMemo} from 'react'; import {Button, Card, CardContent, Grid, Paper, Typography} from '@material-ui/core'; import TokenSymbol from '../TokenSymbol'; import {getDisplayBalance} from '../../utils/formatBalance'; import useStatsForPool from '../../hooks/useStatsForPool'; import useEarnings from '../../hooks/useEarnings'; import useUnicornStats from '../../hooks/useUnicornStats'; import useShareStats from '../../hooks/useWingsStats'; import {Bank} from '../../unicorn-finance'; import {useGetMultiplierForNode} from '../../utils/constants'; import {Link} from 'react-router-dom'; import {useWallet} from 'use-wallet'; import useNodes from '../../hooks/useNodes'; import useLpStatsBTC from '../../hooks/useLpStatsBTC'; interface NodesInfoCardProps { bank: Bank; } const NodesInfoCard: React.FC = ({bank}) => { const {account} = useWallet(); const statsOnPool = useStatsForPool(bank); const earnings = useEarnings(bank.contract, bank.earnTokenName, bank.poolId); const unicornStats = useUnicornStats(); const tShareStats = useShareStats(); const unicornwcroLpStats = useLpStatsBTC('UNICORN-WCRO-LP'); const unicornWLRSLpStats = useLpStatsBTC('UNICORN-WLRS-LP'); const nodes = useNodes(bank?.contract, bank?.sectionInUI, account); const ticketRewards = useGetMultiplierForNode(bank.earnTokenName); let tokenStats: any = 0; if (bank.earnTokenName === 'WINGS') { tokenStats = tShareStats; } else if (bank.earnTokenName === 'UNICORN') { tokenStats = unicornStats; } else if (bank.earnTokenName === 'UNICORN-WCRO-SW') { tokenStats = unicornwcroLpStats; } else if (bank.earnTokenName === 'UNICORN-WLRS-LP') { tokenStats = unicornWLRSLpStats; } const tokenPriceInDollars = useMemo( () => (tokenStats ? Number(tokenStats.priceInDollars).toFixed(2) : null), [tokenStats], ); const tokenPriceInDollarsLP = useMemo( () => (tokenStats ? Number(tokenStats.priceOfOne).toFixed(2) : null), [tokenStats], ); const earnedInToken = Number(getDisplayBalance(earnings)); const earnedInDollars = (Number(tokenPriceInDollars) * earnedInToken).toFixed(2); const earnedInDollarsLP = (Number(tokenPriceInDollarsLP) * Number(getDisplayBalance(earnings))).toFixed(2); return ( {bank.depositTokenName} Lock your {bank.depositTokenName} to earn daily yields APR {bank.closedForStaking ? '0.00' : statsOnPool?.yearlyAPR}% TVL $ {statsOnPool?.TVL ? Number(Number(statsOnPool?.TVL).toFixed(0)).toLocaleString('en-US') : '-.--'} Daily APR {bank.closedForStaking ? '0.00' : statsOnPool?.dailyAPR}% {Number(nodes[0]) > 0 && ( <> {/* Your Nodes / Airdrop Tickets {' '} {nodes[0] ? `${Number(nodes[0])} / ${Number(nodes[0]) * ticketRewards}` : null} */} )} {Number(nodes[0]) === 0 && ( <> {/* Airdrop Tickets {ticketRewards} per Node */} )} {Number(nodes[0]) > 0 && ( <> Earned {`${earnedInToken} ${bank.earnTokenName}`} Earned $ {`≈$${ bank.earnTokenName === 'UNICORN-WCRO-SW' || bank.earnTokenName === 'UNICORN-WLRS-LP' ? Number(earnedInDollarsLP).toLocaleString('en-US') : Number(earnedInDollars).toLocaleString('en-US') }`} )} ); }; export default NodesInfoCard;