fix tx.get_value bug with pruned transactions

This commit is contained in:
ecdsa 2013-03-16 21:22:03 +01:00
parent a2ecc0e7bb
commit 8a74be39de
1 changed files with 8 additions and 15 deletions

View File

@ -805,7 +805,10 @@ class Transaction:
# return the balance for that tx
is_send = False
is_pruned = False
v_in = v_out = v_out_mine = 0
v_in_mine = 0 # sum of transaction inputs coming from my addresses
v_out = 0 # sum of all transaction outputs
v_out_mine = 0 # sum of outputs sent to my addresses
for item in self.inputs:
addr = item.get('address')
@ -816,7 +819,7 @@ class Transaction:
if value is None:
is_pruned = True
else:
v_in += value
v_in_mine += value
else:
is_pruned = True
@ -826,19 +829,9 @@ class Transaction:
if addr in addresses:
v_out_mine += value
if not is_pruned:
# all inputs are mine:
fee = v_out - v_in
v = v_out_mine - v_in
else:
# some inputs are mine:
fee = None
if is_send:
v = v_out_mine - v_out
else:
# no input is mine
v = v_out_mine
v = v_out_mine - v_in_mine
fee = None if is_pruned else v_out - v_in_mine
return is_send, v, fee
def as_dict(self):