From 53a291cc7e26df1b70aefdd9403dc1b98d164992 Mon Sep 17 00:00:00 2001 From: alter-eggo Date: Mon, 17 Jul 2023 21:35:21 +0400 Subject: [PATCH] fix: unprocessable pending txs balance subtraction, closes #3921 --- src/app/query/stacks/mempool/mempool.hooks.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/app/query/stacks/mempool/mempool.hooks.ts b/src/app/query/stacks/mempool/mempool.hooks.ts index d3b12e69306..bdf48e172d7 100644 --- a/src/app/query/stacks/mempool/mempool.hooks.ts +++ b/src/app/query/stacks/mempool/mempool.hooks.ts @@ -14,6 +14,7 @@ import { microStxToStx } from '@app/common/money/unit-conversion'; import { useTransactionsById } from '@app/query/stacks/transactions/transactions-by-id.query'; import { useCurrentAccountStxAddressState } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks'; +import { useStacksConfirmedTransactions } from '../transactions/transactions-with-transfers.hooks'; import { useAccountMempoolQuery } from './mempool.query'; const droppedCache = new Map(); @@ -65,10 +66,14 @@ export function useCurrentAccountMempool() { export function useCurrentAccountMempoolTransactionsBalance() { const address = useCurrentAccountStxAddressState(); const { transactions: pendingTransactions } = useStacksPendingTransactions(); + const confirmedTxs = useStacksConfirmedTransactions(); - const pendingOutboundTxs = pendingTransactions.filter( - tx => tx.tx_type === 'token_transfer' && tx.sender_address === address - ) as unknown as MempoolTokenTransferTransaction[]; + const pendingOutboundTxs = pendingTransactions.filter(tx => { + if (confirmedTxs.some(confirmedTx => confirmedTx.nonce === tx.nonce)) { + return false; + } + return tx.tx_type === 'token_transfer' && tx.sender_address === address; + }) as unknown as MempoolTokenTransferTransaction[]; const tokenTransferTxsBalance = pendingOutboundTxs.reduce( (acc, tx) => acc.plus(tx.token_transfer.amount),