import { ModalProps } from '../../types/modal' import Modal from '../shared/Modal' import { useTranslation } from 'next-i18next' import { PerpMarket } from '@blockworks-foundation/mango-v4' import Button from '@components/shared/Button' import useOracleProvider from 'hooks/useOracleProvider' import { ArrowTopRightOnSquareIcon } from '@heroicons/react/20/solid' import Tooltip from '@components/shared/Tooltip' import { useRouter } from 'next/router' interface PerpMarketDetailsModalProps { market: PerpMarket | undefined } type ModalCombinedProps = PerpMarketDetailsModalProps & ModalProps const PerpMarketDetailsModal = ({ isOpen, onClose, market, }: ModalCombinedProps) => { const { t } = useTranslation(['common', 'trade']) const { oracleProvider, oracleLinkPath } = useOracleProvider() const router = useRouter() const goToPerpDetails = (marketName: string) => { router.push(`/stats?market=${marketName}`, undefined, { shallow: true }) } return market ? (

{t('trade:market-details', { market: market.name })}

{t('trade:min-order-size')}

{market.minOrderSize}

{t('trade:tick-size')}

{market.tickSize}

{t('trade:init-leverage')}

{(1 / (market.initBaseLiabWeight.toNumber() - 1)).toFixed(2)}x

{t('trade:max-leverage')}

{(1 / (market.maintBaseLiabWeight.toNumber() - 1)).toFixed(2)}x

{t('fees')}

{(100 * market.makerFee.toNumber()).toFixed(2)}%{' '} {t('trade:maker')} | {(100 * market.takerFee.toNumber()).toFixed(2)}%{' '} {t('trade:taker')}

{t('trade:funding-limits')}

{(100 * market.minFunding.toNumber()).toFixed(2)}%{' '} to{' '} {(100 * market.maxFunding.toNumber()).toFixed(2)}%

{t('trade:oracle')}

{oracleLinkPath ? ( {oracleProvider} ) : (

{oracleProvider}

)}
{t('trade:tooltip-insured', { tokenOrMarket: market.name })} Learn more
} >

{t('trade:insured', { token: '' })}

{market.groupInsuranceFund ? t('yes') : t('no')}

) : null } export default PerpMarketDetailsModal