- BCH addresses are now displayed in cashaddr format by default. This may be
overridden on the command line with --cashaddr=0, or in the config file by
setting `bch_cashaddr` to false
- In tracking wallet views, the ‘h’ key toggles between legacy and cashaddr
address display
- Transaction views display BCH addresses in both formats simultaneously
- The --usecashaddr=0 daemon option is no longer required and should be omitted
Testing:
$ test/unit_tests.py -v cashaddr bip_hd.multicoin
$ test/gentest.py --coin=bch -v --type=C 1 test/ref/bitcoin_cash/bchwallet.dump
$ test/cmdtest.py -e bch_txview_cashaddr1 bch_txview_cashaddr2
$ test/cmdtest.py --coin=bch -e txsend regtest.view autosign_automount
$ test/cmdtest.py --coin=bch -n ref3_addr
For BTC, MMGen Wallet now creates and uses a descriptor wallet as its tracking
wallet. For LTC and BCH, the legacy Berkeley DB wallet is used by default as
before.
While the legacy BDB wallet continues to be fully supported, BTC users are
advised to upgrade their tracking wallet to a descriptor wallet to avoid
support issues with future versions of Bitcoin Core.
Upgrade a legacy tracking wallet as follows:
$ bitcoin-cli migratewallet mmgen-tracking-wallet
Alternatively, you may dump your tracking wallet to JSON and restore it as a
descriptor wallet using the ‘mmgen-tool’ commands ‘twexport’, ‘twimport’ and
‘rescan_blockchain’ (see the help screens for those commands for details).
Testing (add the -e option to see script output):
# descriptor wallet:
$ test/cmdtest.py regtest
# Berkeley DB wallet:
$ test/cmdtest.py regtest_legacy
Previously supported only for XMR, offline transaction autosigning with no
filename arguments and automatic mounting/unmounting of the removable device
on the online machine is now available for all coins MMGen Wallet supports
transacting with. To activate, invoke ‘mmgen-txcreate’ and ‘mmgen-txsend’
with the --autosign option.
Be aware that transactions must be created, signed and sent one at a time when
using this feature. For bulk transaction signing, you must use the old manual
mounting method.
Example create-sign-send workflow for BTC:
$ mmgen-txcreate --autosign bc1qxmymxf8p5ckvlxkmkwgw8ap5t2xuaffmrpexap,0.00123 B
(remove device - insert offline - wait for signing - remove - insert online)
$ mmgen-txsend --autosign
Unsigned or unsent transactions may be aborted as follows:
$ mmgen-txsend --abort
And sent RBF transactions may be fee-bumped:
$ mmgen-txbump --autosign
You can check the status of the current transaction, whether sent or unsent,
with the following command:
$ mmgen-txsend --status
That’s all there is to it!
Testing (add the -e option to see script output):
$ test/cmdtest.py autosign_automount
$ test/cmdtest.py --coin=eth autosign_eth
Lint the entire MMGen Wallet code base, including test suite:
# Install pylint:
$ python3 -m pip install pylint
# Perform the check:
$ test/test-release.sh lint
The check should complete without error when running Python v3.9 or greater,
provided all required Python dependencies described in Test-Suite.md, including
altcoin dependencies, are installed.
Cold signing of Monero transactions with maximum convenience.
For general information about Monero offline signing, see:
https://monerodocs.org/cold-storage/offline-transaction-signing/
The MMGen implementation automates the workflow described in that document,
with some minor changes.
A unique security feature is that signing wallets are created afresh in
volatile memory for each transacting session and thus disappear when the
signing machine is powered down.
Documentation:
$ mmgen-xmrwallet --help # scroll to OFFLINE AUTOSIGNING
Testing:
$ test/test.py --coin=xmr -e xmr_autosign