mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-07-21 14:29:41 +00:00
fix(amm): deduplicate transaction status polls
This commit is contained in:
parent
72bde7af6e
commit
3508bfbf42
@ -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;
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
|
||||
#include <QObject>
|
||||
#include <QHash>
|
||||
#include <QSet>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QVariant>
|
||||
@ -86,6 +87,7 @@ private:
|
||||
qint64 deadlineMs = 0;
|
||||
};
|
||||
QHash<QString, PendingTransaction> m_pendingTransactions;
|
||||
QSet<QString> m_transactionPollsInFlight;
|
||||
};
|
||||
|
||||
#endif // AMM_UI_BACKEND_H
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user