Release v0.9.0: Bug fixes and branding updates
Version bump from 0.2.0 to 0.9.0 with critical Android balance update fixes and complete Electrum→Pallectrum rebranding. Version Updates - electrum/version.py: 0.2.0 → 0.9.0 - electrum/plugins/timelock_recovery/manifest.json: 0.2.0 → 0.9.0 - README.md: version header updated Documentation - README.md: Added Windows builds documentation (portable vs setup) - CHANGELOG.md: Added comprehensive v0.9.0 release notes Qt GUI - Removed "Check for updates" menu item (referenced Electrum servers) - File: electrum/gui/qt/main_window.py
This commit is contained in:
114
CHANGELOG.md
114
CHANGELOG.md
@@ -18,6 +18,120 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
---
|
||||
|
||||
## [0.9.0] - 2025-12-07
|
||||
|
||||
### Overview
|
||||
This release introduces critical bug fixes for the Android QML app and updates to terminology and documentation to reflect Pallectrum instead of Electrum.
|
||||
|
||||
### Critical Bug Fixes (Android QML)
|
||||
|
||||
#### 1. Fix: Real-time balance updates
|
||||
|
||||
**Issue resolved**: The Android app balance was not updating in real-time when transactions received confirmations or when coinbase rewards became mature (120 blocks). Users had to close and restart the app to see the correct balance.
|
||||
|
||||
**Root Cause**:
|
||||
- Missing `balanceChanged` signal emission when a transaction changed height (received blockchain confirmations)
|
||||
- Missing handler for `blockchain_updated` event that notifies new blocks and coinbase maturation
|
||||
|
||||
**Implemented changes**:
|
||||
|
||||
a) **Fix for transaction confirmations**
|
||||
- File: `electrum/gui/qml/qewallet.py:211`
|
||||
- Added `self.balanceChanged.emit()` in `on_event_adb_tx_height_changed`
|
||||
|
||||
b) **Fix for coinbase maturity**
|
||||
- File: `electrum/gui/qml/qewallet.py:245-250`
|
||||
- Added new handler `on_event_blockchain_updated()`
|
||||
- Emits `balanceChanged` when new blocks arrive
|
||||
|
||||
c) **Debug logging**
|
||||
- File: `electrum/gui/qml/components/controls/BalanceSummary.qml:178`
|
||||
- Added console.log to track balance updates
|
||||
|
||||
**Impact**:
|
||||
- Balance updates automatically when transactions receive confirmations
|
||||
- Mining rewards (coinbase) appear automatically after 120 confirmations
|
||||
- No longer necessary to restart the app to see correct balance
|
||||
- Better user experience for miners
|
||||
|
||||
#### 2. Fix: Typo correction in BalanceDetails.qml
|
||||
|
||||
**Issue resolved**: "Lightning swap" button was causing QML runtime errors.
|
||||
|
||||
**Root Cause**: Typo in QEAmount property - used `.satInt` instead of `.satsInt`
|
||||
|
||||
**Modified file**: `electrum/gui/qml/components/BalanceDetails.qml:217`
|
||||
|
||||
### Terminology and Documentation Updates
|
||||
|
||||
#### 3. Payment request text updates
|
||||
- Replaced "Bitcoin/Electrum" references with "Palladium/Pallectrum"
|
||||
- File: ReceiveTab - Request expiration section
|
||||
- Changes:
|
||||
- "bitcoin addresses" → "Palladium addresses"
|
||||
- "electrum wallets" → "Pallectrum wallet"
|
||||
- "Bitcoin address" → "Palladium address"
|
||||
|
||||
#### 4. Preferences → Units update
|
||||
- Thousands separator checkbox: "bitcoin" → "Palladium"
|
||||
|
||||
#### 5. Official website link updates
|
||||
- Links now point to Pallectrum GitHub repository instead of electrum.org
|
||||
|
||||
#### 6. Whitepaper link updates
|
||||
- "Bitcoin whitepaper" references updated to reflect Palladium
|
||||
- Links to project documentation on GitHub
|
||||
|
||||
#### 7. Windows builds documentation
|
||||
- Added README.md with description of two Windows versions:
|
||||
- `pallectrum-x.x.x-portable.exe` - Recommended for USB drives
|
||||
- `pallectrum-x.x.x-setup.exe` - Standalone installer
|
||||
|
||||
#### 8. Help menu cleanup
|
||||
- Removed "Check for updates" menu item that referenced Electrum update servers
|
||||
- File: `electrum/gui/qt/main_window.py` (lines 844, 897-898)
|
||||
- Reason: Update checker pointed to `https://electrum.org/version` which is not appropriate for Pallectrum
|
||||
|
||||
### Technical Details
|
||||
|
||||
**Balance update architecture**:
|
||||
- Pattern: Event-driven reactive updates
|
||||
- Thread-safe via `@qt_event_listener` decorator
|
||||
- Zero overhead (signal emission is O(1))
|
||||
- No polling - completely event-driven
|
||||
|
||||
**Performance**:
|
||||
- CPU: O(1) per signal emit
|
||||
- Memory: No increase
|
||||
- Battery: No impact (rare events, ~1 every 10 minutes)
|
||||
- Network: No additional traffic
|
||||
|
||||
**Event frequency**:
|
||||
- `adb_tx_height_changed`: Only when wallet TX receives confirmations
|
||||
- `blockchain_updated`: ~1 time every 10 minutes (new block)
|
||||
|
||||
### Upgrade
|
||||
|
||||
**For existing users**:
|
||||
- No data migration required
|
||||
- Existing wallets 100% compatible
|
||||
- No reconfiguration needed
|
||||
|
||||
**What will change**:
|
||||
- Balance updates automatically (no more restarts)
|
||||
- Terminology updated to Palladium/Pallectrum
|
||||
|
||||
### Testing
|
||||
|
||||
**Tests performed**:
|
||||
- New TX received → Balance updated
|
||||
- TX receives confirmations → Balance from unconfirmed to confirmed
|
||||
- Coinbase matures (120 confirmations) → Reward appears automatically
|
||||
- Lightning swap button → Works correctly
|
||||
- No redundant updates
|
||||
|
||||
---
|
||||
|
||||
## [0.2.0] - 2025-12-04
|
||||
|
||||
### Technical Cleanup and Optimization
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
```
|
||||
Licence: MIT Licence
|
||||
Version: 0.2.0
|
||||
Version: 0.9.0
|
||||
Maintainer: Davide Grilli
|
||||
Language: Python (>= 3.10)
|
||||
Homepage: https://github.com/palladium-coin/pallectrum
|
||||
@@ -39,7 +39,9 @@ Pallectrum is a fork of Electrum v4.6.2, adapted to work with the Palladium bloc
|
||||
|
||||
The easiest way to run Pallectrum is to download the pre-built binaries:
|
||||
|
||||
- **Windows**: Download `pallectrum-x.x.x-setup.exe`
|
||||
- **Windows**: Two versions available:
|
||||
- `pallectrum-x.x.x-portable.exe` - **Recommended for USB drives**. Saves all data (wallets, configuration) in the same directory as the executable. Perfect for portable installations.
|
||||
- `pallectrum-x.x.x-setup.exe` - Standalone installer. Installs to Program Files and saves data in `%APPDATA%\Pallectrum`.
|
||||
- **Linux**: Download `pallectrum-x.x.x-x86_64.AppImage`
|
||||
- **Android**: Download `pallectrum-x.x.x.apk`
|
||||
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
set -e
|
||||
|
||||
PROJECT_ROOT="$(dirname "$(readlink -e "$0")")/../../.."
|
||||
PROJECT_ROOT_OR_FRESHCLONE_ROOT="$PROJECT_ROOT"
|
||||
CONTRIB="$PROJECT_ROOT/contrib"
|
||||
CONTRIB_APPIMAGE="$CONTRIB/build-linux/appimage"
|
||||
DISTDIR="$PROJECT_ROOT/dist"
|
||||
BUILDDIR="$CONTRIB_APPIMAGE/build/appimage"
|
||||
APPDIR="$BUILDDIR/pallectrum.AppDir"
|
||||
CACHEDIR="$CONTRIB_APPIMAGE/.cache/appimage"
|
||||
TYPE2_RUNTIME_REPO_DIR="$CACHEDIR/type2-runtime"
|
||||
TYPE2_RUNTIME_REPO_DIR="$PROJECT_ROOT_OR_FRESHCLONE_ROOT/contrib/build-linux/appimage/.cache/appimage/type2-runtime"
|
||||
export DLL_TARGET_DIR="$CACHEDIR/dlls"
|
||||
PIP_CACHE_DIR="$CONTRIB_APPIMAGE/.cache/pip_cache"
|
||||
|
||||
|
||||
@@ -841,7 +841,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener):
|
||||
about_action.triggered.connect(self.show_about)
|
||||
about_action.setMenuRole(QAction.MenuRole.AboutRole) # make sure OS recognizes it as "About"
|
||||
self.help_menu.addAction(about_action)
|
||||
self.help_menu.addAction(_("&Check for updates"), self.show_update_check)
|
||||
self.help_menu.addAction(_("&Official website"), lambda: webopen("https://github.com/palladium-coin/pallectrum"))
|
||||
self.help_menu.addSeparator()
|
||||
self.help_menu.addAction(_("&Documentation"), lambda: webopen("https://github.com/palladium-coin/pallectrum/blob/main/user-guide.md")).setShortcut(QKeySequence.StandardKey.HelpContents)
|
||||
@@ -894,9 +893,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener):
|
||||
return
|
||||
webopen('file:///' + filename)
|
||||
|
||||
def show_update_check(self, version=None):
|
||||
self.gui_object._update_check = UpdateCheck(latest_version=version)
|
||||
|
||||
def show_report_bug(self):
|
||||
msg = ' '.join([
|
||||
_("Please report any bugs as issues on github:<br/>"),
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
"author": "orenz0@protonmail.com",
|
||||
"available_for": ["qt"],
|
||||
"icon":"timelock_recovery_60.png",
|
||||
"version": "0.2.0"
|
||||
"version": "0.9.0"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
ELECTRUM_VERSION = '0.2.0' # version of the client package (Pallectrum)
|
||||
ELECTRUM_VERSION = '0.9.0' # version of the client package (Pallectrum)
|
||||
|
||||
PROTOCOL_VERSION_MIN = '1.4' # electrum protocol
|
||||
PROTOCOL_VERSION_MAX = '1.6'
|
||||
|
||||
Reference in New Issue
Block a user