4.7.0
Add merchant_account_id to Transaction.refund
Add Transaction.adjust_authorization method to support for multiple authorizations for a single transaction
4.5 - 28 March 2021
o Bug 798089 - Starting "Tutorial and Concepts Guide" writes
namespace error to console
o Add wiki links about Online Banking Setup
o Online banking: Table of protocols
o Rewording of tools abstract
o Add IDs to all html chunks of help
o Explain default sort order and a partial review of the register
view menus.
o Update links about tax report …
o New section "Country Specific Reports"<p>Moved US:TXF,
added de:ElStEr
o Report: Join several notes in one footnote
o Several updates in report-create
o Guide: New year
o Update saved-reports location
o Update copyright year of german guide
o Specify ISO currencies in overview (English, German)
Fix build with glib 2.68.
GnuCash 4.5 Released
The GnuCash development team announces GnuCash 4.5, the sixth release in the stable 4.x series
Between 4.4 and 4.5, the following bugfixes were accomplished:
Bug 783283 - Multi-Currency payments use wrong date
Bug 797621 - GnuCash freezes temporarily and sometimes crashes when selecting Sales Tax Table in Invoices
Bug 797630 - Check for missing dependencies of 'Get Quotes' to avoid Gnucash crash.
Bug 797906 - GnuCash data file is locked after a "save-as" to mysql database.
Bug 797924 - Crash when searching for customer to process payment.
Bug 797997 - File gnucash could note be found
Bug 798019 - Currency rates in OFX file are ignored
Bug 798044 - Adding splits to a lot is extremely slow
Bug 798060 - Invoices are missing on Customer report after upgrade
Bug 798070 - Opening balance does not update when creating account from Account Hierarchy
Bug 798078 - Report 'Income Chart' prints stacktrace when end date before start date
Bug 798085 - Incorrect transactions import of entires with large number amount
Bug 798093 - Changing the symbol/abbreviation of a security after the trading account was created breaks GnuCash.
Bug 798096 - can't duplicate TX previous to red line threshold
Bug 798098 - Crash popup show when have 3 Windows in OSX
Bug 798100 - Equity totals calculating incorrectly
Bug 798101 - Do not #undef __STRICT_ANSI__
Bug 798104 - Menu item for "Import Account" is wrong in danish
Bug 798112 - An error occurred while processing mysql ...
Bug 798132 - Invoice Importing crashes when importing low quantity values.
Bug 798135 - GtkEntry text with search list: shows selected entry again for no reason
Bug 798147 - Notes entry crashes program
Bug 798149 - CSV transaction Import setting loses account name if it is changed after setting is memorized
Bug 798150 - Error on report over time
Bug 798154 - Tooltips wrong when multiple charts in one report
The following fixes and improvements were not associated with bug reports:
Fix building based on unix makefiles
Make the chart on the report page icon larger to align better with the account page icon.
Allow the context menu when GncCellRendererTextView is in edit mode.
Restructure early locale initialization
Fix GncDateTime::format_zulu to emit the UTC timezone instead of the GncDateTime's timezone with the UTC timestamp.
Fix the implementations of gnc_foo_get_day_neutral. As implemented these returned 10:59 AM local on the day but neutral time is 10:59 UTC.
gnc_invoice_window_print_invoice return NULL if invoice is NULL.
[dialog-invoice] invoice editor reuses invoice report tab.
Allow for Header Bar use in CSV transaction Assistant
Drop default locale currency special case for euro
Fix fencepost error in calculating the week_num for POSIX timezone rules.
Include the contents of PROJECT_DESCRIPTION in the PACKAGE_PREFIX.
Update python/gnucash_business.py to reflect rename of gncOwnerApplyPayment.
I18N: don't mark "<<", ">>" translatable
From Budget editor, add toolbar and Edit menu to run budget report
[gnc-plugin-page-budget] change note icon to a note page
Allow the find account dialog position to be saved when using 'X'
Update price database for imported transactions.
Replace g_memdup by memcpy
[html-fonts] Prevent sup/sub from affecting baseline
Replace stat calls with GFile to retrieve last modified info
[gnc-tree-model-split-reg.c] use xaccSplitListGetUniqueTransactionsReversed
[Split.c]New function xaccSplitListGetUniqueTransactionsReversed
[gnc-recurrence.c] avoid O(N^2) children traversal
Ensure that any GncMainWindows containing no tabs are destroyed at shutdown.
I18N: drop translatable flag from "xxx" dummies and remove trailing spaces from translatable strings
Update Form/Schedule line references for 2020 for the US Income Tax Report.
Fix build with glib2 2.67.x.
[balsheet-pnl] Use last day of the month prices instead of first day of next month.
[options.scm API] Remove canonically-tabbed parent-subtotal-mode
Accommodate Gwenhywfar 5.5.0 signature change for some GUI callbacks.
L10N: Move translation authority for Turkish from the GNU Translation Project to Weblate.
Make prototypes static for autoclear unit test, fixes build on Debian Buster.
[income-gst-statement] trep-engine currency section moved
[test-scm-utilities] test-end properly so that test failures set the exit code correctly
Create opening balance accounts only when there are opening balances.
[qif-file.scm] Don't use match as an identifier
Change the CSV export account tree header line
[new-owner-report] Don't create empty rows on report when splits have no entry in the memo field.
[gnc-report] dump backtrace to console when report crashes
[report-core] remove 2.6/2.4 compatibility code
[gnucash-commands.cpp] display report errors to stderr
New API
[report-core.scm] create and expose gnc:render-report
[report-core.scm] create and expose gnc:render-report
[gnc-plugin-page-report] add gnc_plugin_page_report_reload
Deprecations
[c-interface.scm] deprecate gnc:last-captured-error
[report-core] deprecate gnc:restore-report-by-guid
gnc:get-three-months-ago
gnc:get-six-months-ago
gnc:get-one-year-ago
gnc:get-three-months-ahead
gnc:get-six-months-ahead
gnc:get-one-year-ahead
traverse-list->vec
traverse-vec->list
New and Updated Translations: Bodo, Croatian, Danish, Dutch, English
(United Kingdom), Finnish, French, German, Greek, Hebrew, Hindi,
Indonesian, Italian, Japanese, Lithuanian, Norwegian Bokmål, Polish,
Portuguese, Portuguese (Brazil), Russian, Spanish, Turkish, Ukrainian,
Urdu, Vietnamese
3.3.0 (2021-03-15)
* Add decision_reasons and transaction_risk_score fields to RiskData
* Add acs_transaction_id, pares_status, three_d_secure_transaction_id,
lookup, and authentication to ThreeDSecureInfo
py36 gives following flag:
Traceback (most recent call last):
File "setup.py", line 50, in <module>
long_description = readme.read()
File "/usr/pkg/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 2861: ordinal not in range(128)
eth-utils v1.10.0
Bugfixes
When a TypeError or ValueError is raised during :meth:`~eth_utils.applicators.apply_formatters_to_dict`, eth_utils appends some useful contextual information. It was trying to re-create the old exception, but that sometimes fails, like with a :class:`JSONDecodeError`, which expects more arguments in the constructor. So now we raise a basic TypeError or ValueError.
Update the type signature of :meth:`~eth_utils.address.to_canonical_address`, :meth:`~eth_utils.address.to_checksum_address`, and :meth:`~eth_utils.address.to_normalized_address` to allow bytes-typed address input.
Performance improvements
Significant speedup of :meth:`~eth_utils.hexadecimal.is_hex` and :meth:`~eth_utils.hexadecimal.is_hexstr`.
Significant speedup of :meth:`~eth_utils.address.is_address`. Running a test that abi-encodes an array of 10 addresses was about 67% faster.
Internal Changes - for eth-utils Contributors
Upgrade eth-hash to v0.3.1, to use its exported type annotations instead of casting the results.
eth-hash v0.3.1
Bugfixes
Bugfix to export type annotations
eth-hash v0.3.0
Features
Export type annotations, for use in importing projects
Internal Changes - for eth-hash Contributors
Import 3 years worth of template updates
# Release 4.0.9 - (Dec 18, 2020)
* fixes a regression introduced in 4.0.8, that prevents from
paying BIP70 invoices (#6859)
* reflect frozen channels and disconnected peers in the displayed
'can send/can receive' amounts.
# Release 4.0.8 - (Dec 17, 2020)
* fix decoding BIP21 URIs with uppercase schema (d40bedb2)
* psbt: put full derivation paths into PSBT by default (c8155129)
* invoices: allow address-reuse (#6609, #6852)
* A few other minor bugfixes.
# Release 4.0.7 - (Dec 9, 2020)
* kivy: fix open channel with 'max' amount
* kivy: fix regression introduced in last release (a9fc440)
* other minor GUI fixes
* Dependencies: as part of adapting to new dnspython (#6828),
- python-ecdsa is no longer needed at all,
- cryptography is now required (min 2.6), the user can no
longer choose between cryptography and pycryptodomex
# Release 4.0.6 - (Dec 4, 2020)
* Fix 'Max' button issue for submarine swaps button (#6770)
* Fix 'Max' button in kivy (#6169)
* Various fixes for Kivy/Android install wizard
* More robust account keypath for BitBox02 (#6766)
# Release 4.0.5 - (Nov 18, 2020)
* Fix .dmg binary hanging on recently released macOS 11 Big Sur (#6461)
* Lightning:
- bugfix: during LN channel opening, if the client crashed at the
wrong moment, the channel might not get fully persisted to disk,
and would need manual console-tinkering to recover (#6656)
- Lightning is enabled by default. Electrum will not connect to
the Lightning Network until the user opens a channel. (#6639)
- smarter node recommendation (to open channels with) (#6705)
* user interface: some minor changes that aim to improve usability
* Ledger:
- fix enumerating devices with new bitcoin app (1.5.1) (b78cbcff)
- fix compat with HW.1 (200f547a)
* A few other minor bugfixes.
4.6.0
Add installments to Transaction requests
Add count to installments
Deprecate device_session_id and fraud_merchant_id in CreditCardGateway, CustomerGateway, PaymentMethodGateway, and TransactionGateway classes
Add sca_exemption to Transaction.sale request
0.21.0:
Notable changes
P2P and network changes
The mempool now tracks whether transactions submitted via the wallet or RPCs have been successfully broadcast. Every 10-15 minutes, the node will try to announce unbroadcast transactions until a peer requests it via a getdata message or the transaction is removed from the mempool for other reasons. The node will not track the broadcast status of transactions submitted to the node using P2P relay. This version reduces the initial broadcast guarantees for wallet transactions submitted via P2P to a node running the wallet.
The size of the set of transactions that peers have announced and we consider for requests has been reduced from 100000 to 5000 (per peer), and further announcements will be ignored when that limit is reached. If you need to dump (very) large batches of transactions, exceptions can be made for trusted peers using the "relay" network permission. For localhost for example it can be enabled using the command line option -whitelist=relay@127.0.0.1.
This release adds support for Tor version 3 hidden services, and rumoring them over the network to other peers using BIP155. Version 2 hidden services are still fully supported by Bitcoin Core, but the Tor network will start deprecating them in the coming months.
The Tor onion service that is automatically created by setting the -listenonion configuration parameter will now be created as a Tor v3 service instead of Tor v2. The private key that was used for Tor v2 (if any) will be left untouched in the onion_private_key file in the data directory (see -datadir) and can be removed if not needed. Bitcoin Core will no longer attempt to read it. The private key for the Tor v3 service will be saved in a file named onion_v3_private_key. To use the deprecated Tor v2 service (not recommended), the onion_private_key can be copied over onion_v3_private_key, e.g. cp -f onion_private_key onion_v3_private_key.
The client writes a file (anchors.dat) at shutdown with the network addresses of the node’s two outbound block-relay-only peers (so called "anchors"). The next time the node starts, it reads this file and attempts to reconnect to those same two peers. This prevents an attacker from using node restarts to trigger a complete change in peers, which would be something they could use as part of an eclipse attack.
This release adds support for serving BIP157 compact filters to peers on the network when enabled using -blockfilterindex=1 -peerblockfilters=1.
This release adds support for signets (BIP325) in addition to the existing mainnet, testnet, and regtest networks. Signets are centrally-controlled test networks, allowing them to be more predictable test environments than the older testnet. One public signet is maintained, and selectable using -signet. It is also possible to create personal signets.
This release implements BIP339 wtxid relay. When negotiated, transactions are announced using their wtxid instead of their txid.
This release implements the proposed Taproot consensus rules (BIP341 and BIP342), without activation on mainnet. Experimentation with Taproot can be done on signet, where its rules are already active.
Updated RPCs
The getpeerinfo RPC has a new network field that provides the type of network ("ipv4", "ipv6", or "onion") that the peer connected through.
The getpeerinfo RPC now has additional last_block and last_transaction fields that return the UNIX epoch time of the last block and the last valid transaction received from each peer.
getnetworkinfo now returns two new fields, connections_in and connections_out, that provide the number of inbound and outbound peer connections. These new fields are in addition to the existing connections field, which returns the total number of peer connections.
Exposed transaction version numbers are now treated as unsigned 32-bit integers instead of signed 32-bit integers. This matches their treatment in consensus logic. Versions greater than 2 continue to be non-standard (matching previous behavior of smaller than 1 or greater than 2 being non-standard). Note that this includes the joinpsbt command, which combines partially-signed transactions by selecting the highest version number.
getmempoolinfo now returns an additional unbroadcastcount field. The mempool tracks locally submitted transactions until their initial broadcast is acknowledged by a peer. This field returns the count of transactions waiting for acknowledgement.
Mempool RPCs such as getmempoolentry and getrawmempool with verbose=true now return an additional unbroadcast field. This indicates whether initial broadcast of the transaction has been acknowledged by a peer. getmempoolancestors and getmempooldescendants are also updated.
The getpeerinfo RPC no longer returns the banscore field unless the configuration option -deprecatedrpc=banscore is used. The banscore field will be fully removed in the next major release.
The testmempoolaccept RPC returns vsize and a fees object with the base fee if the transaction would pass validation.
The getpeerinfo RPC now returns a connection_type field. This indicates the type of connection established with the peer. It will return one of six options. For more information, see the getpeerinfo help documentation.
The getpeerinfo RPC no longer returns the addnode field by default. This field will be fully removed in the next major release. It can be accessed with the configuration option -deprecatedrpc=getpeerinfo_addnode. However, it is recommended to instead use the connection_type field (it will return manual when addnode is true).
The getpeerinfo RPC no longer returns the whitelisted field by default. This field will be fully removed in the next major release. It can be accessed with the configuration option -deprecatedrpc=getpeerinfo_whitelisted. However, it is recommended to instead use the permissions field to understand if specific privileges have been granted to the peer.
The walletcreatefundedpsbt RPC call will now fail with Insufficient funds when inputs are manually selected but are not enough to cover the outputs and fee. Additional inputs can automatically be added through the new add_inputs option.
The fundrawtransaction RPC now supports add_inputs option that when false prevents adding more inputs if necessary and consequently the RPC fails.
Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below.
New RPCs
The getindexinfo RPC returns the actively running indices of the node, including their current sync status and height. It also accepts an index_name to specify returning the status of that index only.
Build System
Updated settings
The same ZeroMQ notification (e.g. -zmqpubhashtx=address) can now be specified multiple times to publish the same notification to different ZeroMQ sockets.
The -banscore configuration option, which modified the default threshold for disconnecting and discouraging misbehaving peers, has been removed as part of changes in 0.20.1 and in this release to the handling of misbehaving peers. Refer to "Changes regarding misbehaving peers" in the 0.20.1 release notes for details.
The -debug=db logging category, which was deprecated in 0.20 and replaced by -debug=walletdb to distinguish it from coindb, has been removed.
A download permission has been extracted from the noban permission. For compatibility, noban implies the download permission, but this may change in future releases. Refer to the help of the affected settings -whitebind and -whitelist for more details.
Netmasks that contain 1-bits after 0-bits (the 1-bits are not contiguous on the left side, e.g. 255.0.255.255) are no longer accepted. They are invalid according to RFC 4632. Netmasks are used in the -rpcallowip and -whitelist configuration options and in the setban RPC.
The -blocksonly setting now completely disables fee estimation.
Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below.
Tools and Utilities
A new bitcoin-cli -netinfo command provides a network peer connections dashboard that displays data from the getpeerinfo and getnetworkinfo RPCs in a human-readable format. An optional integer argument from 0 to 4 may be passed to see increasing levels of detail.
A new bitcoin-cli -generate command, equivalent to RPC generatenewaddress followed by generatetoaddress, can generate blocks for command line testing purposes. This is a client-side version of the former generate RPC. See the help for details.
The bitcoin-cli -getinfo command now displays the wallet name and balance for each of the loaded wallets when more than one is loaded (e.g. in multiwallet mode) and a wallet is not specified with -rpcwallet.
The connections field of bitcoin-cli -getinfo is now expanded to return a JSON object with in, out and total numbers of peer connections. It previously returned a single integer value for the total number of peer connections.
New settings
The startupnotify option is used to specify a command to execute when Bitcoin Core has finished with its startup sequence.
Wallet
Backwards compatibility has been dropped for two getaddressinfo RPC deprecations, as notified in the 0.20 release notes. The deprecated label field has been removed as well as the deprecated labels behavior of returning a JSON object containing name and purpose key-value pairs. Since 0.20, the labels field returns a JSON array of label names.
To improve wallet privacy, the frequency of wallet rebroadcast attempts is reduced from approximately once every 15 minutes to once every 12-36 hours. To maintain a similar level of guarantee for initial broadcast of wallet transactions, the mempool tracks these transactions as a part of the newly introduced unbroadcast set. See the "P2P and network changes" section for more information on the unbroadcast set.
The sendtoaddress and sendmany RPCs accept an optional verbose=True argument to also return the fee reason about the sent tx.
The wallet can create a transaction without change even when the keypool is empty. Previously it failed.
The -salvagewallet startup option has been removed. A new salvage command has been added to the bitcoin-wallet tool which performs the salvage operations that -salvagewallet did.
A new configuration flag -maxapsfee has been added, which sets the max allowed avoid partial spends (APS) fee. It defaults to 0 (i.e. fee is the same with and without APS). Setting it to -1 will disable APS, unless -avoidpartialspends is set.
The wallet will now avoid partial spends (APS) by default, if this does not result in a difference in fees compared to the non-APS variant. The allowed fee threshold can be adjusted using the new -maxapsfee configuration option.
The createwallet, loadwallet, and unloadwallet RPCs now accept load_on_startup options to modify the settings list. Unless these options are explicitly set to true or false, the list is not modified, so the RPC methods remain backwards compatible.
A new send RPC with similar syntax to walletcreatefundedpsbt, including support for coin selection and a custom fee rate, is added. The send RPC is experimental and may change in subsequent releases.
The estimate_mode parameter is now case-insensitive in the bumpfee, fundrawtransaction, sendmany, sendtoaddress, send and walletcreatefundedpsbt RPCs.
The bumpfee RPC now uses conf_target rather than confTarget in the options.
fundrawtransaction and walletcreatefundedpsbt when used with the lockUnspents argument now lock manually selected coins, in addition to automatically selected coins. Note that locked coins are never used in automatic coin selection, but can still be manually selected.
The -zapwallettxes startup option has been removed and its functionality removed from the wallet. This option was originally intended to allow for rescuing wallets which were affected by a malleability attack. More recently, it has been used in the fee bumping of transactions that did not signal RBF. This functionality has been superseded with the abandon transaction feature.
The error code when no wallet is loaded, but a wallet RPC is called, has been changed from -32601 (method not found) to -18 (wallet not found).
4.4 - 28 December 2020
o Bug 798038 - Incorrect spelling in german account templates 'common'
and 'full', part 3: docs
4.3 - 27 December 2020
o Bug 798031 - : Update default of Date Completion
4.4 - 28 December 2020
The fifth release of the 4.x stable series, a snap release to fix bug 798063.
Between 4.3 and 4.4, the following bugfixes were accomplished:
Bug 798038 - Incorrect spelling in german account templates 'common' and
'full' part 2: AT
Bug 798063 - Crash when opening SX Editor
No other improvements were made.
Deprecations
xaccAccountCountSplits: use gnc_account_has_child_splits
gnc:html-table-append-column!: Build a new table with all of the columns
and copy in the rows.
Updated Translations: German, Italian, Japanese
4.3 - 27 December 2020
The fourth release of the 4.x stable series.
Between 4.2 and 4.3, the following bugfixes were accomplished:
Bug 106746 - In Mort. Repay. druid, creating New acct should also select it.
Bug 128772 - Account Help Button does not work
Bug 309943 - When unable to obtain a lock, no option to open another database.
Bug 330930 - Financial Calculator resets payment period to zero if automatic decimal places used
Bug 343647 - [rfe] save tab/report location
Bug 345924 - RFE: don't disable "OK" button after using "Apply" to modify chart options
Bug 355496 - Mark placeholder accounts in account tree window visibly.
Bug 355498 - When there is only one result from a 'Find', select it.
Bug 571697 - Transaction Status in Since Last Run needs to look clickable.
Bug 644242 - Window Panning Oddity.
Bug 645379 - When duplicating a transaction, any non-numeric value entered in the "Number" field is discarded.
Bug 667490 - Support image-based TAN methods QR, photoTAN, and chipTAN optical "Flicker code"
Partial: Implements the display of flashing optical TAN challenges (aka flicker) in the "Enter TAN" dialog box.
Bug 688917 - Help button not working when editing style sheets.
Bug 720564 - Search in General Ledger cannot be cleared.
Bug 794807 - Calendar widget current month shown as (null).
Bug 797901 - List of Recently Used Files not updated until GnuCash is closed and reopened.
Bug 797944 - Crash on use of File-Open
Bug 797953 - RFE: provide access to filter-by on right-mouse-click in Accounts register.
Bug 797956 - dialog-report-style-sheet.c stylesheet editor does not set transient_for correctly.
Bug 797959 - "Exception" when value greater than one million with commas and periods is pasted to register.
Bug 797967 - minor ui niggles - some dialogs don't respond to GDK_KEY_Escape
Bug 797971 - odd cursor behaviour in register Description.
Bug 797972 - Crash on export report CSV
Bug 797982 - exchange rates' decimal places (bis)
Bug 797983 - v4.2 report numbers change over gnucash restarts; Price Database dropping user:price-editor entries.
Bug 797984 - Infinite loop while Check&Repair AR and AP accounts
Bug 797989 - Sorting columns by alphabet with non-ASCII characters
Bug 797993 - Reverse balance option does not apply to an Account Report
Bug 797994 - Account type-ahead search doesn't match accented characters.
Bug 798005 - Import of QIF file sets expenses to zero, deposits are fine
Bug 798008 - Option '--log' cannot be specified more than once.
Bug 798015 - cash flow numerical-overflow
Bug 798031 - Date goes to prior year with mm/dd entry to transaction duplicate.
Bug 798036 - Transaction Report should offer price source
Bug 798038 - Incorrect spelling in german account templates 'common' and 'full'
Bug 798039 - Using 'Consolidate Transactions' option on Consolidate Transaction Report returns Error
Bug 798041 - Open invoices in new window.
Bug 798047 - Crash on delete account.
Bug 798050 - error using Reports->Experimental->Income Statement (Multicolumn)
The following fixes and improvements were not associated with bug reports:
Add custom unbound-variable exception reporter in guile that identifies what module provides the missing symbol.
Balsheet-pnl report: show most recent period first by default
Change register page icon to a padlock if read only
When a resister is read only make whole sheet insensitive.
Add account name to the read-only-register dialog box because under some circumstances it may be unclear to which register the message applies.
Strictly use use-modules to import Scheme symbols: Guile 3.0 doesn't like the alternatives. This can cause problems resolving symbols if the source of those symbols isn't yet compiled and hasn't been symlinked into the builddir.
Don't try to reload report if the first attempt raised an html error.
Barcharts: Limit account drill-down depth to 6.
I18N:glossary: add mortgage terms ARM, APR, FRM
Change the icons used for the file locked dialog box.
Add support for the opening balance accounts flag
Up to now, opening balance accounts have been identified by means of fixed names and their translations. Support Replacing this with a consistent non-translated tag. The actual replacement will be added to Gnucash 4.4; this change is to ensure a migration path.
Replace TravisCI with Github actions for CI testing. TravisCI sharply restricted their free support of Free Software projects.
Use LTDL_LIBRARY_PATH instead of (DY)LD_LIBRARY_PATH in environment file.
Add a few more CSS classes for labels
Add GoogleMocks of some engine objects and refine Import-export unit tests using them.
Add auto-clear to register page
Change source files dialog-dup-trans.* for space and tabs
Fix exception when converting to decimal values that reduce to N/1.
Add confirmation of Main Window close when more than one window is displayed
Add keyboard shortcuts <Ctrl><Alt><Menu> for the notebook page selection menu and <Ctrl><Alt>A to jump to the Accounts page.
Allow using the Ctrl+Alt+PgUp/Down to scroll the report view.
Fix report page keyboard focus in the scroll window.
Fix some incorrect links to the help file
Fix section help on windows not working.
Set the visibility of the account column in import-main-matcher depending upon the nubmer of accounts being displayed.
Add option to hide memo column on import-main-matcher
Fix pressing help button in OFX importer causing main-import-matcher to disappear
Preferences dialog: Display the invalid account separator message box only when the user closes the Preferences Dialog instead of after every change to any control.
Expose ngettext as gnc:ngettext
Add tooltip in import matcher window for description and memo column.
Put Macs back on WebKit2.
CMake: Mute guile-2.2 again
Fix several report stylesheet font-handling issues especially on macOS.
Fix price-renderer not converting to decimal.
Add some additional places where Check&Repair can be aborted
Make the price database list obey the force-prices-to-decimal preference.
Several improvements to the auto-clear dialog.
Fix some errors found by i18nspector in po files
Tax Report Options appeared twice on menu for Chart of Accounts
General Journal Report: Allow Report Options>General Title to render
document title.
[options.scm] rename new-owner-report "Links" to "Transaction Links"
[new-owner-report] enable doclink links
[html-utilities][API] add function gnc:html-invoice-doclink-anchor
Disable chart animation that prevented visual comparison of state before
and after reload
Select the register account if Tax Options dialog opened from a register tab.
Deprecations
xaccAccountCountSplits.
gnc:html-make-exchangerates
2.5 (2020-11-03)
Don't create negative cost for lot without cost
Support complex implicit conversions
Handle typed metadata with value 0 correctly
Set per-unit instead of total cost when cost is missing from lot
Support commodity-less amounts
Convert transactions with no amounts or only 0 amounts to notes
Fix parsing of transaction notes
Keep tags in transaction notes on same line as transaction header
Add beancount config options for non-standard root names automatically
Fix conversion of fixated prices to costs
Fix removal of price when price==cost but when they use different number formats
Fix removal of price when price==cost but per-unit and total notation mixed
Fix detection of tags and metadata after posting/aux date
Use D directive to set default commodity for hledger
Improve support for postings with commodity-less amounts
Allow empty comments
Preserve leading whitespace in comments in postings and transaction headers
Preserve indentation for tags and metadata
Preserve whitespace between amount and comment
Refactor code to use more data structures
Remove dependency on Config::Onion module
2.4 (2020-07-27)
Fix regressions introduced in version 2.3
Handle price directives with comments
Don't assume implicit conversion when price is on second posting
Improve support for hledger
Fix parsing of hledger tags
Support commas as decimal markers
Support digit group marks through commodity and D directives
Support end aliases directive
Support regex aliases
Recognise total balance assertions
Recognise sub-account balance assertions
Add support for define directive
Convert all uppercase metadata tags to all lowercase
Improve handling of ledger lots without cost
Allow transactions without postings
Fix parsing issue in commodity declarations
Support commodities that contain quotation marks
Add --version option to show version
Document problem of mixing apply and include
2.3 (2020-06-26)
Improve speed of ledger2beancount significantly
Improve parsing of postings for accuracy and speed
Improve support for inline maths
Handle lots without cost
Fix parsing of lot notes followed by a virtual price
Add support for lot value expressions
Make parsing of numbers more strict
Fix behaviour of dates without year
Accept default ledger date formats without configuration
Fix implicit conversions with negative prices
Convert implicit conversions in a more idiomatic way
Avoid introducing trailing whitespace with hledger input
Fix loading of config file
Skip ledger directive import
Convert documentation to mkdocs
2.2 (2020-05-30)
Show warning for unknown apply directive
Recognise apply rate directive (an alias of apply fixed)
Don't convert metadata on ignored virtual postings but keep as comments
Update location of beancount repository
2.1 (2020-04-06)
Handle postings with posting dates and comments but no amount
Show transactions with only one posting (without bucket)
Adding spacing between automatic declarations
Preserve preliminary info at the top
# Release 4.0.4 - (Oct 15, 2020)
* PSBT: fix regression in 4.0.3 where UTXO data was not included in
QR codes (#6600)
* new feature: "Cancel tx" (#6641). The Qt/kivy GUI allows cancelling
an unconfirmed RBF tx by double-spending its inputs to self.
* Windows binary:
- fix some issues with QR scanning by building zbar ourselves (#6593)
- when using setup exe, also install a debug binary (#6603)
* Ledger: fix "The derivation path is unusual" warnings (#6512)
(needs Bitcoin app 1.4.8+ installed on device)
* A few other minor bugfixes and usability improvements.
# Release 4.0.3 - (Sep 11, 2020)
* PSBT: restore compatibility with Bitcoin Core following CVE-2020-14199:
we now allow a PSBT input to have both UTXO and WITNESS_UTXO (#6429).
(PSBTs created since 4.0.1 already contained UTXO for segwit inputs)
* Hardware wallets:
- bitbox02: better multisig UX: implement get_soft_device_id (#6386)
- coldcard: fix "show address" for multisig (#6517)
- all: run all device communication on a dedicated thread (#6561).
This should resolve some threading issues.
* new feature: "Automated BIP39 recovery" (#6219, #6155)
When restoring from a BIP39 seed, add option to scan many known
derivation paths for history, and show them to user to choose from.
* show derivation path of keystores in Qt GUI Wallet>Information (#4700)
* fix "signtransaction" RPC command (#6502)
* Dependencies: pyaes is no longer needed (#6563)
* The tar.gz source dist now bundles make_libsecp256k1.sh, to help
users getting libsecp256k1 (#6323).
* A few other minor bugfixes and usability improvements.
# Release 4.0.2 - (July 8, 2020)
- rm old corrupted non-bip70 invoices (#6345)
- other minor fixes
# Release 4.0.1 - (July 3, 2020)
* Lightning Network support (experimental)
- Our implementation of Lightning relies on Electrum servers to
query channel states. Since servers can lie about the state of a
channel, users should either use a server that they trust, or
setup a private watchtower (see below). A watchtower is also
recommended for lightning wallets that remain offline for
extended periods of time (the default CSV 'to_self_delay' is 1
week). Please note that Electrum Personal Server (EPS) cannot be
used with lightning wallets, because channels funding addresses
are arbitrary.
- Lightning funds cannot be restored from seed. Instead, users need
to create static backups of their channels. Static backups cannot
be used to perform lightning transactions, they can only be used
to trigger a remote-force-close of a channel.
- Lightning-enabled wallet files must not be copied. Instead, a
backup of the wallet can be created from the Qt menu, and it will
contain static backups of all its channels. Backups can also be
exported for each channel (e.g. via QR code), and imported in
another wallet. Since backups are encrypted with a key derived
from the wallet's xpub, they can only be imported into another
instance of the same wallet, or a watch-only version of it. The
force-close is not triggered automatically when the backup is
imported; imported backups can live inside a wallet file.
- Lightning can be enabled in the GUI (Wallet>Information) or from
the CLI (init_lightning). Lightning is currently restricted to HD
p2wpkh wallets (including watch-only and hardware wallets). The
Qt GUI, CLI/RPC, and the kivy GUI (Android) all have LN support,
with feature-richness in that order.
- LN protocol details: dataloss_protect and static_remotekey are
required; varonion and payment_secret are implemented, MPP not yet.
Channels are not announced ('private'), forwarding is disabled.
We do not serve gossip queries, only consume them.
- Submarine swaps: the GUI integrates a service that offers
atomically exchanging on-chain and lightning bitcoins for a fee.
Electrum Technologies runs a central server for this, powered by
the Boltz backend.
- Watchtowers: Electrum can run a local watchtower (GUI setting),
or it can connect to a remote watchtower. A watchtower contains
pre-signed transactions and does not need your private keys. A
local watchtower will watch your channels whenever an Electrum
instance is running, without needing access to your wallet file.
An Electrum daemon can be configured to be used as a remote
watchtower by setting 'watchtower_address', 'watchtower_user' and
'watchtower_password'.
* Partially Signed Bitcoin Transactions (PSBT, BIP-174) are supported
(#5721). The previous Electrum partial transaction format is no
longer supported, i.e. this is an incompatible change. Users should
make sure that all instances of Electrum they use to co-sign or
offline sign, are updated together.
* Hardware wallets: several fixes in general; notable changes:
- The BitBox02 is now supported (#5993)
- Multisig support for Coldcard (#5440)
- Compatibility with latest Trezor fw (#6064, #6198, #5692)
* Dependencies (see README for install instructions):
- libsecp256k1 is now required (previously optional). python-ecdsa
remains a dependency but it is now only used for DNSSEC.
- Added: either one of pycryptodomex or cryptography is now required,
mainly due to LN (previously pycryptodomex was optional, for fast AES)
- Removed: jsonrpclib-pelix, the JSON-RPC library used for CLI/daemon
* Qt GUI: several changes, notably:
- Separation between output selection and transaction finalization.
- Coin selection moved to the Coins tab, and it affects all txns,
e.g. RBF fee-bumping, LN channel opens, submarine swaps.
- Editable tx preview dialog that allows e.g. changing the locktime,
toggling RBF, and manual coinjoins.
* HTTP PayServer: The configuration of a bitcoin-accepting website
using Electrum has been simplified and requires fewer steps (see
documentation). The Payserver supports BIP70 and Lightning payments.
* Android:
- We now build two APKs, one for ARMv7 and one for ARMv8
- The kivy GUI now supports importing BIP39 seeds
- Each wallet on kivy now can have a separate generic password,
using which the wallet files are encrypted. An optional PIN,
shared among all wallets, can be added to get prompted for spends.
* The API of several CLI/RPC commands have changed, and several new
commands have been introduced (mainly for LN).
* Distributables:
- The .tar.gz source dist is now built reproducibly.
Relatedly, we no longer distribute a .zip sdist.
- The MacOS binary now conforms to macOS 10.15; it is notarized
by Apple. This required bumping the min macOS version to 10.13.
Startup times should now be faster on 10.15. (#6128, #6225)
* Transactions:
- we now grind low R for ECDSA signatures to match bitcoind (#5820)
* Lots and lots of other minor bugfixes and improvements.