Commit graph

62 commits

Author SHA1 Message Date
b99ef94b60
autosign.py -> autosign/__init__.py 2026-05-08 13:34:25 +00:00
f840069ecb
update copyright dates 2026-02-11 13:02:12 +00:00
cb99e13cd5
XMR compat: basic transaction support
- This functionality is work-in-progress: sweep transactions, spending to
  MMGen IDs and certain options are not supported yet.

- The `--autosign` option is required.  It may be set in the config file.

- On the offline signing machine, `--xmrwallet-compat` is required, or it
  may be set in the config file.  On the online machine, the option is
  required to permit interoperability with `mmgen-xmrwallet`.

- Note that transactions created with `mmgen-txcreate` must be sent with
  `mmgen-txsend`, not `mmgen-xmrwallet submit`, which looks for signed
  transactions in a different directory on the removable device.

- Signed or unsigned transactions may be aborted with `mmgen-txsend --abort`.

- Compat mode uses `mmgen-xmrwallet` as its backend, and that command is still
  required for all operations beyond simple create-sign-send to address.  For
  details, invoke `mmgen-xmrwallet --help`.

Sample workflow:

    $ mmgen-txcreate --coin=xmr XMR_ADDRESS,AMOUNT

    (remove - insert - wait for signing - remove - insert)

    $ mmgen-txsend

Testing/demo:

    $ test/cmdtest.py --coin=xmr -e xmr_compat
2025-12-01 16:54:36 +00:00
68fba89e96
mmgen-xmrwallet: new --compat option 2025-11-15 09:50:21 +00:00
a3e7c08f84
implement async_run() with aiohttp backend
- aiohttp is now used in the proper context-manager way, so we can
  remove the package version pin in setup.cfg
2025-10-01 15:30:57 +00:00
28c39f2b5f
setup.cfg: bump minimum Python version to 3.11 2025-09-23 09:20:53 +00:00
a3eef0128a
Windows/MSYS2 build and testing fixes 2025-09-15 09:28:41 +00:00
d18c52e1b0
setup.cfg: pin aiohttp package to v3.12.9 2025-09-09 11:27:05 +00:00
3ad310e259
new proto.vm.tx package 2025-06-12 12:48:38 +00:00
55e59cee12
RUNE low-level transaction support
Testing:

    $ test/modtest.py rune
2025-06-10 17:47:03 +00:00
2993fdba9e
RUNE tracking wallet support
Testing/demo:

    $ test/cmdtest.py --demo --coin=rune rune
2025-05-28 11:40:40 +00:00
318b3351e8
modularize RPC library 2025-05-23 15:35:23 +00:00
ba3b40c5b6
support THORChain address generation
Example:

    $ mmgen-addrgen --coin=rune 1-10

Testing:

    $ test/tooltest2.py -q --coin=rune
    $ test/modtest.py -v bip_hd.multicoin
2025-05-21 09:13:42 +00:00
00ee28aea7
minor cleanups 2025-05-19 09:23:50 +00:00
f3869f914b
setup.cfg: update project URLs 2025-03-29 09:30:10 +00:00
1eb0de7938
ETH: transaction sending via Etherscan
- the HTML transaction broadcast form is used, so no API key is required
- the request can be proxied through Tor
- availability of the service can be checked with the --test option

Example:

    # check availability:
    $ mmgen-txsend --autosign --coin=eth --tx-proxy=etherscan --proxy=localhost:9050 --test

    # send:
    $ mmgen-txsend --autosign --coin=eth --tx-proxy=etherscan --proxy=localhost:9050

Testing:

    $ test/cmdtest.py --coin=eth -e -X txsend_etherscan ethdev
2025-03-15 18:24:54 +00:00
94bee46cb8
new mmgen-cli utility
Communicate with all your coin daemons from a single utility!

Usage information and examples:

    $ mmgen-cli --help
2025-03-10 14:28:55 +00:00
85cec5655d
THORChain DEX integration
Cross-chain native asset swaps directly from MMGen Wallet!

Currently supported coins: BTC, LTC, BCH.  Work on ETH support is underway.

All supported asset pairs have undergone thorough testing on mainnet.

Sample workflow for a BTC->LTC swap (assumes offline autosigning is set up and
the removable device inserted on the online machine):

    $ mmgen-swaptxcreate --autosign BTC LTC

    remove device - insert - wait for signing - remove - insert

    $ mmgen-txsend --autosign

Note that other command-line options and arguments will likely be required. For
further information, see:

    $ mmgen-swaptxcreate --help

Be aware that transactions stuck for a long time in the mempool can potentially
lead to loss of funds, so users should first learn how to create replacement
transactions with ‘mmgen-txbump’ before attempting a swap.  In all cases, it’s
advisable to begin with small amounts.  Double-checking the vault address on a
block explorer such as thorchain.net or runescan.io before sending the
transaction is also recommended.

