diff options
author | Matt Corallo <git@bluematt.me> | 2017-12-11 10:38:16 -0500 |
---|---|---|
committer | Matt Corallo <git@bluematt.me> | 2017-12-11 10:38:16 -0500 |
commit | 6ef86c92e7fcba866160d7a346fb260d7e4ab5bb (patch) | |
tree | bbab9b6865a55e61322d19babbdde45919eae972 /src | |
parent | 8ab6c0b09e4e734e3033d81fe0a25f09ca74ba26 (diff) |
Do not un-mark fInMempool on wallet txn if ATMP fails.
Irrespective of the failure reason, un-marking fInMempool
out-of-order is incorrect - it should be unmarked when
TransactionRemovedFromMempool fires.
Diffstat (limited to 'src')
-rw-r--r-- | src/wallet/wallet.cpp | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index cb81ec37f5..080bfffd5f 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -4114,11 +4114,6 @@ int CMerkleTx::GetBlocksToMaturity() const bool CWalletTx::AcceptToMemoryPool(const CAmount& nAbsurdFee, CValidationState& state) { - // Quick check to avoid re-setting fInMempool to false - if (mempool.exists(tx->GetHash())) { - return false; - } - // We must set fInMempool here - while it will be re-set to true by the // entered-mempool callback, if we did not there would be a race where a // user could call sendmoney in a loop and hit spurious out of funds errors @@ -4126,6 +4121,6 @@ bool CWalletTx::AcceptToMemoryPool(const CAmount& nAbsurdFee, CValidationState& // unavailable as we're not yet aware its in mempool. bool ret = ::AcceptToMemoryPool(mempool, state, tx, nullptr /* pfMissingInputs */, nullptr /* plTxnReplaced */, false /* bypass_limits */, nAbsurdFee); - fInMempool = ret; + fInMempool |= ret; return ret; } |