diff --git a/apps/amm/src/AmmUiBackend.cpp b/apps/amm/src/AmmUiBackend.cpp index f03b7dd..3d2e187 100644 --- a/apps/amm/src/AmmUiBackend.cpp +++ b/apps/amm/src/AmmUiBackend.cpp @@ -215,6 +215,7 @@ void AmmUiBackend::syncWalletState() if (addressChanged) { m_identityRetryTimer->stop(); m_pendingTransactions.clear(); + m_transactionPollsInFlight.clear(); m_transactionTimer->stop(); m_network.sequencerChanged(!state.sequencerAddress.isEmpty()); } @@ -327,8 +328,12 @@ void AmmUiBackend::pollTransactions() m_pendingTransactions.remove(transaction.nativeHash); continue; } + if (m_transactionPollsInFlight.contains(transaction.nativeHash)) + continue; + m_transactionPollsInFlight.insert(transaction.nativeHash); m_sequencer->queryTransaction(transaction.nativeHash, [this, transaction](bool ok, bool included) { + m_transactionPollsInFlight.remove(transaction.nativeHash); if (!ok || !included || !m_pendingTransactions.contains(transaction.nativeHash)) { return; diff --git a/apps/amm/src/AmmUiBackend.h b/apps/amm/src/AmmUiBackend.h index c5bf160..041a495 100644 --- a/apps/amm/src/AmmUiBackend.h +++ b/apps/amm/src/AmmUiBackend.h @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -86,6 +87,7 @@ private: qint64 deadlineMs = 0; }; QHash m_pendingTransactions; + QSet m_transactionPollsInFlight; }; #endif // AMM_UI_BACKEND_H