Make ZetaClient modular enough so new chain integration can be added as "plugin" #1761
Labels
feature:idea
An early idea for a feature. Used as reference to follow new feature integrations
zetaclient
Issues related to ZetaClient
Milestone
Is your feature request related to a problem? Please describe.
We want to support new chains in the future. We currently support signing transactions with the TSS for EVM chains and Bitcoin, supporting new protocols might involve complex changes. Making the ZetaClient modular so new chains can be integrated as a plugin would simplify adding new chains:
Describe the solution you'd like
An interface must be clearly defined for what is a chain bridge. We have right now a client and a signer interface. The two would need to be analysed if they are generalizable enough to represent signer for any chain.
Other change might be necessary to make integration easier: example:
Start
andStop
look related to the actual implementation for the ZetaClient logic, we might consider removing these methods.grouped in one interface:
The logic to retrieve signer should also be refactored to make abstraction of what is EVM chains or Bitcoin chains. Typically, the
ChainBridge
interface would provide a unique name or identifier, then this identifier is used in the config for the chain to be supported in interoperability.In a place in the code, the list of supported chain bridges would be provided, this list can easily be modified to add support, or remove support for new chains.
The text was updated successfully, but these errors were encountered: