aboutsummaryrefslogtreecommitdiff
path: root/qa/rpc-tests
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2014-09-03 15:07:43 -0400
committerAlex Morcos <morcos@chaincode.com>2014-09-05 09:33:13 -0400
commit3a7c3483b6df12e84aefb937b85afec746b06b5e (patch)
tree6e8f24336d6c8359b09f7a6de6c80409903c19b9 /qa/rpc-tests
parentb8d92236f61699846f67d8ce6cb55458a46f9de1 (diff)
downloadbitcoin-3a7c3483b6df12e84aefb937b85afec746b06b5e.tar.xz
Fix make_change to not create half-satoshis
Diffstat (limited to 'qa/rpc-tests')
-rw-r--r--qa/rpc-tests/util.py10
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):