Common wallet interface fields are not very common #304
Description
As we expand the scope on the kinds of wallets that we support on purser, some functionalities that are considered common denominators across all wallets are in fact applicable only to hardware wallets. Here are some of the fields that do not fit nicely to the interface:
address
The getter function for this field is and should be common, but what's not common is the setter. We've actually sort of encountered this problem in the Metamask integration, whereby the address setter is only intended to be used by the StateObserver watching over Metamask state changes and not by users of purser -- in fact, the behaviour of setting the address by users is not known to me personally, and is possibly undefined. Other software wallet providers such as Authereum and Fortmatic do not expect users to have multiple addresses with their account, so it would make little sense for them to have an address setter.
privateKey
To my knowledge, software wallet providers generally own the private keys and would not allow access to the private keys for the wallet.
mnemonic
Same with privateKey
, though I'm less certain -- I maybe wrong on this.
keystore
The instantiation process for software wallet providers is usually not open to public. It is therefore weird and unnatural to be able to access internal fields of these software wallets from purser. It's also not clear to me what purpose a user would have to have access to the keystore string.
There may be more fields/methods, but these are the ones that I can list off the top of my head.
Activity