-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Description
Clean up the Namada CLI wallet, both internally and externally.
Just using the wallet, I observe some UX issues:
- Many commands seem to require genesis files which I wouldn't expect to need them, e.g.
namada wallet key list
=>
The application panicked (crashed).
Message: Missing genesis files:
0: Couldn't read Validity predicates config file from /home/cwgoes/.local/share/namada/e2e-test.a23671b0c1d2dc60d75d8/validity-predicates.toml
1: No such file or directory (os error 2)
Location:
apps/src/lib/config/genesis/toml_utils.rs:11
Why do we need genesis files for the wallet at all? The wallet should only be dealing with its own database and configuration, in general. If we're using genesis files to look up aliases or such, this is fine, but we should gracefully degrade (perhaps with a warning) if they're not found instead of crashing.
- The relationship between key and address generation is pretty unclear to me. I understand addresses as simply being derived from public keys - if we create a new key, we should also know the address. Why do we have a whole separate subcommand for address management (with many of the same sub-sub-commands as for keys)? Can we get rid of this, and simply make the key commands compute & store the address as well?
- Is there a strong reason to separate MASP and regular key generation and management? I think it might be easier for users if we simply have a
--maspoption or such when generating a new key (and generating payment addresses only works when used with a spending key). This may require us to implement ZIP32 (but there is almost certainly a library which we can import). - The wallet should support an arbitrary-message
signoperation which does not depend on any transaction-related code (just signs binary data with a key in the wallet).
There's probably more, but let's just start by evaluating these questions.
Reactions are currently unavailable