kivy: ask RBF before send
This commit is contained in:
parent
5a2ec73367
commit
48d42bbafa
|
@ -54,8 +54,6 @@ Cache.register('electrum_widgets', timeout=0)
|
||||||
from kivy.uix.screenmanager import Screen
|
from kivy.uix.screenmanager import Screen
|
||||||
from kivy.uix.tabbedpanel import TabbedPanel
|
from kivy.uix.tabbedpanel import TabbedPanel
|
||||||
from kivy.uix.label import Label
|
from kivy.uix.label import Label
|
||||||
from kivy.uix.checkbox import CheckBox
|
|
||||||
from kivy.uix.switch import Switch
|
|
||||||
from kivy.core.clipboard import Clipboard
|
from kivy.core.clipboard import Clipboard
|
||||||
|
|
||||||
Factory.register('TabbedCarousel', module='electrum_gui.kivy.uix.screens')
|
Factory.register('TabbedCarousel', module='electrum_gui.kivy.uix.screens')
|
||||||
|
@ -762,7 +760,8 @@ class ElectrumWindow(App):
|
||||||
d = Question(_('Delete wallet?') + '\n' + basename, self._delete_wallet)
|
d = Question(_('Delete wallet?') + '\n' + basename, self._delete_wallet)
|
||||||
d.open()
|
d.open()
|
||||||
|
|
||||||
def _delete_wallet(self):
|
def _delete_wallet(self, b):
|
||||||
|
if b:
|
||||||
basename = os.path.basename(self.wallet.storage.path)
|
basename = os.path.basename(self.wallet.storage.path)
|
||||||
self.protected(_("Enter your PIN code to confirm deletion of %s") % basename, self.__delete_wallet, ())
|
self.protected(_("Enter your PIN code to confirm deletion of %s") % basename, self.__delete_wallet, ())
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ Builder.load_string('''
|
||||||
Label:
|
Label:
|
||||||
id: label
|
id: label
|
||||||
text: root.message
|
text: root.message
|
||||||
|
text_size: self.width, None
|
||||||
Widget:
|
Widget:
|
||||||
size_hint: 1, 0.1
|
size_hint: 1, 0.1
|
||||||
BoxLayout:
|
BoxLayout:
|
||||||
|
@ -30,13 +31,14 @@ Builder.load_string('''
|
||||||
size_hint: 0.5, None
|
size_hint: 0.5, None
|
||||||
height: '48dp'
|
height: '48dp'
|
||||||
on_release:
|
on_release:
|
||||||
|
root.callback(False)
|
||||||
popup.dismiss()
|
popup.dismiss()
|
||||||
Button:
|
Button:
|
||||||
text: _('Yes')
|
text: _('Yes')
|
||||||
size_hint: 0.5, None
|
size_hint: 0.5, None
|
||||||
height: '48dp'
|
height: '48dp'
|
||||||
on_release:
|
on_release:
|
||||||
root.callback()
|
root.callback(True)
|
||||||
popup.dismiss()
|
popup.dismiss()
|
||||||
''')
|
''')
|
||||||
|
|
||||||
|
|
|
@ -264,6 +264,14 @@ class SendScreen(CScreen):
|
||||||
outputs = [(bitcoin.TYPE_ADDRESS, address, amount)]
|
outputs = [(bitcoin.TYPE_ADDRESS, address, amount)]
|
||||||
message = unicode(self.screen.message)
|
message = unicode(self.screen.message)
|
||||||
amount = sum(map(lambda x:x[2], outputs))
|
amount = sum(map(lambda x:x[2], outputs))
|
||||||
|
if self.app.electrum_config.get('use_rbf'):
|
||||||
|
from dialogs.question import Question
|
||||||
|
d = Question(_('Should this transaction be replaceable?'), lambda b: self._do_send(amount, message, outputs, b))
|
||||||
|
d.open()
|
||||||
|
else:
|
||||||
|
self._do_send(amount, message, outputs, False)
|
||||||
|
|
||||||
|
def _do_send(self, amount, message, outputs, rbf):
|
||||||
# make unsigned transaction
|
# make unsigned transaction
|
||||||
coins = self.app.wallet.get_spendable_coins()
|
coins = self.app.wallet.get_spendable_coins()
|
||||||
config = self.app.electrum_config
|
config = self.app.electrum_config
|
||||||
|
@ -276,7 +284,7 @@ class SendScreen(CScreen):
|
||||||
traceback.print_exc(file=sys.stdout)
|
traceback.print_exc(file=sys.stdout)
|
||||||
self.app.show_error(str(e))
|
self.app.show_error(str(e))
|
||||||
return
|
return
|
||||||
if self.app.electrum_config.get('use_rbf'):
|
if rbf:
|
||||||
tx.set_sequence(0)
|
tx.set_sequence(0)
|
||||||
fee = tx.get_fee()
|
fee = tx.get_fee()
|
||||||
msg = [
|
msg = [
|
||||||
|
@ -458,7 +466,8 @@ class InvoicesScreen(CScreen):
|
||||||
|
|
||||||
def do_delete(self, obj):
|
def do_delete(self, obj):
|
||||||
from dialogs.question import Question
|
from dialogs.question import Question
|
||||||
def cb():
|
def cb(result):
|
||||||
|
if result:
|
||||||
self.app.invoices.remove(obj.key)
|
self.app.invoices.remove(obj.key)
|
||||||
self.app.update_tab('invoices')
|
self.app.update_tab('invoices')
|
||||||
d = Question(_('Delete invoice?'), cb)
|
d = Question(_('Delete invoice?'), cb)
|
||||||
|
@ -527,7 +536,8 @@ class RequestsScreen(CScreen):
|
||||||
|
|
||||||
def do_delete(self, obj):
|
def do_delete(self, obj):
|
||||||
from dialogs.question import Question
|
from dialogs.question import Question
|
||||||
def cb():
|
def cb(result):
|
||||||
|
if result:
|
||||||
self.app.wallet.remove_payment_request(obj.address, self.app.electrum_config)
|
self.app.wallet.remove_payment_request(obj.address, self.app.electrum_config)
|
||||||
self.update()
|
self.update()
|
||||||
d = Question(_('Delete request?'), cb)
|
d = Question(_('Delete request?'), cb)
|
||||||
|
|
Loading…
Reference in New Issue