1
0

add NotEnoughFunds exception

This commit is contained in:
ThomasV
2014-11-20 19:10:43 +01:00
parent 5adb10e4d2
commit 01cf04079f
4 changed files with 20 additions and 13 deletions

View File

@@ -680,19 +680,22 @@ class ElectrumWindow:
self.user_fee = False
def entry_changed( entry, is_fee ):
self.funds_error = False
amount = numbify(amount_entry)
fee = numbify(fee_entry)
if not is_fee: fee = None
if amount is None:
return
tx = self.wallet.make_unsigned_transaction([('op_return', 'dummy_tx', amount)], fee)
if not is_fee:
if tx:
try:
tx = self.wallet.make_unsigned_transaction([('op_return', 'dummy_tx', amount)], fee)
self.funds_error = False
except NotEnoughFunds:
self.funds_error = True
if not self.funds_error:
if not is_fee:
fee = tx.get_fee()
fee_entry.set_text( str( Decimal( fee ) / 100000000 ) )
self.fee_box.show()
if tx:
amount_entry.modify_text(Gtk.StateType.NORMAL, Gdk.color_parse("#000000"))
fee_entry.modify_text(Gtk.StateType.NORMAL, Gdk.color_parse("#000000"))
send_button.set_sensitive(True)
@@ -700,7 +703,6 @@ class ElectrumWindow:
send_button.set_sensitive(False)
amount_entry.modify_text(Gtk.StateType.NORMAL, Gdk.color_parse("#cc0000"))
fee_entry.modify_text(Gtk.StateType.NORMAL, Gdk.color_parse("#cc0000"))
self.funds_error = True
amount_entry.connect('changed', entry_changed, False)
fee_entry.connect('changed', entry_changed, True)

View File

@@ -35,7 +35,7 @@ from electrum.plugins import run_hook
import icons_rc
from electrum.util import format_satoshis
from electrum.util import format_satoshis, NotEnoughFunds
from electrum import Transaction
from electrum import mnemonic
from electrum import util, bitcoin, commands, Interface, Wallet
@@ -953,10 +953,13 @@ class ElectrumWindow(QMainWindow):
if not outputs:
addr = self.payto_e.payto_address if self.payto_e.payto_address else self.dummy_address
outputs = [('address', addr, amount)]
tx = self.wallet.make_unsigned_transaction(outputs, fee, coins = self.get_coins())
self.not_enough_funds = (tx is None)
try:
tx = self.wallet.make_unsigned_transaction(outputs, fee, coins = self.get_coins())
self.not_enough_funds = False
except NotEnoughFunds:
self.not_enough_funds = True
if not is_fee:
fee = self.wallet.get_tx_fee(tx) if tx else None
fee = None if self.not_enough_funds else self.wallet.get_tx_fee(tx)
self.fee_e.setAmount(fee)
self.payto_e.textChanged.connect(lambda:text_edited(False))