add payment requests to kivy
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user