Commit graph

17 commits

Author SHA1 Message Date
673b97b3b8
update copyright dates 2020-02-18 14:07:27 +00:00
4714ef84d5
die roll wallet: interactive input support
- Create a wallet of any MMGen-supported format by inputting rolls of a die
  interactively at the keyboard.

Testing:

  $ test/test.py -e input

Examples:

  Create a default MMGen wallet from interactive die rolls:

  $ mmgen-walletconv -i dieroll

  Create a BIP39 mnemonic seed phrase from interactive die rolls, outputting
  to screen without prompting:

  $ mmgen-walletconv -Sq -i dieroll -o bip39
2019-10-30 21:49:17 +00:00
3931cc7be1
MMGen & BIP39 mnemonic: refactor interactive input code, clean up test 2019-10-30 12:49:27 +00:00
6cf4fcc7e4
Use subprocess.run() throughout, related cleanups 2019-10-23 09:31:21 +00:00
8519b68b89
Complete BIP39 mnemonic support
- provided as an alternative to MMGen's native mnemonic format

    # Run the BIP39 unit test:
    $ test/unit_tests.py -v bip39

    # Generate a random 128-bit BIP39 seed phrase:
    $ mmgen-tool mn_rand128 fmt=bip39

    # Export your default wallet to BIP39 format:
    $ mmgen-walletconv -o bip39
    ...
    BIP39 mnemonic data written to file '98831F3A[256].bip39'

    # Generate ten addresses from the exported wallet:
    $ mmgen-addrgen '98831F3A[256].bip39' 1-10
    ...
    Addresses written to file '98831F3A[1-10].addrs'

    # Generate ten addresses directly from your BIP39 seed phrase:
    $ mmgen-addrgen -q -i bip39 1-10
    ...
    Addresses written to file '98831F3A[1-10].addrs'

    # Export subwallet 10L of your default wallet to BIP39 format:
    $ mmgen-subwalletgen -o bip39 10L
    ...
    BIP39 mnemonic data written to file 'A17F8E90[256].bip39'
2019-07-09 15:44:17 +03:00
c82c9c5bd7
minor changes and fixes 2019-07-07 16:24:05 +03:00
e81b4094e3
move some functions from 'test/test_py_d/common.py' to 'test/common.py' 2019-06-06 13:33:18 +03:00
b74ada039d
test.py: improve regtest getbalance test, minor fixes 2019-05-29 12:05:05 +03:00
d7bfc8307e
support 80-screen-width tracking wallet labels
Labels with double-wide CJK characters can already occupy 80 terminal cells.
Extend the same privilege to all labels.
2019-05-28 17:49:45 +03:00
85236cd601
autosign: improve summary output, ts_autosign: refactor mnemonic entry code 2019-05-21 11:40:14 +03:00
823e325c6c
[msys2]: enable color output, handle exceptions in main.py 2019-03-27 19:52:29 +03:00
46b6abb3c7
use file io for terminal output 2019-03-26 16:04:48 +03:00
dcab10949e
Support MSWin via MSYS2
This is a work in progress.  Currently, basic operations for BTC and ETH are
supported.

The successor to the MinGW64 project, MSYS2 features package management via
`pacman` and support for Python 3:

    https://sourceforge.net/projects/msys2
    https://www.msys2.org
2019-03-25 13:07:04 +03:00
e524b660f0
New test: test/unit_tests.py, add test 'tx_deserialize' 2019-03-18 20:32:37 +03:00
b5f1ebc640
py3port: make hexadecimal values be strings instead of bytes type
- binascii.hexlify(b'foo') -> b'foo'.hex()
- binascii.unhexlify('aabb') -> bytes.fromhex('aabb')
- replace HexBytes class with HexStr

This change has led to a ≈10% speedup in the full test-release.sh run
2019-03-17 13:33:55 +03:00
0879e53e74
tooltest2.py - add BTC test vectors
tooltest.py  - bugfixes, remove some commands covered in tooltest2.py
mmgen-tool   - bugfixes, cleanups, rename some commands, change some command
               options
			 - all commands taking binary input can now receive it from file
			   or stdin

+ numerous minor fixes throughout
2019-03-06 23:58:59 +03:00
91410dd96c
test.py: refactor, modularize, cleanup code, make fully OO
- test groups are now separate classes in separate modules
- test data and code is loaded on an as-needed basis
- new TestSuiteRunner and CmdGroupMgr classes
- simplified invocation: if arguments are omitted, all default tests relevant
  for given network and option are run.  The following set of invocations
  provides nearly complete coverage of MMGen's core functionality:

    test/test.py
    test/test.py --segwit-random
    test/test.py --bech32

    test/test.py --coin=ltc
    test/test.py --coin=ltc --segwit-random
    test/test.py --coin=ltc --bech32

    test/test.py --coin=bch
    test/test.py --coin=eth
    test/test.py --coin=etc
2019-03-02 21:27:53 +03:00