Commit graph

2,983 commits

Author SHA1 Message Date
fdcdc4772b
mmgen-autosign: move autosign key to mountpoint 2022-03-30 15:49:43 +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
69cff97201
mmgen-xmrwallet: add timestamp to address labels 2022-03-16 14:58:09 +00:00
86e3b273c7
message signing: low-level infrastructure and unit test
- Messages can be signed for arbitrary lists or ranges of addresses.
- Addresses and ranges are specified using a SEED_ID:ADDR_TYPE:IDX_RANGE
  selector.
- For segwit addresses, signature data includes a pubkey hash and p2pkh address
  sharing the same key to allow verification of messages with external tools,
  e.g. `bitcoin-cli verifymessage`.

Testing:

    $ test/unit_tests.py -av msg
2022-02-14 10:18:44 +00:00
937fb94470
tool addr2pubhash(), pubhash2addr(): bugfixes 2022-02-14 10:18:43 +00:00
10232790e7
proto.btc: pubkey2segwitaddr() -> pubhash2segwitaddr()
- also changed: pubkey2redeem_script() -> pubhash2redeem_script()
2022-02-14 10:18:43 +00:00
92b5246c1d
proto.pubhash2.*addr(): cleanups 2022-02-14 10:18:42 +00:00
9e3d8d92de
mmgen-passchg: improve secure wallet deletion logic 2022-02-13 11:08:50 +00:00
224b6a70d0
confirm_or_raise() cleanups 2022-02-13 11:08:50 +00:00
c7f0b2d8f9
wallet.incog_base: minor cleanups 2022-02-13 11:08:50 +00:00
395fa1c1d3
minor fixes; adapt script launcher, g.version for node tools 2022-02-11 09:43:33 +00:00
96cd623196
move bech32, ed25519, keccak and license modules to contrib 2022-02-10 14:44:44 +00:00
589c37806b
crypto.py: improve get_random() implementation 2022-02-10 14:44:44 +00:00
24cdd98037
relocate modules: txfile -> tx.file, txsign -> tx.sign 2022-02-10 12:51:42 +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
152901143c
relocate module: regtest -> base_proto.bitcoin.regtest 2022-02-10 12:51:41 +00:00
ffd5943212
relocate module: bech32 -> base_proto.bitcoin.bech32 2022-02-10 12:51:40 +00:00
abffe1fb57
fixes and cleanups 2022-02-10 12:51:40 +00:00
79dcb6dd0d
wallet/__init__.py: cleanups 2022-02-10 12:51:39 +00:00
2f42346068
regtest: enable hdseed wallet for LTC, BCH 2022-02-10 12:51:39 +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
3b7e96ccfc
test.py: fix resuming functionality, add --step option 2022-02-07 21:08:09 +00:00
fc87dcf0ba
fixes and cleanups throughout 2022-02-07 21:08:08 +00:00
f1844789d7
modularize RPC classes
- protocol-independent base classes remain in `rpc.py`
- protocol-dependent subclasses are moved to `base_proto/{name}/rpc.py`
2022-02-07 13:56:21 +00:00
1fb022d151
finish modularization of tracking wallet classes
- protocol-independent base classes remain in `tw*.py`
- protocol-dependent subclasses are in `base_proto/{name}/tw*.py`
2022-02-06 13:28:45 +00:00
252a697984
test/overlay/__init__.py: support directory tree under fakemods 2022-02-06 13:28:45 +00:00
71d7986391
minor fixes and cleanups 2022-02-06 13:28:44 +00:00
b17b6f6275
modularize daemon classes
- protocol-independent base classes remain in `daemon.py`
- protocol-dependent subclasses are moved to `base_proto/{name}/daemon.py`
2022-02-05 13:36:02 +00:00
5339f5f1a9
minor fix 2022-02-05 13:32:57 +00:00
36e3de8595
move MoneroWalletDaemon class to base_proto/monero 2022-02-05 13:32:57 +00:00
4f41b4dee0
base_proto_subclass(): remove support for tx classes 2022-02-05 13:32:56 +00:00
aad252a077
handle MMGen exceptions via die()
- exception module is imported only after an error occurs
2022-02-05 13:32:56 +00:00
41376eb515
new MMGenSystemExit exception; remove rdie(), ydie() 2022-02-05 13:32:56 +00:00
c205d2f7a6
test.py: remove superfluous calls to pexpect.read() 2022-02-05 13:32:55 +00:00
2061d109cc
test.py: always check output when spawned script exits with non-zero value 2022-02-05 13:32:55 +00:00
d30fbba837
environment var rename: MMGEN_TRACEBACK -> MMGEN_EXEC_WRAPPER 2022-02-05 13:32:55 +00:00
c26d75c535
unit_tests.py tx_deserialize: test altcoin reference files 2022-02-05 13:32:54 +00:00
cc3a03911b
unit_tests.py tx: test signed and altcoin transactions 2022-02-05 13:32:54 +00:00
a3595062db
test/unit_tests.py: support coroutine tests; cleanups 2022-02-05 13:32:54 +00:00
d7ebc45915
Completed: implement ext_to_type(), use in initializer 2022-02-05 13:32:53 +00:00
3c015fa34f
minor fixes and cleanups 2022-02-05 13:32:53 +00:00
07bc2e5cf2
Filename(): rename parameters
- from_extension -> base_class
- ftype -> subclass
2022-02-05 13:32:53 +00:00
05e901e78d
devtools.py: add pexit() method, allow args in pmsg() 2022-02-05 13:32:52 +00:00
818488c559
modularize transaction classes
The monolithic tx.py module has been split into multiple modules, and a
clean separation of protocol-dependent and protocol-independent code has
been carried out.

- Protocol-independent base classes are located under `tx`.
- Protocol-dependent subclasses are under `base_proto/{name}/tx`.
- The code in `tx/__init__.py` loads the required module and returns an
  initialized instance of the requested class.
2022-02-03 20:41:28 +00:00
d6872ddb87
fixes and cleanups throughout 2022-02-03 20:40:42 +00:00
301e2516ab
altcoin_subclass() -> base_proto_subclass() 2022-02-03 20:40:42 +00:00
c07595781c
altcoins.eth -> base_proto.ethereum 2022-02-03 20:40:42 +00:00
be5867dd2c
test.py: minor overlay fix 2022-02-03 20:40:41 +00:00
5d5c1835dd
tx.py,txfile.py: minor cleanups 2022-02-03 20:40:41 +00:00