コード例 #1
0
ファイル: gtk.py プロジェクト: Frankie-666/electrum-dash
 def set_url(self, url):
     out = parse_URI(url)
     address = out.get('address')
     message = out.get('message')
     amount = out.get('amount')
     self.notebook.set_current_page(1)
     self.payto_entry.set_text(address)
     self.message_entry.set_text(message)
     self.amount_entry.set_text(amount)
     self.payto_sig.set_visible(False)
コード例 #2
0
 def pay_from_URI(self, URI):
     try:
         out = util.parse_URI(URI)
     except:
         return
     address = out.get('address')
     amount = out.get('amount')
     amount_text = str(D(amount) / (10**self.actuator.g.decimal_point))
     self.address_input.setText(address)
     self.address_field_changed(address)
     self.amount_input.setText(amount_text)
コード例 #3
0
ファイル: lite_window.py プロジェクト: nmarley/electrum-dash
 def pay_from_URI(self, URI):
     try:
         out = util.parse_URI(URI)
     except:
         return
     address = out.get("address")
     amount = out.get("amount")
     amount_text = str(D(amount) / (10 ** self.actuator.g.decimal_point))
     self.address_input.setText(address)
     self.address_field_changed(address)
     self.amount_input.setText(amount_text)
コード例 #4
0
ファイル: screens.py プロジェクト: ivansib/electrum-sib
 def set_URI(self, text):
     if not self.app.wallet:
         self.payment_request_queued = text
         return
     try:
         uri = parse_URI(text, self.app.on_pr, loop=self.app.asyncio_loop)
     except InvalidBitcoinURI as e:
         self.app.show_info(_("Error parsing URI") + f":\n{e}")
         return
     amount = uri.get('amount')
     self.screen.address = uri.get('address', '')
     self.screen.message = uri.get('message', '')
     self.screen.amount = self.app.format_amount_and_units(amount) if amount else ''
     self.payment_request = None
     self.screen.is_pr = False
コード例 #5
0
ファイル: screens.py プロジェクト: margaryan/electrum-firo
 def set_URI(self, text: str):
     if not self.app.wallet:
         return
     try:
         uri = parse_URI(text, self.app.on_pr, loop=self.app.asyncio_loop)
     except InvalidBitcoinURI as e:
         self.app.show_info(_("Error parsing URI") + f":\n{e}")
         return
     self.parsed_URI = uri
     amount = uri.get('amount')
     self.address = uri.get('address', '')
     self.message = uri.get('message', '')
     self.ps_txt = self.privatesend_txt()
     self.amount = self.app.format_amount_and_units(
         amount) if amount else ''
     self.is_max = False
     self.payment_request = None
コード例 #6
0
ファイル: android.py プロジェクト: thelazier/electrum-dash
def make_new_contact():
    code = droid.scanBarcode()
    r = code.result
    if r:
        data = str(r['extras']['SCAN_RESULT']).strip()
        if data:
            if re.match('^dash:', data):
                out = util.parse_URI(data)
                address = out.get('address')
            elif is_address(data):
                address = data
            else:
                address = None
            if address:
                if modal_question('Add to contacts?', address):
                    # fixme: ask for key
                    contacts[address] = ('address', address)
        else:
            modal_dialog('Invalid address', data)
コード例 #7
0
ファイル: android.py プロジェクト: Frankie-666/electrum-dash
def make_new_contact():
    code = droid.scanBarcode()
    r = code.result
    if r:
        data = str(r['extras']['SCAN_RESULT']).strip()
        if data:
            if re.match('^dash:', data):
                out = util.parse_URI(data)
                address = out.get('address')
            elif is_address(data):
                address = data
            else:
                address = None
            if address:
                if modal_question('Add to contacts?', address):
                    # fixme: ask for key
                    contacts[address] = ('address', address)
        else:
            modal_dialog('Invalid address', data)
コード例 #8
0
 def _do_test_parse_URI(self, uri, expected):
     result = parse_URI(uri)
     self.assertEqual(expected, result)
