On top of #20876 only review this commit 3b9b0831d4ce152791e7953d175aa90b78008155
This PR gets rid of any side-effects that methods in MiniWallet
might leave if an exception is thrown. ie beforehand, if sendrawtransaction
failed we would have had an invalid utxo left in self._utxos
. More subtle - beforehand, if send_self_transfer
failed self._utxos
is always going to be modified bc the first thing send_self_transfer
does is sort self._utxos
. I think this is confusing, especially if tests are catching exceptions
Maybe I’m being paranoid with generate
, and side-effects probably wouldn’t cause as much confusion here. But originally, if anything failed in the for-loop https://github.com/bitcoin/bitcoin/compare/master...mjdietzx:test-miniwallet-no-side-effects?expand=1#diff-7932a60a9127fd22d10d367526fd7b987f9647ce017595f8b1af5c32d5db0083L38-L40 then self._utxos
would include utxos for all items processed before the failure. Seems like we’d prefer no side-effect to me