Commit graph

177 commits

Author SHA1 Message Date
44eb299442
py3port: revert some changes made by 2to3 2018-11-01 20:34:29 +03:00
0eff2811e1
py3port: update tests 2018-10-31 21:20:59 +03:00
53189f4469
py3port: Zcash and Monero-related changes 2018-10-31 21:12:07 +03:00
81548b9a35
py3port: exec, subprocess: 'python' -> 'python3' 2018-10-31 19:37:34 +03:00
04329b6757
py3port: use encode() and decode() where applicable 2018-10-31 17:16:00 +03:00
46f44b645b
py3port: use floor division where applicable 2018-10-31 16:38:21 +03:00
949e42ebf4
py3port: 2to3 on all files
The result of running 2to3-2.7 on all Python files in the repository.
2018-10-30 19:31:14 +03:00
f0fea335eb
py3port: update hashbangs
This is the first commit of the MMGen Python 3 port.  Branch 'py3port', against
master branch commit ab06ca4

Commits are groupings of similar or related changes: automatic changes first,
followed by repetitive and global changes, followed by specific ones

All commits until the final one will leave the branch in a broken state
2018-10-30 19:23:12 +03:00
ab06ca4ea8
Rename traceback file; bump version to 0.9.999 2018-10-30 18:50:18 +03:00
3b7fbc1462
test-release.sh: minor changes 2018-10-24 17:05:04 +03:00
7ebe50dc0b
Use Exception attributes: e.message, e.code 2018-10-16 18:39:33 +03:00
d4eb8f6ac0
Full Ethereum Classic (ETC) + ERC20 token support
As with ETH transacting support, this feature is in beta phase

All key functionality works, for both ETC and ETC tokens:
- Tracking wallet: getbalance, twview, listaddresses
- TX create, send, sign
- TX bumping
- ERC20 token creation, deployment

For usage details, see https://github.com/mmgen/mmgen/wiki/Altcoin-and-Forkcoin-Support

Differences from ETH:
- Start Parity with --jsonrpc-port=8555 (or --ports-shift=10) and --chain=classic
- Launch MMGen commands with --coin=etc
2018-10-02 21:09:48 +03:00
4df12def5f
autosign: support testnet, ERC20 tokens 2018-07-29 17:24:29 +03:00
881d55993f
ERC20 token support (create/deploy, TX create/sign/send)
This feature is EXPERIMENTAL.  Until v0.9.9 is released, mainnet use is
strictly at your own risk!

To test on dev chain, run 'test/test.py -e ethdev'

To test on Kovan, add '--testnet=1' option to all commands below

Transaction example:

    Generate some ETH addresses with your default wallet:
    $ mmgen-addrgen --coin=eth 1-5

    Create an EOS token tracking wallet and import the addresses into it:
    $ mmgen-addrimport --coin=eth --token=86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0 ABCDABCD-ETH[1-5].addrs

    Send 10+ EOS from an exchange or another wallet to address ABCDABCD:E:1

    Create a TX sending 10 EOS to address aabbccdd..., with change to ABCDABCD:E:2:
    $ mmgen-txcreate --coin=eth --token=eos aabbccddaabbccddaabbccddaabbccddaabbccdd,10 ABCDABCD:E:2

    On your offline machine, sign the TX:
    $ mmgen-txsign --coin=eth --token=eos ABC123-EOS[10,50000].rawtx

    On your online machine, send the TX:
    $ mmgen-txsend --coin=eth --token=eos ABC123-EOS[10,50000].sigtx

    View your EOS tracking wallet:
    $ mmgen-tool --coin=eth --token=eos twview

Token creation/deployment example:

    Install the Solidity compiler ('solc') on your system.

    Create a token 'MFT' with default parameters, owned by ddeeff... (ABCDABCD:E:1):
    $ scripts/create-token.py --symbol=MFT --name='My First Token' ddeeffddeeffddeeffddeeffddeeffddeeffddee

    Deploy the token on the ETH blockchain:
    $ mmgen-txdo --coin=eth --tx-gas=200000 --contract-data=SafeMath.bin
    $ mmgen-txdo --coin=eth --tx-gas=250000 --contract-data=Owned.bin
    $ mmgen-txdo --coin=eth --tx-gas=1100000 --contract-data=Token.bin
    ...
    Token address: abcd1234abcd1234abcd1234abcd1234abcd1234

    Create an MFT token tracking wallet and import your ETH addresses into it:
    $ mmgen-addrimport --coin=eth --token=abcd1234abcd1234abcd1234abcd1234abcd1234 ABCDABCD-ETH[1-5].addrs

    View your MFT tracking wallet:
    $ mmgen-tool --coin=eth --token=mft twview
