Move Taproot signaling start date earlier to allow more time for miner
preparation and coordination before the March 2027 timeout.
Consensus changes:
- Mainnet activation start: February 14, 2026 (was March 1, 2026)
- Mainnet timeout: March 1, 2027 (unchanged)
- Update nStartTime: 1771027200 (was 1772323200)
- Applied to both mainnet and testnet deployments
This extends the signaling window from 12 months to 12.5 months, providing
miners additional time to upgrade and signal readiness for Taproot activation
Documentation:
- Add CHANGELOG.md following Keep a Changelog format with complete version history
- Add doc/TAPROOT.md: comprehensive technical specification for BIP340/341/342/350
- Add doc/taproot-guide.md: user-friendly guide for wallet users and developers
- Update README.md: add Taproot highlights, documentation links, and version history
- Add doc/release-notes/release-notes-2.0.0.md
- Update doc/bips.md with Taproot BIP entries (340, 341, 342, 350)
- Remove standalone doc/release-notes.md (replaced by versioned directory)
Documentation covers the complete Taproot implementation backported from
Bitcoin Core v24.2, including Schnorr signatures, bech32m addresses,
and BIP9 deployment timeline for mainnet activation (March 2026-2027).
CHANGELOG.md contains detailed history from v1.1.0 to v2.0.0 with real
commit information extracted from GitHub repository tags.
Enable bech32m output type across wallet defaults and RPC help/parse paths.
Add tr() descriptor parse/infer support and taproot output-type detection.
Wire taproot key-path signing with schnorr and precomputed transaction data.
Reject unsupported bech32m multisig generation in RPC.
Wire Taproot script verification into validation/policy/libconsensus and update standardness flags.
Adapt wallet_multiwallet functional test to match filesystem error variants (create_directory/create_directories/filesystem error), making the suite robust across fs backends and library versions.
- use Bech32 for witness v0 and Bech32m for witness v1+ in key_io
- update C++ bech32 tests and python segwit_addr framework
- realign key/address test vectors and fixtures to Palladium prefixes/params
- adjust chain-parameter-sensitive tests (maturity, BIP66/regtest, message verify)
- fix incorrect historical sha256 expected vector in unit tests
- Set consistent min-height (22px) and padding (2px) for all input widgets
- Add dark-styled backgrounds to spinbox buttons (#2A2A2A with hover)
- Use native Qt arrows for spinbox buttons to match light mode
- Apply styling to QLineEdit, QSpinBox, QComboBox, PalladiumAmountField
Ensures uniform widget dimensions and visible controls across all pages
in both light and dark modes
Set consistent min-height (20px) and padding (3px) for all input widgets
(QLineEdit, QSpinBox, QComboBox, PalladiumAmountField) in dark mode to
ensure uniform dimensions across themes
This commit addresses multiple UI issues related to theme switching and
dark mode styling:
1. Fix spinbox height inconsistency between light and dark modes
- Add changeEvent() handler in AmountSpinBox to invalidate cached
size hint when theme/style/palette changes
- Force updateGeometry() on all visible widgets after theme toggle
- Add min-height and padding to dark mode spinbox CSS to match
light mode dimensions
2. Improve spinbox button visibility in dark mode
- Add visible background and borders to up/down buttons
- Use dark grey arrows (#808080) instead of white for better contrast
- Add hover states with appropriate dark theme colors
- Set proper button width (16px) for consistent appearance
3. Enhanced theme switching
- Invalidate widget geometry caches when switching between themes
- Ensure consistent rendering between native (light) and stylesheet
(dark) rendering modes
Files modified:
- src/qt/palladiumamountfield.cpp: Add changeEvent() handler
- src/qt/palladiumgui.cpp: Force geometry update after theme change
- src/qt/res/styles/dark.qss: Improve spinbox styling with proper
dimensions, button visibility, and dark-appropriate colors
This ensures a consistent user experience across both themes with
properly sized widgets and visible, theme-appropriate controls
Enhance the sync modal overlay visibility and aesthetics:
- Add 1px border to content widget using palette(mid) for theme adaptation
- Restore semi-transparent background (alpha=230) to overlay backdrop
- Remove minimum window size constraint (950x550) for better flexibility
The border ensures the overlay is clearly visible in both light and dark
modes, while the semi-transparent background provides visual separation
without completely obscuring the underlying interface
Add missing C++ standard library includes required by GCC 13+ and newer
toolchains. These headers were previously included implicitly through
other headers in older GCC versions (e.g., GCC 9 on Ubuntu 20.04), but
modern compilers require explicit includes per C++ standard compliance.
Changes:
- Add <cstdint> to util/bip32.h for uint32_t type definitions
- Add <array> to net_processing.cpp for std::array
- Add <stdexcept> to multiple headers for exception types:
* support/events.h (std::runtime_error)
* dbwrapper.h (std::runtime_error base class)
* streams.h (std::out_of_range, std::ios_base::failure)
* coins.h (std::logic_error)
* wallet/coinselection.h (std::invalid_argument, std::out_of_range)
* rpc/util.h (std::runtime_error)
* support/lockedpool.h (std::runtime_error)
* support/lockedpool.cpp (std::runtime_error)
* wallet/scriptpubkeyman.h (std::runtime_error)
This ensures compatibility across different compiler versions and
architectures (ARM64/x86_64) while maintaining backward compatibility
with older toolchains.
Tested on Ubuntu 24.04 with GCC 13.
Fix unbound variable error when script is run without arguments.
Use parameter expansion ${1:-} instead of $1 to safely check for
--installer flag when set -u is enabled.