* create replaceable transactions with 'mmgen-txcreate' and 'mmgen-txdo'
using the '--rbf' option
* create replacement transactions from existing MMGen transactions
using the new, optionally scriptable 'mmgen-txbump' command
* Bitcoind must be started with the '-walletrbf' option to enable RBF
functionality
[tx]: Command scriptability:
* New '--yes' option makes 'txbump' and 'txsign' fully non-interactive
and 'txcreate' and 'txsend' mostly non-interactive
[tx]: Satoshis-per-byte format:
* Tx fees, both on the command line and at the interactive prompt, may be
specified either as absolute BTC amounts or in satoshis-per-byte format
(an integer followed by the letter 's')
[tx]: Fees
* Completely reworked fee-handling code with better fee checking
* default tx fee eliminated, max_tx_fee configurable in mmgen.cfg
Bugfixes and usability improvements:
* 'mmgen-tool listaddresses' now list addresses from multiple seeds
correctly
* Improved user interaction with all 'mmgen-tx*' commands
* Under Linux, data directory is '~/.mmgen'; config file is 'mmgen.cfg'.
* If default wallet is enabled, specifying the wallet on the command line is
no longer necessary. If not, all MMGen commands behave as previously.
* The datadir structure mirrors that of Bitcoin Core: mainnet and testnet
share a common config file, but testnet puts its other files including its
default wallet in a separate subdirectory 'testnet3'.
New routines have been added to the test suite to test these features.
Tested only under Linux.
Datadir '~/.mmgen' and config file 'mmgen.cfg' added:
* Global vars are now overriden in this order:
1) config file
2) environmental variables beginning with 'MMGEN_' (listed in globalvars.py)
3) command line
Always get user entropy, even for non-critical randomness, unless '-r0'.
rpcuser,rpcpassword now override cookie authentication, as with Core.
RPC to remote daemon now supported with '--rpc-host' option.
New features/improvements:
* Address generation using secp256k1 library (Linux only)
Instructions for installing the secp256k1 library on your system:
doc/wiki/install-linux/Install-MMGen-on-Debian-or-Ubuntu-Linux.md
If secp256k1 is not installed on the system, MMGen remains usable. It just falls
back to 'keyconv', or failing that, python-ecdsa for generating addresses.
New features/improvements:
* New native Bitcoin RPC library.
* Support for cookie-based RPC authentication (new in Bitcoin Core v0.12.0).
* Batch mode available when listing and importing addresses.
* mmgen-tool listaddresses: 'addrs' argument allows you to specify an
address or range of addresses.
NOTE: if MMGen is already installed on your system, you must remove your
existing installation by hand before installing this new version. On Linux,
this means deleting everything under the directory
'/usr/local/lib/python2.7/dist-packages/mmgen/'. Also, if you did a 'git pull'
instead of a fresh clone, you must delete the 'build' directory in the
repository root before installing.
The 'mmgen-pywallet' utility has been removed. It's no longer needed, as the
'bitcoin-cli dumpwallet' command (available since Core v0.9.0) provides
equivalent functionality.
The Windows port isn't being actively maintained at the moment. Use at your own
risk, and report any problems on the Bitcointalk forum.
formats, thus obsoleting much of the functionality in '-walletgen' and
'-walletchk'. This is the first script to utilize the new OO wallet code in
'seed.py'.
New tests in the 'test.py' suite.
new file: mmgen-walletconv
new file: mmgen/main_walletconv.py
modified: mmgen/seed.py
modified: test/test.py
Users who are upgrading must delete the 'opt' directory in their previous
installation before installing. On a Linux system, this is typically
located at:
/usr/local/lib/python2.7/dist-packages/mmgen/opt
* 'mmgen-tool': file encryption utility with strong encryption
* 'mmgen-tool': find hidden incognito data in file using the Incog ID
* User may now supply additional entropy in all cases where random data is
needed. This user entropy (typed symbols + keystroke intervals) is hashed
into a key with Scrypt and used to encrypt all random data produced during
the session by the OS.
Additions/improvements:
mmgen-txsign - sign multiple transactions in one operation
mmgen-addrimport - skip rescanning block chain for new addresses
mmgen-tool - new functions:
Bitcoind operations:
listaccounts - like 'bitcoind listaccounts' but shows MMGen wallet balances
too
getbalance - like 'bitcoind getbalance' but shows confirmed/unconfirmed,
spendable/unspendable
MMGen-specific operations:
id8 - generate 8-character MMGen ID checksum for file (or stdin)
id6 - generate 6-character MMGen ID checksum for file (or stdin)
General operations:
hexdump - encode binary data in formatted hexadecimal form
unhexdump - decode formatted hexadecimal data
Bitcoin operations:
strtob58 - convert a string to base 58
hextob58 - convert a hexadecimal number to base 58
b58tohex - convert a base 58 number to hexadecimal
b58randenc - generate a random 32-byte number and convert it to base 58
randwif - generate a random private key in WIF format
randpair - generate a random private key/address pair
wif2addr - generate a Bitcoin address from a key in WIF format
Mnemonic operations (choose "electrum" (default), "tirosh" or "all" wordlists):
mn_rand128 - generate random 128-bit mnemonic
mn_rand192 - generate random 192-bit mnemonic
mn_rand256 - generate random 256-bit mnemonic
mn_stats - show stats for mnemonic wordlist
mn_printlist - print mnemonic wordlist