let the send tab parse and return its own fields

This commit is contained in:
ThomasV 2014-06-12 17:31:18 +02:00
parent 838a3e3187
commit 03c84aab0e
2 changed files with 15 additions and 25 deletions

View File

@ -799,7 +799,7 @@ class ElectrumWindow(QMainWindow):
return lambda s, *args: s.do_protect(func, args)
def do_send(self):
def read_send_tab(self):
label = unicode( self.message_e.text() )
if self.gui_object.payment_request:
@ -837,16 +837,23 @@ class ElectrumWindow(QMainWindow):
if not self.question(_("The fee for this transaction seems unusually high.\nAre you really sure you want to pay %(fee)s in fees?")%{ 'fee' : self.format_amount(fee) + ' '+ self.base_unit()}):
return
self.send_tx(outputs, fee, label)
coins = self.get_coins()
return outputs, fee, label, coins
def do_send(self):
r = self.read_send_tab()
if not r:
return
outputs, fee, label, coins = r
self.send_tx(outputs, fee, label, coins)
@protected
def send_tx(self, outputs, fee, label, password):
def send_tx(self, outputs, fee, label, coins, password):
self.send_button.setDisabled(True)
# first, create an unsigned tx
coins = self.get_coins()
try:
tx = self.wallet.make_unsigned_transaction(outputs, fee, None, coins = coins)
tx.error = None

View File

@ -86,30 +86,13 @@ class Plugin(BasePlugin):
return r.data
def show_raw_qr(self):
r = unicode( self.gui.main_window.payto_e.text() )
r = r.strip()
# label or alias, with address in brackets
m = re.match('(.*?)\s*\<([1-9A-HJ-NP-Za-km-z]{26,})\>', r)
to_address = m.group(2) if m else r
if not is_valid(to_address):
QMessageBox.warning(self.gui.main_window, _('Error'), _('Invalid Bitcoin Address') + ':\n' + to_address, _('OK'))
r = self.gui.main_window.read_send_tab()
if not r:
return
outputs, fee, label, coins = r
try:
amount = self.gui.main_window.read_amount(unicode( self.gui.main_window.amount_e.text()))
except Exception:
QMessageBox.warning(self.gui.main_window, _('Error'), _('Invalid Amount'), _('OK'))
return
try:
fee = self.gui.main_window.read_amount(unicode( self.gui.main_window.fee_e.text()))
except Exception:
QMessageBox.warning(self.gui.main_window, _('Error'), _('Invalid Fee'), _('OK'))
return
try:
tx = self.gui.main_window.wallet.mktx( [(to_address, amount)], None, fee)
tx = self.gui.main_window.wallet.make_unsigned_transaction(outputs, fee, None, None, coins)
except Exception as e:
self.gui.main_window.show_message(str(e))
return