Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | /* eslint-disable @typescript-eslint/no-unsafe-argument */ import { useApi } from './use-api'; import { ApiResource } from '@models'; import { MempoolTransaction } from '@stacks/stacks-blockchain-api-types'; import { selectAddress } from '@store/keys'; import { useCallback } from 'react'; import { useQuery } from 'react-query'; import { useSelector } from 'react-redux'; interface UseMempool { mempoolTxs: MempoolTransaction[]; outboundMempoolTxs: MempoolTransaction[]; refetch(): Promise<any>; } export function useMempool(): UseMempool { const api = useApi(); const address = useSelector(selectAddress); const mempoolFetcher = useCallback( ({ queryKey }) => { const [, walletAddress] = queryKey; Iif (!walletAddress) return; return api.getMempoolTransactions(walletAddress); }, [api] ); const { data: mempoolTxs = [], refetch } = useQuery( [ApiResource.Mempool, address], mempoolFetcher ); const outboundMempoolTxs = mempoolTxs.filter(tx => tx.sender_address === address); const pendingMempoolTxs = mempoolTxs.filter(tx => tx.tx_status === 'pending'); return { mempoolTxs: pendingMempoolTxs, outboundMempoolTxs, refetch }; } |