コード例 #9
0
ファイル: android.py プロジェクト: thelazier/electrum-dash
def payto_loop():
    global recipient
    if recipient:
        droid.fullSetProperty("recipient", "text", recipient)
        recipient = None

    out = None
    while out is None:
        event = droid.eventWait().result
        if not event: continue
        print "got event in payto loop", event
        if event == 'OK': continue
        if not event.get("name"): continue

        if event["name"] == "click":
            id = event["data"]["id"]

            if id == "buttonPay":

                droid.fullQuery()
                recipient = droid.fullQueryDetail("recipient").result.get(
                    'text')
                message = droid.fullQueryDetail("message").result.get('text')
                amount = droid.fullQueryDetail('amount').result.get('text')

                if not is_address(recipient):
                    modal_dialog('Error', 'Invalid Dash address')
                    continue

                try:
                    amount = int(COIN * Decimal(amount))
                except Exception:
                    modal_dialog('Error', 'Invalid amount')
                    continue

                result = pay_to(recipient, amount, message)
                if result:
                    out = 'main'

            elif id == "buttonContacts":
                addr = select_from_contacts()
                droid.fullSetProperty("recipient", "text", addr)

            elif id == "buttonQR":
                code = droid.scanBarcode()
                r = code.result
                if r:
                    data = str(r['extras']['SCAN_RESULT']).strip()
                    if data:
                        print "data", data
                        if re.match('^dash:', data):
                            payto, amount, label, message, _ = util.parse_URI(
                                data)
                            if amount:
                                amount = str(amount / COIN)
                            droid.fullSetProperty("recipient", "text", payto)
                            droid.fullSetProperty("amount", "text", amount)
                            droid.fullSetProperty("message", "text", message)
                        elif is_address(data):
                            droid.fullSetProperty("recipient", "text", data)
                        else:
                            modal_dialog('Error',
                                         'cannot parse QR code\n' + data)

        elif event["name"] in menu_commands:
            out = event["name"]

        elif event["name"] == "key":
            if event["data"]["key"] == '4':
                out = 'main'

        #elif event["name"]=="screen":
        #    if event["data"]=="destroy":
        #        out = 'main'

    return out
コード例 #10
0
ファイル: test_util.py プロジェクト: ivansib/electrum-sib
 def _do_test_parse_URI(self, uri, expected):
     result = parse_URI(uri)
     self.assertEqual(expected, result)
コード例 #11
0
ファイル: android.py プロジェクト: Frankie-666/electrum-dash
def payto_loop():
    global recipient
    if recipient:
        droid.fullSetProperty("recipient","text",recipient)
        recipient = None

    out = None
    while out is None:
        event = droid.eventWait().result
        if not event: continue
        print "got event in payto loop", event
        if event == 'OK': continue
        if not event.get("name"): continue

        if event["name"] == "click":
            id = event["data"]["id"]

            if id=="buttonPay":

                droid.fullQuery()
                recipient = droid.fullQueryDetail("recipient").result.get('text')
                message = droid.fullQueryDetail("message").result.get('text')
                amount = droid.fullQueryDetail('amount').result.get('text')

                if not is_address(recipient):
                    modal_dialog('Error','Invalid Dash address')
                    continue

                try:
                    amount = int(COIN * Decimal(amount))
                except Exception:
                    modal_dialog('Error','Invalid amount')
                    continue

                result = pay_to(recipient, amount, message)
                if result:
                    out = 'main'

            elif id=="buttonContacts":
                addr = select_from_contacts()
                droid.fullSetProperty("recipient", "text", addr)

            elif id=="buttonQR":
                code = droid.scanBarcode()
                r = code.result
                if r:
                    data = str(r['extras']['SCAN_RESULT']).strip()
                    if data:
                        print "data", data
                        if re.match('^dash:', data):
                            payto, amount, label, message, _ = util.parse_URI(data)
                            if amount:
                                amount = str(amount / COIN)
                            droid.fullSetProperty("recipient", "text", payto)
                            droid.fullSetProperty("amount", "text", amount)
                            droid.fullSetProperty("message", "text", message)
                        elif is_address(data):
                            droid.fullSetProperty("recipient", "text", data)
                        else:
                            modal_dialog('Error','cannot parse QR code\n'+data)

                    
        elif event["name"] in menu_commands:
            out = event["name"]

        elif event["name"]=="key":
            if event["data"]["key"] == '4':
                out = 'main'

        #elif event["name"]=="screen":
        #    if event["data"]=="destroy":
        #        out = 'main'

    return out