'use client'; import { createActionsColumn } from '@/components/blocks/asset-table/asset-table-columns'; import { DataTableColumnCell } from '@/components/blocks/data-table/data-table-column-cell'; import { DataTableColumnHeader } from '@/components/blocks/data-table/data-table-column-header'; import { EvmAddress } from '@/components/blocks/evm-address/evm-address'; import { PercentageProgressBar } from '@/components/blocks/percentage-progress/percentage-progress'; import { EvmAddressBalances } from '@/components/ui/evm-address-balances'; import { assetConfig } from '@/lib/config/assets'; import { formatNumber } from '@/lib/number'; import { createColumnHelper } from '@tanstack/react-table'; import BigNumber from 'bignumber.js'; import { Lock, PauseCircle, PlayCircle, Unlock } from 'lucide-react'; import type { Address } from 'viem'; import type { StableCoinAsset } from './data'; const columnHelper = createColumnHelper(); export const columns = [ columnHelper.accessor('id', { header: ({ column }) => Address, cell: ({ getValue }) => ( ), enableColumnFilter: false, }), columnHelper.accessor('name', { header: ({ column }) => Name, cell: ({ getValue }) => {getValue()}, enableColumnFilter: false, }), columnHelper.accessor('symbol', { header: ({ column }) => Symbol, cell: ({ getValue }) => {getValue()}, enableColumnFilter: false, }), columnHelper.accessor('totalSupply', { header: ({ column }) => ( Total Supply ), cell: ({ getValue }) => {formatNumber(getValue())}, enableColumnFilter: false, }), columnHelper.accessor('collateral', { header: ({ column }) => Collateral, cell: ({ getValue, row }) => { const totalSupply = new BigNumber(row.getValue('totalSupply')); const collateral = new BigNumber(getValue()); const ratio = totalSupply.eq(0) ? new BigNumber(100) : collateral.div(totalSupply).times(100); return ( ); }, enableColumnFilter: false, }), columnHelper.accessor('paused', { header: ({ column }) => Status, cell: ({ getValue }) => { const paused = getValue(); const Icon = icons[paused ? 'paused' : 'active']; return ( {Icon && } {paused ? 'Paused' : 'Active'} ); }, }), columnHelper.accessor('private', { header: ({ column }) => Private, cell: ({ getValue }) => { const privateAsset = !!getValue(); const Icon = icons[privateAsset ? 'private' : 'public']; return ( {Icon && } {privateAsset ? 'Private' : 'Public'} ); }, }), createActionsColumn(columnHelper, assetConfig.stablecoin), ]; export const icons = { active: PlayCircle, paused: PauseCircle, private: Lock, public: Unlock, };