import { Flex } from '@chakra-ui/react'; import BigNumber from 'bignumber.js'; import React from 'react'; import type { Block } from 'types/api/block'; import type { ClusterChainConfig } from 'types/multichain'; import { route } from 'nextjs-routes'; import config from 'configs/app'; import getBlockTotalReward from 'lib/block/getBlockTotalReward'; import { Link } from 'toolkit/chakra/link'; import { Skeleton } from 'toolkit/chakra/skeleton'; import { TableCell, TableRow } from 'toolkit/chakra/table'; import { Tooltip } from 'toolkit/chakra/tooltip'; import BlockGasUsed from 'ui/shared/block/BlockGasUsed'; import BlockPendingUpdateHint from 'ui/shared/block/BlockPendingUpdateHint'; import AddressEntity from 'ui/shared/entities/address/AddressEntity'; import BlockEntity from 'ui/shared/entities/block/BlockEntity'; import ChainIcon from 'ui/shared/externalChains/ChainIcon'; import IconSvg from 'ui/shared/IconSvg'; import TimeWithTooltip from 'ui/shared/time/TimeWithTooltip'; import Utilization from 'ui/shared/Utilization/Utilization'; import NativeCoinValue from 'ui/shared/value/NativeCoinValue'; import SimpleValue from 'ui/shared/value/SimpleValue'; interface Props { data: Block; isLoading?: boolean; animation?: string; enableTimeIncrement?: boolean; chainData?: ClusterChainConfig; } const isRollup = config.features.rollup.isEnabled; const BlocksTableItem = ({ data, isLoading, enableTimeIncrement, animation, chainData }: Props) => { const totalReward = getBlockTotalReward(data); const burntFees = BigNumber(data.burnt_fees || 0); const txFees = BigNumber(data.transaction_fees || 0); return ( { chainData && ( ) } { data.celo?.l1_era_finalized_epoch_number && ( ) } { data.is_pending_update && } { data.size?.toLocaleString() || 'N/A' } { !config.UI.views.block.hiddenFields?.miner && ( ) } { data.transactions_count > 0 ? ( { data.transactions_count } ) : data.transactions_count } { BigNumber(data.gas_used || 0).toFormat() } { !isRollup && !config.UI.views.block.hiddenFields?.total_reward && ( ) } { !isRollup && !config.UI.views.block.hiddenFields?.burnt_fees && ( } loading={ isLoading } display="flex" /> ) } { !isRollup && !config.UI.views.block.hiddenFields?.base_fee && data.base_fee_per_gas && ( ) } ); }; export default React.memo(BlocksTableItem);