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:
50
wallet_util/README.md
Normal file
50
wallet_util/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
## README
|
||||
|
||||
### Overview
|
||||
This tool provides two entry points: a CLI script (bal_wallet_utils.py) and a Qt GUI script (bal_wallet_utils_qt.py) that operate against an Electrum source tree.
|
||||
|
||||
### Installation / Preparation
|
||||
1. Copy both files into the Electrum project root (the folder that contains the Electrum source package):
|
||||
- bal_wallet_utils.py
|
||||
- bal_wallet_utils_qt.py
|
||||
|
||||
2. Activate the Electrum Python environment (the virtualenv used to run Electrum). Example (PowerShell, adjust path to your venv):
|
||||
```
|
||||
.\env\Scripts\Activate.ps1
|
||||
```
|
||||
or (cmd):
|
||||
```
|
||||
env\Scripts\activate.bat
|
||||
```
|
||||
|
||||
### Running
|
||||
- CLI version:
|
||||
```
|
||||
python bal_wallet_utils.py
|
||||
```
|
||||
- Qt GUI version:
|
||||
```
|
||||
python bal_wallet_utils_qt.py
|
||||
```
|
||||
|
||||
### Building a Windows executable with PyInstaller
|
||||
From the project root (with the Electrum environment active), you can build the Qt executable using PyInstaller. Example command (adjust the paths if your environment path differs):
|
||||
```
|
||||
pyinstaller.exe --onefile --noconsole --add-data "electrum\currencies.json;electrum" --add-data "electrum\bip39_wallet_formats.json;electrum" --add-data "electrum\lnwire\peer_wire.csv;electrum\lnwire" --add-data "electrum\lnwire\onion_wire.csv;electrum\lnwire" --add-binary "env/Lib/site-packages\electrum_ecc\libsecp256k1-6.dll;electrum_ecc" bal_wallet_utils_qt.py
|
||||
```
|
||||
|
||||
Notes:
|
||||
- Run the command from the project root so relative paths resolve correctly.
|
||||
- On Windows the --add-data and --add-binary arguments use ";" to separate source and destination.
|
||||
- If electrum expects additional data files or native DLLs, include them with additional --add-data / --add-binary flags.
|
||||
- For debugging include --onedir first to inspect the created folder before using --onefile.
|
||||
|
||||
### Troubleshooting
|
||||
- If PyInstaller is not found, run it via Python:
|
||||
```
|
||||
python -m PyInstaller <same arguments>
|
||||
```
|
||||
- If the frozen exe fails because DLLs or JSON files are missing, add those files explicitly with --add-data or --add-binary.
|
||||
- Test the build on a clean Windows VM to ensure all runtime dependencies are included.
|
||||
|
||||
License and attribution: include your preferred license or attribution details here.
|
||||
@@ -1,10 +1,11 @@
|
||||
#!env/bin/python3
|
||||
from electrum.storage import WalletStorage
|
||||
import json
|
||||
from electrum.util import MyEncoder
|
||||
import sys
|
||||
import getpass
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from electrum.storage import WalletStorage
|
||||
from electrum.util import MyEncoder
|
||||
|
||||
default_fees = 100
|
||||
|
||||
@@ -26,9 +27,12 @@ def fix_will_settings_tx_fees(json_wallet):
|
||||
|
||||
|
||||
def uninstall_bal(json_wallet):
|
||||
del json_wallet["will_settings"]
|
||||
del json_wallet["will"]
|
||||
del json_wallet["heirs"]
|
||||
if "will_settings" in json_wallet:
|
||||
del json_wallet["will_settings"]
|
||||
if "will" in json_wallet:
|
||||
del json_wallet["will"]
|
||||
if "heirs" in json_wallet:
|
||||
del json_wallet["heirs"]
|
||||
return True
|
||||
|
||||
|
||||
|
||||
@@ -1,30 +1,31 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import os
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from bal_wallet_utils import fix_will_settings_tx_fees, save, uninstall_bal
|
||||
from electrum.storage import WalletStorage
|
||||
from PyQt6.QtWidgets import (
|
||||
QApplication,
|
||||
QMainWindow,
|
||||
QVBoxLayout,
|
||||
QFileDialog,
|
||||
QGroupBox,
|
||||
QHBoxLayout,
|
||||
QLabel,
|
||||
QLineEdit,
|
||||
QMainWindow,
|
||||
QPushButton,
|
||||
QWidget,
|
||||
QFileDialog,
|
||||
QGroupBox,
|
||||
QTextEdit,
|
||||
QVBoxLayout,
|
||||
QWidget,
|
||||
)
|
||||
from electrum.storage import WalletStorage
|
||||
from bal_wallet_utils import fix_will_settings_tx_fees, uninstall_bal, save
|
||||
|
||||
|
||||
class WalletUtilityGUI(QMainWindow):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.initUI()
|
||||
self.init_ui()
|
||||
|
||||
def initUI(self):
|
||||
def init_ui(self):
|
||||
self.setWindowTitle("BAL Wallet Utility")
|
||||
self.setFixedSize(500, 400)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user