add event emitter option for client to support messages composer
Opened this issue · 0 comments
Some users may want to control state a bit more than what client.execute provides, which is the default way the client operates. For example, client.execute current does this:
- composes the messages
- signs the message
- broadcasts the message
The issue is that, during #2, the user may be signing via keplr, and technically there is more state involved, if perhaps you wanted to display a spinning loader to the user interfaces.
Example of separating these out using the current message composer option:
https://github.com/EquilibriumEtf/frontend/blob/main/contexts/tx.tsx
https://gist.github.com/pyramation/0ce63b6026cc15a68c46454af2c879de
However, this implementation is conflating UI and transaction state. I think a solid implementation could involve adding an option to the client option that enables an emitter, or some state object that can emit state to objects outside of the class instance during a transaction, potentially messages/state like is_signing, is_broadcasting