- do strict type checking in initializer, forbid double initialization
- add dynamic decimal precision based on protocol
- dunder method fixes, cleanups
- JSON-RPC library now returns floats (i.e. amounts) as strings instead of Decimal,
eliminating an extra conversion step
- the new format is plain JSON, readable with tools such as `jq`. Filenames
and extensions for raw, signed and sent transactions remain unchanged
- reading/writing the legacy format continues to be supported, but new
transactions cannot be written to it. This means users who upgrade MMGen
Wallet to this commit on their online computer(s) must upgrade it on their
offline signing device(s) as well: upgraded offline installations can
interoperate with non-upgraded online installations, but not vice-versa
- no additional action is required: this change is transparent to the user
Testing:
$ test/unit_tests.py tx.txfile
$ test/cmdtest.py -n main
$ test/test-release.sh -A autosign
- command-line options are now parsed natively, without use of the getopt module
- global options and --longhelp helpscreen are now contextual, depending on coin
and executed command
- commands invoked with out-of-context global options (e.g. `mmgen-walletgen
--coin=btc`) now fail with an ‘unrecognized option’ error
Testing:
$ test/test-release.sh help
$ test/cmdtest.py opts
- 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