Commit graph

1,468 commits

Author SHA1 Message Date
b29b8b4b9c
cmdtest.py: new --dev-mode option 2026-05-21 12:09:33 +00:00
c4feeccb66
enable use of pyaes package for testing 2026-05-21 12:09:33 +00:00
3d8e98f31e
crypto.Crypto: new encrypt_aes_ctr() method 2026-05-21 12:09:33 +00:00
b13acfa3b1
wallet.mmgen: increase salt length to 32 bytes 2026-05-21 12:09:33 +00:00
7ca2449306
cmdtest.py input: disable some tests for free-threaded Python builds 2026-05-21 12:09:32 +00:00
2b1fbfa0fc
cmdtest.py: new skip_on_condition() method 2026-05-21 12:09:32 +00:00
e092f44ace
minor testing fixes 2026-05-17 18:03:37 +00:00
5a83a716e7
daemontest.py exec: cleanups 2026-05-17 18:03:36 +00:00
e982f7003a
new machine global constant 2026-05-17 18:03:36 +00:00
ab41b78863
new platform global constant 2026-05-17 18:03:32 +00:00
762940deca
autosign: minor cleanups 2026-05-15 13:42:44 +00:00
ce40c500e1
new modules: autosign.signable, autosign.swap_mgr 2026-05-08 13:34:30 +00:00
b99ef94b60
autosign.py -> autosign/__init__.py 2026-05-08 13:34:25 +00:00
c69f7e52d3
mmgen-autosign: forbid use of --xmrwallets in non-setup context 2026-05-07 17:52:59 +00:00
91e10be951
autosign: minor fixes and cleanups 2026-05-07 17:52:59 +00:00
9e40e6c8c9
autosign: skip dfl wallet prompt if --seed-len or --mnemonic-fmt specified 2026-05-07 17:52:59 +00:00
f9e2afc6e0
autosign: add test_led, list_led operations 2026-05-07 17:52:59 +00:00
c406336ca4
update coin daemon support (BTC, LTC, BCH, Geth)
- Bitcoin Core       v31.0.0
- Litecoin Core      v0.21.5.4
- Bitcoin Cash Node  v29.0.0
- Go-Ethereum        v1.17.2
2026-04-27 13:52:10 +00:00
f840069ecb
update copyright dates 2026-02-11 13:02:12 +00:00
d8439ba691
XMR compat: addrimport support
Example (assumes --autosign):

    $ mmgen-addrimport --coin=xmr

Testing/demo:

    $ test/cmdtest.py --coin=xmr -e -X addrimport_alice2 xmr_compat

More info:

    $ mmgen-addrimport --help
2026-02-06 10:14:25 +00:00
c4ec627153
mmgen-txbump: support transaction selection
Transaction selection logic is the same as with `mmgen-txsend --status`, except
ranges are not supported.

Examples (assumes --autosign):

    # Bump last sent transaction:
    $ mmgen-txbump

    # Same as above:
    $ mmgen-txbump 0

    # Bump next-to-last sent transaction:
    $ mmgen-txbump 1

Testing/demo:

    $ test/cmdtest.py -e -X alice_txbump6 autosign_automount
2026-02-06 10:14:25 +00:00
4a4b814935
XMR compat: export outputs files during TX creation
Formerly, users were required to run `mmgen-xmrwallet export-outputs` at
the beginning of each XMR autosigning session.  This patch eliminates that
requirement when transacting via the compatibility layer.
2026-02-02 09:56:58 +00:00
80d122a1d8
XMR compat: allow sweep transaction to empty account (bugfix) 2026-02-02 09:56:58 +00:00
48edcf412c
mmgen-txsend --status: support transaction ranges
Example (assumes --autosign):

    # Display status of last four sent transactions:
    $ mmgen-txsend -s 0-3

Testing/demo:

    $ test/cmdtest.py -e -X alice_txstatus9 autosign_automount
2026-02-01 09:11:08 +00:00
392b3700af
mmgen-txsend: new process_tx() function: tx.online: cleanups 2026-02-01 09:11:08 +00:00
41d705ec6e
xmrwallet create_offline: use existing key-address file if present 2026-02-01 09:11:08 +00:00
031ae051f9
CmdTestAutosignBase: simplify mnemonic entry 2026-02-01 09:11:02 +00:00
4f1b16f489
mmgen-txsend: support transaction selection with --status
Examples (assumes --autosign):

    # View status of last sent transaction:
    $ mmgen-txsend --status

    # Same as above:
    $ mmgen-txsend --status 0

    # View status of next-to-last sent transaction:
    $ mmgen-txsend --status 1