2018-07-25 15:57:04 +03:00
e978b759d8
test/test.py,scripts/test-release.py: minor changes 2018-07-25 15:34:50 +03:00
fad573eccd
tx.py,tw.py: cleanups, support tx inputs from cmdline 2018-07-24 00:17:05 +03:00
9d04a244ec
test.py: rewrite create_ref_tx, update reference tx files 2018-06-05 00:15:52 +03:00
dcd4e31cf1
test-release.sh: add test.py ethdev tests 2018-06-04 12:16:32 +03:00
1b54d425bd
addr.py,rpc.py,tw.py,tx.py,traceback.py: minor cleanups and refactoring 2018-05-28 12:39:49 +03:00
06af7342cf
Pre-0.9.7 seed-stealing exploit
Versions of MMGen prior to 0.9.7 were vulnerable to an attack whereby a
compromised MMGen installation on the network-connected machine could trick
an offline installation into revealing the user's seed via a specially crafted
transaction file.

Since sufficient time has passed for users to upgrade, we now deem it safe to
publish the exploit, implemented as a patch against v0.9.6.  Instructions for
use are in the patch itself.
2018-05-22 11:47:24 +03:00
6526aa7ed4
test.py: altcoin generation tests 2018-05-16 18:36:51 +03:00
6972153248
Test UTF-8 passwords; add release notes 2018-05-14 19:36:08 +03:00
1b25452c8e
Rename some tests and test groups 2018-05-12 18:52:35 +03:00
9f2153c3a8
Require UTF-8 for brainwallet; other UTF-8 fixes
- This commit introduces a backwards incompatibility.  Users with non-UTF-8
  brainwallets (if there are any, which is very unlikely) must export them to
  another MMGen wallet format using an older version of MMGen.
2018-05-12 18:26:54 +03:00
2cb4df72c4
Litecoin Bech32 address support 2018-05-09 17:37:18 +03:00
21042737fe
Support UTF-8 wallet labels; new UTF-8 restrictions
- this means .mmdat wallet file itself is now UTF-8 (formerly ASCII-only)
- control and combining characters are now forbidden in all labels
2018-05-08 14:00:16 +03:00
351f5f9118
Use new-style string formatting 2018-03-07 12:59:35 +03:00
b80b059815
Use map() instead of list comprehension where possible 2018-03-07 12:55:06 +03:00
a201aeae94
Minor fixes, cleanups 2018-03-07 12:51:24 +03:00
3cfcd45d59
test/gentest.py: add p2sh-segwit wallet dump 2018-03-06 10:31:57 +03:00
6f572cddde
Bech32: additional tests 2018-03-06 10:28:41 +03:00
e4114eedf3
Bech32 address support
- Address type code is 'B'
- Generate with `--type=B` or `--type=bech32`
2018-03-05 12:46:35 +03:00
e2d51469e6
scrambletest.py: add coverage support
test.py altcoin_ref: enable internal ed25519
2018-02-26 20:01:20 +03:00
282fec8054
addrgen,keygen: use internal ed25519 module by user request 2018-02-24 21:43:55 +03:00
8fe92de627
Coverage support for tests via Python trace module 2018-02-24 14:39:49 +03:00
4009e1794f
test-release.sh: indentation fixes 2018-02-24 14:34:30 +03:00
MMGen
6b9df0ea44
Change all eval() calls to ast.literal_eval()
- closes an exploit whereby an infected online MMGen installation could craft
  a special TX file to trick an offline signing MMGen into executing an
  arbitrary expression
- update TX file format (to v3) to permit calling literal_eval() on unmodified
  inputs and outputs data (old v2 file format continues to be supported)
- new TX file conversion script: `scripts/tx-v2-to-v3.py`
- `scripts/tx-old2new.py` modified and renamed to `scripts/tx-v1-to-v3.py`
2018-02-17 15:35:45 +03:00
MMGen
f7e54cce93
Minor fixes and improvements
- mmgen-tool listaddresses: add 'show_age','show_days' options
- init_fail(): make 'silent' override 'MMGEN_TRACEBACK', fixing regression
  introduced by 3909339
