diff options
author | Gavin Andresen <gavinandresen@gmail.com> | 2014-09-03 15:07:43 -0400 |
---|---|---|
committer | Alex Morcos <morcos@chaincode.com> | 2014-09-05 09:33:13 -0400 |
commit | 3a7c3483b6df12e84aefb937b85afec746b06b5e (patch) | |
tree | 6e8f24336d6c8359b09f7a6de6c80409903c19b9 | |
parent | b8d92236f61699846f67d8ce6cb55458a46f9de1 (diff) |
Fix make_change to not create half-satoshis
-rw-r--r-- | qa/rpc-tests/util.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/qa/rpc-tests/util.py b/qa/rpc-tests/util.py index da2b6df197..87baadc5d6 100644 --- a/qa/rpc-tests/util.py +++ b/qa/rpc-tests/util.py @@ -10,7 +10,7 @@ import os import sys sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "python-bitcoinrpc")) -from decimal import Decimal +from decimal import Decimal, ROUND_DOWN import json import random import shutil @@ -230,10 +230,12 @@ def make_change(from_node, amount_in, amount_out, fee): change = amount_in - amount if change > amount*2: # Create an extra change output to break up big inputs - outputs[from_node.getnewaddress()] = float(change/2) - change = change/2 + change_address = from_node.getnewaddress() + # Split change in two, being careful of rounding: + outputs[change_address] = Decimal(change/2).quantize(Decimal('0.00000001'), rounding=ROUND_DOWN) + change = amount_in - amount - outputs[change_address] if change > 0: - outputs[from_node.getnewaddress()] = float(change) + outputs[from_node.getnewaddress()] = change return outputs def send_zeropri_transaction(from_node, to_node, amount, fee): |