diff --git a/src/state/boards/fetchBoardsUser.ts b/src/state/boards/fetchBoardsUser.ts index f6cbb18..28174d5 100644 --- a/src/state/boards/fetchBoardsUser.ts +++ b/src/state/boards/fetchBoardsUser.ts @@ -1,8 +1,9 @@ import BigNumber from 'bignumber.js' import erc20ABI from 'config/abi/erc20.json' +import boardABI from 'config/abi/board.json' import multicall from 'utils/multicall' import boardsConfig from 'config/constants/boards' -import { getAddress } from 'utils/addressHelpers' +import { getAddress, getBoardAddress } from 'utils/addressHelpers' export const fetchBoardUserAllowances = async (account: string) => { const calls = boardsConfig.map((board) => { @@ -38,15 +39,15 @@ export const fetchBoardUserTokenBalances = async (account: string) => { export const fetchBoardUserInfo = async (account: string) => { const data = await Promise.all( boardsConfig.map(async (board) => { - const boardChefAddress = getAddress(board.contractAddress) + const boardChefAdress = getAddress(board.contractAddress) const calls = [ { - address: boardChefAddress, + address: boardChefAdress, name: 'userInfo', params: [account], }, { - address: boardChefAddress, + address: boardChefAdress, name: 'pendingHCC', params: [account], }, diff --git a/src/views/Board/index.tsx b/src/views/Board/index.tsx index 2527aa1..a9e5821 100644 --- a/src/views/Board/index.tsx +++ b/src/views/Board/index.tsx @@ -3,8 +3,11 @@ import React, { useEffect, useCallback, useMemo, useState, useRef } from 'react' import { Route, useRouteMatch, useLocation } from 'react-router-dom' import { useDispatch } from 'react-redux' import boardsConfig from 'config/constants/boards' +import tokens from 'config/constants/tokens' import { getAddress, getBoardAddress } from 'utils/addressHelpers' +import { getDecimalAmountNumber } from 'utils/formatBalance' import boardABI from 'config/abi/board.json' +import erc20ABI from 'config/abi/erc20.json' import multicall from 'utils/multicall' import { useWeb3React } from '@web3-react/core' import Balance from 'components/Balance' @@ -46,8 +49,11 @@ const Boards: React.FC = () => { const { fastRefresh } = useRefresh() // 资金池总额 const [totalAmount, setTotalAmount] = useState(0) + // 分红总额 + const [shareOutBonus, setShareOutBonus] = useState(0) // 获取资金池总额 const getCapital = async () => { + console.log(boardsConfig) const calls = boardsConfig.map((board) => { const contractAddress = getAddress(board.contractAddress) return { @@ -55,17 +61,37 @@ const Boards: React.FC = () => { name: '_poolInfo', } }) + let total = 0 const boardsPoolInfo = await multicall(boardABI, calls) - console.log('boardsPoolInfo:', boardsPoolInfo) boardsPoolInfo.forEach((item) => { - setTotalAmount(totalAmount + Number(new BigNumber(item.totalAmount._hex).toJSON())) + total += new BigNumber(item.totalAmount._hex).toNumber() }) + setTotalAmount(total) } + // 获取分红总额 + const fetchBoardShares = async () => { + const calls = boardsConfig.map((board) => { + const contractAddress = getAddress(board.tokenAddresses) + return { + address: contractAddress, + name: 'balanceOf', + params: ['0x2937a050705009270c9b5bc096d57d519ab7c39b'], + } + }) + let total = 0 + const sharesRed = await multicall(erc20ABI, calls) + sharesRed.forEach((item) => { + total += new BigNumber(item.balance._hex).div(new BigNumber(10).pow(18)).toNumber() + }) + setShareOutBonus(total) + } + useEffect(() => { dispatch(fetchBoardsPublicDataAsync()) if (account) { dispatch(fetchBoardUserDataAsync(account)) getCapital() + fetchBoardShares() } }, [account, dispatch, fastRefresh]) @@ -89,7 +115,7 @@ const Boards: React.FC = () => { - + {/* */}