# 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')
if value is None:
is_pruned = True
else:
- v_in += value
+ v_in_mine += value
else:
is_pruned = True
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):