Merge branch 'dev' into myf-dev
This commit is contained in:
commit
6b965eef3c
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,11 +53,11 @@ 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 ? (
|
||||||
<Button onClick={onPresentDeposit}>{t(`pledge`)}</Button>
|
<Button onClick={onPresentDeposit}>{t(`pledge`)}</Button>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue