prioritized coins
This commit is contained in:
parent
785075cf08
commit
aa7183c6ac
|
@ -555,6 +555,19 @@ class ElectrumWindow(QMainWindow):
|
||||||
|
|
||||||
self.freezeButton = b = EnterButton(_("Freeze"), toggle_freeze)
|
self.freezeButton = b = EnterButton(_("Freeze"), toggle_freeze)
|
||||||
hbox.addWidget(b)
|
hbox.addWidget(b)
|
||||||
|
|
||||||
|
def toggle_priority():
|
||||||
|
addr = self.get_current_addr(True)
|
||||||
|
if not addr: return
|
||||||
|
if addr in self.wallet.prioritized_addresses:
|
||||||
|
self.wallet.prioritized_addresses.remove(addr)
|
||||||
|
else:
|
||||||
|
self.wallet.prioritized_addresses.append(addr)
|
||||||
|
self.wallet.save()
|
||||||
|
self.update_receive_tab()
|
||||||
|
|
||||||
|
self.prioritizeButton = b = EnterButton(_("Set priority"), toggle_priority)
|
||||||
|
hbox.addWidget(b)
|
||||||
hbox.addStretch(1)
|
hbox.addStretch(1)
|
||||||
|
|
||||||
|
|
||||||
|
@ -579,6 +592,9 @@ class ElectrumWindow(QMainWindow):
|
||||||
t = _("Unfreeze") if addr in self.wallet.frozen_addresses else _("Freeze")
|
t = _("Unfreeze") if addr in self.wallet.frozen_addresses else _("Freeze")
|
||||||
self.freezeButton.setText(t)
|
self.freezeButton.setText(t)
|
||||||
|
|
||||||
|
t = _("Remove priority") if addr in self.wallet.prioritized_addresses else _("Set priority")
|
||||||
|
self.prioritizeButton.setText(t)
|
||||||
|
|
||||||
|
|
||||||
def create_list_tab(self, headers):
|
def create_list_tab(self, headers):
|
||||||
"generic tab creatino method"
|
"generic tab creatino method"
|
||||||
|
@ -660,6 +676,8 @@ class ElectrumWindow(QMainWindow):
|
||||||
item = QTreeWidgetItem( [ address, label, balance, tx] )
|
item = QTreeWidgetItem( [ address, label, balance, tx] )
|
||||||
if address in self.wallet.frozen_addresses:
|
if address in self.wallet.frozen_addresses:
|
||||||
item.setBackgroundColor(0, QColor('lightblue'))
|
item.setBackgroundColor(0, QColor('lightblue'))
|
||||||
|
elif address in self.wallet.prioritized_addresses:
|
||||||
|
item.setBackgroundColor(0, QColor('lightgreen'))
|
||||||
|
|
||||||
item.setFont(0, QFont(MONOSPACE_FONT))
|
item.setFont(0, QFont(MONOSPACE_FONT))
|
||||||
if gap > self.wallet.gap_limit and l == self.receive_list:
|
if gap > self.wallet.gap_limit and l == self.receive_list:
|
||||||
|
|
|
@ -260,6 +260,7 @@ class Wallet:
|
||||||
self.aliases = {} # aliases for addresses
|
self.aliases = {} # aliases for addresses
|
||||||
self.authorities = {} # trusted addresses
|
self.authorities = {} # trusted addresses
|
||||||
self.frozen_addresses = []
|
self.frozen_addresses = []
|
||||||
|
self.prioritized_addresses = []
|
||||||
|
|
||||||
self.receipts = {} # signed URIs
|
self.receipts = {} # signed URIs
|
||||||
self.receipt = None # next receipt
|
self.receipt = None # next receipt
|
||||||
|
@ -569,6 +570,7 @@ class Wallet:
|
||||||
'receipts':self.receipts,
|
'receipts':self.receipts,
|
||||||
'num_zeros':self.num_zeros,
|
'num_zeros':self.num_zeros,
|
||||||
'frozen_addresses':self.frozen_addresses,
|
'frozen_addresses':self.frozen_addresses,
|
||||||
|
'prioritized_addresses':self.prioritized_addresses,
|
||||||
}
|
}
|
||||||
f = open(self.path,"w")
|
f = open(self.path,"w")
|
||||||
f.write( repr(s) )
|
f.write( repr(s) )
|
||||||
|
@ -606,6 +608,7 @@ class Wallet:
|
||||||
self.receipts = d.get('receipts',{})
|
self.receipts = d.get('receipts',{})
|
||||||
self.num_zeros = d.get('num_zeros',0)
|
self.num_zeros = d.get('num_zeros',0)
|
||||||
self.frozen_addresses = d.get('frozen_addresses',[])
|
self.frozen_addresses = d.get('frozen_addresses',[])
|
||||||
|
self.prioritized_addresses = d.get('prioritized_addresses',[])
|
||||||
except:
|
except:
|
||||||
raise BaseException("cannot read wallet file")
|
raise BaseException("cannot read wallet file")
|
||||||
|
|
||||||
|
@ -648,10 +651,14 @@ class Wallet:
|
||||||
fee = self.fee if fixed_fee is None else fixed_fee
|
fee = self.fee if fixed_fee is None else fixed_fee
|
||||||
|
|
||||||
coins = []
|
coins = []
|
||||||
|
prioritized_coins = []
|
||||||
domain = [from_addr] if from_addr else self.all_addresses()
|
domain = [from_addr] if from_addr else self.all_addresses()
|
||||||
for i in self.frozen_addresses:
|
for i in self.frozen_addresses:
|
||||||
if i in domain: domain.remove(i)
|
if i in domain: domain.remove(i)
|
||||||
|
|
||||||
|
for i in self.prioritized_addresses:
|
||||||
|
if i in domain: domain.remove(i)
|
||||||
|
|
||||||
for addr in domain:
|
for addr in domain:
|
||||||
h = self.history.get(addr)
|
h = self.history.get(addr)
|
||||||
if h is None: continue
|
if h is None: continue
|
||||||
|
@ -660,7 +667,19 @@ class Wallet:
|
||||||
coins.append( (addr,item))
|
coins.append( (addr,item))
|
||||||
|
|
||||||
coins = sorted( coins, key = lambda x: x[1]['timestamp'] )
|
coins = sorted( coins, key = lambda x: x[1]['timestamp'] )
|
||||||
|
|
||||||
|
for addr in prioritized_addresses:
|
||||||
|
h = self.history.get(addr)
|
||||||
|
if h is None: continue
|
||||||
|
for item in h:
|
||||||
|
if item.get('raw_output_script'):
|
||||||
|
prioritized_coins.append( (addr,item))
|
||||||
|
|
||||||
|
prioritized_coins = sorted( prioritized_coins, key = lambda x: x[1]['timestamp'] )
|
||||||
|
|
||||||
inputs = []
|
inputs = []
|
||||||
|
coins = prioritized_coins + coins
|
||||||
|
|
||||||
for c in coins:
|
for c in coins:
|
||||||
addr, item = c
|
addr, item = c
|
||||||
v = item.get('value')
|
v = item.get('value')
|
||||||
|
|
Loading…
Reference in New Issue