Merge pull request #7178 from SomberNight/202104_kivy_freeze_addrs
kivy: implement freezing addresses
This commit is contained in:
@@ -26,6 +26,7 @@ Builder.load_string('''
|
|||||||
memo: ''
|
memo: ''
|
||||||
amount: ''
|
amount: ''
|
||||||
status: ''
|
status: ''
|
||||||
|
is_frozen: False
|
||||||
BoxLayout:
|
BoxLayout:
|
||||||
spacing: '8dp'
|
spacing: '8dp'
|
||||||
height: '32dp'
|
height: '32dp'
|
||||||
@@ -36,7 +37,9 @@ Builder.load_string('''
|
|||||||
shorten: True
|
shorten: True
|
||||||
Widget
|
Widget
|
||||||
AddressLabel:
|
AddressLabel:
|
||||||
text: (root.amount if root.status == 'Funded' else root.status) + ' ' + root.memo
|
text:
|
||||||
|
(("({}) ".format(_("Frozen")) if root.is_frozen else "")
|
||||||
|
+ (root.amount if root.status == 'Funded' else root.status) + ' ' + root.memo)
|
||||||
color: .699, .699, .699, 1
|
color: .699, .699, .699, 1
|
||||||
font_size: '13sp'
|
font_size: '13sp'
|
||||||
shorten: True
|
shorten: True
|
||||||
@@ -133,6 +136,7 @@ Builder.load_string('''
|
|||||||
status: ''
|
status: ''
|
||||||
script_type: ''
|
script_type: ''
|
||||||
pk: ''
|
pk: ''
|
||||||
|
is_frozen: False
|
||||||
address_color: 1, 1, 1, 1
|
address_color: 1, 1, 1, 1
|
||||||
address_background_color: 0.3, 0.3, 0.3, 1
|
address_background_color: 0.3, 0.3, 0.3, 1
|
||||||
BoxLayout:
|
BoxLayout:
|
||||||
@@ -165,6 +169,9 @@ Builder.load_string('''
|
|||||||
BoxLabel:
|
BoxLabel:
|
||||||
text: _('Status')
|
text: _('Status')
|
||||||
value: root.status
|
value: root.status
|
||||||
|
BoxLabel:
|
||||||
|
text: _('Frozen')
|
||||||
|
value: str(root.is_frozen)
|
||||||
TopLabel:
|
TopLabel:
|
||||||
text: _('Private Key')
|
text: _('Private Key')
|
||||||
RefLabel:
|
RefLabel:
|
||||||
@@ -181,6 +188,11 @@ Builder.load_string('''
|
|||||||
height: '48dp'
|
height: '48dp'
|
||||||
text: _('Receive')
|
text: _('Receive')
|
||||||
on_release: root.receive_at()
|
on_release: root.receive_at()
|
||||||
|
Button:
|
||||||
|
size_hint: 0.5, None
|
||||||
|
height: '48dp'
|
||||||
|
text: _('Freeze') if not root.is_frozen else _('Unfreeze')
|
||||||
|
on_release: root.freeze_address()
|
||||||
Button:
|
Button:
|
||||||
size_hint: 0.5, None
|
size_hint: 0.5, None
|
||||||
height: '48dp'
|
height: '48dp'
|
||||||
@@ -196,12 +208,13 @@ class AddressPopup(Popup):
|
|||||||
super(AddressPopup, self).__init__(**kwargs)
|
super(AddressPopup, self).__init__(**kwargs)
|
||||||
self.title = _('Address Details')
|
self.title = _('Address Details')
|
||||||
self.parent_dialog = parent
|
self.parent_dialog = parent
|
||||||
self.app = parent.app
|
self.app = parent.app # type: ElectrumWindow
|
||||||
self.address = address
|
self.address = address
|
||||||
self.status = status
|
self.status = status
|
||||||
self.script_type = self.app.wallet.get_txin_type(self.address)
|
self.script_type = self.app.wallet.get_txin_type(self.address)
|
||||||
self.balance = self.app.format_amount_and_units(balance)
|
self.balance = self.app.format_amount_and_units(balance)
|
||||||
self.address_color, self.address_background_color = address_colors(self.app.wallet, address)
|
self.address_color, self.address_background_color = address_colors(self.app.wallet, address)
|
||||||
|
self.is_frozen = self.app.wallet.is_frozen_address(address)
|
||||||
|
|
||||||
def receive_at(self):
|
def receive_at(self):
|
||||||
self.dismiss()
|
self.dismiss()
|
||||||
@@ -213,12 +226,17 @@ class AddressPopup(Popup):
|
|||||||
def do_export(self, pk_label):
|
def do_export(self, pk_label):
|
||||||
self.app.export_private_keys(pk_label, self.address)
|
self.app.export_private_keys(pk_label, self.address)
|
||||||
|
|
||||||
|
def freeze_address(self):
|
||||||
|
self.is_frozen = not self.is_frozen
|
||||||
|
self.app.wallet.set_frozen_state_of_addresses([self.address], freeze=self.is_frozen)
|
||||||
|
self.parent_dialog.update()
|
||||||
|
|
||||||
|
|
||||||
class AddressesDialog(Factory.Popup):
|
class AddressesDialog(Factory.Popup):
|
||||||
|
|
||||||
def __init__(self, app):
|
def __init__(self, app: 'ElectrumWindow'):
|
||||||
Factory.Popup.__init__(self)
|
Factory.Popup.__init__(self)
|
||||||
self.app = app # type: ElectrumWindow
|
self.app = app
|
||||||
|
|
||||||
def get_card(self, addr, balance, is_used, label):
|
def get_card(self, addr, balance, is_used, label):
|
||||||
ci = {}
|
ci = {}
|
||||||
@@ -227,6 +245,7 @@ class AddressesDialog(Factory.Popup):
|
|||||||
ci['memo'] = label
|
ci['memo'] = label
|
||||||
ci['amount'] = self.app.format_amount_and_units(balance)
|
ci['amount'] = self.app.format_amount_and_units(balance)
|
||||||
ci['status'] = _('Used') if is_used else _('Funded') if balance > 0 else _('Unused')
|
ci['status'] = _('Used') if is_used else _('Funded') if balance > 0 else _('Unused')
|
||||||
|
ci['is_frozen'] = self.app.wallet.is_frozen_address(addr)
|
||||||
return ci
|
return ci
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user