forked from bitcoinafterlife/bal-electrum-plugin
close task invalidate tx
This commit is contained in:
41
qt.py
41
qt.py
@@ -169,13 +169,11 @@ class Plugin(BalPlugin, Logger):
|
||||
def __init__(self, parent, config, name):
|
||||
Logger.__init__(self)
|
||||
self.logger.info("INIT BALPLUGIN")
|
||||
print("init bal_plugin")
|
||||
BalPlugin.__init__(self, parent, config, name)
|
||||
self.bal_windows = {}
|
||||
|
||||
@hook
|
||||
def init_qt(self, gui_object):
|
||||
print("hook init qt")
|
||||
self.logger.info("HOOK init qt")
|
||||
try:
|
||||
self.gui_object = gui_object
|
||||
@@ -225,7 +223,7 @@ class Plugin(BalPlugin, Logger):
|
||||
|
||||
@hook
|
||||
def load_wallet(self, wallet, main_window):
|
||||
self.logger.info("HOOK load wallet")
|
||||
self.logger.debug("HOOK load wallet")
|
||||
w = self.get_window(main_window)
|
||||
# havetoupdate = Util.fix_will_settings_tx_fees(wallet.db)
|
||||
w.wallet = wallet
|
||||
@@ -238,18 +236,18 @@ class Plugin(BalPlugin, Logger):
|
||||
|
||||
@hook
|
||||
def close_wallet(self, wallet):
|
||||
print("HOOK close wallet")
|
||||
self.logger.debug("HOOK close wallet")
|
||||
for winid, win in self.bal_windows.items():
|
||||
if win.wallet == wallet:
|
||||
win.on_close()
|
||||
|
||||
@hook
|
||||
def init_keystore(self):
|
||||
print("init keystore")
|
||||
self.logger.debug("init keystore")
|
||||
|
||||
@hook
|
||||
def daemon_wallet_loaded(self, boh, wallet):
|
||||
print("daemon wallet loaded")
|
||||
self.logger.debug("daemon wallet loaded")
|
||||
|
||||
def get_window(self, window):
|
||||
w = self.bal_windows.get(window.winId, None)
|
||||
@@ -1180,7 +1178,7 @@ class BalWindow(Logger):
|
||||
parent = self
|
||||
|
||||
def on_success(result):
|
||||
del self.waiting_dialog
|
||||
#del self.waiting_dialog
|
||||
try:
|
||||
parent.willexecutor_list.update()
|
||||
except Exception as e:
|
||||
@@ -2079,6 +2077,7 @@ class BalBuildWillDialog(BalDialog):
|
||||
self.bal_window.window.wallet.dust_threshold(),
|
||||
)
|
||||
_logger.debug("variables ok")
|
||||
self.msg_set_status("checking variables:", varrow,"Ok")
|
||||
except AmountException:
|
||||
self.msg_set_status(
|
||||
"checking variables",
|
||||
@@ -2091,7 +2090,7 @@ class BalBuildWillDialog(BalDialog):
|
||||
)
|
||||
+ "</font>",
|
||||
)
|
||||
|
||||
|
||||
self.msg_set_checking()
|
||||
have_to_build = False
|
||||
try:
|
||||
@@ -2238,8 +2237,9 @@ class BalBuildWillDialog(BalDialog):
|
||||
if not self._stopping:
|
||||
self.loop_push()
|
||||
|
||||
def invalidate_task(self, tx, password):
|
||||
def invalidate_task(self,password,bal_window,tx):
|
||||
_logger.debug(f"invalidate tx: {tx}")
|
||||
fee_per_byte = bal_window.will_settings.get("baltx_fees", 1)
|
||||
tx = self.bal_window.wallet.sign_transaction(tx, password)
|
||||
try:
|
||||
if tx:
|
||||
@@ -2247,11 +2247,12 @@ class BalBuildWillDialog(BalDialog):
|
||||
self.loop_broadcast_invalidating(tx)
|
||||
self.wait(5)
|
||||
else:
|
||||
raise
|
||||
raise Exception("tx not complete")
|
||||
else:
|
||||
raise
|
||||
except Exception:
|
||||
self.msg_set_invalidating("Error")
|
||||
raise Exception("not tx")
|
||||
except Exception as e:
|
||||
(f"exception:{e}")
|
||||
self.msg_set_invalidating(f"Error: {e}")
|
||||
raise Exception("Impossible to sign")
|
||||
|
||||
def on_success_invalidate(self, success):
|
||||
@@ -2265,12 +2266,12 @@ class BalBuildWillDialog(BalDialog):
|
||||
def on_error(self, error):
|
||||
_logger.error(error)
|
||||
pass
|
||||
|
||||
def on_success_phase1(self, result):
|
||||
self.have_to_sign, tx = list(result)
|
||||
_logger.debug("have to sign {}".format(self.have_to_sign))
|
||||
password = None
|
||||
if self.have_to_sign is None:
|
||||
_logger.debug("have to invalidate")
|
||||
self.msg_set_invalidating()
|
||||
# need to sign invalidate and restart phase 1
|
||||
|
||||
@@ -2283,7 +2284,7 @@ class BalBuildWillDialog(BalDialog):
|
||||
self.close()
|
||||
return
|
||||
self.thread.add(
|
||||
partial(self.invalidate_task, tx, password),
|
||||
partial(self.invalidate_task,password,self.bal_window,tx),
|
||||
on_success=self.on_success_invalidate,
|
||||
on_done=self.on_accept,
|
||||
on_error=self.on_error,
|
||||
@@ -3391,19 +3392,17 @@ class WillExecutorList(MyTreeView):
|
||||
labels = [""] * len(self.Columns)
|
||||
labels[self.Columns.URL] = url
|
||||
if Willexecutors.is_selected(value):
|
||||
labels[self.Columns.SELECTED] = [read_QIcon("icons/confirmed.png"), ""]
|
||||
|
||||
labels[self.Columns.SELECTED] = [read_QIcon_from_bytes(self.parent.bal_plugin.read_file("icons/confirmed.png")),""]
|
||||
else:
|
||||
labels[self.Columns.SELECTED] = ""
|
||||
labels[self.Columns.BASE_FEE] = Util.decode_amount(
|
||||
value.get("base_fee", 0), self.get_decimal_point()
|
||||
)
|
||||
if str(value.get("status", 0)) == "200":
|
||||
labels[self.Columns.STATUS] = [
|
||||
read_QIcon("icons/status_connected.png"),
|
||||
"",
|
||||
]
|
||||
labels[self.Columns.STATUS] = [read_QIcon_from_bytes(self.parent.bal_plugin.read_file("icons/status_connected.png")),""]
|
||||
else:
|
||||
labels[self.Columns.STATUS] = [read_QIcon("icons/unconfirmed.png"), ""]
|
||||
labels[self.Columns.STATUS] = [read_QIcon_from_bytes(self.parent.bal_plugin.read_file("icons/unconfirmed.png")),""]
|
||||
labels[self.Columns.ADDRESS] = str(value.get("address", ""))
|
||||
labels[self.Columns.INFO] = str(value.get("info", ""))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user