1
0

add payment requests to kivy

This commit is contained in:
ThomasV
2015-12-11 15:21:21 +01:00
parent 2a1fbf01fe
commit 0cef063ee2
5 changed files with 71 additions and 38 deletions

View File

@@ -181,6 +181,7 @@ class ScreenPassword(Factory.Screen):
class SendScreen(CScreen):
kvname = 'send'
payment_request = None
def set_URI(self, uri):
print "set uri", uri
@@ -195,6 +196,16 @@ class SendScreen(CScreen):
self.screen.amount = ''
self.screen.message = ''
self.screen.address = ''
self.payment_request = None
def set_request(self, pr):
if pr.has_expired():
self.app.show_error(_('Payment request has expired'))
return
self.payment_request = pr
self.screen.address = pr.get_requestor()
self.screen.amount = self.app.format_amount(pr.get_amount())
self.screen.message = pr.get_memo()
def do_paste(self):
contents = unicode(self.app._clipboard.get())
@@ -206,18 +217,24 @@ class SendScreen(CScreen):
self.set_URI(uri)
def do_send(self):
address = str(self.screen.address)
if not bitcoin.is_address(address):
self.app.show_error(_('Invalid Bitcoin Address') + ':\n' + address)
return
try:
amount = self.app.get_amount(self.screen.amount)
except:
self.app.show_error(_('Invalid amount') + ':\n' + self.screen.amount)
return
if self.payment_request:
if self.payment_request.has_expired():
self.app.show_error(_('Payment request has expired'))
return
outputs = self.payment_request.get_outputs()
else:
address = str(self.screen.address)
if not bitcoin.is_address(address):
self.app.show_error(_('Invalid Bitcoin Address') + ':\n' + address)
return
try:
amount = self.app.get_amount(self.screen.amount)
except:
self.app.show_error(_('Invalid amount') + ':\n' + self.screen.amount)
return
outputs = [('address', address, amount)]
message = unicode(self.screen.message)
fee = None
outputs = [('address', address, amount)]
self.app.protected(self.send_tx, (outputs, fee, message))
def send_tx(self, *args):

View File

@@ -78,7 +78,7 @@ SendScreen:
id: qr
text: _('QR Code')
on_release:
app.scan_qr(on_complete=s.parent.set_URI)
app.scan_qr(on_complete=app.set_URI)
Button:
id: paste_button
text: _('Paste')