diff options
author | MarcoFalke <falke.marco@gmail.com> | 2019-05-23 11:37:17 -0400 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2019-05-23 11:37:20 -0400 |
commit | b4223dd5f11381157aa8dd64e6ae6ac5f2062741 (patch) | |
tree | f96c6366d65ca60c17f24ece94a42a44b04fc669 | |
parent | 12fd4bbd1ed928e3ce2f6ce2118bbaec07898bac (diff) | |
parent | bb41e632ca94bea9b9a39592803f8faafbaa25f2 (diff) | |
download | bitcoin-b4223dd5f11381157aa8dd64e6ae6ac5f2062741.tar.xz |
Merge #16079: wallet_balance.py: Prevent edge cases
bb41e632ca wallet_balance.py: Prevent edge cases (Steven Roose)
Pull request description:
I ran into this edge case when running the test on Elements. I had a 0-value output as change.
ACKs for commit bb41e6:
Tree-SHA512: ef4c25289cafcdb4437f11ed537664dff5afedcefab75a46f985d3be70551de2d3bc8e9cfcb22c0f3d7d2eb95ff40df78b8d01dbacbf90c36bca00426937b0a2
-rwxr-xr-x | test/functional/wallet_balance.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/test/functional/wallet_balance.py b/test/functional/wallet_balance.py index 4d1f1ccdc1..15f2195e21 100755 --- a/test/functional/wallet_balance.py +++ b/test/functional/wallet_balance.py @@ -28,12 +28,17 @@ def create_transactions(node, address, amt, fees): for utxo in utxos: inputs.append({"txid": utxo["txid"], "vout": utxo["vout"]}) ins_total += utxo['amount'] - if ins_total + max(fees) > amt: + if ins_total >= amt + max(fees): break + # make sure there was enough utxos + assert ins_total >= amt + max(fees) txs = [] for fee in fees: - outputs = {address: amt, node.getrawchangeaddress(): ins_total - amt - fee} + outputs = {address: amt} + # prevent 0 change output + if ins_total > amt + fee: + outputs[node.getrawchangeaddress()] = ins_total - amt - fee raw_tx = node.createrawtransaction(inputs, outputs, 0, True) raw_tx = node.signrawtransactionwithwallet(raw_tx) assert_equal(raw_tx['complete'], True) |