forked from bitcoinafterlife/bal-electrum-plugin
partial commit to fix wallet utils
this commit provide a lot of changes in will-settings including export to ics calendar file.
This commit is contained in:
62
bal.py
62
bal.py
@@ -1,14 +1,13 @@
|
||||
import os
|
||||
|
||||
from datetime import date, datetime, timedelta
|
||||
import platform
|
||||
# import random
|
||||
# import zipfile as zipfile_lib
|
||||
|
||||
from electrum import json_db
|
||||
from electrum import constants, json_db
|
||||
from electrum.logging import get_logger
|
||||
from electrum.plugin import BasePlugin
|
||||
from electrum.transaction import tx_from_any
|
||||
|
||||
|
||||
_logger = get_logger(__name__)
|
||||
def get_will_settings(x):
|
||||
# print(x)
|
||||
@@ -50,6 +49,12 @@ class BalConfig:
|
||||
class BalPlugin(BasePlugin):
|
||||
_version=None
|
||||
__version__ = "0.2.8" #AUTOMATICALLY GENERATED DO NOT EDIT
|
||||
default_app={
|
||||
"Linux":"xdg-open",
|
||||
"Window":"start",
|
||||
"Darwin":"open"
|
||||
}
|
||||
chainname = constants.net.NET_NAME if constants.net.NET_NAME != "mainnet" else "bitcoin"
|
||||
def version(self):
|
||||
if not self._version:
|
||||
try:
|
||||
@@ -60,7 +65,7 @@ class BalPlugin(BasePlugin):
|
||||
except Exception as e:
|
||||
_logger.error(f"failed to get version: {e}")
|
||||
self._version="unknown"
|
||||
return self._version
|
||||
return self._version
|
||||
|
||||
SIZE = (159, 97)
|
||||
|
||||
@@ -101,6 +106,7 @@ class BalPlugin(BasePlugin):
|
||||
self.HIDE_INVALIDATED = BalConfig(config, "bal_hide_invalidated", True)
|
||||
self.ALLOW_REPUSH = BalConfig(config, "bal_allow_repush", True)
|
||||
self.FIRST_EXECUTION = BalConfig(config, "bal_first_execution", True)
|
||||
self.WELIST_SERVER = BalConfig(config,"bal_welist_server","https://welist.bitcoin-after.life/")
|
||||
self.WILLEXECUTORS = BalConfig(
|
||||
config,
|
||||
"bal_willexecutors",
|
||||
@@ -123,18 +129,33 @@ class BalPlugin(BasePlugin):
|
||||
"selected": True,
|
||||
}
|
||||
},
|
||||
"testnet4": {
|
||||
"https://we.bitcoin-after.life": {
|
||||
"base_fee": 100000,
|
||||
"status": "New",
|
||||
"info": "Bitcoin After Life Will Executor",
|
||||
"address": "bcrt1qa5cntu4hgadw8zd3n6sq2nzjy34sxdtd9u0gp7",
|
||||
"selected": True,
|
||||
}
|
||||
},
|
||||
"regtest": {
|
||||
"https://we.bitcoin-after.life": {
|
||||
"base_fee": 100000,
|
||||
"status": "New",
|
||||
"info": "Bitcoin After Life Will Executor",
|
||||
"address": "bcrt1qa5cntu4hgadw8zd3n6sq2nzjy34sxdtd9u0gp7",
|
||||
"selected": True,
|
||||
}
|
||||
},
|
||||
},
|
||||
)
|
||||
self.WILL_SETTINGS = BalConfig(
|
||||
config,
|
||||
"bal_will_settings",
|
||||
{
|
||||
"baltx_fees": 100,
|
||||
"threshold": "180d",
|
||||
"locktime": "1y",
|
||||
},
|
||||
BalPlugin.default_will_settings(),
|
||||
)
|
||||
|
||||
self.system = platform.system()
|
||||
self.CALENDAR_APP = BalConfig(config,"bal_open_app",self.default_app[self.system])
|
||||
self._hide_invalidated = self.HIDE_INVALIDATED.get()
|
||||
self._hide_replaced = self.HIDE_REPLACED.get()
|
||||
|
||||
@@ -150,15 +171,22 @@ class BalPlugin(BasePlugin):
|
||||
self.HIDE_REPLACED.set(self._hide_replaced)
|
||||
|
||||
def validate_will_settings(self, will_settings):
|
||||
defaults=BalPlugin.default_will_settings()
|
||||
if not will_settings:
|
||||
will_settings=[]
|
||||
if int(will_settings.get("baltx_fees", 1)) < 1:
|
||||
will_settings["baltx_fees"] = 1
|
||||
if int(will_settings.get("baltx_fees", 0)) < 1:
|
||||
will_settings["baltx_fees"] = defaults['baltx_fees']
|
||||
if not will_settings.get("threshold"):
|
||||
will_settings["threshold"] = "180d"
|
||||
will_settings["threshold"] = defaults['threshold']
|
||||
if not will_settings.get("locktime"):
|
||||
will_settings["locktime"] = "1y"
|
||||
will_settings["locktime"] = defaults['locktime']
|
||||
return will_settings
|
||||
|
||||
def default_will_settings(self):
|
||||
return {"baltx_fees": 100, "threshold": "180d", "locktime": "1y"}
|
||||
@staticmethod
|
||||
def default_will_settings():
|
||||
today = date.today()
|
||||
dt = datetime(today.year, today.month, today.day, 0, 0, 0)
|
||||
threshold =(dt + timedelta(days=180)).timestamp()
|
||||
locktime =(dt + timedelta(days=365)).timestamp()
|
||||
|
||||
return {"baltx_fees": 100, "threshold": threshold, "locktime": locktime}
|
||||
|
||||
Reference in New Issue
Block a user