diff --git a/README.md b/README.md index 579a838..c2e76a6 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ bal-electrum-plugin/ │ ├── bal.py # Main plugin logic and core functionality │ ├── bal_resources.py # Resource management and asset handling │ ├── 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 │ ├── wallet_util/ │ │ ├── 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 ### Main Interface (qt.py) -- **PyQt6 only**: Uses PyQt6 (not PyQt5) - **User-friendly wizards**: Step-by-step setup interface - **Real-time validation**: Immediate feedback on inputs - **Transaction preview**: Review before finalizing @@ -198,6 +197,7 @@ Executor: "Bob Executor" (fee: 0.005 BTC fixed) **Logic**: - 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 - Bob receives 0.005 BTC only when transaction confirms - 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 ### 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+ -- **PyQt6**: Only PyQt6 is supported (not PyQt5) ### Setup Development Environment @@ -305,9 +269,7 @@ zip -r bal-electrum-plugin-dev.zip bal_electrum_plugin/ ### Running the Plugin -The plugin uses Electrum's existing virtualenv. No additional dependencies needed beyond: -- Electrum 4.7.2+ -- PyQt6 +The plugin uses Electrum's existing virtualenv. No additional dependencies needed. --- @@ -316,17 +278,12 @@ The plugin uses Electrum's existing virtualenv. No additional dependencies neede ### Common Issues #### 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 - ✅ Verify directory structure inside zip is correct - ✅ Restart Electrum completely after installation - ✅ 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 - ✅ Use valid formats: `180d`, `1y`, or Unix timestamp (e.g., `1735689600`) - ✅ 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 - ✅ For interval mode: Check logic `locktime - interval > now` - ✅ 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 - ✅ Verify percentages sum to exactly 100% @@ -396,7 +354,7 @@ git checkout -b feature/your-feature-name # 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 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. -**📋 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.