diff --git a/src/BlockTransactions.tsx b/src/BlockTransactions.tsx index 02352d7..f8a3bf9 100644 --- a/src/BlockTransactions.tsx +++ b/src/BlockTransactions.tsx @@ -34,7 +34,10 @@ const BlockTransactions: React.FC = () => { [params.blockNumber] ); - const txs = useBlockTransactions(provider, blockNumber.toNumber()); + const [totalTxs, txs] = useBlockTransactions( + provider, + blockNumber.toNumber() + ); const page = useMemo(() => { if (!txs) { @@ -43,7 +46,7 @@ const BlockTransactions: React.FC = () => { const pageStart = (pageNumber - 1) * PAGE_SIZE; return txs.slice(pageStart, pageStart + PAGE_SIZE); }, [txs, pageNumber]); - const total = useMemo(() => txs?.length ?? 0, [txs]); + const total = totalTxs; document.title = `Block #${blockNumber} Txns | Otterscan`; @@ -52,7 +55,7 @@ const BlockTransactions: React.FC = () => { diff --git a/src/useErigonHooks.ts b/src/useErigonHooks.ts index 8fe170e..56677af 100644 --- a/src/useErigonHooks.ts +++ b/src/useErigonHooks.ts @@ -67,7 +67,8 @@ export const readBlock = async ( export const useBlockTransactions = ( provider: ethers.providers.JsonRpcProvider | undefined, blockNumber: number -) => { +): [number | undefined, ProcessedTransaction[] | undefined] => { + const [totalTxs, setTotalTxs] = useState(); const [txs, setTxs] = useState(); useEffect(() => { @@ -114,6 +115,7 @@ export const useBlockTransactions = ( ) .reverse(); setTxs(rawTxs); + setTotalTxs(result.fullblock.transactionCount); const checkTouchMinerAddr = await Promise.all( rawTxs.map(async (res) => { @@ -139,7 +141,7 @@ export const useBlockTransactions = ( readBlock(); }, [provider, blockNumber]); - return txs; + return [totalTxs, txs]; }; export const useBlockData = (