Compare commits
8 Commits
v0.2.3
...
2a4eab81fd
| Author | SHA1 | Date | |
|---|---|---|---|
|
2a4eab81fd
|
|||
|
d86b941fcb
|
|||
|
1836cdd892
|
|||
|
2416d0ce8d
|
|||
|
8e4e401d1b
|
|||
|
b8859ee5c1
|
|||
|
faeff1ff3c
|
|||
|
437105477d
|
18
bal.py
18
bal.py
@@ -68,15 +68,9 @@ class BalPlugin(BasePlugin):
|
||||
self.base_dir = os.path.join(config.electrum_path(), "bal")
|
||||
self.plugin_dir = os.path.split(os.path.realpath(__file__))[0]
|
||||
zipfile = "/".join(self.plugin_dir.split("/")[:-1])
|
||||
# print("real path",os.path.realpath(__file__))
|
||||
# self.logger.info(self.base_dir)
|
||||
# print("base_dir:", self.base_dir)
|
||||
# print("suca:",zipfile)
|
||||
# print("plugin_dir:", self.plugin_dir)
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, zipfile)
|
||||
# print("sono state listate?")
|
||||
self.parent = parent
|
||||
self.config = config
|
||||
self.name = name
|
||||
@@ -96,10 +90,10 @@ class BalPlugin(BasePlugin):
|
||||
self.PREVIEW = BalConfig(config, "bal_preview", True)
|
||||
self.SAVE_TXS = BalConfig(config, "bal_save_txs", True)
|
||||
self.WILLEXECUTORS = BalConfig(config, "bal_willexecutors", True)
|
||||
self.PING_WILLEXECUTORS = BalConfig(config, "bal_ping_willexecutors", True)
|
||||
self.ASK_PING_WILLEXECUTORS = BalConfig(
|
||||
config, "bal_ask_ping_willexecutors", True
|
||||
)
|
||||
#self.PING_WILLEXECUTORS = BalConfig(config, "bal_ping_willexecutors", True)
|
||||
#self.ASK_PING_WILLEXECUTORS = BalConfig(
|
||||
# config, "bal_ask_ping_willexecutors", True
|
||||
#)
|
||||
self.NO_WILLEXECUTOR = BalConfig(config, "bal_no_willexecutor", True)
|
||||
self.HIDE_REPLACED = BalConfig(config, "bal_hide_replaced", True)
|
||||
self.HIDE_INVALIDATED = BalConfig(config, "bal_hide_invalidated", True)
|
||||
@@ -145,13 +139,11 @@ class BalPlugin(BasePlugin):
|
||||
self.HIDE_REPLACED.set(self._hide_replaced)
|
||||
|
||||
def validate_will_settings(self, will_settings):
|
||||
# print(type(will_settings))
|
||||
# print(will_settings.get('baltx_fees',1),1)
|
||||
if int(will_settings.get("baltx_fees", 1)) < 1:
|
||||
will_settings["baltx_fees"] = 1
|
||||
if not will_settings.get("threshold"):
|
||||
will_settings["threshold"] = "180d"
|
||||
if not will_settings.get("locktime") == "":
|
||||
if not will_settings.get("locktime"):
|
||||
will_settings["locktime"] = "1y"
|
||||
return will_settings
|
||||
|
||||
|
||||
BIN
icons/confirmed.png
Normal file
BIN
icons/confirmed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 53 KiB |
BIN
icons/status_connected.png
Normal file
BIN
icons/status_connected.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 69 KiB |
BIN
icons/unconfirmed.png
Normal file
BIN
icons/unconfirmed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "BAL",
|
||||
"fullname": "Bitcoin After Life",
|
||||
"description": "Provides free and decentralized inheritance support<br> Version: 0.2.3",
|
||||
"description": "Provides free and decentralized inheritance support<br> Version: 0.2.4",
|
||||
"author":"Svatantrya",
|
||||
"available_for": ["qt"],
|
||||
"icon":"icons/bal32x32.png"
|
||||
|
||||
157
qt.py
157
qt.py
@@ -295,8 +295,8 @@ class Plugin(BalPlugin, Logger):
|
||||
lbl_logo = QLabel()
|
||||
lbl_logo.setPixmap(qicon)
|
||||
|
||||
heir_ping_willexecutors = bal_checkbox(self.PING_WILLEXECUTORS)
|
||||
heir_ask_ping_willexecutors = bal_checkbox(self.ASK_PING_WILLEXECUTORS)
|
||||
#heir_ping_willexecutors = bal_checkbox(self.PING_WILLEXECUTORS)
|
||||
#heir_ask_ping_willexecutors = bal_checkbox(self.ASK_PING_WILLEXECUTORS)
|
||||
heir_no_willexecutor = bal_checkbox(self.NO_WILLEXECUTOR)
|
||||
|
||||
def on_multiverse_change():
|
||||
@@ -327,27 +327,27 @@ class Plugin(BalPlugin, Logger):
|
||||
2,
|
||||
"Hide invalidated transactions from will detail and list",
|
||||
)
|
||||
add_widget(
|
||||
grid,
|
||||
"Ping Willexecutors",
|
||||
heir_ping_willexecutors,
|
||||
3,
|
||||
"Ping willexecutors to get payment info before compiling will",
|
||||
)
|
||||
add_widget(
|
||||
grid,
|
||||
" - Ask before",
|
||||
heir_ask_ping_willexecutors,
|
||||
4,
|
||||
"Ask before to ping willexecutor",
|
||||
)
|
||||
add_widget(
|
||||
grid,
|
||||
"Backup Transaction",
|
||||
heir_no_willexecutor,
|
||||
5,
|
||||
"Add transactions without willexecutor",
|
||||
)
|
||||
#add_widget(
|
||||
# grid,
|
||||
# "Ping Willexecutors",
|
||||
# heir_ping_willexecutors,
|
||||
# 3,
|
||||
# "Ping willexecutors to get payment info before compiling will",
|
||||
#)
|
||||
#add_widget(
|
||||
# grid,
|
||||
# " - Ask before",
|
||||
# heir_ask_ping_willexecutors,
|
||||
# 4,
|
||||
# "Ask before to ping willexecutor",
|
||||
#)
|
||||
#add_widget(
|
||||
# grid,
|
||||
# "Backup Transaction",
|
||||
# heir_no_willexecutor,
|
||||
# 5,
|
||||
# "Add transactions without willexecutor",
|
||||
#)
|
||||
# add_widget(grid,"Enable Multiverse(EXPERIMENTAL/BROKEN)",heir_enable_multiverse,6,"enable multiple locktimes, will import.... ")
|
||||
grid.addWidget(heir_repush, 7, 0)
|
||||
grid.addWidget(
|
||||
@@ -401,13 +401,13 @@ class BalWindow(Logger):
|
||||
self.willitems = {}
|
||||
self.willexecutors = {}
|
||||
self.will_settings = None
|
||||
self.heirs_tab = self.create_heirs_tab()
|
||||
self.will_tab = self.create_will_tab()
|
||||
self.ok = False
|
||||
self.disable_plugin = True
|
||||
self.bal_plugin.get_decimal_point = self.window.get_decimal_point
|
||||
|
||||
if self.window.wallet:
|
||||
self.heirs_tab = self.create_heirs_tab()
|
||||
self.will_tab = self.create_will_tab()
|
||||
self.wallet = self.window.wallet
|
||||
self.heirs_tab.wallet = self.wallet
|
||||
self.will_tab.wallet = self.wallet
|
||||
@@ -419,7 +419,7 @@ class BalWindow(Logger):
|
||||
tab.tab_icon = icon
|
||||
tab.tab_description = description
|
||||
tab.tab_pos = len(tabs)
|
||||
if tab.is_shown_cv:
|
||||
if tab.is_shown_cv.get():
|
||||
tabs.addTab(tab, icon, description.replace("&", ""))
|
||||
|
||||
def add_toggle_action(tab):
|
||||
@@ -498,7 +498,6 @@ class BalWindow(Logger):
|
||||
if not self.will_settings:
|
||||
Util.copy(self.will_settings, self.bal_plugin.default_will_settings())
|
||||
self.logger.debug("not_will_settings {}".format(self.will_settings))
|
||||
|
||||
self.bal_plugin.validate_will_settings(self.will_settings)
|
||||
self.heir_list.update_will_settings()
|
||||
|
||||
@@ -514,7 +513,7 @@ class BalWindow(Logger):
|
||||
self.heir_list = l = HeirList(self, self.window)
|
||||
|
||||
tab = self.window.create_list_tab(l)
|
||||
tab.is_shown_cv = shown_cv(True)
|
||||
tab.is_shown_cv = shown_cv(False)
|
||||
return tab
|
||||
|
||||
def create_will_tab(self):
|
||||
@@ -523,6 +522,7 @@ class BalWindow(Logger):
|
||||
tab.is_shown_cv = shown_cv(True)
|
||||
return tab
|
||||
|
||||
|
||||
def new_heir_dialog(self, heir_key=None):
|
||||
heir = self.heirs.get(heir_key)
|
||||
title = "New heir"
|
||||
@@ -655,7 +655,6 @@ class BalWindow(Logger):
|
||||
Will.normalize_will(self.willitems, self.wallet)
|
||||
|
||||
def build_will(self, ignore_duplicate=True, keep_original=True):
|
||||
|
||||
will = {}
|
||||
willtodelete = []
|
||||
willtoappend = {}
|
||||
@@ -664,7 +663,6 @@ class BalWindow(Logger):
|
||||
self.willexecutors = Willexecutors.get_willexecutors(
|
||||
self.bal_plugin, update=False, bal_window=self
|
||||
)
|
||||
|
||||
if not self.no_willexecutor:
|
||||
|
||||
f = False
|
||||
@@ -1577,7 +1575,7 @@ class BalWizardDialog(BalDialog):
|
||||
)
|
||||
|
||||
def on_next_we(self):
|
||||
close_window = BalBuildWillDialog(self.bal_window, self)
|
||||
close_window = BalBuildWillDialog(self.bal_window)
|
||||
close_window.build_will_task()
|
||||
self.close()
|
||||
# self.next_widget(BalWizardLocktimeAndFeeWidget(self.bal_window,self,self.on_next_locktimeandfee,self.on_next_wedonwload,self.on_next_wedonwload.on_cancel_heir))
|
||||
@@ -1687,7 +1685,7 @@ class BalWizardHeirsWidget(BalWizardWidget):
|
||||
button_import = QPushButton(_("Import"))
|
||||
button_import.clicked.connect(self.import_from_file)
|
||||
button_export = QPushButton(_("Export"))
|
||||
button_import.clicked.connect(self.export_to_file)
|
||||
button_export.clicked.connect(self.export_to_file)
|
||||
widget = QWidget()
|
||||
vbox = QVBoxLayout(widget)
|
||||
vbox.addWidget(self.heirs_list)
|
||||
@@ -1759,7 +1757,7 @@ class BalWizardWEDownloadWidget(BalWizardWidget):
|
||||
|
||||
def on_success(willexecutors):
|
||||
self.bal_window.willexecutors.update(willexecutors)
|
||||
self.bal_window.ping_willexecutors(self.bal_window.willexecutors)
|
||||
self.bal_window.ping_willexecutors(self.bal_window.willexecutors,False)
|
||||
if index < 1:
|
||||
for we in self.bal_window.willexecutors:
|
||||
if self.bal_window.willexecutors[we]["status"] == 200:
|
||||
@@ -1820,6 +1818,7 @@ class BalWizardLocktimeAndFeeWidget(BalWizardWidget):
|
||||
widget = QWidget()
|
||||
self.heir_locktime = HeirsLockTimeEdit(widget, 0)
|
||||
will_settings = self.bal_window.bal_plugin.WILL_SETTINGS.get()
|
||||
will_settings = self.bal_window.will_settings
|
||||
self.heir_locktime.set_locktime(will_settings["locktime"])
|
||||
|
||||
def on_heir_locktime():
|
||||
@@ -1829,6 +1828,7 @@ class BalWizardLocktimeAndFeeWidget(BalWizardWidget):
|
||||
self.heir_locktime.get_locktime()
|
||||
if self.heir_locktime.get_locktime()
|
||||
else "1y"
|
||||
|
||||
)
|
||||
self.bal_window.bal_plugin.WILL_SETTINGS.set(self.bal_window.will_settings)
|
||||
|
||||
@@ -1846,6 +1846,7 @@ class BalWizardLocktimeAndFeeWidget(BalWizardWidget):
|
||||
)
|
||||
self.bal_window.bal_plugin.WILL_SETTINGS.set(self.bal_window.will_settings)
|
||||
|
||||
|
||||
self.heir_threshold.valueEdited.connect(on_heir_threshold)
|
||||
|
||||
self.heir_tx_fees = QSpinBox(widget)
|
||||
@@ -2028,6 +2029,7 @@ class BalBuildWillDialog(BalDialog):
|
||||
if not parent:
|
||||
parent = bal_window.window
|
||||
BalDialog.__init__(self, parent, bal_window.bal_plugin, "Building Will")
|
||||
self.parent=parent
|
||||
self.updatemessage.connect(self.update)
|
||||
self.bal_window = bal_window
|
||||
self.message_label = QLabel("Building Will:")
|
||||
@@ -2571,9 +2573,9 @@ class HeirList(MyTreeView, MessageBoxMixin):
|
||||
items[self.Columns.NAME].setEditable(True)
|
||||
items[self.Columns.ADDRESS].setEditable(True)
|
||||
items[self.Columns.AMOUNT].setEditable(True)
|
||||
items[self.Columns.NAME].setData(key, self.ROLE_HEIR_KEY + 1)
|
||||
items[self.Columns.ADDRESS].setData(key, self.ROLE_HEIR_KEY + 2)
|
||||
items[self.Columns.AMOUNT].setData(key, self.ROLE_HEIR_KEY + 3)
|
||||
items[self.Columns.NAME].setData(key, self.ROLE_HEIR_KEY + self.Columns.NAME)
|
||||
items[self.Columns.ADDRESS].setData(key, self.ROLE_HEIR_KEY + self.Columns.ADDRESS)
|
||||
items[self.Columns.AMOUNT].setData(key, self.ROLE_HEIR_KEY + self.Columns.AMOUNT)
|
||||
|
||||
row_count = self.model().rowCount()
|
||||
self.model().insertRow(row_count, items)
|
||||
@@ -2592,10 +2594,10 @@ class HeirList(MyTreeView, MessageBoxMixin):
|
||||
pass
|
||||
|
||||
def get_edit_key_from_coordinate(self, row, col):
|
||||
return self.get_role_data_from_coordinate(
|
||||
row, col, role=self.ROLE_HEIR_KEY + col + 1
|
||||
a= self.get_role_data_from_coordinate(
|
||||
row, col, role=self.ROLE_HEIR_KEY + col
|
||||
)
|
||||
|
||||
return a
|
||||
def create_toolbar(self, config):
|
||||
toolbar, menu = self.create_toolbar_with_menu("")
|
||||
menu.addAction(_("&New Heir"), self.bal_window.new_heir_dialog)
|
||||
@@ -2603,7 +2605,6 @@ class HeirList(MyTreeView, MessageBoxMixin):
|
||||
menu.addAction(_("Export"), lambda: self.bal_window.export_heirs())
|
||||
|
||||
self.heir_locktime = HeirsLockTimeEdit(self, 0)
|
||||
|
||||
def on_heir_locktime():
|
||||
if not self.heir_locktime.get_locktime():
|
||||
self.heir_locktime.set_locktime("1y")
|
||||
@@ -2691,8 +2692,9 @@ class HeirList(MyTreeView, MessageBoxMixin):
|
||||
def update_will_settings(self):
|
||||
try:
|
||||
self.heir_locktime.set_locktime(self.bal_window.will_settings["locktime"])
|
||||
self.heir_tx_fees.setValue(int(self.bal_window.will_settings["baltx_fees"]))
|
||||
self.heir_threshold.set_locktime(self.bal_window.will_settings["threshold"])
|
||||
self.heir_tx_fees.setValue(int(self.bal_window.will_settings["baltx_fees"]))
|
||||
|
||||
|
||||
except Exception as e:
|
||||
_logger.debug(f"Exception update_will_settings {e}")
|
||||
@@ -2737,6 +2739,7 @@ class PreviewList(MyTreeView):
|
||||
|
||||
self.wallet = bal_window.window.wallet
|
||||
self.setModel(QStandardItemModel(self))
|
||||
self.sortByColumn(self.Columns.LOCKTIME, Qt.SortOrder.AscendingOrder)
|
||||
self.setSortingEnabled(True)
|
||||
self.std_model = self.model()
|
||||
self.config = bal_window.bal_plugin.config
|
||||
@@ -2895,6 +2898,8 @@ class PreviewList(MyTreeView):
|
||||
tmp = self.replace(set_current, current_key, txid, bal_tx)
|
||||
if tmp:
|
||||
set_current = tmp
|
||||
self.sortByColumn(self.Columns.LOCKTIME, Qt.SortOrder.AscendingOrder)
|
||||
self.setSortingEnabled(True)
|
||||
|
||||
def create_toolbar(self, config):
|
||||
toolbar, menu = self.create_toolbar_with_menu("")
|
||||
@@ -2913,6 +2918,9 @@ class PreviewList(MyTreeView):
|
||||
display = QPushButton(_("Display"))
|
||||
display.clicked.connect(self.bal_window.preview_modal_dialog)
|
||||
|
||||
display = QPushButton(_("refresh"))
|
||||
display.clicked.connect(self.check)
|
||||
|
||||
widget = QWidget()
|
||||
hlayout = QHBoxLayout(widget)
|
||||
hlayout.addWidget(wizard)
|
||||
@@ -2954,10 +2962,19 @@ class PreviewList(MyTreeView):
|
||||
self.update()
|
||||
|
||||
def check(self):
|
||||
Will.add_willtree(self.bal_window.willitems)
|
||||
all_utxos =self.bal_window.wallet.get_utxos()
|
||||
utxos_list = Will.utxos_strs(all_utxos)
|
||||
Will.check_invalidated(self.bal_window.willitems,utxos_list,self.bal_window.wallet)
|
||||
|
||||
close_window = BalBuildWillDialog(self.bal_window)
|
||||
close_window.build_will_task()
|
||||
|
||||
will = {}
|
||||
for wid, w in self.bal_window.willitems.items():
|
||||
if w.get_status("VALID"):
|
||||
if w.get_status("VALID") and w.get_status("PUSHED") and not w.get_status("CHECKED"):
|
||||
will[wid] = w
|
||||
if will:
|
||||
self.bal_window.check_transactions(will)
|
||||
self.update()
|
||||
|
||||
@@ -2991,6 +3008,10 @@ class PreviewDialog(BalDialog, MessageBoxMixin):
|
||||
self.setMinimumSize(1000, 200)
|
||||
self.size_label = QLabel()
|
||||
self.transactions_list = PreviewList(self.bal_window, self.will)
|
||||
|
||||
self.bal_window.init_class_variables()
|
||||
self.check_will()
|
||||
|
||||
vbox = QVBoxLayout(self)
|
||||
vbox.addWidget(self.size_label)
|
||||
vbox.addWidget(self.transactions_list)
|
||||
@@ -3041,14 +3062,6 @@ class PreviewDialog(BalDialog, MessageBoxMixin):
|
||||
event.accept()
|
||||
|
||||
|
||||
def read_bal_QIcon(icon_basename: str = DEFAULT_ICON) -> QIcon:
|
||||
return QIcon(icon_path(icon_basename))
|
||||
|
||||
|
||||
def read_bal_QPixmap(icon_basename: str = DEFAULT_ICON) -> QPixmap:
|
||||
return QPixmap(icon_path(icon_basename))
|
||||
|
||||
|
||||
class WillDetailDialog(BalDialog):
|
||||
def __init__(self, bal_window):
|
||||
|
||||
@@ -3246,24 +3259,27 @@ class WillExecutorList(MyTreeView):
|
||||
class Columns(MyTreeView.BaseColumnsEnum):
|
||||
SELECTED = enum.auto()
|
||||
URL = enum.auto()
|
||||
STATUS = enum.auto()
|
||||
BASE_FEE = enum.auto()
|
||||
INFO = enum.auto()
|
||||
ADDRESS = enum.auto()
|
||||
STATUS = enum.auto()
|
||||
|
||||
headers = {
|
||||
Columns.SELECTED: _(""),
|
||||
Columns.URL: _("Url"),
|
||||
Columns.STATUS: _("S"),
|
||||
Columns.BASE_FEE: _("Base fee"),
|
||||
Columns.INFO: _("Info"),
|
||||
Columns.ADDRESS: _("Default Address"),
|
||||
Columns.STATUS: _("S"),
|
||||
}
|
||||
|
||||
ROLE_HEIR_KEY = Qt.ItemDataRole.UserRole + 2000
|
||||
filter_columns = [Columns.URL]
|
||||
|
||||
ROLE_SORT_ORDER = Qt.ItemDataRole.UserRole + 3000
|
||||
ROLE_HEIR_KEY = Qt.ItemDataRole.UserRole + 3001
|
||||
key_role = ROLE_HEIR_KEY
|
||||
|
||||
def __init__(self, parent: "WillExecutorDialog"):
|
||||
def __init__(self, parent: "WillExecutorWidget"):
|
||||
super().__init__(
|
||||
parent=parent,
|
||||
stretch_column=self.Columns.ADDRESS,
|
||||
@@ -3274,8 +3290,13 @@ class WillExecutorList(MyTreeView):
|
||||
self.Columns.INFO,
|
||||
],
|
||||
)
|
||||
self.parent = parent
|
||||
self.parent=parent
|
||||
try:
|
||||
self.setModel(QStandardItemModel(self))
|
||||
self.sortByColumn(self.Columns.SELECTED, Qt.SortOrder.AscendingOrder)
|
||||
self.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection)
|
||||
except Exception:
|
||||
pass
|
||||
self.setSortingEnabled(True)
|
||||
self.std_model = self.model()
|
||||
self.config = parent.bal_plugin.config
|
||||
@@ -3335,7 +3356,8 @@ class WillExecutorList(MyTreeView):
|
||||
self.update()
|
||||
|
||||
def get_edit_key_from_coordinate(self, row, col):
|
||||
a = self.get_role_data_from_coordinate(row, col, role=self.ROLE_HEIR_KEY + col)
|
||||
role=self.ROLE_HEIR_KEY+col
|
||||
a = self.get_role_data_from_coordinate(row, col, role=role)
|
||||
return a
|
||||
|
||||
def delete(self, selected_keys):
|
||||
@@ -3423,17 +3445,17 @@ class WillExecutorList(MyTreeView):
|
||||
items[self.Columns.BASE_FEE].setEditable(True)
|
||||
items[self.Columns.STATUS].setEditable(False)
|
||||
|
||||
items[self.Columns.URL].setData(url, self.ROLE_HEIR_KEY + 1)
|
||||
items[self.Columns.BASE_FEE].setData(url, self.ROLE_HEIR_KEY + 2)
|
||||
items[self.Columns.INFO].setData(url, self.ROLE_HEIR_KEY + 3)
|
||||
items[self.Columns.ADDRESS].setData(url, self.ROLE_HEIR_KEY + 4)
|
||||
items[self.Columns.URL].setData(url, self.ROLE_HEIR_KEY + self.Columns.URL)
|
||||
items[self.Columns.BASE_FEE].setData(url, self.ROLE_HEIR_KEY + self.Columns.BASE_FEE)
|
||||
items[self.Columns.INFO].setData(url, self.ROLE_HEIR_KEY + self.Columns.INFO)
|
||||
items[self.Columns.ADDRESS].setData(url, self.ROLE_HEIR_KEY + self.Columns.ADDRESS)
|
||||
row_count = self.model().rowCount()
|
||||
self.model().insertRow(row_count, items)
|
||||
if url == current_key:
|
||||
idx = self.model().index(row_count, self.Columns.NAME)
|
||||
idx = self.model().index(row_count, self.Columns.URL)
|
||||
set_current = QPersistentModelIndex(idx)
|
||||
self.set_current_idx(set_current)
|
||||
|
||||
self.filter()
|
||||
self.parent.save_willexecutors()
|
||||
|
||||
except Exception as e:
|
||||
@@ -3494,7 +3516,7 @@ class WillExecutorWidget(QWidget, MessageBoxMixin):
|
||||
buttonbox.addWidget(b)
|
||||
|
||||
vbox.addLayout(buttonbox)
|
||||
self.willexecutor_list.update()
|
||||
#self.willexecutor_list.update()
|
||||
|
||||
def add(self):
|
||||
self.willexecutors_list["http://localhost:8080"] = {
|
||||
@@ -3526,14 +3548,7 @@ class WillExecutorWidget(QWidget, MessageBoxMixin):
|
||||
|
||||
def update_willexecutors(self, wes=None):
|
||||
if not wes:
|
||||
self.willexecutors_list = Willexecutors.get_willexecutors(
|
||||
self.bal_plugin,
|
||||
update=True,
|
||||
bal_window=self.bal_window,
|
||||
force=True,
|
||||
task=self,
|
||||
)
|
||||
else:
|
||||
wes=self.willexecutors_list
|
||||
self.bal_window.ping_willexecutors(wes, self.parent)
|
||||
self.willexecutors_list.update(wes)
|
||||
self.willexecutor_list.update()
|
||||
|
||||
6
will.py
6
will.py
@@ -82,8 +82,6 @@ class Will:
|
||||
for txin in will[wid].tx.inputs():
|
||||
txid = txin.prevout.txid.hex()
|
||||
if txid in will:
|
||||
# print(will[txid].tx.outputs())
|
||||
# print(txin.prevout.out_idx)
|
||||
change = will[txid].tx.outputs()[txin.prevout.out_idx]
|
||||
txin._trusted_value_sats = change.value
|
||||
try:
|
||||
@@ -421,7 +419,7 @@ class Will:
|
||||
# check if transactions are stil valid tecnically valid
|
||||
def check_invalidated(willtree, utxos_list, wallet):
|
||||
for wid, w in willtree.items():
|
||||
if not w.father:
|
||||
#if not w.father:
|
||||
for inp in w.tx.inputs():
|
||||
inp_str = Util.utxo_to_str(inp)
|
||||
if not inp_str in utxos_list:
|
||||
@@ -433,6 +431,8 @@ class Will:
|
||||
w.set_status("PENDING", True)
|
||||
else:
|
||||
w.set_status("CONFIRMED", True)
|
||||
#else:
|
||||
# print("father",w.father)
|
||||
|
||||
def reflect_to_children(treeitem):
|
||||
if not treeitem.get_status("VALID"):
|
||||
|
||||
@@ -42,27 +42,27 @@ class Willexecutors:
|
||||
if not bal_url in willexecutors:
|
||||
_logger.debug(f"force add {bal_url} willexecutor")
|
||||
willexecutors[bal_url] = bal_executor
|
||||
if update:
|
||||
found = False
|
||||
for url, we in willexecutors.items():
|
||||
if Willexecutors.is_selected(we):
|
||||
found = True
|
||||
if found or force:
|
||||
if bal_plugin.PING_WILLEXECUTORS.get() or force:
|
||||
ping_willexecutors = True
|
||||
if bal_plugin.ASK_PING_WILLEXECUTORS.get() and not force:
|
||||
if bal_window:
|
||||
ping_willexecutors = bal_window.window.question(
|
||||
_(
|
||||
"Contact willexecutors servers to update payment informations?"
|
||||
)
|
||||
)
|
||||
#if update:
|
||||
# found = False
|
||||
# for url, we in willexecutors.items():
|
||||
# if Willexecutors.is_selected(we):
|
||||
# found = True
|
||||
# if found or force:
|
||||
# if bal_plugin.PING_WILLEXECUTORS.get() or force:
|
||||
# ping_willexecutors = True
|
||||
# if bal_plugin.ASK_PING_WILLEXECUTORS.get() and not force:
|
||||
# if bal_window:
|
||||
# ping_willexecutors = bal_window.window.question(
|
||||
# _(
|
||||
# "Contact willexecutors servers to update payment informations?"
|
||||
# )
|
||||
# )
|
||||
|
||||
if ping_willexecutors:
|
||||
if task:
|
||||
bal_window.ping_willexecutors(willexecutors, task)
|
||||
else:
|
||||
bal_window.ping_willexecutors_task(willexecutors)
|
||||
# if ping_willexecutors:
|
||||
# if task:
|
||||
# bal_window.ping_willexecutors(willexecutors, task)
|
||||
# else:
|
||||
# bal_window.ping_willexecutors_task(willexecutors)
|
||||
w_sorted = dict(
|
||||
sorted(
|
||||
willexecutors.items(), key=lambda w: w[1].get("sort", 0), reverse=True
|
||||
|
||||
Reference in New Issue
Block a user