This only affects the gui.
Fee-bumping of transactions that are already confirmed or are already conflicted by other transactions should not be offered by the gui.
This only affects the gui.
Fee-bumping of transactions that are already confirmed or are already conflicted by other transactions should not be offered by the gui.
ACK fa4b00f.
Sorry, fixed up typo in commit message.
re-ACK fa2457e.
It can be a bit heavy, but the check wallet->IsAllFromMe() makes a lot of sense, there is no way to bump received transactions.
Food for thought: Move more checks into PreconditionChecks and use that instead: https://github.com/instagibbs/bitcoin/commit/718f05cab5fe632c5dc4e3c689d5e4cd51331089
This makes reasoning about what is supposed to be called easier in the future.
Restarted travis job due to AssertionError: Mempool sync failed in wallet_backup.py.
@instagibbs Thx. Your commit seems like a proper fix.
https://github.com/bitcoin/bitcoin/pull/12296/commits/fabefab1e202cac84ac0b2ba837672feb2662119 utACK. We can debate what checks to roll into that later.
This should be tested with a big wallet now that IsMine is called when the context menu opens.
233 | @@ -228,6 +234,7 @@ Result CreateTransaction(const CWallet* wallet, const uint256& txid, const CCoin 234 | } 235 | } 236 | 237 | +
Nit, remove.
utACK faca18dcf499e36069ce5fcd3e02a5ee86639436
This should be tested with a big wallet now that IsMine is called when the context menu opens.
I could be misunderstanding the concern, but I'd expect the size of the wallet not to make a big difference if IsMine is only called for the one transaction that's clicked.
@promag Thanks for raising the issue. Though, I confirmed that it is indeed only called when the context menue opens, so it shouldn't be a problem.
Just saying that the UI will block because of IO and all, and that may be noticeable on big wallets (lots of keys) - reason AllFromMe must fetch all spent scriptPubKey and call IsMine for each one.
70 | + errors.push_back("Transaction is not BIP 125 replaceable"); 71 | + return feebumper::Result::WALLET_ERROR; 72 | + } 73 | + 74 | + if (wtx.mapValue.count("replaced_by_txid")) { 75 | + errors.push_back(strprintf("Cannot bump transaction %s which was already bumped by transaction %s", wtx.GetHash().ToString(), wtx.mapValue.at("replaced_by_txid")));
Could avoid 2nd lookup, but looks more clean this way.
utACK faca18d.
utACK faca18dcf499e36069ce5fcd3e02a5ee86639436