Testing:

    $ test/modtest.py tx.memo
    $ test/cmdtest.py regtest_legacy.main autosign_automount swap
2025-02-24 11:27:49 +00:00
e54f039690
update copyright dates 2025-02-16 14:42:27 +00:00
e4b6d0536c
swaptxcreate, swaptxdo: create entry points, NewSwap tx class 2025-02-15 09:54:18 +00:00
4daf293dc2
xmrwallet.py -> xmrwallet (23 files) 2024-10-18 10:32:07 +00:00
5150ca586b
update file header 2024-10-18 10:32:06 +00:00
d7e3b55e3b
opts, help: refactor, parse cmdline opts natively, filter global opts
- command-line options are now parsed natively, without use of the getopt module
- global options and --longhelp helpscreen are now contextual, depending on coin
  and executed command
- commands invoked with out-of-context global options (e.g. `mmgen-walletgen
  --coin=btc`) now fail with an ‘unrecognized option’ error

Testing:

    $ test/test-release.sh help
    $ test/cmdtest.py opts
2024-10-08 12:56:02 +00:00
037bbda14a
whitespace, minor cleanups 2024-09-29 11:59:53 +00:00
e1df5c78b7
setup.cfg: update keywords and classifiers 2024-09-22 10:51:33 +00:00
a24eed0826
macOS: support autosign/automount for BTC
Testing:

    $ test/cmdtest.py autosign_clean autosign_automount autosign_btc
2024-08-26 14:44:09 +00:00
ab71e8581d
various Python 3.9 changes 2024-02-10 15:10:43 +00:00
ea1e8d1228
bip_hd: a minimal, easy-to-use BIP-32/BIP-44 implementation
- this is a work in progress, only a few coins are currently supported

Testing:

    $ test/unit_tests.py -v bip_hd

Examples:

    $ PYTHONPATH=. examples/bip_hd.py
2024-01-26 10:54:03 +00:00
8e46932475
update copyright dates 2024-01-19 11:05:10 +00:00
525b54af8e
altcoin.py -> altcoin/params.py, test/altcointest.py 2023-11-30 10:53:40 +00:00
ed01582dff
rename repository: mmgen -> mmgen-wallet 2023-11-17 09:04:14 +00:00
ff4ec64900
MSYS2 testing fixes 2023-11-14 16:01:43 +00:00
57799d6977
setup.cfg: add urls, classifiers; add pylint workflow 2023-11-10 16:05:22 +00:00
cc1d7edad3
change package name to mmgen-wallet
Before installing, uninstall the old MMGen package:

    $ python3 -m pip uninstall mmgen
2023-11-08 08:19:42 +00:00
7871583eaa
add xmr-requirements.txt file 2023-10-18 12:11:49 +00:00
7135744de7
use pycryptodomex instead of pysha3 for keccak_256 function 2023-10-18 12:11:48 +00:00
2449baed2c
whitespace, comments throughout (excluding tests) 2023-10-11 12:58:47 +00:00
2345dc4665
install,test: disable pysha3 for Python 3.11 2023-05-13 19:55:57 +00:00
ffad4b6889
help.py -> help/__init__.py 2023-04-24 13:23:43 +00:00
67eaf782b6
keygen.py: modularize protocol-specific code 2022-10-04 13:08:54 +00:00
076cec7495
base_proto.bitcoin -> proto.btc, ... [code] 2022-10-03 10:00:00 +00:00
3f182fed64
proto: btc.py -> btc/params.py, ... [code] 2022-10-03 09:59:59 +00:00
99cc5b67e6
update MANIFEST.in, minor install fixes 2022-06-09 11:18:09 +00:00
8cbdab9d83
support aiohttp, add localhost resolution workaround
- this may speed up RPC performance for all backends on some Windows systems
2022-05-28 19:41:43 +00:00
01f52617f6
various fixes and cleanups 2022-05-03 21:01:05 +00:00
e5cf3b6ec8
message signing: user-level support
Usage information:

    $ mmgen-msg --help

Testing:

    $ test/test.py -e regtest
2022-03-28 13:51:25 +00:00
96cd623196
move bech32, ed25519, keccak and license modules to contrib 2022-02-10 14:44:44 +00:00
30bd534314
move wordlists to wordlist 2022-02-10 12:51:42 +00:00
0fef35f567
move tracking wallet modules to tw and base_proto/{name}/tw 2022-02-10 12:51:41 +00:00
9649f5b723
modularize wallet classes
- all code has been relocated from `wallet.py` to individual modules under
  `wallet`, with each wallet type having its own module

- the fully rewritten initialization code can be found in `__init__.py` and
  `base.py`
2022-02-08 13:03:32 +00:00