Use case: local developer keys (for debugging on public networks with low-fund accounts)
Create an account where user provides an encrypted keystore, and Account.decrypt is used whenever the publicKey is required, providing a password to unlock the keystore for a 1-time sign operation. Optional functionality would be to cache this password for a given time period (similar to the personal_unlockAccount API), for which the user can accept or decline using [y/N].
For better user experience feedback, perhaps debug print the message or transaction to be signed before asking for the password or to use the cached password.
This may be more broadly useful setting dev experience expectations as a baseclass for hardware wallet interactions (#31), as the interactive prompt could delegate to the hardware signer instead.
Use case: local developer keys (for debugging on public networks with low-fund accounts)
Create an account where user provides an encrypted keystore, and
Account.decryptis used whenever the publicKey is required, providing a password to unlock the keystore for a 1-time sign operation. Optional functionality would be to cache this password for a given time period (similar to thepersonal_unlockAccountAPI), for which the user can accept or decline using [y/N].For better user experience feedback, perhaps debug print the message or transaction to be signed before asking for the password or to use the cached password.
This may be more broadly useful setting dev experience expectations as a baseclass for hardware wallet interactions (#31), as the interactive prompt could delegate to the hardware signer instead.