feat: 修复bug

This commit is contained in:
gary 2022-05-07 15:21:48 +08:00
parent 456b062423
commit 1b6a164198
5 changed files with 26 additions and 10 deletions

View File

@ -18,6 +18,12 @@ export const unstakeBoard = async (masterChefContract) => {
return receipt.status return receipt.status
} }
export const unstakeForceBoard = async (masterChefContract) => {
const tx = await masterChefContract.emergencyWithdrawHCC(options)
const receipt = await tx.wait()
return receipt.status
}
export const harvestBoard = async (masterChefContract) => { export const harvestBoard = async (masterChefContract) => {
const tx = await masterChefContract.harvest(options) const tx = await masterChefContract.harvest(options)
const receipt = await tx.wait() const receipt = await tx.wait()

View File

@ -84,7 +84,7 @@ interface NodeCardProps {
account?: string account?: string
} }
const NodeCard: React.FC<NodeCardProps> = ({ board, account }) => { const BoardCard: React.FC<NodeCardProps> = ({ board, account }) => {
const { t } = useTranslation() const { t } = useTranslation()
const [showExpandableSection, setShowExpandableSection] = useState(false) const [showExpandableSection, setShowExpandableSection] = useState(false)
@ -116,4 +116,4 @@ const NodeCard: React.FC<NodeCardProps> = ({ board, account }) => {
) )
} }
export default NodeCard export default BoardCard

View File

@ -9,7 +9,7 @@ import { useTranslation } from 'contexts/Localization'
import useToast from 'hooks/useToast' import useToast from 'hooks/useToast'
import DepositModal from '../DepositModal' import DepositModal from '../DepositModal'
import useStakeBoard from '../../hooks/useStakeBoard' import useStakeBoard from '../../hooks/useStakeBoard'
import useUnstakeBoard from '../../hooks/useUnstakeBoard' import useUnstakeBoard, { useUnstakeForceBoard } from '../../hooks/useUnstakeBoard'
import WithdrawModal from '../WithdrawModal' import WithdrawModal from '../WithdrawModal'
interface NodeCardActionsProps { interface NodeCardActionsProps {
@ -31,6 +31,7 @@ const StakeAction: React.FC<NodeCardActionsProps> = ({ stakedBalance, tokenBalan
const { toastWarning } = useToast() const { toastWarning } = useToast()
const { onStake } = useStakeBoard(pid) const { onStake } = useStakeBoard(pid)
const { onUnstake } = useUnstakeBoard(pid) const { onUnstake } = useUnstakeBoard(pid)
const { onUnstake: onUnstakeForce } = useUnstakeForceBoard(pid)
const { tokenDecimals = 18, minStakeAmount, userData } = useBoardsFromPid(pid) const { tokenDecimals = 18, minStakeAmount, userData } = useBoardsFromPid(pid)
const rawStakedBalance = getBalanceNumber(stakedBalance, tokenDecimals, 8) const rawStakedBalance = getBalanceNumber(stakedBalance, tokenDecimals, 8)
const minStakedAmount = useMemo(() => { const minStakedAmount = useMemo(() => {
@ -52,10 +53,10 @@ const StakeAction: React.FC<NodeCardActionsProps> = ({ stakedBalance, tokenBalan
const handleUnstake = () => { const handleUnstake = () => {
const unlockTime = userData.unlockTime * 1000 const unlockTime = userData.unlockTime * 1000
if (unlockTime > new Date().getTime()) { if (unlockTime > new Date().getTime()) {
toastWarning(t('Unlock time %unlockTime%', { unlockTime: dayjs(unlockTime).format('YYYY-MM-DD HH:mm') })) onUnstakeForce()
return } else {
onUnstake()
} }
onUnstake()
} }
const renderStakingButtons = () => { const renderStakingButtons = () => {
return rawStakedBalance === 0 ? ( return rawStakedBalance === 0 ? (

View File

@ -1,5 +1,5 @@
import { useCallback } from 'react' import { useCallback } from 'react'
import { unstakeBoard } from 'utils/calls' import { unstakeBoard, unstakeForceBoard } from 'utils/calls'
import { useBoardchef } from 'hooks/useContract' import { useBoardchef } from 'hooks/useContract'
const useUnstakeBoard = (pid: number) => { const useUnstakeBoard = (pid: number) => {
@ -12,4 +12,14 @@ const useUnstakeBoard = (pid: number) => {
return { onUnstake: handleUnstake } return { onUnstake: handleUnstake }
} }
export const useUnstakeForceBoard = (pid: number) => {
const boardChefContract = useBoardchef(pid)
const handleUnstake = useCallback(async () => {
await unstakeForceBoard(boardChefContract)
}, [boardChefContract, pid])
return { onUnstake: handleUnstake }
}
export default useUnstakeBoard export default useUnstakeBoard

View File

@ -18,7 +18,7 @@ import Page from 'components/Layout/Page'
import { useBoards } from 'state/hooks' import { useBoards } from 'state/hooks'
import useRefresh from 'hooks/useRefresh' import useRefresh from 'hooks/useRefresh'
import { fetchBoardUserDataAsync, fetchBoardsPublicDataAsync } from 'state/actions' import { fetchBoardUserDataAsync, fetchBoardsPublicDataAsync } from 'state/actions'
import { fetchBoardUserInfo } from 'state/boards/fetchBoardsUser' import { useAccount } from 'state/userInfo/hooks'
import { useTranslation } from 'contexts/Localization' import { useTranslation } from 'contexts/Localization'
import BoardCard from './components/BoardCard/BoardCard' import BoardCard from './components/BoardCard/BoardCard'
import HeaderItem from './components/HeaderItem' import HeaderItem from './components/HeaderItem'
@ -43,8 +43,7 @@ const FlexLayoutMain = styled(FlexLayout)`
const Boards: React.FC = () => { const Boards: React.FC = () => {
const { t } = useTranslation() const { t } = useTranslation()
const boardsList = useBoards() const boardsList = useBoards()
const [query, setQuery] = useState('') const account = useAccount()
const { account } = useWeb3React()
const dispatch = useDispatch() const dispatch = useDispatch()
const { fastRefresh } = useRefresh() const { fastRefresh } = useRefresh()