Merge pull request #4115 from SomberNight/disallow_adding_requests_w_invalid_addresses
disallow adding receive requests without valid is_mine addresses
This commit is contained in:
@@ -371,13 +371,20 @@ class ReceiveScreen(CScreen):
|
||||
def save_request(self):
|
||||
addr = self.screen.address
|
||||
if not addr:
|
||||
return
|
||||
return False
|
||||
amount = self.screen.amount
|
||||
message = self.screen.message
|
||||
amount = self.app.get_amount(amount) if amount else 0
|
||||
req = self.app.wallet.make_payment_request(addr, amount, message, None)
|
||||
self.app.wallet.add_payment_request(req, self.app.electrum_config)
|
||||
self.app.update_tab('requests')
|
||||
try:
|
||||
self.app.wallet.add_payment_request(req, self.app.electrum_config)
|
||||
added_request = True
|
||||
except Exception as e:
|
||||
self.app.show_error(_('Error adding payment request') + ':\n' + str(e))
|
||||
added_request = False
|
||||
finally:
|
||||
self.app.update_tab('requests')
|
||||
return added_request
|
||||
|
||||
def on_amount_or_message(self):
|
||||
Clock.schedule_once(lambda dt: self.update_qr())
|
||||
@@ -388,8 +395,8 @@ class ReceiveScreen(CScreen):
|
||||
self.app.show_info(_('Please use the existing requests first.'))
|
||||
|
||||
def do_save(self):
|
||||
self.save_request()
|
||||
self.app.show_info(_('Request was saved.'))
|
||||
if self.save_request():
|
||||
self.app.show_info(_('Request was saved.'))
|
||||
|
||||
|
||||
class TabbedCarousel(Factory.TabbedPanel):
|
||||
|
||||
@@ -1590,6 +1590,11 @@ class Abstract_Wallet(PrintError):
|
||||
|
||||
def add_payment_request(self, req, config):
|
||||
addr = req['address']
|
||||
if not bitcoin.is_address(addr):
|
||||
raise Exception(_('Invalid Bitcoin address.'))
|
||||
if not self.is_mine(addr):
|
||||
raise Exception(_('Address not in wallet.'))
|
||||
|
||||
amount = req.get('amount')
|
||||
message = req.get('memo')
|
||||
self.receive_requests[addr] = req
|
||||
|
||||
Reference in New Issue
Block a user