Background
The goal here is to set up the necessary definitions and functions to scaffold the initial version of the ICA app by following IBC-go designs as our reference and starting point. To consider this task complete, we should:
- Define all the essential domain types and ensure they can be properly converted to and from ICA proto types.
- Create an initial abstraction that establishes the required contexts and handlers for each of the controller and host chains.
This should allow us to evaluate the abstractions on the Basecoin-rs side, which serves as our testing environment.