-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Problem: solomachine v3 proto is not included
- Loading branch information
Showing
1 changed file
with
99 additions
and
0 deletions.
There are no files selected for viewing
99 changes: 99 additions & 0 deletions
99
solo-machine-core/proto/ibc/lightclients/solomachine/v3/solomachine.proto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
syntax = "proto3"; | ||
|
||
package ibc.lightclients.solomachine.v3; | ||
|
||
option go_package = "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine;solomachine"; | ||
|
||
import "gogoproto/gogo.proto"; | ||
import "google/protobuf/any.proto"; | ||
|
||
// ClientState defines a solo machine client that tracks the current consensus | ||
// state and if the client is frozen. | ||
message ClientState { | ||
option (gogoproto.goproto_getters) = false; | ||
// latest sequence of the client state | ||
uint64 sequence = 1; | ||
// frozen sequence of the solo machine | ||
bool is_frozen = 2 [(gogoproto.moretags) = "yaml:\"is_frozen\""]; | ||
ConsensusState consensus_state = 3 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; | ||
} | ||
|
||
// ConsensusState defines a solo machine consensus state. The sequence of a | ||
// consensus state is contained in the "height" key used in storing the | ||
// consensus state. | ||
message ConsensusState { | ||
option (gogoproto.goproto_getters) = false; | ||
// public key of the solo machine | ||
google.protobuf.Any public_key = 1 [(gogoproto.moretags) = "yaml:\"public_key\""]; | ||
// diversifier allows the same public key to be re-used across different solo | ||
// machine clients (potentially on different chains) without being considered | ||
// misbehaviour. | ||
string diversifier = 2; | ||
uint64 timestamp = 3; | ||
} | ||
|
||
// Header defines a solo machine consensus header | ||
message Header { | ||
option (gogoproto.goproto_getters) = false; | ||
|
||
uint64 timestamp = 1; | ||
bytes signature = 2; | ||
google.protobuf.Any new_public_key = 3 [(gogoproto.moretags) = "yaml:\"new_public_key\""]; | ||
string new_diversifier = 4 [(gogoproto.moretags) = "yaml:\"new_diversifier\""]; | ||
} | ||
|
||
// Misbehaviour defines misbehaviour for a solo machine which consists | ||
// of a sequence and two signatures over different messages at that sequence. | ||
message Misbehaviour { | ||
option (gogoproto.goproto_getters) = false; | ||
|
||
uint64 sequence = 1; | ||
SignatureAndData signature_one = 2 [(gogoproto.moretags) = "yaml:\"signature_one\""]; | ||
SignatureAndData signature_two = 3 [(gogoproto.moretags) = "yaml:\"signature_two\""]; | ||
} | ||
|
||
// SignatureAndData contains a signature and the data signed over to create that | ||
// signature. | ||
message SignatureAndData { | ||
option (gogoproto.goproto_getters) = false; | ||
|
||
bytes signature = 1; | ||
bytes path = 2; | ||
bytes data = 3; | ||
uint64 timestamp = 4; | ||
} | ||
|
||
// TimestampedSignatureData contains the signature data and the timestamp of the | ||
// signature. | ||
message TimestampedSignatureData { | ||
option (gogoproto.goproto_getters) = false; | ||
|
||
bytes signature_data = 1 [(gogoproto.moretags) = "yaml:\"signature_data\""]; | ||
uint64 timestamp = 2; | ||
} | ||
|
||
// SignBytes defines the signed bytes used for signature verification. | ||
message SignBytes { | ||
option (gogoproto.goproto_getters) = false; | ||
|
||
// the sequence number | ||
uint64 sequence = 1; | ||
// the proof timestamp | ||
uint64 timestamp = 2; | ||
// the public key diversifier | ||
string diversifier = 3; | ||
// the standardised path bytes | ||
bytes path = 4; | ||
// the marshaled data bytes | ||
bytes data = 5; | ||
} | ||
|
||
// HeaderData returns the SignBytes data for update verification. | ||
message HeaderData { | ||
option (gogoproto.goproto_getters) = false; | ||
|
||
// header public key | ||
google.protobuf.Any new_pub_key = 1 [(gogoproto.moretags) = "yaml:\"new_pub_key\""]; | ||
// header diversifier | ||
string new_diversifier = 2 [(gogoproto.moretags) = "yaml:\"new_diversifier\""]; | ||
} |