forked from bitcoinafterlife/bal-electrum-plugin
docs(README): Remove PyQt5 references, remove configurations section, add onchain invalidation transaction detail
This commit is contained in:
58
README.md
58
README.md
@@ -70,7 +70,7 @@ bal-electrum-plugin/
|
|||||||
│ ├── bal.py # Main plugin logic and core functionality
|
│ ├── bal.py # Main plugin logic and core functionality
|
||||||
│ ├── bal_resources.py # Resource management and asset handling
|
│ ├── bal_resources.py # Resource management and asset handling
|
||||||
│ ├── heirs.py # Heir management logic and validation
|
│ ├── heirs.py # Heir management logic and validation
|
||||||
│ ├── qt.py # Main Qt interface and GUI components (PyQt6)
|
│ ├── qt.py # Main Qt interface and GUI components
|
||||||
│ ├── util.py # General utility functions
|
│ ├── util.py # General utility functions
|
||||||
│ ├── wallet_util/
|
│ ├── wallet_util/
|
||||||
│ │ ├── bal_wallet_utils.py # ⚠️ Advanced wallet utilities for emergency fixes
|
│ │ ├── bal_wallet_utils.py # ⚠️ Advanced wallet utilities for emergency fixes
|
||||||
@@ -141,7 +141,6 @@ bal-electrum-plugin/
|
|||||||
- `bal_wallet_utils_qt.py`: Qt-specific wallet utilities
|
- `bal_wallet_utils_qt.py`: Qt-specific wallet utilities
|
||||||
|
|
||||||
### Main Interface (qt.py)
|
### Main Interface (qt.py)
|
||||||
- **PyQt6 only**: Uses PyQt6 (not PyQt5)
|
|
||||||
- **User-friendly wizards**: Step-by-step setup interface
|
- **User-friendly wizards**: Step-by-step setup interface
|
||||||
- **Real-time validation**: Immediate feedback on inputs
|
- **Real-time validation**: Immediate feedback on inputs
|
||||||
- **Transaction preview**: Review before finalizing
|
- **Transaction preview**: Review before finalizing
|
||||||
@@ -198,6 +197,7 @@ Executor: "Bob Executor" (fee: 0.005 BTC fixed)
|
|||||||
|
|
||||||
**Logic**:
|
**Logic**:
|
||||||
- If today > 2025-12-31 → Old will is invalid
|
- If today > 2025-12-31 → Old will is invalid
|
||||||
|
- If old will is invalid, a non-timelocked transaction is sent onchain to invalidate the old will
|
||||||
- Transaction executes on 2026-06-01
|
- Transaction executes on 2026-06-01
|
||||||
- Bob receives 0.005 BTC only when transaction confirms
|
- Bob receives 0.005 BTC only when transaction confirms
|
||||||
- Bob is incentivized to broadcast at correct time
|
- Bob is incentivized to broadcast at correct time
|
||||||
@@ -221,47 +221,11 @@ Executor: "Charlie Executor" (fee: 0.02 BTC fixed)
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔧 Configuration
|
|
||||||
|
|
||||||
### Plugin Settings
|
|
||||||
|
|
||||||
After installation, configure in Electrum:
|
|
||||||
|
|
||||||
1. Go to **Tools → Bal Electrum Plugin → Settings**
|
|
||||||
2. Configure:
|
|
||||||
- **Default Locktime**: Set default locktime format (e.g., "365d")
|
|
||||||
- **CheckAlive Mode**: Choose "interval" or "fixed_date"
|
|
||||||
- **CheckAlive Value**: Set interval (e.g., "180d") or timestamp
|
|
||||||
- **Executor Fee**: Set fixed BTC amount (e.g., 0.01)
|
|
||||||
- **Debug Mode**: Enable for troubleshooting
|
|
||||||
|
|
||||||
### Configuration File Location
|
|
||||||
|
|
||||||
```
|
|
||||||
~/.electrum/plugins/bal_electrum_plugin/config.json
|
|
||||||
```
|
|
||||||
|
|
||||||
### Example Configuration
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"locktime_format": "interval",
|
|
||||||
"default_locktime": "365d",
|
|
||||||
"checkalive_mode": "interval",
|
|
||||||
"checkalive_value": "180d",
|
|
||||||
"executor_fee": 0.01,
|
|
||||||
"debug": false
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🛠️ Development
|
## 🛠️ Development
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
- **Electrum Bitcoin wallet**: Version **4.7.2 or later** (not 4.0.0)
|
- **Electrum Bitcoin wallet**: Version **4.7.2 or later**
|
||||||
- **Python**: 3.7+
|
- **Python**: 3.7+
|
||||||
- **PyQt6**: Only PyQt6 is supported (not PyQt5)
|
|
||||||
|
|
||||||
### Setup Development Environment
|
### Setup Development Environment
|
||||||
|
|
||||||
@@ -305,9 +269,7 @@ zip -r bal-electrum-plugin-dev.zip bal_electrum_plugin/
|
|||||||
|
|
||||||
### Running the Plugin
|
### Running the Plugin
|
||||||
|
|
||||||
The plugin uses Electrum's existing virtualenv. No additional dependencies needed beyond:
|
The plugin uses Electrum's existing virtualenv. No additional dependencies needed.
|
||||||
- Electrum 4.7.2+
|
|
||||||
- PyQt6
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -316,17 +278,12 @@ The plugin uses Electrum's existing virtualenv. No additional dependencies neede
|
|||||||
### Common Issues
|
### Common Issues
|
||||||
|
|
||||||
#### Plugin Not Showing in Electrum
|
#### Plugin Not Showing in Electrum
|
||||||
- ✅ Verify Electrum version is **4.7.2 or later** (not 4.0.0)
|
- ✅ Verify Electrum version is **4.7.2 or later**
|
||||||
- ✅ Check zip contains `bal_electrum_plugin/` directory at root
|
- ✅ Check zip contains `bal_electrum_plugin/` directory at root
|
||||||
- ✅ Verify directory structure inside zip is correct
|
- ✅ Verify directory structure inside zip is correct
|
||||||
- ✅ Restart Electrum completely after installation
|
- ✅ Restart Electrum completely after installation
|
||||||
- ✅ Check Electrum logs: Help → Debug → Console
|
- ✅ Check Electrum logs: Help → Debug → Console
|
||||||
|
|
||||||
#### PyQt6 Compatibility Issues
|
|
||||||
- ✅ Ensure you're using PyQt6, not PyQt5
|
|
||||||
- ✅ Verify Electrum 4.7.2+ uses PyQt6
|
|
||||||
- ✅ Check import statements in plugin code
|
|
||||||
|
|
||||||
#### Locktime Format Errors
|
#### Locktime Format Errors
|
||||||
- ✅ Use valid formats: `180d`, `1y`, or Unix timestamp (e.g., `1735689600`)
|
- ✅ Use valid formats: `180d`, `1y`, or Unix timestamp (e.g., `1735689600`)
|
||||||
- ✅ Ensure locktime is in the future (after current time)
|
- ✅ Ensure locktime is in the future (after current time)
|
||||||
@@ -338,6 +295,7 @@ The plugin uses Electrum's existing virtualenv. No additional dependencies neede
|
|||||||
- ✅ Ensure CheckAlive value is before Locktime value
|
- ✅ Ensure CheckAlive value is before Locktime value
|
||||||
- ✅ For interval mode: Check logic `locktime - interval > now`
|
- ✅ For interval mode: Check logic `locktime - interval > now`
|
||||||
- ✅ For fixed date: Verify timestamp is in the future
|
- ✅ For fixed date: Verify timestamp is in the future
|
||||||
|
- ✅ If CheckAlive expires, old will is invalidated by sending a non-timelocked transaction onchain
|
||||||
|
|
||||||
#### Heir Distribution Errors
|
#### Heir Distribution Errors
|
||||||
- ✅ Verify percentages sum to exactly 100%
|
- ✅ Verify percentages sum to exactly 100%
|
||||||
@@ -396,7 +354,7 @@ git checkout -b feature/your-feature-name
|
|||||||
# Make changes to bal_electrum_plugin/ files
|
# Make changes to bal_electrum_plugin/ files
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
# Test in Electrum 4.7.2+ with PyQt6
|
# Test in Electrum 4.7.2+
|
||||||
|
|
||||||
# Commit changes with clear message
|
# Commit changes with clear message
|
||||||
git add .
|
git add .
|
||||||
@@ -431,4 +389,4 @@ MIT License - see [LICENSE](LICENSE) for details.
|
|||||||
|
|
||||||
**💡 Note**: The executor fee is a fixed BTC amount included in the transaction output. The executor is financially incentivized to broadcast the transaction and ensure it confirms on the Bitcoin network.
|
**💡 Note**: The executor fee is a fixed BTC amount included in the transaction output. The executor is financially incentivized to broadcast the transaction and ensure it confirms on the Bitcoin network.
|
||||||
|
|
||||||
**📋 Requirements**: Electrum 4.7.2+ with PyQt6 only. No pytest or additional dependencies needed.
|
**📋 Requirements**: Electrum 4.7.2+ only. No additional dependencies or configuration sections needed.
|
||||||
|
|||||||
Reference in New Issue
Block a user