Backgroud: Zetaclient and Zetacore now follow separate release cycles, and it would be easier to manage if we could separate out the binaries into separate repositories
Ideally we should separate them out cleanly to make sure zwtaclient is not dependant on zetacore. this would mean extracting the common logic out to a spearate repository that can be used by both zetacore and zetaclient
┌─────────────────────────────────────────────────────────┐
│ github.com/zeta-chain/zeta-types │
│ ┌──────────────┐ ┌──────────────┐ ┌─────────────────┐ │
│ │ proto/types │ │ pkg/* │ │ encoding config │ │
│ │ (generated) │ │ (chains, │ │ (codec setup) │ │
│ │ │ │ crypto...) │ │ │ │
│ └──────────────┘ └──────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────┘
↑ ↑
│ │
┌──────────┴───────────┐ ┌──────────┴───────────┐
│ zeta-chain/zetacore │ │ zeta-chain/zetaclient│
│ │ │ │
│ - x/*/keeper │ │ - chains/ │
│ - app/ │ │ - orchestrator/ │
│ - cmd/zetacored │ │ - tss/ │
│ │ │ - zetacore/ (client)│
│ Imports: │ │ │
│ └─ zeta-types │ │ Imports: │
│ │ │ └─ zeta-types │
└──────────────────────┘ └──────────────────────┘
- The first step in this design would involve extrating the proto types into a separate repo and using that , this refactor is substantial
Currently, all types are defined in the proto package, and they are generated in the respective module x/crosschain/types, x/observer/types . This is a design that all cosmos chains follow inluding the SDK. Moving the types would add additional friction in our development flow, which has anything to do with types
Based on this I would recommend not to split the two repositiories .
Backgroud: Zetaclient and Zetacore now follow separate release cycles, and it would be easier to manage if we could separate out the binaries into separate repositories
Ideally we should separate them out cleanly to make sure zwtaclient is not dependant on zetacore. this would mean extracting the common logic out to a spearate repository that can be used by both zetacore and zetaclient
Currently, all types are defined in the proto package, and they are generated in the respective module
x/crosschain/types,x/observer/types. This is a design that all cosmos chains follow inluding the SDK. Moving the types would add additional friction in our development flow, which has anything to do with typesBased on this I would recommend not to split the two repositiories .