fix tx.get_value bug with pruned transactions
This commit is contained in:
parent
a2ecc0e7bb
commit
8a74be39de
|
@ -805,7 +805,10 @@ class Transaction:
|
||||||
# return the balance for that tx
|
# return the balance for that tx
|
||||||
is_send = False
|
is_send = False
|
||||||
is_pruned = 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:
|
for item in self.inputs:
|
||||||
addr = item.get('address')
|
addr = item.get('address')
|
||||||
|
@ -816,7 +819,7 @@ class Transaction:
|
||||||
if value is None:
|
if value is None:
|
||||||
is_pruned = True
|
is_pruned = True
|
||||||
else:
|
else:
|
||||||
v_in += value
|
v_in_mine += value
|
||||||
else:
|
else:
|
||||||
is_pruned = True
|
is_pruned = True
|
||||||
|
|
||||||
|
@ -826,18 +829,8 @@ class Transaction:
|
||||||
if addr in addresses:
|
if addr in addresses:
|
||||||
v_out_mine += value
|
v_out_mine += value
|
||||||
|
|
||||||
if not is_pruned:
|
v = v_out_mine - v_in_mine
|
||||||
# all inputs are mine:
|
fee = None if is_pruned else v_out - v_in_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
|
|
||||||
|
|
||||||
return is_send, v, fee
|
return is_send, v, fee
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue