black reformatted
This commit is contained in:
65
heirs.py
65
heirs.py
@@ -368,14 +368,18 @@ class Heirs(dict, Logger):
|
|||||||
fixed_amount = 0.0
|
fixed_amount = 0.0
|
||||||
percent_heirs = {}
|
percent_heirs = {}
|
||||||
percent_amount = 0.0
|
percent_amount = 0.0
|
||||||
fixed_amount_with_dust =0.0
|
fixed_amount_with_dust = 0.0
|
||||||
for key in self.keys():
|
for key in self.keys():
|
||||||
try:
|
try:
|
||||||
cmp = (
|
cmp = (
|
||||||
Util.parse_locktime_string(self[key][HEIR_LOCKTIME]) - from_locktime
|
Util.parse_locktime_string(self[key][HEIR_LOCKTIME]) - from_locktime
|
||||||
)
|
)
|
||||||
if cmp <= 0:
|
if cmp <= 0:
|
||||||
_logger.debug("cmp < 0 {} {} {} ".format(cmp, key, self[key][HEIR_LOCKTIME], from_locktime))
|
_logger.debug(
|
||||||
|
"cmp < 0 {} {} {} ".format(
|
||||||
|
cmp, key, self[key][HEIR_LOCKTIME], from_locktime
|
||||||
|
)
|
||||||
|
)
|
||||||
continue
|
continue
|
||||||
if Util.is_perc(self[key][HEIR_AMOUNT]):
|
if Util.is_perc(self[key][HEIR_AMOUNT]):
|
||||||
percent_amount += float(self[key][HEIR_AMOUNT][:-1])
|
percent_amount += float(self[key][HEIR_AMOUNT][:-1])
|
||||||
@@ -389,11 +393,19 @@ class Heirs(dict, Logger):
|
|||||||
fixed_heirs[key].insert(HEIR_REAL_AMOUNT, heir_amount)
|
fixed_heirs[key].insert(HEIR_REAL_AMOUNT, heir_amount)
|
||||||
else:
|
else:
|
||||||
fixed_heirs[key] = list(self[key])
|
fixed_heirs[key] = list(self[key])
|
||||||
fixed_heirs[key].insert(HEIR_REAL_AMOUNT, f"DUST: {heir_amount}")
|
fixed_heirs[key].insert(
|
||||||
|
HEIR_REAL_AMOUNT, f"DUST: {heir_amount}"
|
||||||
|
)
|
||||||
fixed_heirs[key].insert(HEIR_DUST_AMOUNT, heir_amount)
|
fixed_heirs[key].insert(HEIR_DUST_AMOUNT, heir_amount)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_logger.error(e)
|
_logger.error(e)
|
||||||
return fixed_heirs, fixed_amount, percent_heirs, percent_amount, fixed_amount_with_dust
|
return (
|
||||||
|
fixed_heirs,
|
||||||
|
fixed_amount,
|
||||||
|
percent_heirs,
|
||||||
|
percent_amount,
|
||||||
|
fixed_amount_with_dust,
|
||||||
|
)
|
||||||
|
|
||||||
def prepare_lists(
|
def prepare_lists(
|
||||||
self, balance, total_fees, wallet, willexecutor=False, from_locktime=0
|
self, balance, total_fees, wallet, willexecutor=False, from_locktime=0
|
||||||
@@ -426,13 +438,19 @@ class Heirs(dict, Logger):
|
|||||||
),
|
),
|
||||||
heir_list.update(willexecutors)
|
heir_list.update(willexecutors)
|
||||||
newbalance -= willexecutors_amount
|
newbalance -= willexecutors_amount
|
||||||
if newbalance<0:
|
if newbalance < 0:
|
||||||
raise WillExecutorFeeException(willexecutor)
|
raise WillExecutorFeeException(willexecutor)
|
||||||
a=list(self.fixed_percent_lists_amount(from_locktime, wallet.dust_threshold()))
|
a = list(
|
||||||
fixed_heirs, fixed_amount, percent_heirs, percent_amount,fixed_amount_with_dust = (
|
self.fixed_percent_lists_amount(from_locktime, wallet.dust_threshold())
|
||||||
self.fixed_percent_lists_amount(from_locktime, wallet.dust_threshold())
|
)
|
||||||
)
|
(
|
||||||
|
fixed_heirs,
|
||||||
|
fixed_amount,
|
||||||
|
percent_heirs,
|
||||||
|
percent_amount,
|
||||||
|
fixed_amount_with_dust,
|
||||||
|
) = self.fixed_percent_lists_amount(from_locktime, wallet.dust_threshold())
|
||||||
|
|
||||||
if fixed_amount > newbalance:
|
if fixed_amount > newbalance:
|
||||||
fixed_amount = self.normalize_perc(
|
fixed_amount = self.normalize_perc(
|
||||||
fixed_heirs, newbalance, fixed_amount, wallet
|
fixed_heirs, newbalance, fixed_amount, wallet
|
||||||
@@ -520,7 +538,7 @@ class Heirs(dict, Logger):
|
|||||||
break
|
break
|
||||||
fees = {}
|
fees = {}
|
||||||
i = 0
|
i = 0
|
||||||
while i<10:
|
while i < 10:
|
||||||
txs = {}
|
txs = {}
|
||||||
redo = False
|
redo = False
|
||||||
i += 1
|
i += 1
|
||||||
@@ -533,7 +551,7 @@ class Heirs(dict, Logger):
|
|||||||
balance, total_fees, wallet, willexecutor, from_locktime
|
balance, total_fees, wallet, willexecutor, from_locktime
|
||||||
)
|
)
|
||||||
except WillExecutorFeeException as e:
|
except WillExecutorFeeException as e:
|
||||||
i=10
|
i = 10
|
||||||
continue
|
continue
|
||||||
if locktimes:
|
if locktimes:
|
||||||
try:
|
try:
|
||||||
@@ -543,7 +561,9 @@ class Heirs(dict, Logger):
|
|||||||
if not txs:
|
if not txs:
|
||||||
return {}
|
return {}
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_logger.error(f"build transactions: error preparing transactions: {e}")
|
_logger.error(
|
||||||
|
f"build transactions: error preparing transactions: {e}"
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
if "w!ll3x3c" in e.heirname:
|
if "w!ll3x3c" in e.heirname:
|
||||||
Willexecutors.is_selected(willexecutors[w], False)
|
Willexecutors.is_selected(willexecutors[w], False)
|
||||||
@@ -573,10 +593,12 @@ class Heirs(dict, Logger):
|
|||||||
if i >= 10:
|
if i >= 10:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
_logger.info(f"no locktimes for willexecutor {willexecutor} skipped")
|
_logger.info(
|
||||||
|
f"no locktimes for willexecutor {willexecutor} skipped"
|
||||||
|
)
|
||||||
break
|
break
|
||||||
alltxs.update(txs)
|
alltxs.update(txs)
|
||||||
|
|
||||||
return alltxs
|
return alltxs
|
||||||
|
|
||||||
def get_transactions(
|
def get_transactions(
|
||||||
@@ -733,10 +755,17 @@ class HeirExpiredException(LocktimeNotValid):
|
|||||||
|
|
||||||
class HeirAmountIsDustException(Exception):
|
class HeirAmountIsDustException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class NoHeirsException(Exception):
|
class NoHeirsException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class WillExecutorFeeException(Exception):
|
class WillExecutorFeeException(Exception):
|
||||||
def __init__(self,willexecutor):
|
def __init__(self, willexecutor):
|
||||||
self.willexecutor=willexecutor
|
self.willexecutor = willexecutor
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "WillExecutorFeeException: {} fee:{}".format(self.willexecutor['url'],self.willexecutor['base_fee'])
|
return "WillExecutorFeeException: {} fee:{}".format(
|
||||||
|
self.willexecutor["url"], self.willexecutor["base_fee"]
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "BAL",
|
"name": "BAL",
|
||||||
"fullname": "Bitcoin After Life",
|
"fullname": "Bitcoin After Life",
|
||||||
"description": "Provides free and decentralized inheritance support<br> Version: 0.2.4",
|
"description": "Provides free and decentralized inheritance support<br> Version: 0.2.4",
|
||||||
"author":"Svatantrya",
|
"author": "Svatantrya",
|
||||||
"available_for": ["qt"],
|
"available_for": ["qt"],
|
||||||
"icon":"icons/bal32x32.png"
|
"icon": "icons/bal32x32.png",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
49
qt.py
49
qt.py
@@ -628,7 +628,7 @@ class BalWindow(Logger):
|
|||||||
try:
|
try:
|
||||||
del self.heirs[heir]
|
del self.heirs[heir]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_logger.debug(f"error deleting heir: {heir} {e}")
|
_logger.debug(f"error deleting heir: {heir} {e}")
|
||||||
pass
|
pass
|
||||||
self.heirs.save()
|
self.heirs.save()
|
||||||
self.heir_list.update()
|
self.heir_list.update()
|
||||||
@@ -2038,9 +2038,9 @@ class bal_checkbox(QCheckBox):
|
|||||||
|
|
||||||
class BalBuildWillDialog(BalDialog):
|
class BalBuildWillDialog(BalDialog):
|
||||||
updatemessage = pyqtSignal()
|
updatemessage = pyqtSignal()
|
||||||
COLOR_WARNING='#cfa808'
|
COLOR_WARNING = "#cfa808"
|
||||||
COLOR_ERROR='#ff0000'
|
COLOR_ERROR = "#ff0000"
|
||||||
COLOR_OK='#05ad05'
|
COLOR_OK = "#05ad05"
|
||||||
|
|
||||||
def __init__(self, bal_window, parent=None):
|
def __init__(self, bal_window, parent=None):
|
||||||
if not parent:
|
if not parent:
|
||||||
@@ -2097,7 +2097,7 @@ class BalBuildWillDialog(BalDialog):
|
|||||||
self.bal_window.window.wallet.dust_threshold(),
|
self.bal_window.window.wallet.dust_threshold(),
|
||||||
)
|
)
|
||||||
_logger.debug("variables ok")
|
_logger.debug("variables ok")
|
||||||
self.msg_set_status("checking variables:", varrow, "Ok",self.COLOR_OK)
|
self.msg_set_status("checking variables:", varrow, "Ok", self.COLOR_OK)
|
||||||
except AmountException:
|
except AmountException:
|
||||||
self.msg_set_status(
|
self.msg_set_status(
|
||||||
"checking variables",
|
"checking variables",
|
||||||
@@ -2107,7 +2107,7 @@ class BalBuildWillDialog(BalDialog):
|
|||||||
+ "the entire wallet will always be fully emptied. \n"
|
+ "the entire wallet will always be fully emptied. \n"
|
||||||
+ "Your settings require an adjustment of the amounts"
|
+ "Your settings require an adjustment of the amounts"
|
||||||
),
|
),
|
||||||
self.COLOR_WARNING
|
self.COLOR_WARNING,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.msg_set_checking()
|
self.msg_set_checking()
|
||||||
@@ -2150,19 +2150,19 @@ class BalBuildWillDialog(BalDialog):
|
|||||||
try:
|
try:
|
||||||
if not self.bal_window.build_will():
|
if not self.bal_window.build_will():
|
||||||
self.msg_set_status(
|
self.msg_set_status(
|
||||||
_("Balance is too low. No transaction was built"),None,_("Skipped"),self.COLOR_ERROR
|
_("Balance is too low. No transaction was built"),
|
||||||
|
None,
|
||||||
|
_("Skipped"),
|
||||||
|
self.COLOR_ERROR,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.bal_window.check_will()
|
self.bal_window.check_will()
|
||||||
for wid in Will.only_valid(self.bal_window.willitems):
|
for wid in Will.only_valid(self.bal_window.willitems):
|
||||||
self.bal_window.wallet.set_label(wid, "BAL Transaction")
|
self.bal_window.wallet.set_label(wid, "BAL Transaction")
|
||||||
self.msg_set_building(self.msg_ok())
|
self.msg_set_building(self.msg_ok())
|
||||||
except WillExecutorNotPresent as e:
|
except WillExecutorNotPresent as e:
|
||||||
self.msg_set_status(
|
self.msg_set_status(
|
||||||
_("Will-Executor excluded"),
|
_("Will-Executor excluded"), None, _("Skipped"), self.COLOR_ERROR
|
||||||
None,
|
|
||||||
_("Skipped"),
|
|
||||||
self.COLOR_ERROR
|
|
||||||
)
|
)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -2175,10 +2175,10 @@ class BalBuildWillDialog(BalDialog):
|
|||||||
for hid, heir in heirs.items():
|
for hid, heir in heirs.items():
|
||||||
if "DUST" in str(heir[HEIR_REAL_AMOUNT]):
|
if "DUST" in str(heir[HEIR_REAL_AMOUNT]):
|
||||||
self.msg_set_status(
|
self.msg_set_status(
|
||||||
f'{hid},{heir[HEIR_DUST_AMOUNT]} is DUST',
|
f"{hid},{heir[HEIR_DUST_AMOUNT]} is DUST",
|
||||||
None,
|
None,
|
||||||
f"Excluded from will {wid}",
|
f"Excluded from will {wid}",
|
||||||
self.COLOR_WARNING
|
self.COLOR_WARNING,
|
||||||
)
|
)
|
||||||
|
|
||||||
have_to_sign = False
|
have_to_sign = False
|
||||||
@@ -2430,20 +2430,19 @@ class BalBuildWillDialog(BalDialog):
|
|||||||
self.wait_row = self.msg_edit_row(f"Please wait {status}secs", self.wait_row)
|
self.wait_row = self.msg_edit_row(f"Please wait {status}secs", self.wait_row)
|
||||||
|
|
||||||
def msg_error(self, e):
|
def msg_error(self, e):
|
||||||
return "<font color='{}'>{}</font>".format(self.COLOR_ERROR,e)
|
return "<font color='{}'>{}</font>".format(self.COLOR_ERROR, e)
|
||||||
|
|
||||||
def msg_ok(self, e="Ok"):
|
def msg_ok(self, e="Ok"):
|
||||||
return "<font color='{}'>{}</font>".format(self.COLOR_OK,e)
|
return "<font color='{}'>{}</font>".format(self.COLOR_OK, e)
|
||||||
|
|
||||||
def msg_warning(self, e):
|
def msg_warning(self, e):
|
||||||
return "<font color='{}'>{}</font".format(self.COLOR_WARNING,e)
|
return "<font color='{}'>{}</font".format(self.COLOR_WARNING, e)
|
||||||
|
|
||||||
def msg_set_status(self, msg, row=None, status=None,color="#000000"):
|
def msg_set_status(self, msg, row=None, status=None, color="#000000"):
|
||||||
status = "Wait" if status is None else status
|
status = "Wait" if status is None else status
|
||||||
line = "<font color={}>{}:\t{}</font>".format(color,_(msg), status)
|
line = "<font color={}>{}:\t{}</font>".format(color, _(msg), status)
|
||||||
return self.msg_edit_row(line, row)
|
return self.msg_edit_row(line, row)
|
||||||
|
|
||||||
|
|
||||||
def ask_password(self, msg=None):
|
def ask_password(self, msg=None):
|
||||||
self.password = self.bal_window.get_wallet_password(msg, parent=self)
|
self.password = self.bal_window.get_wallet_password(msg, parent=self)
|
||||||
|
|
||||||
@@ -2560,9 +2559,9 @@ class HeirList(MyTreeView, MessageBoxMixin):
|
|||||||
except Exception:
|
except Exception:
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def delete_heirs(self,selected_keys):
|
def delete_heirs(self, selected_keys):
|
||||||
self.bal_window.delete_heirs(selected_keys)
|
self.bal_window.delete_heirs(selected_keys)
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def create_menu(self, position):
|
def create_menu(self, position):
|
||||||
menu = QMenu()
|
menu = QMenu()
|
||||||
@@ -2591,9 +2590,7 @@ class HeirList(MyTreeView, MessageBoxMixin):
|
|||||||
_("Edit {}").format(column_title),
|
_("Edit {}").format(column_title),
|
||||||
lambda p=persistent: self.edit(QModelIndex(p)),
|
lambda p=persistent: self.edit(QModelIndex(p)),
|
||||||
)
|
)
|
||||||
menu.addAction(
|
menu.addAction(_("Delete"), lambda: self.delete_heirs(selected_keys))
|
||||||
_("Delete"), lambda: self.delete_heirs(selected_keys)
|
|
||||||
)
|
|
||||||
menu.exec(self.viewport().mapToGlobal(position))
|
menu.exec(self.viewport().mapToGlobal(position))
|
||||||
|
|
||||||
# def get_selected_keys(self):
|
# def get_selected_keys(self):
|
||||||
|
|||||||
6
will.py
6
will.py
@@ -470,7 +470,7 @@ class Will:
|
|||||||
Will.reflect_to_children(wc)
|
Will.reflect_to_children(wc)
|
||||||
|
|
||||||
def check_amounts(heirs, willexecutors, all_utxos, timestamp_to_check, dust):
|
def check_amounts(heirs, willexecutors, all_utxos, timestamp_to_check, dust):
|
||||||
fixed_heirs, fixed_amount, perc_heirs, perc_amount,fixed_amount_with_dust = (
|
fixed_heirs, fixed_amount, perc_heirs, perc_amount, fixed_amount_with_dust = (
|
||||||
heirs.fixed_percent_lists_amount(timestamp_to_check, dust, reverse=True)
|
heirs.fixed_percent_lists_amount(timestamp_to_check, dust, reverse=True)
|
||||||
)
|
)
|
||||||
wallet_balance = 0
|
wallet_balance = 0
|
||||||
@@ -622,7 +622,7 @@ class Will:
|
|||||||
_logger.debug(
|
_logger.debug(
|
||||||
f"heir not present transaction is not valid:{wheir} {wid}, {w}"
|
f"heir not present transaction is not valid:{wheir} {wid}, {w}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if willexecutor := w.we:
|
if willexecutor := w.we:
|
||||||
count = willexecutors_found.get(willexecutor["url"], 0)
|
count = willexecutors_found.get(willexecutor["url"], 0)
|
||||||
if Util.cmp_willexecutor(
|
if Util.cmp_willexecutor(
|
||||||
@@ -634,7 +634,7 @@ class Will:
|
|||||||
no_willexecutor += 1
|
no_willexecutor += 1
|
||||||
count_heirs = 0
|
count_heirs = 0
|
||||||
for h in heirs:
|
for h in heirs:
|
||||||
|
|
||||||
if Util.parse_locktime_string(heirs[h][2]) >= check_date:
|
if Util.parse_locktime_string(heirs[h][2]) >= check_date:
|
||||||
count_heirs += 1
|
count_heirs += 1
|
||||||
if not h in heirs_found:
|
if not h in heirs_found:
|
||||||
|
|||||||
Reference in New Issue
Block a user