Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimal implementation of Sovereign chain context to support packet relaying #128

Closed
1 of 18 tasks
soareschen opened this issue Feb 8, 2024 · 1 comment
Closed
1 of 18 tasks

Comments

@soareschen
Copy link
Collaborator

soareschen commented Feb 8, 2024

Summary

The chain context dependencies that are required for the default packet relayer to work is specified in the constraint closure here:

SrcChain: HasErrorType
+ HasRuntime
+ HasChainId
+ CanSendMessages
+ CanIncrementHeight
+ CanQueryChainStatus
+ HasLoggerType<Logger = Relay::Logger>
+ HasClientStateFields<DstChain>
+ HasConsensusStateType<DstChain>
+ HasCounterpartyMessageHeight<DstChain>
+ CanReadPacketFields<DstChain, OutgoingPacket = Relay::Packet>
+ CanLogChainPacket<DstChain>
+ CanQueryClientState<DstChain>
+ CanQueryConsensusState<DstChain>
+ CanQueryConsensusStateHeight<DstChain>
+ CanBuildReceivePacketPayload<DstChain>
+ CanBuildUpdateClientPayload<DstChain>
+ CanBuildAckPacketMessage<DstChain>
+ CanBuildUpdateClientMessage<DstChain>
+ CanBuildTimeoutUnorderedPacketMessage<DstChain>,
DstChain: HasErrorType
+ HasRuntime
+ HasChainId
+ CanSendMessages
+ CanIncrementHeight
+ CanQueryChainStatus
+ HasClientStateFields<SrcChain>
+ HasConsensusStateType<SrcChain>
+ HasCounterpartyMessageHeight<SrcChain>
+ HasWriteAckEvent<SrcChain>
+ CanReadPacketFields<SrcChain, IncomingPacket = Relay::Packet>
+ CanQueryClientState<SrcChain>
+ CanQueryReceivedPacket<SrcChain>
+ CanQueryConsensusState<SrcChain>
+ CanQueryConsensusStateHeight<SrcChain>
+ CanBuildAckPacketPayload<SrcChain>
+ CanBuildUpdateClientPayload<SrcChain>
+ CanBuildTimeoutUnorderedPacketPayload<SrcChain>
+ CanBuildUpdateClientMessage<SrcChain>
+ CanBuildReceivePacketMessage<SrcChain>,

To support packet relaying, the sovereign chain context would need to at minimum implement the traits specified in the constraint closure. This issue would track the major implementation progress.

Types

  • HasClientStateType
  • HasConsensusStateType

Queries

  • CanQueryChainStatus
  • CanQueryClientState
  • CanQueryConsensusState
  • CanQueryConsensusStateHeight
  • CanQueryPacketIsReceived

Payloads

  • CanBuildCreateClientPayload
  • CanBuildUpdateClientPayload
  • CanBuildReceivePacketPayload
  • CanBuildAckPacketPayload
  • CanBuildTimeoutUnorderedPacketPayload

Messages

  • CanBuildCreateClientMessage
  • CanBuildUpdateClientMessage
  • CanBuildAckPacketMessage
  • CanBuildTimeoutUnorderedPacketMessage
  • CanBuildReceivePacketMessage

Transaction

@soareschen
Copy link
Collaborator Author

Done in previous work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant