Commit graph

2,768 commits

Author SHA1 Message Date
bb87b1f996
[BCH]: workaround for Bitcoin ABC's broken 'setlabel' RPC 2019-11-29 18:41:36 +00:00
944d7c3db7
remove last dependency on 'getbalance' RPC 2019-11-29 18:39:06 +00:00
0578f15c88
rpc.py: minor debugging fixes 2019-11-29 18:37:17 +00:00
9d3b11c798
test suite: minor fixes 2019-11-29 18:36:13 +00:00
8ec9fa1a24
[msys2]: tooltest2: add address generation vectors for ETH,XMR,ZEC
- these are required due to the lack of the following external testing tools
  in MSYS2:

  + ethkey (requires build)
  + moneropy (requires pysha3)
  + zcash-mini (requires golang)
2019-11-29 10:29:51 +00:00
1f3c048172
test suite: minor fixes & cleanups 2019-11-15 10:46:16 +00:00
2d02af152e
[msys2]: test suite fixes 2019-11-14 17:22:15 +00:00
c260fbf9aa
[msys2]: support libsecp256k1 2019-11-14 17:19:32 +00:00
da13550cd1
obj.py: create Int type, make MMGenIdx & ETHNonce its subclasses 2019-11-14 17:12:47 +00:00
d5da1e7ada
txbump: remove superfluous output choice prompt with one-output bumps 2019-11-10 15:46:39 +00:00
9c0157e0e9
txcreate,txbump: add 'fee_estimate_mode' option 2019-11-10 15:44:02 +00:00
3db1c423ef
gentest.py: forkcoin testing framework, BCH support 2019-11-06 17:35:14 +00:00
3813ce33ba
altcoin.py: add tests: verify_leading_symbols(), verify_core_coin_data() 2019-11-06 17:34:52 +00:00
6eaf01f243
a few minor cleanups 2019-11-06 17:34:26 +00:00
b4c528f92a
protocol.py: parse_addr() rewrite
- rename verify_addr() to parse_addr()
- implement using bytes instead of hex strings
- remove unnecessary first-letter and encoded length checks
- perform decoded length check
2019-11-06 17:33:35 +00:00
7451f122ed
gentest.py: complete rewrite, move tool selection logic to altcoin.py 2019-11-04 16:48:25 +00:00
1295fdb6e0
altcoin trust level changes
- make trust level system consistent, include all coins
- rewrite init_genonly_altcoins():
  + with coin argument, create only requested protocol
  + with no arguments, create all protocols
2019-11-04 16:48:05 +00:00
4d23f122aa
add g.network convenience variable 2019-11-04 16:47:21 +00:00
d47dc356af
altcoin trust level initialization fix 2019-11-02 23:07:23 +00:00
3e0caf7beb
_b58chk_encode(), _b58chk_decode(): reimplement using bytes 2019-11-02 10:39:30 +00:00
f63b35469c
parse_wif(): additional cleanups 2019-11-02 10:31:31 +00:00
5663ca0712
test-release.sh, gentest.py, tooltest.py: cleanups 2019-11-02 09:34:21 +00:00
b1454e2122
gentest.py: use full output of ethkey and zcash-mini tools 2019-11-01 19:43:43 +00:00
dc07cd3c39
gentest.py: test private key edge cases 2019-11-01 12:36:50 +00:00
9518f702a9
gentest.py: add moneropy as external checking library 2019-11-01 12:34:51 +00:00
d20d10b9a5
gentest.py: refactor compare_test() 2019-11-01 12:31:59 +00:00
622b63a19b
test suite: minor fixes and cleanups 2019-11-01 12:24:09 +00:00
18af5a1306
preprocess_key(), parse_wif(): fixes and cleanups
- wif2hex() -> parse_wif()
- reimplement both methods using bytes instead of hex strings
- fix bug with zcash-t preprocess_key() failing to call base class method,
  causing crash with edge-case privkeys
2019-11-01 09:57:02 +00:00
ac48947769
die roll wallet: handle invalid data length, add base6d tool cmds 2019-10-31 11:56:38 +00:00
99d968e4aa
minor fixes and cleanups 2019-10-31 10:59:48 +00:00
768f4b960c
test.py: add 'shared_deps' feature 2019-10-31 10:46:46 +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
809fd0503d
crypto.py: get_random() -> add_user_random(), UI cleanups & fixes 2019-10-30 09:33:57 +00:00
5617dcad9a
term.py: add 'sleep' option 2019-10-30 09:26:20 +00:00
56a39244f7
a few minor cleanups and fixes 2019-10-30 09:23:54 +00:00
d46eeef998
dieroll wallet: truncate seed to correct length 2019-10-30 09:20:47 +00:00
f1e7cbb7a0
baseconv: minor cleanups & fixes (import, init_mn) 2019-10-29 13:40:07 +00:00
ca994bdd74
use baseconv.{to,from}bytes() wherever feasible
- also fixes a padding bug in the b58tobytes() tool method
2019-10-28 18:45:15 +00:00
9cc0777f54
move baseconv class to its own module, baseconv.py 2019-10-28 17:35:45 +00:00
c778636918
New die roll (base6d) wallet format
- Permits the creation of wallets by repeated rolls of a die: 50 rolls for
  128-bit, 75 for 192-bit, and 100 for 256-bit seeds.  The base6d format
  uses the digits from one to six, so that user doesn't have to subtract
  one from each roll.

Testing:

  $ test/unit_tests.py baseconv
  $ test/test.py ref3 conv

Example:

  NOTE: when creating a real wallet, the following steps must be performed in a
  secure offline environment, and preferably with the use of a text editor and
  a file written in volatile memory (e.g. /dev/shm), rather than the `echo`
  command.  A more private and user-friendly data input method will be provided
  in a forthcoming patch.

  Sample 128-bit data obtained by rolling a die 50 times and entering each roll
  on the keyboard as a digit:

      15146 56446 53415 45431 55141 32115 41325 16311 32553 43533

  Here spaces have been added for greater readability.  Newlines are also
  permitted.

  Save the data in a file with the extension .b6d:

      $ echo 15146 56446 53415 45431 55141 32115 41325 16311 32553 43533 > myseed.b6d

  Convert to MMGen's default wallet format:

      $ mmgen-walletconv -o wallet myseed.b6d

  Convert the wallet back to base6d:

      $ mmgen-walletconv -o dieroll FE3C6545*.mmdat
      Base6d die roll seed data written to file 'FE3C6545[128].b6d'

      $ cat 'FE3C6545[128].b6d'
      15146 56446 53415 45431 55141
      32115 41325 16311 32553 43533
2019-10-28 15:19:54 +00:00
04a1dcaae4
pretty_hexdump() -> block_format() 2019-10-27 16:12:20 +00:00
3db6dd0d54
baseconv: add 'desc' attr, make error msgs more user-friendly 2019-10-26 14:59:57 +00:00
d67f87aed1
baseconv: remove b58encode() and b58decode() convenience methods 2019-10-26 14:14:31 +00:00
bec3dfeed2
baseconv: tohex() -> tobytes(), fromhex() -> frombytes() 2019-10-26 14:13:56 +00:00
554703e541
bip39, baseconv: don't leak private data in error messages 2019-10-26 12:06:46 +00:00
ec6f976a8c
bip39 and baseconv unit tests: reformat bad input data 2019-10-26 11:43:18 +00:00
9c603be62b
minor fixes and changes 2019-10-26 11:38:23 +00:00
186f223646
base conversion: rework pad API, forbid empty input and output 2019-10-25 15:20:07 +00:00
8e232f24bb
unit tests: use process_bad_data() helper in BIP39 test 2019-10-25 11:24:07 +00:00