Electron Cash is a fork of the open source Electrum Bitcoin wallet (www.electrum.org) for Bitcoin Cash. The current release is based on the Electrum 2.9.0 codebase with patches to - handle Bitcoin Cash difficulty adjustment algorithm - sign transactions the Bitcoin Cash way - updated list of electrum servers - updated icons and branding - remove RBF (unsupported by Bitcoin Cash network nodes) - use different directory for wallets and configuration The Electron Cash software is NOT affiliated, associated, or endorsed by Electrum, electrum.org or the Electrum developers. If you are concerned about running Electron Cash binaries we recommend installing and/or running it from the github source directly. Usage ----- When you first run Electron Cash it will use a different configuration directory to Electrum. On Unix it is ".electron-cash", and on Windows/MacOS it is "ElectronCash". Your wallet files will be copied from the Electrum cofiguration directory (".electrum" on unix, "Electrum" on Windows/MacOS), if found. Initially transactions will show up as unverified because Electron Cash is downloading the blockchain headers to verify the transactions. This can take up to 10 minutes, but is only done once. Ensure you are running Electron Cash and not Electrum by checking for "Electron Cash" in the title bar wording. Some users installing from setup.py have reported conflicts if both Electrum and Electron Cash are installed in parallel that way. We STRONGLY recommend you get comfortable and only send a small amount of Bitcoin Cash coins at first, to yourself, to confirm the network is processing your transactions as expected. Bitcoin Cash hard forks after the 6th block with timestamp greater than 1 August 2017, 12:20 UTC has been mined. The seventh block must be greater than one million bytes in size. The Bitcoin Cash fork enforces a new signing scheme which is incompatible with the legacy chain. Electron Cash only signs transactions using this scheme, so its transactions are only valid on the Bitcoin Cash hard fork after the fork has occurred. If you want to send Bitcoin before the fork, or Segwitcoins after the fork, you should continue to use the standard Electrum client, Electron Cash will not work. Once the network forks, it will take time for the Electrum server network to split into servers of the Segwit fork, and servers of the Bitcoin Cash fork. You should ensure you are connected to a Bitcoin Cash Electrum server in order to send transactions successfully. Some servers that will be serving the Bitcoin Cash fork are: electrum-abc.cascharia.com via SSL port 50002 electrum-abc.criptolayer.net via SSL port 50012 180.235.49.196, 35.185.209.69 and 35.197.25.235 TCP port 50001 and SSL port 50002 There will likely be other servers available; please check their banners in the Console tab (View|Show Console). Hardware Wallets ---------------- Since Bitcoin Cash enforces a new signing scheme, hardware wallet vendors need to supply new firmware and/or libraries for the hardware to be able to sign transactions correctly. Currently such libraries and firmware do not exist, so you cannot use your hardware wallets with Electron Cash. To use Electron Cash with your hardware-wallet coins you will need to restore your wallet as a software Electron Cash BIP44 wallet from its seed so that Electron Cash can sign the transactions itself. Since this exposes your coins to risk you may want to wait for the 3rd party software to be developed and integrated instead. Two-factor Authentication (2FA) Wallets --------------------------------------- For the same reason as Hardware Wallets above, 2FA wallets need Trustedcoin to perform new Bitcoin Cash-style signatures for their transactions to be valid on the Bitcoin Cash fork. If third party support appears we will attempt to integrate it. Multisig -------- For a multisig transaction to be valid on the Bitcoin Cash fork, each signature must be done thew new Bitcoin Cash way, so each signature must be performed with Electron Cash or other Bitcoin Cash-compatible software. Unfortunately Electron Cash does not currently work with multisig wallets as Electrum's serialization format for transferring transactions between cosigners is incomplete. We intend to fix this. Miscellaneous ------------- Electrum 2.9 has new code to deal with chain forks which may have outstanding (pre-existing in Electrum) bugs and problems. Since this package forks that code it will contain those issues. If you have problems syncing to the correct chain fork (take a look at the Overview Tab in the "Network" window (in Menu "Tools") to see information about chain forks your client knows about), you can try to remove everything except "wallets" directory and "config" file from your Electron Cash directory. Electron Cash 3.0 -- This is now on Python 3. Make sure all python commands are on python 3 and any needed modules/libraries are imported into pyhon 3. The build is deterministic for windows (everyone should get the same binary because of customization to Pyinstaller that was done by Electrum team, as well as separate repos for locales and icons). The fee upgrades may not be visible for existing wallet owners unless you reset the max fee in preferences or remove the config file. There is no minimum fee on the client side. Be careful sending too low of a fee (lower than 1 satoshi/byte) or your transaction may get stuck, and there is no warning message. # Release 2.9.2 * force headers download if headers file is corrupted * add websocket to windows builds * fix initial headers download * validate contacts on import * command-line option for locktime # Release 2.9.3 * Improved code to force wallet to stay on Bitcoin Cash chain * Removed dynamic fees. Fees are now simple Sat/Byte model * Add Coin_Type 145 for Bitcoin Cash for bip39 seed imports * Use bitcoincash URI prefix for receiving and QR codes # Release 2.9.4 * Implement new Difficulty Adjustment Algorithm for Nov 13, 2017 Hard Fork * Change ticker symobl from BCC to BCH * Implement changes to allow simultaneous installation with Electrum * Upgrade to PyQt5 * Various fixes for hardware wallets * Remove 2FA for new wallet creation * Remove feature to copy electrum wallet files # Release 3.0 * upgrade to Python3 and PyQt5 * Build is done deterministically for windows * improve fee policy # Release 3.1 * Multiple address format support. Electron Cash supports input of cashaddr addresses, legacy bitcoin addresses, and BitPay addresses anywhere where a legacy address used to be accepted. * Only display of cashaddr and legacy addresses is supported. You can toggle the display format in the Appearance tab of the Preferences dialog window; alternatively you can press the converter icon button in the toolbar at the bottom of the main window. Hardware wallets will probably show the legacy format until their firmware is updated. * An address converter tab can convert between all 3 address formats. To see it, choose to show it from the View menu. * At some stage support for BitPay address format will be removed, and at some later stage support for display of legacy addresses will also be removed. * The fee slider has been adjusted to range from 1 to 10 sats/byte. * Many bug fixes and improvements # Release 3.1.1 * Requires Python 3.5 or greater * Fixes JSONPRC security threat * Fixes included for ledger for windows # Release 3.1.2 * Additional security improvements related to JSONRPC # Release 3.1.3 * Android only release for security fixes # Release 3.1.5 * Various bug fixes # Release 3.1.6 * Enable Bip70 payment requests for merchants like BitPay. * Prohibit unconfirmed inputs on payment request (invoice) payments because Bitpay will reject them anyway. * Remove Bitpay address format from address converter as Bitpay is now fully on CashAddr. * Introduce 'cash' moniker for micro bitcoin # Release 3.2 * restore disabled script opcodes (May 2018 HF) * network protocol version bump to 1.2 * ledger: cashaddr support and various fixes * more block explorers * other bugfixes and improvements # Release 3.3 * Add external plugins feature. Please see https://github.com/Electron-Cash/Electron-Cash/blob/master/plugins/README.rst and pay special attention to the risks involved with running external plugins. * Various bugfixes and improvements # Release 3.3.1 * Add OP_RETURN feature. * Upgraded fee interface allowing lower fees with a custom fee rate. # Release 3.3.2 * UTXO (coin) level freezing (accessible from Coins tab) * Bugfix to network code reared its head when user switches forks in unlikely circumstances * Checkpoint code (ElectrumX 1.4) protocol upgrade for faster blockchain header downloads * Updated servers list * BitPay support now works flawlessly * Fork icon indicates chain splits to allow user to select an alternate chain * UI glitches fixed * Various bug fixes (address exceptions) * Translations on Windows working again * More Spanish language translations! * Mac: bitcoincash: URLs working * Mac: Bitpay URLs working # Release 3.3.3 * Added native elliptic curve cryptography using libsecp256k1 (1000x speedup on tx signing in some cases) * MacOS QR Reader now works. * Windows QR Reader now works. * Various performance fixes -- app should be able to handle much larger wallets now with many UTXOs * Nework layer fixups * Updated Checkpoint to the BCH chain. * Various minor UI gltiches fixed * MacOS binary size significantly reduced * Support for OP_RETURN parameters to bitcoincash: URL * Allow 1-of-1 multisig wallets * Server list update # Release 3.3.4 * Anti-Phishing protection for all platforms. Server-provided text will not appear in user-facing GUI windows anymore. Server error messages are instead parsed and mapped to predefined strings. * "Import Labels" now works. * Memory usage of the app has been reduced -- especially with multiple wallets. * Upgrade prebuilt Windows and MacOS binary to use newer PyQt5 5.11.3. # Release 3.3.5 * Added ability to specify raw hex op_return data in Send tab * Added server options for: "Preferred" and "Banned" in Network Dialog, and an option to connect to only preferred servers. * LabelSync plugin now works properly * Cosigner pool plugin fixups -- it should work much better now! * Cashaddr is now default on new installs * OSX packaging fixes (code signature should stay dynamically valid now) * Updated Trezor plugin to trezorlib-0.11.x (#1089) * Many bugs and quirks fixed from issue tracker * Performance improvements * Memory leaks fixed # Release 3.3.6 * Support for op_return_raw= URI parameter to 'bitcoincash:' URIs. This paremeter is for raw hex to be used as the OP_RETURN payload (0x6a will always be prefixed to this raw hex.) (markblundeberg) * Testnet wallets were using the wrong bip32 key headers. They SHOULD accept & generate tpub/tprv on testnet but instead the keys generated were xpub/xprv. This was not to spec and has been fixed but, it may mean you will need to regenerate your testnet wallets form mnemonic seed. :/ (cculianu) * Added "Check for updates..." mechanism which is enabled by default (check is done once per hour). See Preferences -> General to disable auto check. Or Help -> "Check for updates..." for manual checking. (cculianu) * Added "Dark" theme to UI. See Preferences -> General (cculianu) * Fixed incompatibility bug where generated QR images were uppercase-only BITCOINCASH: which caused problems with some buggy wallet implementations. We switched back to generating 'bitcoincash:' (mixed-case) URIs, which is more compatible. (cculianu) * Added "Export contacts" facility to UI so you can export all your contacts to a file. (Strangely, we had "Import contacts", but no export!) (cculianu) * Added "Wallet -> Rebuild history" to Qt GUI. Allows users to re-synch entire wallet from server, on demand. (commit: a72b2a72, cculianu) * Request fee estimate from ElectrumX/ElectronX server every 20 minutes (cculianu) * Performance improvements for wallets with huge numbers of tx's (cculianu) * Trezor bugfix (SomberNight) * Append HMAC to Bitbox messages (TheCharlatan) * Android fixes (mhsmith) * Various internal bugfixes and code refactoring (cculianu, ecdsa, SomberNight) * servers.json updated (torusJKL) * Fixed a compatibility issue with Qt 5.12 (SomberNight, cculianu) # Release 4.0.0 * Privacy features have been added, most notably CashShuffle has been integrated strongly into the wallet. It is an optional plugin for shuffling coins securely with other users. Coin control and other logic has been added as well. The bulk of the work for this release has been this feature. (Clifford, cculianu, Josh Ellithorpe, Mark Lundeberg, Jonald Fyookball, imaginaryusername, emergent_reasons, acidsploit, and others). * Fix #1174, #1178 - Resurrection of .onion support (requires enabling of non-SSL). * Fixups for qr code image saving (cculianu), #1175 * Closing a wallet now actually closes its daemon threads. Closing a wallet window now also implicitly closes any tx dialog child windows it created. Closing the last wallet window in the app will quit the app, even if other child windows are still alive. (cculianu) * Coins tab layout fixups #1180, including right click -> Copy X (cculianu, Mark Lundeberg, SomberNight) * Addition of Wallet -> Scan beyon gap... tool #1194 (cculianu) * Fixed #968 for the Receive tab -- when the form is unsaved it now always is *guaranteed* to refresh itself with a new unused address in real time. (cculianu) * Tx notification systray popup was too intermittent. It now pops up more frequently when reeiving or synching a new wallet. The wording used has also been simplified. (cculianu) * Fix #1182 - Bad proxy can end up in config file (cculianu) * Fix #1215 - Tabs that are not being shown are no longer refreshed in the GUI. They refresh themselves when you switch to them, however, if they need to. This should improve perception of UI responsiveness for large wallets especially. (cculianu) * Fixed some bugs related to switching chains (forks) #1185 (cculianu) * Fixed a bug where importing a private key didn't update the history until app restart. (cculianu) * Fix Network Dialog layout (SomberNight) * Fix sign message not accept rich text spesmilo#5210 (SomberNight) * Fix #1189 - Cope better with unknown wallet formats or corrupt wallets on startup. This should improve the experience for SLP users that also use regular Electron Cash (cculianu) * Switch over to bitcoin-abc libsecp in preparation for Schnorr signatures. Libsecp is now actually bundled with the Linux "source" tarball. (cculianu) * Fix to exchange rate prefs screen UI and deletion of BitcoinAverage as a historical rate provider (cculianu) * If running from source, app now has an icon on all platforms (cculianu) * Fix ubuntu installation for virtual-env (acidsploit) * Due to phishing being a recurrent annoyance, "Preferred servers only" now defaults to "CHECKED" for new installs. (cculianu) * Many performance improvements, especially for large wallets (cculianu) * Cache address balance in memory rather than recompute each call (SomberNight) * Various internal bugfixes (cculianu, SomberNight, ecdsa) # Release 4.0.1 * Lowest base unit in GUI has been renamed from 'cash' to 'bits' by popular demand. It turns out the 'cash' unit never was popular. (cculianu) * CashShuffle & Keepkey: Fixed a bug in google protobuf that prevented both plugins from being loaded simultaneously. #1227 (cculianu) * Trezor support has been improved with many bugs fixed. It should be less crashy overall when restoring seeds or when cancelling dialogs. (cculianu) Special thanks to Technologov for providing feedback and for donating Trezor wallets to test & dev on. * Added ability to load any image to Trezor One or Model T's home screen. The image will be scaled and dithered correctly. You can load PNG, JPG, GIF, SVG or whatever other image formats Qt supports. (cculianu) * CashShuffle: Implemented Coins Tab (right click) -> Reshuffle Coin. Use this feature if want to shuffle already-shuffled coins again to keep liquidity up or for even more privacy. (cculianu) * Fix #1235 - Email plugin was broken and crashy. It works now. (cculianu) * Virtual keyboard plugin looked terrible on some platforms, particularly macOS. Its layout has been improved to look good on all plafrotms. (cculianu) * Windows build is now on Python 3.6.8 * Fix #1238 & #1239 - Dark Mode had some hard to read GUI elements due to poorly chosen colors in the Transaction Dialog. Fixed. (cculianu) * Fix #1231 - Request list esoteric crash when rebuilding history. (cculianu) * Merge PR #959 - Fix the support for Ledger HW1/Nano legacy hardware w/o touching Nano S/Blue (Thomas Preindl, Axel Gembe) * Ledger: Improved handling of locked Ledger devices (#1245) (Axel Gembe) * HW Wallets: Fixed devices not being closed properly in some cases (#1246) (Axel Gembe) * HW Wallets: Improved messaging for user when trying to detect a HW device and dependent libraries are missing. This affects the install wizard and it is hoped it will assist users in troubleshooting. (#1244, #1251) (Axel Gembe) * HW Wallets: Show proper error message when trying to sign a tx with OP_RETURN (#1254) (Axel Gembe) # Release 4.0.2 * Set the gap limit for change from 6 to 20. This is because we realized CashShuffle wallets already behave as if the gap limit were 12 (reserving addresses as they shuffle). We just made it official. (Mark Lundeberg) * Added BIP38 private key support. You can create an import wallet, import private keys, or sweep private keys using BIP38. In either of those 3, specify a mix of WIF and/or BIP38 keys and you will be prompted to enter the password to decrypt the BIP38 keys in question, 1 at a time. (#1289) (cculianu) * Added Windows CLI support if running from cmd.exe or WindowsPowerShell (previously the console output was always mute even if running with -v -- it only worked for msys, mingw, cygiwn, etc, but not normal Windows console). (#1295) (Axel Gembe) * Windows: Make console no longer flash on startup (#1294) (Axel Gembe) * Fix to minor esoteric/rare bug in CashShuffle where it may be overzealously freezing receiving addresses with non-shuffle outputs on them. (#1291) (cculianu) * Ledger HW Wallet: Remove non-working websocket 2FA for legacy ledger devices (#1298) (Axel Gembe) * Ledger HW Wallet: Added support for OP_RETURN and also multiple transaction outputs (on devices that support it). Code mainly taken from Electrum but adapted and modified by us. (Axel Gembe) * Added Linux AppImage builds -- these builds are self-contained binaries with everything rolled into a single file. It should make it much easier for Linux users not wishing to install dependencies to simply run Electron Cash. Based off Electrum's implementation, with our own customizations. (cculianu) * OSX: Made the DMG release use a "fancy" dmg with graphics and a symlink to /Applications as is customary on macOS. (cculianu) * Lib: Fixed a potential crash bug if the server sends bad data to the client. (cculianu) * Deprecated support for Python 3.5. Electron Cash now requires Python 3.6+. * CLI: Added -x/--disable_preferred_servers command-line option (#1222) (cculianu) * CLI: encrypt/decrypt commands were broken. They are now working. (#1270) (cculianu) * Disabled all fee estimates in the codebase. They are useless on BCH anyway and were a holdover from our BTC roots. BCH tx's always confirm next block if they pay the minimum 1.0 sats/B fee anyway. Fee estimates are not needed. Also disabled the "Estimated confirmation time:" label from the Transaction Dialog winow. This is not informative either for similar reasons. (cculianu) * Hardened build system against dependency vulnerabilities (cculianu) * Fixed bug when Coins -> "Spend" and you right-click in the Send tab's coins area. (#1269) (Mark Lundeberg) * Winows: Added some missing OpenGL libs to the built package. Qt will now use OpenGL or fall back to ANGLE (GL -> D3D translation layer) or software rendering. The fallbacks help with buggy drivers. (cculianu, Axel Gembe) * Fixed Tx Dialog breaking on esoteric scriptsigs (#1263) (Mark Lundeberg) * Strip whitespace when copying various right-click -> "Copy Amount" to the clipboard. (cculianu) # Release 4.0.3 * Added Schnorr signatures to UI and backend (fyookball, cculianu, Mark Lundeberg) * After much trial and tribulation: fixed broken KeepKey support: KeepKey webusb now works, too. Latest devices should work again. Thanks Axel! (Axel Gembe) * Fixed multisig not working on Trezor (& KeepKey) (cculianu, Axel Gembe) * Updated QR reading accuracy and detection for Linux AppImage & Windows by updating the version of ZBar we ship; it's custom-compiled by us from official repo to include only what's needed. (Axel Gembe) * Fix #1349 -- Assertion Error on daemon stop (cculianu) * Added "Hardware Wallet Support..." tool in menu and in Install Wizard for Linux only to install udev rules for HW wallets. (Axel Gembe, cculianu) * OP_RETURN-too-large message in UI was wrong, off by 1 (Axel Gembe) * Fix #1338 - Crash on BIP38 private key sweep (cculianu, im_uname) * AppImage build fixups (Axel Gembe) * Added/removed some servers from servers.json (cculianu, dagurval, im_uname) * Address list: remove double space in balance column (Axel Gembe) * Console: Make insert key toggle overwrite mode (Axel Gembe) * x509 certs: Print better error messages when certs are expired; affects bitpay BIP70 (cculianu, SomberNight) * Layout and Qt effects fixups for various (Axel Gembe) * Fix #1306 - Dark theme glitches (Axel Gembe) * Fixups to keyboard navigation for console tab (Axel Gembe) * Fix console font being reset when moving between monitors on Windows (Axel Gembe) * Qt accelerator key fixups (Axel Gembe) * Fix #1261 - Mojave Dark mode looked bad (cculianu) * Added fancy warning box on top of Console tab to prevent social engineering attacks (Axel Gembe) * Added -R/--relax-warnings CLI option to disable Secp & other warnings (Axel Gembe) * Better Qt error messages when importing bad WIF p2sh 'private keys' (cculianu) * Ledger Nano-X USB device support (Axel Gembe) * Various small other nits & bugfixes [see commit log] (cculianu, Axel Gembe) # Release 4.0.4 * Added a brand new, cross platform and awesome QR Code scanner #1376 (Axel Gembe, cculianu) * Fixed QR icon appearing black/invisible on some Linux systems (Axel Gembe, cculianu) * Allow user to load any image containing a QR code in the various QR-scan style dialogs: Pay-to in Send tab, Private Key Sweep, etc. (Axel Gembe) * Fix #1375 - Ensure 'Receive' tab does not ever give you a frozen address. (cculianu) * Schnorr signing has been enabled by default if previously unspecified if the libsecp256k1[ABC] is present (non-HW, non-multisig wallets only) (cculianu) * Fix #1385 - Auto-switch send tab mode Shuffled/Unshuffled depending on the selected coins when doing Coins -> right click -> Spend. (cculianu) * Various bugfixes (Axel Gembe, cculianu) # Release 4.0.5 * Bugfix -- Imported Private Key wallets as well as some HW wallets (keepkey) could not sign or save a tx in 4.0.4 due to a subtle bug introduced as part of a refactor. Fixed. (cculianu) * Fixed QR scanner looking off-center on some platforms. (Axel Gembe) * Fixed QR scanner quirks on some platforms when failure to configure camera resolution confused the QR scanner a little bit. (Axel Gembe) # Release 4.0.6 * Added CoinText support. Just enter 'cointext:ANY_PHONE_NUMBER' in the send tab to use it! (cculianu, Jonald Fyookball) * Added a brand-new Transaction Dialog feature "Download input data" which allows you to get 100% accurate fees, input addresses, and input amounts for ANY tx in your wallet or even NOT in your wallet. (cculianu) * Various fixups to script parser code and misc. transaction refactorings (Mark Lundeberg) * Qt: Enable automatic high DPI scaling on Windows and Linux (Axel Gembe) * Redid some of the icons and graphics to support high DPI (Axel Gembe, cculianu) * Added command-line option `--qt_disable_highdpi` to force-disable high DPI mode (Axel Gembe) * Bugfixes to Ledger support + allow up to 187 byte OP_RETURN (Axel Gembe) * Misc tiny UI nits and other fixups (cculianu, Axel Gembe) * Updated libsecp256k1 to latest from Bitcoin-ABC (cculianu) * Reduced .dmg, .exe, & .AppImage binary sizes by optimizing images (Axel Gembe) * Updated servers.json (imaginaryusername) * CashShuffle: Raised default shuffle limit to 99.9999 BCH (cculianu) * Replaced the 'clock' icons with new hi-res versions. Please direct all hatemail to Calin Culianu for he volunteers to take full responsibility. (Jason Pribble, cculianu, James Cramer, Axel Gembe) * Minor fix: Clicking a link in browser to open a URL in Electron Cash no longer resurrects a closed wallet and instead opens the link in whatever active wallet windows exist. (cculianu) # Release 4.0.7 * CoinText: Show a popup label after CoinText is initiated to remind user they need to hit "Send" or "Preview" to proceed (cculianu, imaginary_username) * Tx Dialog: Fixups and functionality expanded. All wallet addresses are now links which are clickable (leading to the address's history view). All input prevouts are now clickable links as well; they lead to a tx dialog screen for the prevout tx. Additionally, we added a right-click context menu for the input/output panes of the tx dialog window. This brings EC's functionality closer to that of a mini block explorer. (cculianu) * KeepKey: Fixed a packaging issue where loading BIP39 onto an uninitialized KeepKey would fail with a Python exception on Windows & Mac #1434 (cculianu) * Python 3.6 is officially the minimum Python version for Electron Cash now. In the last version, you could still run on Python 3.5 (poorly), we just made it official. (Axel Gembe, cculianu) * Added OP_RETURN capability to the 'Receive' tab. You can now generate receive request URIs and QR codes containing 'op_return' and/or 'op_return_raw'. Not all wallets can read this query string argument, but Electron Cash can. (cculianu) * Linux run-from-source: Warn/Abort with helpful messages if user is missing required PyQt libs such as QtSvg. (cculianu) * QR Scanner: Added informative message for Linux run-from-source users who happen to have a broken PyQt5 lacking a required lib for accessing the camera. (cculianu) * Schnorr: Defaults to off for watching-only wallets. This is to prevent air-gapped setups from underestimating fee between generating and signing EC. (cculianu) * Tx Dialog: Warn if user is attempting to broadcat a low fee tx of <1 sats/B. (cculianu) * Address tab: Allow CTRL+F of addresses prefixed with bitcoincash: to do the expected thing. (cculianu) * Various bugfixes (cculianu) * OpenAlias: Fix #1441 - Resurrected it form the dead. It wasn't working before. You can now send payments to people via their openalias eg user@domain.net (requires they set up a DNS TXT record). See https://openalias.org/#implement (Axel Gembe) * AppImage: 100% deterministic builds now. (Axel Gembe) * AppImage: "Open in block explorer" now works (Axel Gembe) * Windows: We figured out what was causing the anti-virus false positives on our recent releases and took steps to reduce the possibility of AV false positives going forward. (cculianu, Axel Gembe) * CashShuffle: Fix #1223 - Finally resolved the "dead menu actions" bug where sometimes after bringing up the CashShuffle settings, hotkeys and File->menu actions would no longer respond. (cculianu, Axel Gembe) * Quotes/Fiat Exchange Rate: The "historical rates" code was buggy and prone to "no data" being shown even when the server we get the quotes from has data. Bug #1448. This has now been fully fixed and made unbuggy. (cculianu) * Export Wallet History: Fix #1459 - The Wallet -> Export History facility now always exports fiat history data if "Fiat History" is enabled in preferences. Note also that the history export is now sorted in descending order by date, like the history tab default sort order. (cculianu) * Update checker: Made the "new version available!" notification less obtrusive: it now posts a message to the system tray popup as well as just creating a new status bar icon you can click on to respond to the notification at your leisure. Hopefully this will tempt fewer people to turn off the notifications (cculianu) * Preferences pane: Split up the "Transactions" tab in the preferences to "per-wallet" and "app-global" sections to more clearly communicate in the UI which of the options are global and which are per-wallet. Closes issue #1427 (cculianu) * Preferences pane: Added a new option "notify when receiving funds" which is on by default and if unchecked, allows you to no longer receive system tray notifications on tx's. This is a per-wallet setting. Closes issue #1451 (cculianu) * Tx Send Confirmation: Added a new button to the tx send confirmation dialog "Copy link" which copies the link to the tx on the configured block explorer. Issue #1464 (cculianu) * AppImage builds have been made SIGNIFICANTLY smaller. Here's to faster downloads and peppier startup times, hooray! In addition, the macOS .dmg build and the Windows .exe builds have been made slightly smaller. (Axel Gembe) * Cash Address Toggle: Replaced icon with a much nicer one. (Leandro Di Marco) * Cash Address Toggle: After a reddit poll was conducted, we decided to make it possible to disable the cash address status bar button in the GUI. It's on by default, but can be disabled in Preferences -> General. In addition, the Preferences -> General tab has been laid out slightly differently. (cculianu) * Improved system tray icon and other assorted icons for high DPI. (Axel Gembe) * Various build system fixes and bugs fixed. (Axel Gembe) # Release 4.0.8 * Cash Accounts support has been added to Electron Cash! Most of the UI for it is in the "Contacts" tab (View -> Show Contacts), there are also UI bits to it in the Addresses tab, in the Tools menu, and of course, the Send tab (where you can enter any Cash Account and it will get auto-resolved for you!) #1505 (cculianu with massive platform work from Axel Gembe) * Fixups to allow Digital Bitbox and Ledger to sign more types of OP_RETURN outputs. (imaginaryusername, Axel Gembe, cculianu) * "Button" Editor: Fix keypress events going to the editor when the buttons are focused and other nits. #1518 (Axel Gembe) * More help for "QtSvg Missing" error; #1516 (Mark Lundeberg) * Qt: Performance fix to History tab for wallets with many txs when verifying. The performance when verifying for wallets with a huge history was not optimal and the UI would periodically hang. This has been fixed. (cculianu) * SPV: Make the merkle node checker no longer care whether "inner node looks like a tx" because this check is no longer need after the Nov. 2018 hard-fork. (cculianu, Mark Lundeberg) * Fix #1502 - Intermittent iOS Crash Reporter on bad/expired BIP70 Payment (cculianu) * Translations: Add support for plural forms #1500 (Axel Gembe) * Coins Tab: Added default sort order of Amount, Descending. The Coins tab now also remebers whatever sort order you gave it. This should be good for CashShuffle users with many coins in their coins tab. (cculianu) * Wallet: Improve performance of is_mine() check from O(N) to O(logN) (cculianu) * Qt Network Dialog: Let the user edit the host/port in peace (SomberNight, cculianu) * Fonts: Improve color emoji support on Windows and Linux #1498 (Axel Gembe) * Fonts: Add Google Noto Color Emoji font subset #1496, #1523 - This is bundled in Windows and AppImage and loaded at runtime if the user lacks a suitable color emoji font (Axel Gembe). * AppImage: Bundle more binaries to increase compatibility & other fixes #1492 (Axel Gembe) * Updated "Error, Could not import PyQt5" message to be more helpful (cculianu) * Qt: Update to 5.12.3 for Windows and AppImage builds #1490 (Axel Gembe) * Linux Qt: Warn user if running Qt < 5.12 (this has terrible font support which causes EC to render fonts badly if using emojis or unicode) (cculianu) * AppImage: Upgrade to Ubuntu 16.04 as base #1489 (Axel Gembe) * Build: Protect against PGP keyserver poisoning attack #1487 (Axel Gembe) * Added electroncash.se server to servers.json (Georg Engelman) * TxDialog: Allow various fields to be selected by mouse. (cculianu) * TxDialog: Added the "Mined in block" field to the dialog. (cculianu) * Localization: The app now defaults to the system language on Windows, Mac and generic Unix for new installs. The preferences dialog has also been improved to bring the General tab to the front and make the language picker contain translated language names. #1477 (Axel Gembe, cculianu, Alexander Schlarb) * Fix #1473: Omit bitcoincash: prefix from legacy address in receive tab QR image if no parameters are filled-in other than 'address'. This allows users to quickly use the receive tab to scan a QR image from a mobile wallet that doesn't know about bitcoincash:. Note that if the receive tab has parameters filled in eg: description, amount, etc, then the receive request becomes a URI and it will have the bitcoincash: prefix prepended, even if using legacy address mode. (cculianu) * Ledger: Fix #1479: 2FA Dialog with Legacy devices and multiple outputs was crashy due to a small programming error. Fixed. (Axel Gembe) * Added various hotkeys to the GUI Ctrl+K, Ctrl+M, etc. You will see them in the various in-app menus (such as Tools, Wallet, etc). (cculianu) * Made the network layer more resilient to malformed server responses. (cculianu) * Search box has been fixed to not get crushed by the balance label and to also work better and have placeholder text. Closes #1493 (cculianu) * Coins tab: Offer alternate address format copy (eg "Copy Legacy Address" if in CashAddr mode, and vice versa). This was already available in the Addresses tab but wasn't in the Coins tab. Closes #1476 (cculianu) * Address tab: Allow multi-select and copy of data items such as Addresses, Address & Balance, etc. Closes #1475 (cculianu) * Contacts tab: All contacts can now also get an optional label. The label is keyed off the address and is saved in wallet.labels. Closes #1508 (cculianu) * Added better help for the Pay to edit in the send tab. The help text has been improved to clarify this advanced widget's capabilities, and a '?' help button has been added in the tool buttons for the line edit. (cculianu) * App icon has been updated to be a little more rectangular and render better across resolutions and platforms. #1526 (cculianu, Axel Gembe, fyoookball, BeltranLeo) * Update checker: Use a longer timeout to not time out when using a proxy server. #1509 (cculianu) * External Plugins: Be more resilient to a bad plugin file. #1533 (cculianu) * Updated translations (Axel Gembe) * Email plugin crash fix #1534 (cculianu) * Minor UI bugfixes. (Axel Gembe, cculianu) # Release 4.0.9 * Fixed remaining (rare, hopefully) font & emoji rendering issues on some Linux distributions. (Axel Gembe) * Added preferences options for "Use FreeType" (Windows) and "fontconfig overrides" (Linux). (cculianu) * Updated blockchain checkpoint to block 592911. (Malcolm Smith) * Added support for "cashacct:" URIs #1547. You can paste these in the Pay-to edit in the Send tab or, if on Linux, Mac & Windows, click on a cashacct: link in your browser as well. (cculianu) * Fixed esoteric crash bug which would occur sometimes when opening the preferences dialog. This bug was due to bugs in PyQt5 when using QtMultimedia and the fix involved loading QtMultimedia at app start, rather than on-demand. #1545 (cculianu) * Fix #1552: Disallow "Request payment" in addresses tab when address is used. This would lead to an inconsistent UI; the receive tab would always enforce a new address anyway, so the option in the right-click menu was misleading at best in that situation. "Request payment" works as normal if the address is unused, however. (cculianu) * Fixed Windows setup.exe to be more reproducible and other misc build fixes. (Axel Gembe, cculianu) * Fixed very rare uncaught exception due to misbehaving plugin #1554. (cculianu) * KeepKey & Trezor: Fix WebUSB on Windows 10 1903 by patching libusb, #1556. (Axel Gembe) * Cash Accounts: Lookup/Search results offer a "Details..." link now instead of the "View tx..." link. You can view tx on the details page. (cculianu) * Qt: Added proper keyboard navigation to the Transaction Dialog window, and various other places. #1557 (Axel Gembe) * Android: Added native libsecp256k1 support (Malcolm Smith) * Bugfix #1240, #892, #1484: Prevent infinite startup hangs due to lockfile timestamp in the future. (cculianu) * Email Plugin: Minor fixups and fixed bug #924. (cculianu) * iOS: Fix #1273 -- Crash due to trying to pass a Python Exception to obj-c as string. (cculianu) * Various build and packaging fixes for Windows. (Axel Gembe) * Added BitPay 2.0 JSON API support. (cculianu) * Fixup to some plugins such as Scheduled Payments and Inter-Wallet-Transfer raising uncaught exceptions if they are loaded and enabled and user hits Ctrl+F (cculianu). * LabelSync: Prevent error dialog spam when labels plugin fails to update labels on the server. (cculianu) # Release 4.0.10 * Lib & Qt: Added Bip38Key encryption support to both the library for plugins to use as well as to the Qt UI for users to be able to export or encrypt WIF keys as BIP38 encrypted keys; #1593, #1594. (cculianu) * Minor internal i18n nits, #1571. (Mark Lundeberg) * Windows: Switch LibUSB to version 1.0.23-rc2, #1572. (Axel Gembe) * iOS: Added native secp256k1 to iOS build, drastically improving signing speed. (cculianu) * iOS: Added Schnorr signatures. (cculianu) * Fixed output script classifaction code to be more correct. (Mark Lundeberg) * Qt: Made generated QR codes look better on HighDPI displays. (cculianu, zebra-lucky) * Misc. localization and internationalization fixups. (Axel Gembe) * OSX: Minor fixup for Mojave font weights being rendered too thick. (cculianu) * Minor bugfix: Guard against "all zero" transactions coming from malicious servers, #987. (cculianu) * Qt Console: Fixed the warning box layout to fit on-screen in all setups, #1584. (Axel Gembe) * Qt: Fixed minor warning about alpha value, #1585. (proteanx) * OSX & Linux AppImage: Bumped bundled Python version to 3.6.9. (cculianu) * iOS: Added a ruby helper script which, if running Brew, will auto-set-up more of the Xcode project for the user after creating it with `make_ios_project.sh`. (jonspock) * Added SLP awareness to all wallets. Even though one can't easily get an SLP token into a non-SLP wallet, it is still possible. The EC internals now track transactions containing SLP tokens and guard against spending such coins. Coins that have SLP tokens on them are highlighted in green in the "Coins" tab and cannot be spent from the UI. This is to prevent token burn, #1602 (cculianu) * Android build fixes, #1599. (mhsmith) * More Android fixes: Added stability improvements and various corner case bugfixes (see github PR #1605 for details). (mhsmith) * Fiat FX Rate: Bitpay.com URL / API endpoint has changed, thus breaking fiat exchange rate sources if "Bitpay" was selected. Fixed. (cculianu) * Updated websockets (electrum-merchant): fixed stale/old code which no longer ran, added '--payment_url' option, and other miscellany. (cculianu) * Implemented BIP70 properly on Qt and iOS; #1612. (cculianu) * MacOS HW Wallets: Fixed SIGSEGV crash due to talking to the device from multiple threads which is not supported on Darwin. (cculianu) * Ledger Nano HW support has been vastly improved: It should be less crashy and provide the user with much more meaningful messages for getting the device into the proper state to talk to Electron Cash. (cculianu) * Wallet: Fixed erroneous coinbase maturity logic. Immature mined coins were erroneously being withheld from spending for an extra confirmation. (cculianu) * Coins tab: Coinbase coins that are not mature are now highlighted in blue text and are not allowed to be selected for individual coin spending (previously you could select them for spending with no way to actually spend them which was bad UX). (cculianu) * TxDialog: coinbase tx's now show 0 fee, rather than 'unknown' (cculianu) # Release 4.0.11 * Added SatoChip hardware wallet support: https://satochip.io/. #1668 (Baudoin Collard, cculianu) * Added API support for plugins to register themselves with the command-line in order to offer RPC service commands. #1670 (Mark Lundeberg) * Added "Show crash reporter" to preferences, and re-laid-out the preferences pane. #1673 (cculianu) * Fix #1671 -- "No data" for fiat when using the 'history' RPC command has been now fixed. (cculianu) * Fix #1679 -- Exporting history now shows fees (if known), as well as input and output addresses involved in a tx. (cculianu) * Plugin API fix for @hook. #1669 (cculianu, Mark Lundeberg) * Internal API optimization for transaction signing #1666 (Mark Lundeberg) * Added BlockExplorer.one for both testnet and mainnet as a block explorer configurable in preferences. #1664 (Axel Gembe) * CLI: Added --op_return and --op_return_raw options for the 'payto' command. (cculianu) * AppImage: Improved binary stripping for more reproducible builds. #1662 (Axel Gembe) * Updated SSL certificates to Sept. 2019. This should hopefully fix some of the "Unable to verify SSL" errors some users have seen when using CashShuffle. (cculianu) * Fixed a long-standing bug where sometimes Electron Cash would hang forever on startup due to a stale/old daemon 'lockfile'. (cculianu) * Qt history tab: Added workaround for persitent 'Unknown' balances when using advanced scripts to spend funds. (cculianu) * Qt UI: Add mechanism to prohibit '3..' p2sh by default, which should protect users from accidentally sending BCH to BTC segwit addresses. This protection can be disabled in preferences. Issues #1658 and #1225. (cculianu) * Updated README for better instructions on how to run the development/git version. (Mark Lundeberg) * Added servers to servers.json: tbch.loping.net, greedyhog.ddns.net. Removed server theblains.org. (Axel Gembe, greedyhog) * iOS: Fixes for iOS 13.0+ and other miscellany (cculianu) * iOS fix: "Downloading headers xx%..." is now more accurate (cculianu) * iOS fix for bug #1651, crash if prefs screen up when wallet closed. (cculianu) * transaction.py: don't append value when serializing inputs with scriptSig. #1648, #1628, #1637 (Mark Lundeberg) * Addresses tab: hide all empty change addresses, not just used ones & pop open change list by default. #1646 (Mark Lundeberg) * Android: allow specifying a server which isn't in servers.json. #1644 #1636 (Malcolm Smith) * Add Swahili to the language list. (Patrick Kariuki) * Bumped Qt version to 5.13.2 on most platforms. (cculianu) * Qt prefs: Renamed the default "light" UI style to "Default". On some systems this style is actually dark in appearance. (cculianu) * cashaccts: Fixed parse bug in parsing eg 'cashacctname#123,1.23'. (cculianu) * Misc. menu and dialog nits, polish, cleanups, more consistent Capitalization, & More. (Tom Zander, cculianu) * Qt: main window, make sure Ctrl+Q is shown in File->Quit. (cculianu) * Transations: prefer verbatim scriptSig for (re)serializing complete transaction inputs. #1637 (Mark Lundeberg) * Added index_url override to addrequest command. #1636 (Yuki Matsumoto) * i18n: Use pgettext in a few places, and various fixups. #1624 (Axel Gembe) * Very many Android fixes. #1614 (Malcolm Smith) * p2sh: Fix coin tracking / balance, etc for esoteric scriptSigs/redeemScripts in inputs. This should make it easier to have a wallet that tracks smart contract addresses and other advanced usages of Bitcoin. #1620 (cculianu) * synchronizer: Check txid from server against response content. This is a paranoia check to make sure the server isn't being malicious. (cculianu) * i18n nit: Translate 'Unknown' string in format_satoshis. (cculianu) * Removed cashshuffle.net #1619 (Georg Engelmann) * Configure payment_url to include payment request ID. #1617 (Mark Meson) * Command-line: added `addressconvert` command. (cculianu) * BIP70 Payment Request Fix. There were potentially subtle bugs in how we handled BIP70. Nothing major. They have been fixed. #1615 (cculianu & Mark Meson) * iOS: Add SLP-awareness & protection to the UI. (cculianu) * Misc. refactoring, nits, and bugfixes (cculianu, Mark Lundeberg) # Release 4.0.12 * **TRANSLATIONS!** This release includes a complete coverage of the Spanish language as well as many other language strings added for German, Portuguese, and other languages. (various contributors, w/ Jonald Fyookball as organizer) * Made export history way better (#1682) -- Exporting history from the GUI or the CLI can now optionally include accurate fee data as well as accurate fiat amounts (if fiat history is enabled in the GUI). (cculianu) * Fix #1681 - Gave cashshuffle message.proto file a package name. This caused issues for some source users whereby the lack of a package name may clash with modules installed on the user's system. (cculianu) * Android (phase 4): Add ability to delete closed wallets (#1690) (Andrew#128) * More graceful and softer shutdown on Ctrl-C / SIGINT (#1695) (Mark Lundeberg) * Various backend preparations for CashFusion (#1693) (Mark Lundeberg) * Remove unused SIP dependency for Python 3.8 compatibility (Axel Gemebe) * SatoChip HW Wallet: Fix crash when cancelling PIN change or seed reset (Baudoin Collard) * SatoChip HW Wallet: Fix recovered authentikey does not correspond to registered authentikey error (#1717) (Baudoin Collard) * Fix #1718: We had a string format error in Export Private Keys dialog, which would cause uses that were using a password with '{' in it to experience crashes. (cculianu) # Release 4.0.13 - **BIP 39 Seed format** is now the ***native seed format*** for Electron Cash! (Calin Culianu) - New wallets will always generate seeds in this format. When restoring from seed, format auto-detection is implemented (so that old 'Electrum' style seeds continue to work). - Additionally, wallets created/restored from BIP39 will no longer have no "Seed" icon in the GUI (and you can always view their seed; it is never "forgotten"). - The seed dialog now always shows derivation paths for BIP39 seeds. - **New integrated Tor capability**. (Axel Gembe, Calin Culianu) - This capability will be bundled with Electron Cash for the upcoming ***CashFusion*** feature. - For now, though -- you can use it to start/stop Tor right from inside Electron Cash -- **no additional Tor browser install needed**! - Faster Network, #1819: Improved network code for faster wallet startup times. (Mark B Lundeberg) - Added "Sign/Verify message" to the 'Contacts' tab right-click menu. (Calin Culianu) - Fix #1727 - Don't close Qt app if user hides windows using the system tray icon Show/Hide feature. (Calin Culianu) - Wallet rename function added for Android version, plus other fixes. (Andrew#128, Malcolm Smith) - Wallet export function added for Android version. (Andrew#128, Malcolm Smith) - Internal fix-ups to possible error message dialogs when broadcasting a transaction #1730 (Mark B. Lundeberg) - Performance boost to base_encode/base_decode for legacy addresses. (SomberNight/ghost43) - Updated translations. (Axel Gembe, Georg Engelmann, various other volunteers) - Updated embedded libsecp256k1 to ABC version 0.20.9. (Calin Culianu, ABC Authors) - Server list: Add 'display' key to give Tor servers a short name. (Axel Gembe) - Network dialog: Various fixups to proxy detection and usage of Tor servers & onion icon on .onion servers (Axel Gembe, Calin Culianu) - Various much-needed build system refinements and fixes. (Axel Gembe) - Qr code reader: Fix to make it more reliable on all setups. (Axel Gembe) - Updated pre-packages server list, aka `servers.json`. (Calin Culianu, Andrea Suisani) - Fixed the long-standing "tx's lose their txid" bug resulting in erroneous error dialogs popping up on broadcast sometimes. (Calin Culianu) - Fix #1785 - Allow searching (Ctrl+F) by tx_hash in history tab. (Calin Culianu) - About dialog: Update copyright year to 2020 and make localizable. (Axel Gembe) - Fix #1789: Disallow user delete last address in Imported wallet. You could then end up with an empty, 0-address wallet, which the rest of the internal codebase did not like. (Calin Culianu) - Fix #1774: Tolerate spurious 'error' messages from server. (Calin Culianu) - Fix #1738 - Handle `protobuf` serialization errors for payment requests. (Calin Culianu) - CashFusion back-port #1647: Add change-address reservation subsystem. (Mark B Lundeberg) - Add create/restore commands in to daemon mode RPC server #1746. (MrNaif2018) - UTXOList (Coins tab): Show number of coins in output_point column. (Calin Culianu) - Update ViaBTC explorer address. (Imaginary Username) - #1802 - Added "payment_received" event which can be used by plugin authors wishing to author BIP70 payment integraton plugins. (MrNaif2018) - Fix: Signing payment requests with OpenAlias should now work. (Calin Culianu) - #1811: `servers.json`, updated greedyhog's server. (greedyhog) - Max OSX -Binaries are now built with hardened runtime enabled, which is required now on latest Catalina. (Calin Culianu) - Fix #1817, Bitcoin Lib: Added tighter validation to bitcoin.deserialize_xkey. (Calin Culianu) - Various internal bug-fixes and improvements. (Calin Culianu, Axel Gembe, Mark B Lundeberg, Andrew#128, Malcolm Smith). # Release 4.0.14 - Fixed a bug in CashShuffle which would sometimes cause some shuffle tx's to use the same address twice in the outputs. (cculianu) See reddit thread: https://old.reddit.com/r/btc/comments/fmcf0x/cash_shuffle_privacy_bug/ # Release 4.0.15 - Fixed USB HID support for hardware wallets on macOS. (cculianu) - Documentation: Updated instructions for running from source on macOS #1848. (Ty Everett) - Fix #1806 - Fixed crash when no outputs in tx dialog. (cculianu) - Requirements: Remove protobuf <3.9 constraint #1864. (Axel Gembe) - Server list updated. (imaginaryusername, Axel Gembe, cculianu) - Android fixups and improvements: - Handle base units being renamed or removed (Malcolm Smith) - Switch to Requests screen when a request is saved (Malcolm Smith) - Fix crash when opening payment protocol URL from browser (Malcolm Smith) - Various internal improvements and fixes (Malcolm Smith) - Bugfix: BIP39 passphrases were being handled incorrectly for upper or mixed case #1878. (Jochen Hoenicke) - Added OP_REVERSEBYTES to the list of known script ops for display. (cculianu) - Made "Connect only to Preferred Servers" False by default. (cculianu) - Varous macOS Fixups and improvements: - Mojave+ dark mode now works (cculianu) - On macOS we now disabled the "dark" theme in favor of the system dark theme (cculianu) - Catalina startup times drastically improved (cculianu) # Release 4.1.0 - ***CashFusion*** is here! To access it, simply right-click on the CashFusion icon in the bottom-right of the status bar. Thanks to everybody that worked on it, in particular: Mark Lundeberg, Jonald Fyookball, Axel Gembe, Calin Culianu and many more that don't fit here. - Tx Signing has been significantly sped up for transactions with many inputs. (Mark Lundeberg, cculianu) - Tezor HW Wallet: Updated to support latest firmware. #1900, #1902 (Axel Gembe) - Fixes for bugs introduced by newer ecdsa libraries that use gmpy2. In particular on Fedora 32 things would sometimes explode when signing a tx or using CashFusion, due to ecdsa API quirks. (cculianu) - Fixed ZBar (QR camera) issues on Windows. #1916 (Axel Gembe) - SSL Certs: Accept wildcard certs, accept CA-signed replacing pinned self-signed. Servers can now use wildcard certs or switch from self-signed to CA-signed without losing users! (cculianu) - Update criptolayer server. #1874 (imaginaryusername) - Add electroncash.de block explorer. #1920 (Axel Gembe) - Network: Show problematic pinned certificates and allow unpinning. #1919 (Axel Gembe) - Update plugin for Satochip hardware wallet to support latest firmware v0.11. #1915. (Toporin) - Tor: Make process shutdown more robust. #1893 (Axel Gembe) - AudioModem: Fixed to not crash on unsupported platforms. (cculianu) - Various internal refactorings, fixups, and internal API improvements. (cculianu, Axel Gembe, Mark Lundeberg) # Release 4.1.1 - Added support for the ASERTi3-2d DAA for the Nov. 15th, 2020 upgrade #1954 (Calin Culianu) - Added testnet4 support, accessible with the --testnet4 CLI option (#1974) - Internal build fixes for OSX (Calin Culianu) - Internal fix for unit tests #1929 (Axel Gembe) - CashFusion: Show icon and add message even on non-fusable wallets #1927 (Axel Gembe) - dnssec: fix compat with dnspython 1.16 and 2.0.0 #1934 (Axel Gembe) - tests: fix cashaddr checksum test unreliability #1938 (Axel Gembe) - CashShuffle: Remove unmaintained tests #1940 (Axel Gembe) - Tor: Make the messages refer to a specific Tor binary #1941 (Axel Gembe) - git sanity: enforce "git checkout commithash" actually pulls commit #1949 (SomberNight, Axel Gembe) - CashFusion: Add more tiers for fusion server #1951 (Jonald Fyookball) - trezor: bump lib version, implement new passphrase-on-device UI #1947 (Axel Gembe, matejcik) - Add Blockchain.com mainnet and testnet explorers #1952 (Axel Gembe) - Fusion: Remove example server #1953 (Axel Gembe) - CashFusion: Ensure tor_port_good is defined in plugin (Calin Culianu) - Build: Fix wine build failing, typo in the git checkout work #1956 (Axel Gembe) - CashFusion: Better consolidation logic (Mark Lundeberg) - CashFusion: Update default server to use SSL #1959 (Mark Lundeberg) - CashFusion: Enhance fuzzing logic; more funds safety checks (Mark Lundeberg) - CashFusion: Miscellaneous cleanup (Mark Lundeberg) - Made PyQt5 optional by default and installable by [full] or [gui] extra requires (MrNaif2018) - Android: add plural formulae for Arabic and Polish (Malcolm Smith) - Android: use Babel so we don't need to handle every plural formula separately (Malcolm Smith) - Prompt to start Tor only if user has enabled autofuse for wallet (Calin Culianu) - Fix make_locale to be more pythonic (agilewalker) - Exchange rates: Remove dead exchanges #1982 (Axel Gembe) - Android: Sign transaction with schnorr #1988 (Jonas Lundqvist) - CashFusion: Include 'distinct coins' concept when enforcing privacy threshold (Mark Lundeberg) - Qt: Set the layout direction based on user-configured language, for right-to-left languages (Calin Culianu) - Network dialog: Add capitalized Tor binary name #1989 (Axel Gembe) - Run history_list_filter hook on updated labels #1990 (Jonas Lundqvist) # Release 4.2.0 - Added support for scalnet test network, accessed with CLI arg --scalenet. (Calin Culianu) - CLI/Server: Added addtransaction arg to payto/paytomany (#1997) (MrNaif2018) - Ledger: Fix warning about unverified inputs (#2003) (Axel Gembe) - Ledger: Test firmware version for trusted input requirement, fixes failure on older firmware < 1.4.0. (#2008) (Axel Gembe) - Ledger: Update python dependencies (#2009) (Axel Gembe) - Android: add Load & Sign unbroadcasted tx (#1986) (Matthew Clancy, Malcolm Smith) - Added ASERT tests (#2007) (Jonas Lundqvist) - Added paymentrequest tests (#2011) (Jonas Lundqvist) - Enable coverage HTML report (#2012) (Jonas Lundqvist) - Use locale atof when sorting columns (#2015) (Jonas Lundqvist) - Add Bitcoin Unlimited block explorer (#2016) (Jonas Lundqvist) - CLI: Added RPA paycode support (#2006) (Jonald Fyookball & Calin Culianu) - Dockerfile fixes for WINE and Linux AppImage (Calin Culianu) - Got rid of `imp` rewriting of lib, plugins, and gui dirs in source tree. (Calin Culianu, Axel Gembe, Malcolm Smith) - Disable cointext: support from send tab & remove cointext code (#2022) (Calin Culianu) - Qt UI: Made all tabs except for "Console" ON by default (Calin Culianu) - TxDialog: Add "Freeze Coins" button to freeze inputs before broadcast (Calin Culianu) # RELEASE NOTES 4.2.1 - CashFusion: Server-side checks to ensure "fast schnorr" is available on the server. (Mark Lundeberg) - Fixed a typo in the transaction dialog ("Unfeeze" -> "Unfreeze") #2027 (Axel Gembe) - CashFusion: Various tweaks to starting logic, stopping behavior, bugfixes, better handling for confirmed-only case, better handling when network down, improved logic for wallet waiting to receive fusions. #2028, #2030 (Mark Lundeberg) - Tor subprocess: Ensure daemonized (Mark Lundeberg) - Android: Added fiat send, plus various fixes (Malcolm Smith) - Added Loping.net block explorers; added TestNet4 / ScaleNet explorer list #2036 (Axel Gembe) - Added a "View on block explorer" option for addresses in the TX dialog #2049 (Axel Gembe) - Added shortcuts to Windows build for TestNet4 and ScaleNet #2050 (Axel Gembe) - Fix for ScaleNet: Turns out it has a 2d half-life, not one hour. Bug caused ScaleNet to stop working post-Nov 15th. Now it should work. (Calin Culianu) - Various updates to server list. (Axel Gembe) - Added checkpoint after HF block, also added CLI arg --taxcoin for ABC's coin. (Calin Culianu) - Network Dialog: Added advanced request throttling params (Calin Culianu) # RELEASE NOTES 4.2.2 - Fixed a regression introduced in 4.2.1 where the checkpoint block being after the asert anchor caused the code in blockchain.py to have a bad time. (Calin Culianu) # RELEASE NOTES 4.2.3 - Fixed rare None dereference. (Calin Culianu) - Android: fix remaining issues with RTL languages such as Arabic (Malcolm Smith) - Ledger: Update USB ids for app-bitcoin version >= 1.5.1 (#2061) (Axel Gembe) - Taxcoin: Add taxplorer.loping.net block explorer #2067 (Axel Gembe) - Taxcoin: Add taxplorer.loping.net server #2066 (Axel Gembe) - NetworkDialog: Fix glitches when restoring selection on update() (Calin Culianu) - Removed defunct CashShuffle servers (Calin Culianu) - Android: move transactions screen from export_history to faster get_history (#2063) (Malcolm Smith) - Update macOS build notes (#2073) (Corentin Mercier) - Android: refactor common list behavior into a base class (Malcolm Smith) - CashFusion: fix minor race leading to exception #2077 (Mark Lundeberg) - Android: note that this Chaquopy version is for Electron Cash only (Malcolm Smith) - Android: cache config in Python dict for performance (Malcolm Smith) - Android: catch "not connected" exception in "Load transaction" (Malcolm Smith) - Android: fix deprecated theme attribute in layout (Malcolm Smith) - Android: make Send address box automatically parse request URLs (Malcolm Smith) # RELEASE NOTES 4.2.4 - Trezor: Fixed connecting autolocked device #2085 (Daniel Gonzalez Gasull) - Fixed icon directory and added scalable icon #2089 (Emily Roberts) - Added option to scan current screen for QR code #2091 #2093 (Jonas Lundqvist) - Android: updated to Chaquopy 9.1.1 (Malcolm Smith) - Android: improved performance and UI responsiveness (Malcolm Smith) - Enabled fiat by default #2099 (Malcolm Smith) - Improved performance of (un)freezing coins (Calin Culianu) - Disabled Fiat display for testnets (Calin Culianu) - Reduced time spent saving wallets #2106 #2110 (Malcolm Smith) - Android: added more details when synchronizing (Malcolm Smith) - Reduced synchronization time by reducing address saves #2113 (Malcolm Smith) - Tor: Fixed proxy bypass for stem version >= 1.8.0 (Axel Gembe) - Android: save wallets periodically during synchronization (Malcolm Smith) - Android: when a wallet is loded, run a foreground service to prevent the process from being killed (Malcolm Smith) - macOS: Workaround for Qt UI not working on Big Sur (Calin Culianu) - Satochip: use BIP39 by default & improve user interface #2127 (Toporin) - Android: added adaptive icon (Malcolm Smith) - Updated copyright year to 2021 #2126 (Marius Kjærstad) - iOS: Fixed inability to restore Electrum seed wallet (Calin Culianu) - Warn if a legacy addres is used #2129 (Daniel Gonzalez Gasull) - AppImage: Build using Ubuntu 18.04 (Bionic) #2144 (Axel Gembe) - Tor: Updated message parser to support version 0.4.5.x #2145 (Axel Gembe) - Tor: Updated to version 0.4.5.5-rc with some patches #2145 #2147 (Axel Gembe) - OpenSSL: Updated to version 1.1.1i #2148 (Axel Gembe) - NSIS: Updated to version 3.06.1 #2150 (Axel Gembe) - NSIS: Added an installer log. This fixes silent installation and accidental file deletion #2153 (Axel Gembe) - macOS: Updated PyQt5 to version 5.15.2 to fix Big Sur (Calin Culianu) - AppImage: Build all binaries except PyQt5 from source #2159 (Axel Gembe) - Windows: Updated PyInstaller to version 4.2 #2161 (Axel Gembe) - Build: Updated Python to version 3.8.7 #2162 (Axel Gembe, Calin Culianu) - Android: reduced network timeouts #971 (Malcolm Smith) - Android: changed "sign transaction" to "save transaction" #2032 (Malcolm Smith) - Reverted RPA paycode support #2170 (Mark B Lundeberg) - Zbar: Updated to version 0.23.91 #2171 (Axel Gembe) - Added Vietnamese Dong to CoinGecko exchange pairs #2178 (Hieu Van) - macOS: Fix to mysterious and intermittent Segfault-on-exit (Calin Culianu) - Various internal bugfixes and code refactoring #2087 #2095 #2097 #2117 #2140 #2143 #2151 #2155 #2156 #2158 #2160 #2154 #2176 (Daniel Gonzalez Gasull, Calin Culianu, Axel Gembe, Mark B Lundeberg, Malcolm Smith, Pierre K, Toporin) # RELEASE NOTES 4.2.5 - appimage build: build was failing on some host systems #2181 (SomberNight) - Requirements: Restring PyQt5 version to >=5.12.3 and < 5.15.3 (Calin Culianu) - Re-enabled PyQt 5.15.3 (Calin Culianu) - OSX Fix: Allow for Mojave+ dark mode to work (requires Qt 5.15.2) (Calin Culianu) - NSIS: Wait for the uninstaller to finish #2184 (Axel Gembe) - NSIS: Ensure the process is not running when (un)installing #2184 (Axel Gembe) - Servers: Add electroncash.de scalenet server #2186 (Axel Gembe) - Servers: Fix indentation #2187 (Axel Gembe) - Build: Use git version with patch for CVE-2021-21300 #2191 (Axel Gembe) - setup.py: Fix typo #2192 (Axel Gembe) - AppImage: Include libxcb into the image #2197 (Axel Gembe) - Add requirements-binaries.txt to manifest #2200 (Jonas Lundqvist) - Install Wizard: Add derivation path scanner #2199 (Jonas Lundqvist) - Tweaks and fixups to the DerivationPathScanner (Calin Culianu) - Build: Add cffi to the requirements #2203 (Axel Gembe) - Android: add new layout screens for the choice between standard and multi-sig wallet. (Aldin Kovačević) - Android: reorganize code for creating a standard wallet.(Aldin Kovačević) - Tor: Update to version 0.4.5.7 with some patches #2205 (Axel Gembe) - OpenSSL: Update to version 1.1.1j #2206 (Axel Gembe) - Skip path derivation scan if seed is unavailable #2208 (Jonas Lundqvist) - Shorten boolean expression, use double quotes #2209 (Daniel Gonzalez Gasull) - Style changes (from backport), small refactorings #2211 (Daniel Gonzalez Gasull) - Fix PR 2211 #2218 (agilewalker) - Add electrs.electroncash.de #2222 (Georg Engelmann) - Removed unreachable line of code #2224 #2234 (Daniel Gonzalez Gasull) - OpenSSL: Update to version 1.1.1k #2225 (Axel Gembe) - Python: Update to version 3.8.9 #2226 (Axel Gembe) - Fixed typo #2227 (Kevin Nowaczyk) - AppImage: Update OpenSSL to version 1.1.1-1ubuntu2.1~18.04.9 #2231 (Axel Gembe) - Android: Added initial UI for multisg wallet creation. (Aldin Kovačević) - Build: Verify the Python checksums #2239 (Axel Gembe) - Android: Various commits to support multi-sig wallets (Aldin Kovačević) - Remove CPFP (child pays for parent) (Calin Culianu) - Update servers.json (Calin Culianu) - Android: Using 'get_tx_info' to get the status of the transaction. (Aldin Kovačević) - Make make_locale check exit status of gettext commands #2259 (Malcolm Smith) - Android: fix duplicate requirement, add missing string (Malcolm Smith) - Android: update to Gradle 6.5 and Android Gradle plugin 4.1.2 (Malcolm Smith) - Android: Added multisig wallets to the Android application #2279 (Aldin Kovačević) - Look for external plugins in ELECTRON_CASH_PATH #2301 (Jonas Lundqvist) - Support disabling JSON-RPC server in Daemon #2305 (MrNaif2018) - [fusion] Increase 'fuzz fee' to be tier/10^6 #1984 (Mark B. Lundeberg) - Add feerate argument to payto/paytomany #2306 (MrNaif2018) - Android: catch overflow errors in AmountBox; closes #2288 (Malcolm Smith) - Android: restore thousands commas in read-only fiat amounts; closes #2246 (Malcolm Smith) - Android: Make PaymentRequest.has_expired always return a boolean; closes #2298 (Malcolm Smith) - Android: Add missing interface_lock in Network.get_server_height; closes #2173 (Malcolm Smith) - iOS: Support OP_RETURN transaction outputs #2307 (JOE LOYA ⚡️) - Android: many, many, many commits fixing many things related to v4.2.4-4 (Malcolm Smith) - CashFusion: Add "spend only fused coins" to Send tab #2316 (Calin Culianu) - Android: add sweep private keys command (Malcolm Smith) - Fix daemon running in non-jsonrpc mode (MrNaif2018) - Various Linux and Windows build fixups (Calin Culianu) - Fixed build for OSX Mojave (Calin Culianu) - Make OpenAlias accept 'bitcoincash:' prefix #2321 (Karol Trzeszczkowski) - Updated checkpoints for mainnet, testnet3, and testnet4 (Calin Culianu) - Removed support for ABC's "TaxCoin" (Calin Culianu) - CashFusion Server: Allow testnets to have unlimited connections per IP (Calin Culianu) - CashFusion: Add depth checks #2325 (Jonas Lundqvist, Calin Culianu) - CashFusion: Added a "Fusion Status" column to coins tab (Calin Culianu) - macOS: Fix popup_widget display if running in dark mode (Calin Culianu) - Remove bitcoin.com block explorer #2328 (Jonas Lundqvist) - CashFusion: Clarify status of coins on fused address #2329 (Jonas Lundqvist) - Add more accurate exchange rate for ARS #2326 (Santiago Chiabotto) # RELEASE NOTES 4.2.6 - History list - Made fiat balance changes also appear in red (scinklja) - Implement unconfirmed invoices status (MrNaif2018) - Add ability to forget config on exit (MrNaif2018) - Fire payment_received event on confirmation too (MrNaif2018) - macOS: Set minimum system version to 10.14.0 in Info.plist (cculianu) - Add native introspection opcodes (upcoming May 2022 additions to script) #2339 (cculianu) - CashFusion: Default fusion depth, if checked, to 3 (cculianu) - Trivial fix: Allow plugins to use qt/util.py filename_field (acidsploit) - Added electrum.bitcoinverde.org to server list (Josh Green) - Fixups for iOS 15+ (cculianu) - Android: Remove pycparser from requirements-android.txt (Malcolm Smith) - Android: improve string conversion script, and make it detect some errors (Malcolm Smith) - Fixups for Python 3.10 (cculianu) - add kisternet v3 onion to testnet (jkister) - Qt: Add cleanup code to avoid random segfault on exit (cculianu) - AppImage: Fixed to work on Debian and Tails #2245 (Axel Gembe) # RELEASE NOTES 4.2.7 - Fix for off-by-one error in op_push in bitcoin.py (cculianu) - Fix bitcoin.py push_script to implement BIP62 correctly (cculianu) - backport: blockchain.py: bugfixes re bits_to_target and target_to_bits (SomberNight) - Update copyright year to 2022 (sandakersmann) - Fix to allow fusions to continue while keeping dust protection (Emergent Reasons) - Android: replace deprecated jcenter repository with mavenCentral (mhsmith) - Remove ADDRTYPE_*_BITPAY (Jonas Lundqvist) - Add new option: "Retire unused change addresses" #2408 (cculianu) - Relax qdarkstyle version bound #2396 (MrNaif2018) - Add support for Satochip hardware wallet v0.12 (Toporin) # RELEASE NOTES 4.2.8 - Patch for Satochip v0.12 support #2410 (Toporin) - Add smartBCH LNS name lookup support #2414 (mainnet-pat, cculianu) - Build: Update the Wine build docker container to use the MSVC compiler (Axel Gembe) - Misc build fixups related to the addition of web3 support (cculianu) - wine-build: add workaround for installing pyinstaller (SomberNight) - Build: Patch pip vendored distlib to produce deterministic zip archives (Axel Gembe) - Build: Install a MSVC linker wrapper to make PE timestamps deterministic (Axel Gembe, cculianu) - CashFusion: Add 10BCH fusion tier (SahidMiller) - CTOR workaround: Always display receives before sends for the same block (cculianu) - MacOS-build: Build custom pyinstaller from git (SomberNight, cculianu) - Update libsqlite3 version for AppImage #2435 (Axel Gembe) - Update bundled Tor to version 0.4.7.7 #2434 (Axel Gembe) - Update OpenSSL to version 1.1.1o #2437 (Axel Gembe) - Wine: Update to version 7.7 #2436 (Axel Gembe) - Network: Fix for incorrect usage of python when formatting an errmsg (cculianu) # RELEASE NOTES 4.2.9 - LNS: Fix crash in multiple_result_picker (cculianu) - LNS: Make the web3 dependencies optional #2441. This allows distro packages to not have to pull them in to provide electron-cash. (cculianu) - LNS: Fix to the "add to contacts" button + misc code nits (cculianu) - Qt: Disable destroyed_print_error unless a static flag is set. This fixes some of the crash issues seen on Windows. (cculianu) - LNS: Bugfix whereby GUI was being sometimes access from a thread. This fixes the remaining portion (hopefully) of the crash issues seen on Windows. (cculianu) - LNS: Misc fixups and code cleanup (cculianu) # RELEASE NOTES 4.2.10 - Windows build: Restored reproducibility of the Windows build #2444 (Axel Gembe) - Removal of dead code (cculianu) - Fixup for dark mode on some Linux and Windows systems (Pierre K) # RELEASE NOTES 4.2.11 - Use fallback pure python implementation of ripemd160 in address.py #2452 (Voker57) - Consolidate all use of ripemd160 to one + add pycryptodomex fallback (cculianu) - Fix DAA activation height for testnet3 (cculianu) - Updated requirements to peg protobuf to a version <4.0 (cculianu) - Fix to blockchain.py get_bits; was sometimes wrong (cculianu) - Update servers.json #2453 (kzKallisti) - Ledger: Add Nano-S-Plus USB device ids #2454 (vrabe) - Tor: Update to version 0.4.7.8 with a patch for static linking #2456 (Axel Gembe) - Add RPA - Reusable Payment Addresses #2450 (Jonald Fyookball, OPReturn) - Normalise exchange rate #2462 (MrNaif2018) - Tor: Fix closing of stdout on Windows #2466 (Axel Gembe) - Allow restoring wallet in diskless mode #2464 (MrNaif2018) - Add same code for restore_wallet_from_text #2473 (MrNaif2018) - Tor: Fix launch_tor override of close_output argument #2468 (Axel Gembe) - Update default CashFusion server to fusion.servo.cash (#2469) (kzKallisti) - AppImage: Fix package versions and add cargo dependency #2470 (Axel Gembe) - Wine: Update Ubuntu from impish to jammy #2471 (Axel Gembe) - Tor: Update to version 0.4.7.10 with a patch for static linking #2472 (Axel Gembe) - Updated checkpoints (cculianu) # RELEASE NOTES 4.2.12 - Fixed text alignment in addresses tab #2477 (scinklja) - Removal of some dead code (cculianu) - Android: Add optional Dark Mode #2483 (Jonas Lundqvist) - Added BCH "chipnet" network; --chipnet (cculianu) - Remove some defunct mainnet servers #2488 (jkister) - commands: add freeze_utxo and unfreeze_utxo RPCs #2490 (chappjc) - commands: get_info and list_wallets daemon cmds to RPCs #2491 (chappjc, Jonas Lundqvist) - Added regtest support; --regtest #2319 (MrNaif) - Fixed units for regtest and scalenet (cculianu) - Add server-chipnet.json to setup.py #2494 (0e4ef622) - Removal of the LabelSync plugin due to unreliability #2498 (georgengelmann) - Add instructions to compile the icons for Qt #2499 (georgengelmann) - Android: Bump chaquopy to 13.0.0 #2500 (Jonas Lundqvist) - Removal of RPA from the GUI and from payment request handling #2503 (Jonald Fyookball) # RELEASE NOTES 4.2.13 - Regtest via pytest #2403 (Jonas Lundqvist) - Add tx_hashes to exported payment request #2504 (MrNaif) - Change bch.ninja to cashnode.bch.ninja #2506 (kzKallisti) - Run tox in github action #2508 (Jonas Lundqvist) - Set BitPay as requestor on jsonPayPro invoices #2510 (Jonas Lundqvist) - Add basic test for jsonPaymentProtocol #2511 (Jonas Lundqvist) - Trigger on Master branch + Add GitHub Action badge to README #2513 (Jonas Lundqvist) - Fixed typo in main_window.py "unnused" -> "unused", plus whitespace nits (cculianu) - Update electroncash.de servers #2516 (Georg Engelmann) - Remove python 3.6 from github workflow and/or tox.ini (cculianu) - Added Melory's BCH Explorer to the list of block explorers (cculianu) - Add chipnet.bch.ninja to servers_chipnet.json #2520 (kzKallisti) - Fix for contrib/make_all: Use a non-zero nr of jobs #2522 (Melroy van den Berg) - Allow zero-amount and partial payments in invoices #2523 (MrNaif) - Tor: Update to version 0.4.7.12 with a patch for static linking #2529 (Axel Gembe) - Updated checkpoints for mainnet, testnet3, testnet4, and chipnet (cculianu) # RELEASE NOTES 4.2.14 - BUGFIX: Fix crashes in payment requests with amount of None #2535 (MrNaif) - Build: Update dnspython to version 2.2.0 #2530 (SomberNight, Axel Gembe) - Servers: Add loping.net chipnet server + explorer #2531 (Axel Gembe) - Add builds to GitHub actions + Bump test versions #2532, #2526 (Jonas Lundqvist) - Disable OSX build github action (cculianu) - Cleanup of top README #2534 (Jonas Lundqvist) - test: Flip last bit in negative test cases #2536 (Jonas Lundqvist) - Remove references to Travis CI + Enforce python >= 3.7 in setup.py #2537, #2538 (Jonas Lundqvist) - Only archive GH Actions artifacts once + Split regtest in separate files #2539, #2540 (Jonas Lundqvist) - Fixes to get auto-build to work (cculianu) # RELEASE NOTES 4.3.0 - Added support for CashTokens, incuding token-aware addresses and creating/sending/receiving/managing tokens in-wallet. Thank you to all that contributed in the Flipstarter that made this happen! #2612 (cculianu, Andrew-128) - Explorer: Add 3XPL explorer #2546 (Axel Gembe) - Bump various dependencies #2547, #2553 (Jonas Lundqvist) - Various build-related dev-facing additions (Jonas Lundqvist) - Remove LNS and web3 dependencies LNS Related to smartBCH #2559, #2560 (cculianu) - Fusion on android; android Cash FusionCash Fusion enhancements and features #2563 (OPReturnCode) - add fulcrum.criptolayer.net to servers.json #2564 (molecular) # RELEASE NOTES 4.3.1 - Added a performance fix which led to pessimization/slowdown when opening wallets in some cases (cculianu) - Added a fix where CashFusion was "seeing" token-containing UTXOs. Not normally an issue but if they have significant funds on them, this could cause fusions to fail (cculianu). - Fixed a typo: "Cateogry" -> "Category" ##2617 (7e378beb8) - Fix for exoteric bug/problem on Python 3.11 in some rare cases. # RELEASE NOTES 4.4.0 - Re-enabled and fixed-up Reusable Payment Address (RPA) support [BETA] (cculianu, fyookball) - Fix test_tx_unsigned #2622 (Jonas Lundqvist) - Fixes for satochip plugin #2627, #2632 (toporin) - Various AppImage fixes (Axel Gembe) - Various Windows build fixes (Axel Gembe) - Various plugin system fixes spesmilo#5421 spesmilo#4842 (SomberNight, Axel Gembe) - Interface: Use check_hostname instead of match_hostname (Axel Gembe) - [backport] fix more DeprecationWarnings (SomberNight, Axel Gembe) - [tests] Skip test_interface if offline https://reviews.bitcoinabc.org/D14440 (Axel Gembe, others) - Tests: Update Python 3.12 to 3.12.0-rc.2, include Windows #2689 (Axel Gembe) - Fix the Optional Features menu Bitcoin-ABC@ff1a101 (PiRK, Axel Gembe) - plugins: fix loading of external plugins on Python < 3.10 #2710 (Axel Gembe) - tests: Use Python 3.12 (Axel Gembe) - secp256k1: Improve warning message by adding path and exception details #2712 (Axel Gembe) - Fix various strings that were wrong, inconsistent or not translatable #2718 (Axel Gembe) - test: Make the interface test work without internet connection #2719 (Axel Gembe) - plugins: Fix relative imports in plugin GUIs and external plugins #2720 (Axel Gembe) - tests: add missing regtest coverage requirement #2721 (Axel Gembe) - Various other test fixes (Axel Gembe) - Performance: make receive_history_callback faster for larger histories (cculianu) - Performance: Speed up loading of very large wallets (cculianu) - Various WINE build fixes #2728 (Axel Gembe) - Tweak to mnemonic.py -- optionally allow ambiguous BIP39/Electrum seeds (cculianu) - Various nits and small fixes (cculianu) - blockchain.py: Fixes for regtest (cculianu) - Android: Revive build, plus various Android fixes (Jonas Lundqvist) - Various minor UI fixups for CashTokens (cculianu) - Strenghened the send tab warning when sending to legacy addresses (cculianu) - Implemented a new wallet type: multi_xpub, which multiplexes multiple wallets into one #2731 (cculianu) - Label import: Allow multi-file selection and also unencrypted wallets (cculianu) - network_dialog: Validate hosts and ports #2744 (Axel Gembe) - Qt: Fix PyQt5 import from PyQt5.Qt instead of PyQt5.QtCore #2753 (Axel Gembe) - build-wine: Update xvfb and winbind to latest security patch #2752 (Axel Gembe) - Add ZXing-C++ QR scanner #2685 (Axel Gembe) - Fix issue with zxing not able to use images with padding (cculianu) - Trezorlib fixes #2744 (tl121) - AppImage build upgrade to Ubuntu 20.04 (tl121) - fix windows+appimage builds (latest security patch) #2778 (proteanx) - Adding optional version parameter to Transaction.from_io #2786 (The00Dustin) - Fix Appimage build files for deterministic build #2790 (tl121) - Many fixes for WINE build, including ugprade to Python 3.11 (Axel Gembe) - Many other build fixes including upgraded openssl, zbar, etc (Axel Gembe) - Update transaction.py to accept both capitalizations of locktime #2782 (The00Dustin) - Bump gh-action-pip-audit #2795 (Jonas Lundqvist) - Bump python dependencies #2796 (Jonas Lundqvist)