-
Notifications
You must be signed in to change notification settings - Fork 12
Description
Context
ChainHub provides information about IBC Connection IDs, Channel IDs, and Denoms. Each orchestration contract has its own ChainHub for faster lookups and fine-grained control.
At the time of writing, ChainHub will fall back to a remote lookup to agoricNames for chain and connection info if none is present in the local state. Denom/asset info must be provided to ChainHub directly but can be fetched from agoricNames for convenience.
Also at the time writing, Agoric/agoric-sdk#10230 is still open so certain environments, like Emerynet, will have no information in agoricNames. This means contracts must provide the information themselves.
Problem
The deployers of dapp-orchestration-basics should have the ability to update information in the local ChainHub. They shouldn't need to restart the contract to do this.
Suggested Fix
@agoric/orchestration exports prepareChainHubAdmin which can be used as a CreatorFacet. In a simple implementation, the creatorFacet can be referenced in a future CoreEval that's sole purpose is to update chain info (using registerChain and registerAsset). A different approach might use a governedFacet to expose this functionality to contract admins.