URI: 
       tchange internal format of requests - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit a6c65b8997c2407502edbe5cc9d818722e1db2cd
   DIR parent 2c1fb1e37ce0e82c768befd2c3d52cf07cc75c5e
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Tue, 21 Jul 2015 12:26:37 +0200
       
       change internal format of requests
       
       Diffstat:
         M gui/qt/main_window.py               |      28 ++++++++++++++--------------
         M lib/paymentrequest.py               |       6 +++---
         M lib/util.py                         |       7 ++++---
         M lib/wallet.py                       |       8 ++++----
       
       4 files changed, 25 insertions(+), 24 deletions(-)
       ---
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -681,7 +681,7 @@ class ElectrumWindow(QMainWindow):
                    return
                addr = str(item.text(2))
                req = self.wallet.receive_requests[addr]
       -        expires = _('Never') if req.get('expiration') is None else util.age(req['timestamp'] + req['expiration'])
       +        expires = _('Never') if req.get('exp') is None else util.age(req['time'] + req['exp'])
                amount = req['amount']
                message = self.wallet.labels.get(addr, '')
                self.receive_address_e.setText(addr)
       t@@ -703,14 +703,14 @@ class ElectrumWindow(QMainWindow):
                message = self.wallet.labels.get(addr, '')
                amount = req['amount']
                URI = util.create_URI(addr, amount, message)
       -        if req.get('id') and req.get('sig'):
       +        if req.get('time'):
       +            URI += "&time=%d"%req.get('time')
       +        if req.get('exp'):
       +            URI += "&exp=%d"%req.get('exp')
       +        if req.get('name') and req.get('sig'):
                    sig = req.get('sig').decode('hex')
                    sig = bitcoin.base_encode(sig, base=58)
       -            URI += "&id=" + req['id'] + "&sig="+sig 
       -            if req.get('timestamp'):
       -                URI += "&timestamp=%d"%req.get('timestamp')
       -            if req.get('expiration'):
       -                URI += "&expiration=%d"%req.get('expiration')
       +            URI += "&name=" + req['name'] + "&sig="+sig
                return str(URI)
        
            def receive_list_menu(self, position):
       t@@ -748,7 +748,7 @@ class ElectrumWindow(QMainWindow):
                                return
                pr, requestor = paymentrequest.make_request(self.config, req, alias, alias_privkey)
                if requestor:
       -            req['id'] = requestor
       +            req['name'] = requestor
                    req['sig'] = pr.signature.encode('hex')
                self.wallet.add_payment_request(req, self.config)
        
       t@@ -870,14 +870,14 @@ class ElectrumWindow(QMainWindow):
                    address = req['address']
                    if address not in domain:
                        continue
       -            timestamp = req['timestamp']
       +            timestamp = req.get('time', 0)
                    amount = req.get('amount')
       -            expiration = req.get('expiration', None)
       +            expiration = req.get('exp', None)
                    message = req.get('memo', '')
                    date = format_time(timestamp)
                    status = req.get('status')
                    signature = req.get('sig')
       -            requestor = req.get('id', '')
       +            requestor = req.get('name', '')
                    amount_str = self.format_amount(amount) if amount else ""
                    account = ''
                    item = QTreeWidgetItem([date, account, address, '', message, amount_str, pr_tooltips.get(status,'')])
       t@@ -1348,10 +1348,10 @@ class ElectrumWindow(QMainWindow):
        
                r = out.get('r')
                sig = out.get('sig')
       -        _id = out.get('id')
       -        if r or (_id and sig):
       +        name = out.get('name')
       +        if r or (name and sig):
                    def get_payment_request_thread():
       -                if _id and sig:
       +                if name and sig:
                            from electrum import paymentrequest
                            pr = paymentrequest.serialize_request(out).SerializeToString()
                            self.payment_request = paymentrequest.PaymentRequest(pr)
   DIR diff --git a/lib/paymentrequest.py b/lib/paymentrequest.py
       t@@ -290,11 +290,11 @@ class PaymentRequest:
        def make_unsigned_request(req):
            from transaction import Transaction
            addr = req['address']
       -    time = req['timestamp']
       +    time = req['time']
            amount = req['amount']
            if amount is None:
                amount = 0
       -    expires = req['expiration']
       +    expires = req['exp']
            memo = req['memo']
            script = Transaction.pay_script('address', addr).decode('hex')
            outputs = [(script, amount)]
       t@@ -340,7 +340,7 @@ def sign_request_with_x509(pr, key_path, cert_path):
        def serialize_request(req):
            pr = make_unsigned_request(req)
            signature = req.get('sig')
       -    requestor = req.get('id')
       +    requestor = req.get('name')
            if requestor and signature:
                pr.signature = signature.decode('hex')
                pr.pki_type = 'dnssec+btc'
   DIR diff --git a/lib/util.py b/lib/util.py
       t@@ -278,9 +278,10 @@ def parse_URI(uri):
            if 'message' in out:
                out['message'] = out['message'].decode('utf8')
                out['memo'] = out['message']
       -    if 'timestamp' in out:
       -        out['timestamp'] = int(out['timestamp'])
       -        out['expiration'] = int(out['expiration'])
       +    if 'time' in out:
       +        out['time'] = int(out['time'])
       +    if 'exp' in out:
       +        out['exp'] = int(out['exp'])
            if 'sig' in out:
                out['sig'] = bitcoin.base_decode(out['sig'], None, base=58).encode('hex')
        
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -1242,8 +1242,8 @@ class Abstract_Wallet(object):
                r = self.receive_requests[key]
                address = r['address']
                amount = r.get('amount')
       -        timestamp = r.get('timestamp', 0)
       -        expiration = r.get('expiration')
       +        timestamp = r.get('time', 0)
       +        expiration = r.get('exp')
                if amount:
                    if self.up_to_date:
                        paid = amount <= self.get_addr_received(address)
       t@@ -1259,7 +1259,7 @@ class Abstract_Wallet(object):
            def make_payment_request(self, addr, amount, message, expiration):
                timestamp = int(time.time())
                _id = Hash(addr + "%d"%timestamp).encode('hex')[0:10]
       -        r = {'timestamp':timestamp, 'amount':amount, 'expiration':expiration, 'address':addr, 'memo':message, 'id':_id}
       +        r = {'time':timestamp, 'amount':amount, 'exp':expiration, 'address':addr, 'memo':message, 'id':_id}
                return r
        
            def add_payment_request(self, req, config):
       t@@ -1305,7 +1305,7 @@ class Abstract_Wallet(object):
                return True
        
            def get_sorted_requests(self, config):
       -        return sorted(map(lambda x: self.get_payment_request(x, config), self.receive_requests.keys()), key=itemgetter('timestamp'))
       +        return sorted(map(lambda x: self.get_payment_request(x, config), self.receive_requests.keys()), key=lambda x: x.get('time', 0))