- test/test.py: improve formatting of --list output
- test/{test,objtest,scrambletest}.py, mmgen/tool.py: indentation (whitespace) fixes
2018-02-17 12:34:15 +03:00
MMGen
65e2db0512
Monero,autosign: minor improvements
- Monero (create,sync): specify addr range; display total balance for all wallets
- autosign: improve exception handling, launch the standard way
2018-02-10 19:54:17 +03:00
MMGen
258651a531
Monero: new automated wallet syncing utility
- mmgen-tool: `syncmonerowallets`: batch-sync Monero wallets non-interactively
- mmgen-tool: `keyaddrlist2monerowallet` -> `keyaddrlist2monerowallets`
2018-01-21 19:18:00 +03:00
MMGen
83e9899b38
Version 0.9.6 2018-01-14 17:24:36 +03:00
MMGen
d3e96744fe
Monero: add tests to test-release.sh 2017-12-28 21:40:06 +03:00
MMGen
279e8872ef
Improve coin selection logic, allow coin disabling 2017-12-25 09:48:59 +03:00
MMGen
91ac2effb3
Key/address generation support for 144 altcoins
Support for these coins is EXPERIMENTAL, use at your own risk

    EXAMPLE: generate 10 Dogecoin key/address pairs with your default wallet:

        `mmgen-keygen --coin=doge 1-10`

    Keys for different coins are distinct, so users needn't worry about key reuse.

    Supported alts: 2give,42,611,ac,acoin,alf,anc,apex,arco,arg,aur,b2x,bcf,bch,blk,bmc,bqc,bsty,btcd,btq,bucks,cann,cash,cat,cbx,ccn,cdn,chc,clam,con,cpc,crps,csh,dash,dcr,dfc,dgb,dgc,doge,doged,dope,dvc,efl,emc,emd,enrg,esp,etc,eth,fai,fc2,fibre,fjc,flo,flt,fst,ftc,gcr,good,grc,gun,ham,html5,hyp,icash,infx,inpay,ipc,jbs,judge,lana,lat,ldoge,lmc,ltc,mars,mcar,mec,mint,mobi,mona,moon,mrs,mue,mxt,myr,myriad,mzc,neos,neva,nka,nlg,nmc,nto,nvc,ok,omc,omni,onion,onx,part,pink,pivx,pkb,pnd,pot,ppc,ptc,pxc,qrk,rain,rbt,rby,rdd,ric,sdc,sib,smly,song,spr,start,sys,taj,tit,tpc,trc,ttc,tx,uno,via,vpn,vtc,wash,wdc,wisc,wkc,wsx,xcn,xgb,xmg,xpm,xpoke,xred,xst,xvc,zec,zet,zlq,zoom,zrc

	Test the new functionality with `scripts/test-release.sh -Pn master alts`

B2X support disabled pending further testing
2017-12-24 15:26:23 +03:00
MMGen
4876ee47ed
View key support for Zcash z-addresses
- 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
2017-12-18 20:19:01 +03:00
MMGen
1cc64e1eb9
Zcash z-address generation with custom sha256 implementation
- Tests have been updated, test with `scripts/test-release.sh -Pn master alts`
2017-12-16 12:48:47 +03:00
MMGen
bafea57134
Key/address generation for Ethereum, Eth Classic, DASH, and Zcash
- 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`
2017-12-16 09:31:00 +03:00
philemon
420d0e9699
B2X support, locktime-based coin splitting utility
- full support for B2X fork
- `mmgen-split` coin splitting utility for replayable forks
- `mmgen-regtest fork` command for testing forking scenarios
- `regtest_split` command added to `test/test.py` test suite
- timelock support for `txcreate` and `txdo`
- nlocktime and nsequence checks after signing and before sending
2017-11-13 22:50:35 +03:00
philemon
333278ce35
new conversion utility: scripts/tx-btc2bch.py
- Beginning with v0.9.5, BCH and BTC transaction files differ.
  This utility converts old BCH transaction files to the new format.
2017-10-31 08:57:05 +03:00
philemon
8fb3efd99c
mmgen-autosign: encrypt signing wallet with session key on removable device 2017-10-29 15:06:16 +03:00