|
|
@ -465,20 +465,9 @@ class Wallet: |
|
|
|
return conf, unconf |
|
|
|
|
|
|
|
|
|
|
|
def choose_tx_inputs( self, amount, fixed_fee, from_addr = None ): |
|
|
|
""" todo: minimize tx size """ |
|
|
|
total = 0 |
|
|
|
fee = self.fee if fixed_fee is None else fixed_fee |
|
|
|
|
|
|
|
def get_unspent_coins(self, domain=None): |
|
|
|
coins = [] |
|
|
|
prioritized_coins = [] |
|
|
|
domain = [from_addr] if from_addr else self.all_addresses() |
|
|
|
for i in self.frozen_addresses: |
|
|
|
if i in domain: domain.remove(i) |
|
|
|
|
|
|
|
for i in self.prioritized_addresses: |
|
|
|
if i in domain: domain.remove(i) |
|
|
|
|
|
|
|
if domain is None: domain = self.all_addresses() |
|
|
|
for addr in domain: |
|
|
|
h = self.history.get(addr, []) |
|
|
|
if h == ['*']: continue |
|
|
@ -490,20 +479,26 @@ class Wallet: |
|
|
|
if key in self.spent_outputs: continue |
|
|
|
output['tx_hash'] = tx_hash |
|
|
|
coins.append(output) |
|
|
|
return coins |
|
|
|
|
|
|
|
|
|
|
|
for addr in self.prioritized_addresses: |
|
|
|
h = self.history.get(addr, []) |
|
|
|
if h == ['*']: continue |
|
|
|
for tx_hash, tx_height in h: |
|
|
|
tx = self.transactions.get(tx_hash) |
|
|
|
for output in tx.d.get('outputs'): |
|
|
|
if output.get('address') != addr: continue |
|
|
|
key = tx_hash + ":%d" % output.get('index') |
|
|
|
if key in self.spent_outputs: continue |
|
|
|
output['tx_hash'] = tx_hash |
|
|
|
prioritized_coins.append(output) |
|
|
|
|
|
|
|
def choose_tx_inputs( self, amount, fixed_fee, from_addr = None ): |
|
|
|
""" todo: minimize tx size """ |
|
|
|
total = 0 |
|
|
|
fee = self.fee if fixed_fee is None else fixed_fee |
|
|
|
|
|
|
|
coins = [] |
|
|
|
prioritized_coins = [] |
|
|
|
domain = [from_addr] if from_addr else self.all_addresses() |
|
|
|
for i in self.frozen_addresses: |
|
|
|
if i in domain: domain.remove(i) |
|
|
|
|
|
|
|
for i in self.prioritized_addresses: |
|
|
|
if i in domain: domain.remove(i) |
|
|
|
|
|
|
|
coins = self.get_unspent_coins(domain) |
|
|
|
prioritized_coins = self.get_unspent_coins(self.prioritized_addresses) |
|
|
|
|
|
|
|
inputs = [] |
|
|
|
coins = prioritized_coins + coins |
|
|
|