Testing/demo:

    $ test/cmdtest.py -e -X alice_txstatus8 autosign_automount
2026-01-30 09:20:21 +00:00
e69dfbe8f3
XMR compat: transaction status support
Examples:

    # after sending XMR transaction:
    $ mmgen-txsend --status
    $ mmgen-txsend --status --verbose

Testing/demo:

    $ test/cmdtest.py --coin=xmr -e -X alice_txstatus3 xmr_compat
2026-01-28 12:24:36 +00:00
907bdc2bdf
XMR compat: sweep transactions
Example:

    # Invoking `mmgen-txcreate` without arguments activates the sweep function-
    # ality.  Type ‘S’ (account sweep) or ‘s’ (address sweep) to begin creating
    # the transaction:
    $ mmgen-txcreate --coin=xmr

Testing/demo:

    $ test/cmdtest.py --coin=xmr -e -X alice_twview_chk4 xmr_compat
2026-01-26 10:56:21 +00:00
71b3083678
cmdtest.py xmr_compat: cleanups 2026-01-26 10:56:21 +00:00
0c0a8626ad
proto.xmr.tw.view: new get_label_from_user(), choose_wallet() methods 2026-01-26 10:56:21 +00:00
7b53f4337f
XMR compat: address/account creation
Example:

    # Press ‘N’ or ‘n’ at the prompt to create new account or address:
    $ mmgen-tool --coin=xmr listaddresses interactive=1

Testing/demo:

    $ test/cmdtest.py --coin=xmr -e xmr_compat
2026-01-21 09:06:50 +00:00
e8ca36af44
test/cmdtest.py xmr_autosign: cleanups 2026-01-21 09:06:50 +00:00
496c817b9c
minor cleanups 2026-01-21 09:06:44 +00:00
86d51f1ad7
mmgen-txsend: shorten default confirmation to 'YES' 2026-01-16 15:41:44 +00:00
49a11a750b
mmgen-txsend -s: fix crash with XMR compat tx file in txauto dir 2026-01-14 16:27:27 +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
f6c09b83da
cmdtest.py autosign: wait_loop_start(): add opts param 2025-12-01 16:54:36 +00:00
78bd55b3bb
CmdTestBase: new extra_daemons attribute 2025-12-01 16:54:35 +00:00
24a22e63e1
whitespace, minor cleanups 2025-12-01 16:54:30 +00:00
32595f621b
whitespace, string formatting, minor fixes and cleanups 2025-11-29 09:12:49 +00:00
acee3606af
proto.xmr.tw.addresses: implement account-based display 2025-11-29 09:12:49 +00:00
be17d06708
proto.xmr.tw.view: add age sort, locked balance display
NOTE: Age sort is meaningful only for addresses with 10 or fewer confirmations.
2025-11-27 11:36:51 +00:00
ba732b4610
cmdtest.py xmr_compat: cleanups 2025-11-27 11:34:10 +00:00
7edef50ed4
whitespace, string formatting 2025-11-27 11:34:09 +00:00
1132d0ff6b
proto.xmr.tw.unspent: implement account-based view
Example:

    $ mmgen-tool --coin=xmr twview interactive=1

Testing/demo:

    $ test/cmdtest.py -ne xmr_compat
2025-11-24 12:48:48 +00:00
bdd7dd3393
XMR compat: support tracking wallet views
- all operations, including label editing and balance refresh, supported
- requires --autosign
- enables --xmrwallet-compat, meaning Monero watch-only wallets must be
  located in ~/.mmgen/altcoins/xmr/tracking-wallets

This is a work in progress, UI will undergo changes.

Examples:

    $ mmgen-tool --coin=xmr listaddresses interactive=1
    $ mmgen-tool --coin=xmr twview interactive=1

Testing:

    $ test/cmdtest.py -ne xmr_compat
2025-11-22 09:04:09 +00:00
937f0af9c9
mmgen-xmrwallet label: prompt user to add timestamp 2025-11-22 09:04:09 +00:00
040671bb06
minor cleanups 2025-11-22 09:04:09 +00:00