Commit graph

36 commits

Author SHA1 Message Date
60ca7a2918
eth: sign transactions with libsecp256k1 2025-06-29 14:53:50 +00:00
2bf4f540f7
new test.cmdtest_d.httpd.thornode package 2025-06-10 17:47:03 +00:00
ff28d39a3c
THORChain ERC20 token swap support
Examples:

    # List available assets:
    $ mmgen-swaptxcreate -S

    # Create a Tether-to-LTC swap transaction for autosigning, connecting to the
    # swap quote server via Tor:
    $ mmgen-swaptxcreate --autosign --proxy=localhost:9050 ETH.USDT 1000 LTC

    # After signing, send the transaction via public Etherscan proxy over Tor:
    $ mmgen-txsend --autosign --quiet --tx-proxy=etherscan --proxy=localhost:9050

    # After sending, check the transaction status and receipt:
    $ mmgen-txsend --autosign --verbose --status

    # Create a Tether-to-DAI swap transaction, with explicit destination account:
    $ mmgen-swaptxcreate ETH.USDT 1000 ETH.DAI E:01234ABC:3

Testing:

    $ test/cmdtest.py -e ethswap
2025-04-27 11:53:49 +00:00
21fb6a8195
cmdtest ethdev: use single dev address for all daemons 2025-04-09 09:16:01 +00:00
88f204a0bd
cmdtest.py: new WSGI http server framework 2025-03-17 10:16:18 +00:00
1e422b2c2b
support Rust Ethereum client (Reth)
Tested on Linux only

Testing:

    $ test/cmdtest.py --coin=eth --daemon-id=reth ethdev
2025-03-10 14:28:55 +00:00
abbc9c843a
Nix support improvements
Quick Start for BTC:

    $ git clone https://github.com/mmgen/mmgen-wallet
    $ cd mmgen-wallet
    $ nix-shell --pure nix

Enable altcoins and additional packages:

    $ mkdir -p ~/.mmgen
    $ cp nix/user-packages.nix ~/.mmgen
    # ... edit ~/.mmgen/user-packages.nix as required ...
    $ nix-shell --pure nix

For NixOS installation and other information, see:

    nix/README
2025-01-03 14:24:20 +00:00
d69fee71c1
support Nix and NixOS
Quick Start for BTC:

    $ git clone https://github.com/mmgen/mmgen-wallet
    $ cd mmgen-wallet
    $ nix-shell --pure scripts/mmgen-wallet-nix/shell.nix

For altcoin support and additional installation options, see:

    scripts/mmgen-wallet-nix/packages.nix

Tested on Linux/x86_64.  On other platforms your mileage may vary.

Note that Nix support is under development, and the installation process
is subject to change.
2024-12-30 13:59:13 +00:00
be1c8c4232
test/test-release.sh: minor cleanups 2024-01-19 11:05:09 +00:00
7374b53130
update test/test-release.sh -S, MANIFEST.in 2023-12-07 16:48:00 +00:00
076cec7495
base_proto.bitcoin -> proto.btc, ... [code] 2022-10-03 10:00:00 +00:00
99cc5b67e6
update MANIFEST.in, minor install fixes 2022-06-09 11:18:09 +00:00
96a250b51d
test suite: run scripts from overlay tree
Rationale of this commit: to relocate some ugly test-related code from the MMGen
package tree to the test tree, as well as to enable deterministic testing
(implemented in the next commit).

The overlay tree is a symlinked mirror of the MMGen package dir with a few
monkey-patched modules.

The monkey-patching is conditional, so the modules are certain to get tested in
their unpatched state as well.
2021-10-03 17:40:02 +00:00
ea81d466a8
move data files to package directory
- The former location of the data files, /usr/local/share/mmgen, is no longer
  used and may be safely deleted.
2021-09-23 21:15:32 +00:00
1ff7f3e5ba
various build and testing fixes 2020-06-27 10:22:01 +00:00
86fd45566d
new file: examples/halving-calculator.py 2020-05-11 18:07:58 +00:00
57f12cd1cb
minor changes and fixes throughout 2020-05-10 13:39:53 +00:00
9a4920a1b5
release/testing: minor fixes and improvements 2020-02-18 20:28:28 +00:00
d22fd160c5
lots of minor fixes and cleanups throughout 2019-12-07 12:20:21 +00:00
037acf0791
modularize objtest.py 2019-05-27 11:34:23 +03:00
7ed00d98e5
test.py: add password_entry, mnemonic_entry tests 2019-05-21 16:09:33 +03:00
ab8b5d053e
modularize unit_tests.py 2019-05-14 10:42:06 +03:00
3a09017804
various minor fixes and cleanups 2019-05-12 11:54:03 +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
7ac23b6bf3
create new uninstall script 2019-02-28 13:38:52 +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
bf5334f4cb
Update signing keys, links 2018-04-08 09:42:53 +03:00
MMGen
df0385160b
XMR (Monero) key/address generation support and wallet generating utility
- Monero key-address files include spendkey, viewkey and wallet password
- Wallet password is first 16 bytes of SHA256x2(spendkey)
- Generate Monero wallets either by hand with:
    1) `monero-wallet-cli --generate-from-spend-key walletfile`, using the keyaddrfile data,
  or automatically, using:
    2) `mmgen-tool keyaddrlist2monerowallet keyaddrfile`
  The utility will generate a wallet for each key/address pair in the keyaddrfile and encrypt
  it using the password.  The password is supplied via stdin.

- Other feature: 32-byte hexadecimal password generation with `mmgen-passgen --hex`
2017-12-28 16:03:28 +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
8fb3efd99c
mmgen-autosign: encrypt signing wallet with session key on removable device 2017-10-29 15:06:16 +03:00
philemon
35d1091159
Basic altcoin framework, full Litecoin support
- LTC: tested on mainnet, full test suite support
- simultaneous autosigning for all supported coins (BTC,BCH,LTC)
2017-10-28 00:11:00 +03:00
philemon
a4c6c45a13
mmgen-autosign: batch offline transaction auto-signing
- once set up, requires no monitor or keyboard input; just insert USB stick,
  wait for signing to complete and remove
- LED status signaling on Raspberry Pi and Orange Pi
2017-10-16 00:55:03 +03:00
philemon
49e1acfb74
mmgen-regtest: improvements + additional tests in test suite 2017-09-25 14:27:39 +03:00
philemon
3897ec3297
Version 0.8.7a
--testnet option added to all relevant scripts
  utility scripts under scripts/ updated
2016-11-14 14:45:08 +03:00
philemon
72a85e3db8 modified: MANIFEST.in 2016-03-14 22:50:29 +03:00
philemon
9a6d021778 Minor changes, created MANIFEST.in 2016-03-06 08:55:50 +03:00