import { useState } from 'react' import dayjs from 'dayjs' import { Table, Thead, Tbody, Tr, Th, Td } from 'react-super-responsive-table' import { ArrowSmDownIcon, ChevronLeftIcon, ChevronRightIcon, EmojiHappyIcon, EmojiSadIcon, ExternalLinkIcon, } from '@heroicons/react/outline' import useMangoStore from '../stores/useMangoStore' import { tokenPrecision } from '../utils' import { useSortableData } from '../hooks/useSortableData' import { LinkButton } from './Button' const LiquidationHistoryTable = () => { const liquidationHistory = useMangoStore((s) => s.liquidationHistory) const [showLiquidationDetail, setShowLiquidationDetail] = useState(null) const { items, requestSort, sortConfig } = useSortableData(liquidationHistory) const renderTransactionTime = (timestamp) => { const date = new Date(timestamp) return ( <>
{date.toLocaleDateString()}
{date.toLocaleTimeString()}
) } return (
{liquidationHistory.length > 0 ? ( showLiquidationDetail ? (
setShowLiquidationDetail(null)} > Back
View Transaction
{dayjs(showLiquidationDetail.block_datetime).format( 'ddd D MMM YYYY' )}{' '} at{' '} {dayjs(showLiquidationDetail.block_datetime).format( 'h:mma' )}
Liquidated Asset
{showLiquidationDetail.in_token_symbol}
Price
${showLiquidationDetail.in_token_price.toFixed(2)}
Bailout Amount
{showLiquidationDetail.in_token_amount.toFixed(4)}
Bailout Value
${showLiquidationDetail.in_token_usd.toFixed(4)}
Liquidator fee
${showLiquidationDetail.liquidation_fee_usd.toFixed(4)}
Collateral Ratio
{(showLiquidationDetail.coll_ratio * 100).toFixed(2)}%
{showLiquidationDetail.balances.map((asset, index) => ( ))}
Asset Price Start Deposits Start Borrows Liquidator Transfers
{asset.symbol}
${asset.price.toFixed(2)} {asset.start_assets.toFixed(4)} {asset.start_liabs.toFixed(4)} {+(asset.end_assets - asset.start_assets).toFixed( 4 ) + +(asset.start_liabs - asset.end_liabs).toFixed(4)}
) : (
{/* */} {items.map((transaction, index) => ( setShowLiquidationDetail(transaction)} > {/* */} ))}
requestSort('block_time')} > Date/Time requestSort('symbol')} > Liquidated Asset requestSort('coll_ratio')} > Collateral Ratio requestSort('in_token_price')} > Price requestSort('in_token_amount')} > Bailout Amount requestSort('in_token_usd')} > Bailout Value requestSort('liquidation_fee_usd')} > Liquidator Fee
{renderTransactionTime(transaction.block_datetime)}
{transaction.in_token_symbol}
{(transaction.coll_ratio * 100).toFixed(2)}% ${transaction.in_token_price.toFixed(2)} {transaction.in_token_amount.toFixed( tokenPrecision[transaction.in_token_symbol] )}{' '} {transaction.in_token_symbol} ${transaction.in_token_usd.toFixed(2)} ${transaction.liquidation_fee_usd.toFixed(2)}
) ) : (
No liquidations. Happy days
)}
) } export default LiquidationHistoryTable