save payment requests in requests_dir
This commit is contained in:
@@ -714,13 +714,14 @@ class ElectrumWindow(QMainWindow):
|
|||||||
return
|
return
|
||||||
i = self.expires_combo.currentIndex()
|
i = self.expires_combo.currentIndex()
|
||||||
expiration = map(lambda x: x[1], expiration_values)[i]
|
expiration = map(lambda x: x[1], expiration_values)[i]
|
||||||
self.wallet.save_payment_request(addr, amount, message, expiration)
|
self.wallet.save_payment_request(self.config, addr, amount, message, expiration)
|
||||||
self.update_receive_tab()
|
self.update_receive_tab()
|
||||||
self.update_address_tab()
|
self.update_address_tab()
|
||||||
self.save_request_button.setEnabled(False)
|
self.save_request_button.setEnabled(False)
|
||||||
|
|
||||||
def export_payment_request(self, addr):
|
def export_payment_request(self, addr):
|
||||||
pr = self.wallet.make_bip70_request(self.config, addr)
|
r = self.wallet.get_payment_request(addr)
|
||||||
|
pr = self.wallet.make_bip70_request(self.config, r)
|
||||||
name = 'request.bip70'
|
name = 'request.bip70'
|
||||||
fileName = self.getSaveFileName(_("Select where to save your payment request"), name, "*.bip70")
|
fileName = self.getSaveFileName(_("Select where to save your payment request"), name, "*.bip70")
|
||||||
if fileName:
|
if fileName:
|
||||||
|
|||||||
@@ -522,13 +522,10 @@ class Commands:
|
|||||||
|
|
||||||
@command('w')
|
@command('w')
|
||||||
def addrequest(self, amount, reason='', expiration=60*60):
|
def addrequest(self, amount, reason='', expiration=60*60):
|
||||||
"""Create a payment request"""
|
"""Create a payment request. """
|
||||||
addr = self.wallet.get_unused_address(None)
|
|
||||||
if addr is None:
|
|
||||||
return False
|
|
||||||
amount = int(Decimal(amount)*COIN)
|
amount = int(Decimal(amount)*COIN)
|
||||||
self.wallet.save_payment_request(addr, amount, reason, expiration)
|
key = self.wallet.add_payment_request(self.config, amount, reason, expiration)
|
||||||
return addr
|
return self.wallet.get_payment_request(key) if key else False
|
||||||
|
|
||||||
@command('w')
|
@command('w')
|
||||||
def removerequest(self, address):
|
def removerequest(self, address):
|
||||||
@@ -577,6 +574,7 @@ command_options = {
|
|||||||
'account': (None, "--account", "Account"),
|
'account': (None, "--account", "Account"),
|
||||||
'reason': (None, "--reason", "Description of the request"),
|
'reason': (None, "--reason", "Description of the request"),
|
||||||
'expiration': (None, "--expiration", "Time in seconds"),
|
'expiration': (None, "--expiration", "Time in seconds"),
|
||||||
|
'request_dir': (None, "--request_dir", "Directory where request are written"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1231,25 +1231,10 @@ class Abstract_Wallet(object):
|
|||||||
if not self.history.get(addr) and addr not in self.receive_requests.keys():
|
if not self.history.get(addr) and addr not in self.receive_requests.keys():
|
||||||
return addr
|
return addr
|
||||||
|
|
||||||
def remove_payment_request(self, addr):
|
|
||||||
if addr not in self.receive_requests:
|
|
||||||
return False
|
|
||||||
self.receive_requests.pop(addr)
|
|
||||||
self.storage.put('receive_requests2', self.receive_requests)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def save_payment_request(self, addr, amount, message, expiration):
|
def make_bip70_request(self, config, req):
|
||||||
self.set_label(addr, message)
|
|
||||||
if addr in self.receive_requests:
|
|
||||||
self.receive_requests[addr]['amount'] = amount
|
|
||||||
else:
|
|
||||||
now = int(time.time())
|
|
||||||
self.receive_requests[addr] = {'time':now, 'amount':amount, 'expiration':expiration}
|
|
||||||
self.storage.put('receive_requests2', self.receive_requests, True)
|
|
||||||
|
|
||||||
def make_bip70_request(self, config, addr):
|
|
||||||
from paymentrequest import make_payment_request
|
from paymentrequest import make_payment_request
|
||||||
req = self.receive_requests[addr]
|
addr = req['address']
|
||||||
time = req['time']
|
time = req['time']
|
||||||
amount = req['amount']
|
amount = req['amount']
|
||||||
expiration = req['expiration']
|
expiration = req['expiration']
|
||||||
@@ -1260,6 +1245,38 @@ class Abstract_Wallet(object):
|
|||||||
cert_path = config.get('ssl_cert_path')
|
cert_path = config.get('ssl_cert_path')
|
||||||
return make_payment_request(outputs, message, time, time + expiration, key_path, cert_path)
|
return make_payment_request(outputs, message, time, time + expiration, key_path, cert_path)
|
||||||
|
|
||||||
|
def get_payment_request(self, key):
|
||||||
|
return self.receive_requests.get(key)
|
||||||
|
|
||||||
|
def save_payment_request(self, config, addr, amount, message, expiration):
|
||||||
|
#if addr in self.receive_requests:
|
||||||
|
# self.receive_requests[addr]['amount'] = amount
|
||||||
|
self.set_label(addr, message)
|
||||||
|
now = int(time.time())
|
||||||
|
r = {'time':now, 'amount':amount, 'expiration':expiration, 'address':addr}
|
||||||
|
if config.get('requests_dir'):
|
||||||
|
pr = self.make_bip70_request(config, r)
|
||||||
|
path = os.path.join(config.get('www_dir'), addr + '.bip70')
|
||||||
|
with open(path, 'w') as f:
|
||||||
|
f.write(pr)
|
||||||
|
r['url'] = 'bitcoin:?r=file://' + path
|
||||||
|
self.receive_requests[addr] = r
|
||||||
|
self.storage.put('receive_requests2', self.receive_requests)
|
||||||
|
|
||||||
|
def add_payment_request(self, config, amount, message, expiration):
|
||||||
|
addr = self.get_unused_address(None)
|
||||||
|
if addr is None:
|
||||||
|
return False
|
||||||
|
self.save_payment_request(config, addr, amount, message, expiration)
|
||||||
|
return addr
|
||||||
|
|
||||||
|
def remove_payment_request(self, addr):
|
||||||
|
if addr not in self.receive_requests:
|
||||||
|
return False
|
||||||
|
self.receive_requests.pop(addr)
|
||||||
|
self.storage.put('receive_requests2', self.receive_requests)
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class Imported_Wallet(Abstract_Wallet):
|
class Imported_Wallet(Abstract_Wallet):
|
||||||
wallet_type = 'imported'
|
wallet_type = 'imported'
|
||||||
|
|||||||
Reference in New Issue
Block a user