Wallet should have a single role, but it extends too many interfaces. I think we have to split key managing with client.
It's hard to remove it in 1.x. Maybe it should be remove in 2.x. But until then, it's good to introduce fine-grained api for alternatives. And in 2.x, introduce new coarse-grained api as an alternative to current Wallet interface.
Fine-grained apis should have following roles
- KeyManaging (abstraction for interaction with java keystore or server keystore)
- Nonce handling
- ChainIdHash handling
- Failover handling
Before that, we have to refactor context to handle failover elegantly.
Wallet should have a single role, but it extends too many interfaces. I think we have to split key managing with client.
It's hard to remove it in 1.x. Maybe it should be remove in 2.x. But until then, it's good to introduce fine-grained api for alternatives. And in 2.x, introduce new coarse-grained api as an alternative to current Wallet interface.
Fine-grained apis should have following roles
Before that, we have to refactor context to handle failover elegantly.