调整董事会合约
This commit is contained in:
parent
07dd68e03a
commit
5e9b7e99a1
|
|
@ -91,7 +91,9 @@
|
|||
"outputs": [
|
||||
{ "internalType": "uint256", "name": "accHCCPerShare", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "totalAmount", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "num", "type": "uint256" }
|
||||
{ "internalType": "uint256", "name": "totalReward", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "curAmount", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "holderNum", "type": "uint256" }
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
|
|
@ -177,7 +179,8 @@
|
|||
"outputs": [
|
||||
{ "internalType": "uint256", "name": "amount", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "rewardDebt", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "unLockTime", "type": "uint256" }
|
||||
{ "internalType": "uint256", "name": "unLockTime", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "receiveReward", "type": "uint256" }
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
|
|
|
|||
|
|
@ -91,7 +91,9 @@
|
|||
"outputs": [
|
||||
{ "internalType": "uint256", "name": "accHCCPerShare", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "totalAmount", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "num", "type": "uint256" }
|
||||
{ "internalType": "uint256", "name": "totalReward", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "curAmount", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "holderNum", "type": "uint256" }
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
|
|
@ -162,7 +164,8 @@
|
|||
"name": "userInfo",
|
||||
"outputs": [
|
||||
{ "internalType": "uint256", "name": "amount", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "rewardDebt", "type": "uint256" }
|
||||
{ "internalType": "uint256", "name": "rewardDebt", "type": "uint256" },
|
||||
{ "internalType": "uint256", "name": "receiveReward", "type": "uint256" }
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ export default {
|
|||
56: '0x6ab8463a4185b80905e05a9ff80a2d6b714b9e95',
|
||||
},
|
||||
boardChef: {
|
||||
97: '0x0e28f80e6560f0ebbba4bbdf155a946053e5056a',
|
||||
97: '0x733240108a3626f6f4871328f168281040655d08',
|
||||
56: '0xD34871F12ace1BB8034E18009104b9dA60B84250', // NEED CHANGE 节点董事会合约
|
||||
},
|
||||
boardRewardChef: {
|
||||
|
|
@ -16,7 +16,7 @@ export default {
|
|||
56: '0xD34871F12ace1BB8034E18009104b9dA60B84250', // NEED CHANGE 节点董事会分红合约
|
||||
},
|
||||
holderChef: {
|
||||
97: '0xafa64f22a09fc197949c45281b2ad381a2b623a3',
|
||||
97: '0xa319dfdab0d4ed9a82f6bf85cc94e7d260ac0859',
|
||||
56: '0xD34871F12ace1BB8034E18009104b9dA60B84250', // NEED CHANGE 持币人
|
||||
},
|
||||
holderRewardChef: {
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ export const fetchBoardUserInfo = async (account: string) => {
|
|||
unLockTime: userInfo.unLockTime ? new BigNumber(userInfo.unLockTime._hex).toNumber() : 0,
|
||||
estimatedProfit: new BigNumber(estimatedProfit).toJSON(),
|
||||
name: board.name,
|
||||
receiveReward: userInfo.receiveReward ? new BigNumber(userInfo.receiveReward._hex).toNumber() : 0,
|
||||
amount: getBalanceAmount(new BigNumber(userInfo.amount?._hex)).toNumber(),
|
||||
rewardDebt: getBalanceAmount(new BigNumber(userInfo.rewardDebt?._hex)).toNumber(),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ export const fetchBoardUserDataAsync = (account) => async (dispatch) => {
|
|||
name: userInfo[index].name,
|
||||
amount: userInfo[index].amount,
|
||||
rewardDebt: userInfo[index].rewardDebt,
|
||||
receiveReward: userInfo[index].receiveReward,
|
||||
}
|
||||
})
|
||||
dispatch(setBoardsUserData({ arrayOfUserDataObjects }))
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ interface DetailProps {
|
|||
}
|
||||
const ContainerMain = styled.div`
|
||||
background: ${({ theme }) => theme.colors.gradients.bubblegum};
|
||||
padding: 30px 0;
|
||||
`
|
||||
const MainDiv = styled.div`
|
||||
width: 100%;
|
||||
|
|
|
|||
|
|
@ -94,12 +94,15 @@ interface NodeCardProps {
|
|||
removed: boolean
|
||||
provider?: ProviderType
|
||||
account?: string
|
||||
boardsData?: any
|
||||
}
|
||||
|
||||
const BoardCard: React.FC<NodeCardProps> = ({ board, account }) => {
|
||||
const BoardCard: React.FC<NodeCardProps> = ({ board, account, boardsData }) => {
|
||||
const { t } = useTranslation()
|
||||
const [countDown, setCountDown] = useState('')
|
||||
|
||||
const [boardsDataCurAmount] = boardsData.filter((item) => {
|
||||
return item.pid === board.pid
|
||||
})
|
||||
useEffect(() => {
|
||||
const interval = setInterval(() => {
|
||||
if (board.userData?.unlockTime) {
|
||||
|
|
@ -125,17 +128,19 @@ const BoardCard: React.FC<NodeCardProps> = ({ board, account }) => {
|
|||
const [showExpandableSection, setShowExpandableSection] = useState(false)
|
||||
return (
|
||||
<FCard>
|
||||
<CardHeading name={t(board.name)} img={board.img} tokenSymbol={board.tokenSymbol} />
|
||||
<CardHeading
|
||||
name={t(board.name)}
|
||||
img={board.img}
|
||||
tokenSymbol={board.tokenSymbol}
|
||||
amount={board.userData?.amount}
|
||||
/>
|
||||
<ContentDiv>
|
||||
{account && (
|
||||
<div>
|
||||
<FlexText name={t('HCC Currency amount')} value={board.userData?.amount} />
|
||||
{board.userData?.name === 'Board' ? (
|
||||
<FlexText name={t('Lock up time')} value={board.userData?.unlockTime} />
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
<FlexText name={t('possess LP')} value={board.userData?.rewardDebt} />
|
||||
{board.pid === 1 ? <FlexText name={t('Lock up time')} value={countDown} /> : ''}
|
||||
{/* <FlexText name={t('possess LP')} value={board.userData?.amount} /> */}
|
||||
<FlexText name={t('possess LP')} value={board.userData?.amount / boardsDataCurAmount?.curAmount || 0} />
|
||||
</div>
|
||||
)}
|
||||
<CardActionsContainer board={board} account={account} />
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ export interface ExpandableSectionProps {
|
|||
isCommunityFarm?: boolean
|
||||
img?: string
|
||||
tokenSymbol?: string
|
||||
amount?: number
|
||||
}
|
||||
|
||||
const Wrapper = styled(Flex)`
|
||||
|
|
@ -67,7 +68,7 @@ const Wrapper = styled(Flex)`
|
|||
`
|
||||
const HeaderFlex = styled(Flex)``
|
||||
|
||||
const CardHeading: React.FC<ExpandableSectionProps> = ({ name, img, tokenSymbol }) => {
|
||||
const CardHeading: React.FC<ExpandableSectionProps> = ({ name, img, tokenSymbol, amount }) => {
|
||||
const { t } = useTranslation()
|
||||
|
||||
return (
|
||||
|
|
@ -77,9 +78,11 @@ const CardHeading: React.FC<ExpandableSectionProps> = ({ name, img, tokenSymbol
|
|||
<Heading mb="4px">{name}</Heading>
|
||||
{/* <Question text={t('To join board, you need to stake at least 0.1% total supply of Token')} /> */}
|
||||
</HeaderFlex>
|
||||
{/* <div className="ribbon">
|
||||
<div className="ribbon1">{t('Staked')}</div>
|
||||
</div> */}
|
||||
{amount > 0 && (
|
||||
<div className="ribbon">
|
||||
<div className="ribbon1">{t('Staked')}</div>
|
||||
</div>
|
||||
)}
|
||||
</Wrapper>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ const FlexLayoutMain = styled(FlexLayout)`
|
|||
const Boards: React.FC = () => {
|
||||
const { t } = useTranslation()
|
||||
const boardsList = useBoards()
|
||||
// console.log('boardsList', boardsList)
|
||||
const account = useAccount()
|
||||
|
||||
const dispatch = useDispatch()
|
||||
|
|
@ -56,6 +55,8 @@ const Boards: React.FC = () => {
|
|||
const [boardNum, setBoardNum] = useState(0)
|
||||
const [holderNum, setHolder] = useState(0)
|
||||
|
||||
const [boardsDataList, setBoardsDataList] = useState([])
|
||||
|
||||
// 获取分红总额
|
||||
const fetchBoardShares = async () => {
|
||||
const boardsData = await Promise.all(
|
||||
|
|
@ -75,25 +76,31 @@ const Boards: React.FC = () => {
|
|||
])
|
||||
return {
|
||||
pid: boardConfig.pid,
|
||||
totalAmount: getBalanceAmount(new BigNumber(boardPoolInfo.totalAmount._hex)).toNumber(),
|
||||
num: new BigNumber(boardPoolInfo?.num?._hex).toNumber(),
|
||||
curAmount: getBalanceAmount(new BigNumber(boardPoolInfo.curAmount._hex)).toNumber(),
|
||||
// totalAmount: getBalanceAmount(new BigNumber(boardPoolInfo.totalAmount._hex)).toNumber(),
|
||||
holderNum: new BigNumber(boardPoolInfo?.holderNum?._hex).toNumber(),
|
||||
waitWithdrawAmount: getBalanceAmount(new BigNumber(waitWithdrawAmount.balance._hex)).toNumber(),
|
||||
totalReward: new BigNumber(boardPoolInfo?.totalReward?._hex).toNumber(),
|
||||
}
|
||||
}),
|
||||
)
|
||||
|
||||
let total = 0
|
||||
let waitWithdrawAmountValue = 0
|
||||
let totalReward = 0
|
||||
boardsData.forEach((item) => {
|
||||
total += item.totalAmount
|
||||
total += item.curAmount
|
||||
totalReward += item.totalReward
|
||||
waitWithdrawAmountValue += item.waitWithdrawAmount
|
||||
if (item.pid === 1) {
|
||||
setBoardNum(item.num)
|
||||
setBoardNum(item.holderNum)
|
||||
} else if (item.pid === 2) {
|
||||
setHolder(item.num)
|
||||
setHolder(item.holderNum)
|
||||
}
|
||||
})
|
||||
setBoardsDataList(boardsData)
|
||||
setTotalAmount(total)
|
||||
setShareOutBonus(waitWithdrawAmountValue)
|
||||
setShareOutBonus(totalReward)
|
||||
}
|
||||
useEffect(() => {
|
||||
dispatch(fetchBoardsPublicDataAsync())
|
||||
|
|
@ -108,7 +115,7 @@ const Boards: React.FC = () => {
|
|||
<div>
|
||||
<FlexLayout>
|
||||
{boardsList.map((board) => (
|
||||
<BoardCard key={board.pid} board={board} account={account} removed />
|
||||
<BoardCard boardsData={boardsDataList} key={board.pid} board={board} account={account} removed />
|
||||
))}
|
||||
</FlexLayout>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
import React, { useState } from 'react'
|
||||
import styled from 'styled-components'
|
||||
import { useDispatch } from 'react-redux'
|
||||
import { fetchReferralInfoAsync } from 'state/actions'
|
||||
import { useAccount } from 'state/userInfo/hooks'
|
||||
import { formatDivNumber } from 'utils/formatBalance'
|
||||
import { useTranslation } from 'contexts/Localization'
|
||||
import useToast from 'hooks/useToast'
|
||||
|
|
@ -54,6 +57,8 @@ const TextDiv = styled(Text)`
|
|||
`
|
||||
|
||||
const ConnectedCom: React.FC = () => {
|
||||
const dispatch = useDispatch()
|
||||
const account = useAccount()
|
||||
const { t } = useTranslation()
|
||||
const [onBuyModal] = useModal(<BuyNftModal />)
|
||||
const referralNormalConfigInfo = useReferralNormalConfigInfo()
|
||||
|
|
@ -65,6 +70,7 @@ const ConnectedCom: React.FC = () => {
|
|||
setLoading(true)
|
||||
try {
|
||||
await withdraw()
|
||||
dispatch(fetchReferralInfoAsync(account))
|
||||
setLoading(false)
|
||||
toastSuccess(t('Successfully claimed!'))
|
||||
} catch (error) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue