- view keys are included in key-address lists
- tests updated to test the new functionality
- mmgen-tool: `compressed` and `segwit` args replaced by --type option
- supported commands:
- mmgen-addrgen
- mmgen-keygen (decrypt encrypted key-addr files with `mmgen-tool decrypt`)
- mmgen-tool addrfile_chksum, keyaddrfile_chksum
- ETH and ETC keys are distinct, so users needn't worry about key reuse
- Only Zcash-t addresses supported for now (but z-addresses coming soon)
- Test the new functionality with `scripts/test-release.sh -Pn master alts`
- basic data types in obj.py rewritten
- new test suite 'test/objtest.py' for testing basic data types
- new compressed address type with the 'C' identifier
- Bob and Alice regtest mode for testing MMGen in a mock two-user environment
* All MMGen commands are available in this mode.
* Set up with 'mmgen-regtest setup'. Bob and Alice's wallets are funded with
500 BTC each. Use the --mixed switch to import mixed address types in
Bob and Alice's tracking wallets.
* Transact as Bob by adding --bob switch to MMGen commands
* Transact as Alice by adding --alice switch to MMGen commands
* After sending a transaction, mine a block to confirm it with
'mmgen-regtest generate'
The bitcoin daemon is stopped and restarted automatically when switching
between users.
- OO rewrite of key/addr generation interface (KeyGenerator,AddrGenerator)
- New data objects: PrivKey,PubKey,WifKey
- rewrite of read-only attr implementation for addr/tx/tw list entries
(MMGenImmutableAttr,MMGenListItemAttr descriptors)
- txsign: build key list of addrlist objects rather than addr,key tuples
- Generate Segwit addresses by invoking 'mmgen-addrgen' with the
'--type segwit' option
- Import Segwit addresses into the tracking wallet as usual
- Segwit and legacy MMGen addresses are distinguished by 'S' and 'L'
identifiers in the tracking wallet and command line
Transaction example:
mmgen-txcreate F00BAA12:L:21,1.23 F00BAA12:S:1
(spend 1.23 BTC to legacy address 21 of your default wallet (with Seed ID
F00BAA12) and send the change to Segwit address 1)
Segwit and legacy addresses for a given seed are generated from different
sub-seeds so are cryptographically unrelated to each other.
Since MMGen's legacy P2PKH addresses are uncompressed, use of the new Segwit
addresses significantly reduces transaction size.
Until Segwit activation on mainnet, users can try out the new functionality on
testnet or in regtest mode.
* 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.
- Importing addresses with --rescan working again
- Tracking and spending non-MMGen addresses now fully functional
- mmgen-txcreate: improvements in unspent outputs display
- mmgen-txsign: use bitcoind wallet dump as keylist fixed
- Testnet support:
- Practice sending transactions without risking funds
(free testnet coins: https://tpfaucet.appspot.com/)
- Test suite fully supported
- To enable, set MMGEN_TESTNET environment variable
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