2023-04-05 14:59:30 -07:00
|
|
|
import InlineNotification from '@components/shared/InlineNotification'
|
|
|
|
import { BN } from '@project-serum/anchor'
|
|
|
|
import { useWallet } from '@solana/wallet-adapter-react'
|
|
|
|
import GovernanceStore from '@store/governanceStore'
|
|
|
|
import { useTranslation } from 'next-i18next'
|
|
|
|
import {
|
|
|
|
MANGO_DAO_WALLET_GOVERNANCE,
|
|
|
|
MANGO_MINT_DECIMALS,
|
|
|
|
} from 'utils/governance/constants'
|
|
|
|
import { fmtTokenAmount } from 'utils/governance/tools'
|
|
|
|
import { formatNumericValue } from 'utils/numbers'
|
|
|
|
|
|
|
|
const OnBoarding = ({ minVotes }: { minVotes?: BN }) => {
|
|
|
|
const { connected } = useWallet()
|
|
|
|
const { t } = useTranslation(['governance'])
|
|
|
|
const governances = GovernanceStore((s) => s.governances)
|
|
|
|
const voter = GovernanceStore((s) => s.voter)
|
2023-05-29 05:29:43 -07:00
|
|
|
const loadingVoter = GovernanceStore((s) => s.loadingVoter)
|
2023-04-05 14:59:30 -07:00
|
|
|
|
|
|
|
const minVoterWeight = minVotes
|
|
|
|
? minVotes
|
|
|
|
: governances
|
2023-06-05 08:29:04 -07:00
|
|
|
? new BN(
|
|
|
|
governances[
|
|
|
|
MANGO_DAO_WALLET_GOVERNANCE.toBase58()
|
|
|
|
].account.config.minCommunityTokensToCreateProposal.toString()
|
|
|
|
)
|
2023-04-05 14:59:30 -07:00
|
|
|
: new BN(0)
|
|
|
|
const mintVoterWeightNumber = governances
|
|
|
|
? fmtTokenAmount(minVoterWeight, MANGO_MINT_DECIMALS)
|
|
|
|
: 0
|
|
|
|
|
2023-05-29 05:29:43 -07:00
|
|
|
return voter.voteWeight.cmp(minVoterWeight) !== -1 ||
|
|
|
|
!connected ? null : !loadingVoter ? (
|
2023-04-05 14:59:30 -07:00
|
|
|
<div className="mb-6">
|
|
|
|
<InlineNotification
|
|
|
|
type="error"
|
|
|
|
title={
|
|
|
|
<>
|
|
|
|
{t('on-boarding-description', {
|
|
|
|
amount: formatNumericValue(mintVoterWeightNumber),
|
|
|
|
})}{' '}
|
|
|
|
<a
|
|
|
|
href="https://dao.mango.markets"
|
|
|
|
target="_blank"
|
|
|
|
rel="noopener noreferrer"
|
|
|
|
>
|
|
|
|
{t('mango-governance')}
|
|
|
|
</a>
|
|
|
|
</>
|
|
|
|
}
|
|
|
|
desc={t('on-boarding-deposit-info')}
|
|
|
|
/>
|
|
|
|
</div>
|
2023-05-29 05:29:43 -07:00
|
|
|
) : null
|
2023-04-05 14:59:30 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
export default OnBoarding
|