ibc_proto/prost/
ibc.lightclients.solomachine.v3.rs

1// This file is @generated by prost-build.
2/// ClientState defines a solo machine client that tracks the current consensus
3/// state and if the client is frozen.
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct ClientState {
6    /// latest sequence of the client state
7    #[prost(uint64, tag = "1")]
8    pub sequence: u64,
9    /// frozen sequence of the solo machine
10    #[prost(bool, tag = "2")]
11    pub is_frozen: bool,
12    #[prost(message, optional, tag = "3")]
13    pub consensus_state: ::core::option::Option<ConsensusState>,
14}
15impl ::prost::Name for ClientState {
16    const NAME: &'static str = "ClientState";
17    const PACKAGE: &'static str = "ibc.lightclients.solomachine.v3";
18    fn full_name() -> ::prost::alloc::string::String {
19        "ibc.lightclients.solomachine.v3.ClientState".into()
20    }
21    fn type_url() -> ::prost::alloc::string::String {
22        "/ibc.lightclients.solomachine.v3.ClientState".into()
23    }
24}
25/// ConsensusState defines a solo machine consensus state. The sequence of a
26/// consensus state is contained in the "height" key used in storing the
27/// consensus state.
28#[derive(Clone, PartialEq, ::prost::Message)]
29pub struct ConsensusState {
30    /// public key of the solo machine
31    #[prost(message, optional, tag = "1")]
32    pub public_key: ::core::option::Option<::tendermint_proto::google::protobuf::Any>,
33    /// diversifier allows the same public key to be re-used across different solo
34    /// machine clients (potentially on different chains) without being considered
35    /// misbehaviour.
36    #[prost(string, tag = "2")]
37    pub diversifier: ::prost::alloc::string::String,
38    #[prost(uint64, tag = "3")]
39    pub timestamp: u64,
40}
41impl ::prost::Name for ConsensusState {
42    const NAME: &'static str = "ConsensusState";
43    const PACKAGE: &'static str = "ibc.lightclients.solomachine.v3";
44    fn full_name() -> ::prost::alloc::string::String {
45        "ibc.lightclients.solomachine.v3.ConsensusState".into()
46    }
47    fn type_url() -> ::prost::alloc::string::String {
48        "/ibc.lightclients.solomachine.v3.ConsensusState".into()
49    }
50}
51/// Header defines a solo machine consensus header
52#[derive(Clone, PartialEq, ::prost::Message)]
53pub struct Header {
54    #[prost(uint64, tag = "1")]
55    pub timestamp: u64,
56    #[prost(bytes = "vec", tag = "2")]
57    pub signature: ::prost::alloc::vec::Vec<u8>,
58    #[prost(message, optional, tag = "3")]
59    pub new_public_key: ::core::option::Option<
60        ::tendermint_proto::google::protobuf::Any,
61    >,
62    #[prost(string, tag = "4")]
63    pub new_diversifier: ::prost::alloc::string::String,
64}
65impl ::prost::Name for Header {
66    const NAME: &'static str = "Header";
67    const PACKAGE: &'static str = "ibc.lightclients.solomachine.v3";
68    fn full_name() -> ::prost::alloc::string::String {
69        "ibc.lightclients.solomachine.v3.Header".into()
70    }
71    fn type_url() -> ::prost::alloc::string::String {
72        "/ibc.lightclients.solomachine.v3.Header".into()
73    }
74}
75/// Misbehaviour defines misbehaviour for a solo machine which consists
76/// of a sequence and two signatures over different messages at that sequence.
77#[derive(Clone, PartialEq, ::prost::Message)]
78pub struct Misbehaviour {
79    #[prost(uint64, tag = "1")]
80    pub sequence: u64,
81    #[prost(message, optional, tag = "2")]
82    pub signature_one: ::core::option::Option<SignatureAndData>,
83    #[prost(message, optional, tag = "3")]
84    pub signature_two: ::core::option::Option<SignatureAndData>,
85}
86impl ::prost::Name for Misbehaviour {
87    const NAME: &'static str = "Misbehaviour";
88    const PACKAGE: &'static str = "ibc.lightclients.solomachine.v3";
89    fn full_name() -> ::prost::alloc::string::String {
90        "ibc.lightclients.solomachine.v3.Misbehaviour".into()
91    }
92    fn type_url() -> ::prost::alloc::string::String {
93        "/ibc.lightclients.solomachine.v3.Misbehaviour".into()
94    }
95}
96/// SignatureAndData contains a signature and the data signed over to create that
97/// signature.
98#[derive(Clone, PartialEq, ::prost::Message)]
99pub struct SignatureAndData {
100    #[prost(bytes = "vec", tag = "1")]
101    pub signature: ::prost::alloc::vec::Vec<u8>,
102    #[prost(bytes = "vec", tag = "2")]
103    pub path: ::prost::alloc::vec::Vec<u8>,
104    #[prost(bytes = "vec", tag = "3")]
105    pub data: ::prost::alloc::vec::Vec<u8>,
106    #[prost(uint64, tag = "4")]
107    pub timestamp: u64,
108}
109impl ::prost::Name for SignatureAndData {
110    const NAME: &'static str = "SignatureAndData";
111    const PACKAGE: &'static str = "ibc.lightclients.solomachine.v3";
112    fn full_name() -> ::prost::alloc::string::String {
113        "ibc.lightclients.solomachine.v3.SignatureAndData".into()
114    }
115    fn type_url() -> ::prost::alloc::string::String {
116        "/ibc.lightclients.solomachine.v3.SignatureAndData".into()
117    }
118}
119/// TimestampedSignatureData contains the signature data and the timestamp of the
120/// signature.
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct TimestampedSignatureData {
123    #[prost(bytes = "vec", tag = "1")]
124    pub signature_data: ::prost::alloc::vec::Vec<u8>,
125    #[prost(uint64, tag = "2")]
126    pub timestamp: u64,
127}
128impl ::prost::Name for TimestampedSignatureData {
129    const NAME: &'static str = "TimestampedSignatureData";
130    const PACKAGE: &'static str = "ibc.lightclients.solomachine.v3";
131    fn full_name() -> ::prost::alloc::string::String {
132        "ibc.lightclients.solomachine.v3.TimestampedSignatureData".into()
133    }
134    fn type_url() -> ::prost::alloc::string::String {
135        "/ibc.lightclients.solomachine.v3.TimestampedSignatureData".into()
136    }
137}
138/// SignBytes defines the signed bytes used for signature verification.
139#[derive(Clone, PartialEq, ::prost::Message)]
140pub struct SignBytes {
141    /// the sequence number
142    #[prost(uint64, tag = "1")]
143    pub sequence: u64,
144    /// the proof timestamp
145    #[prost(uint64, tag = "2")]
146    pub timestamp: u64,
147    /// the public key diversifier
148    #[prost(string, tag = "3")]
149    pub diversifier: ::prost::alloc::string::String,
150    /// the standardised path bytes
151    #[prost(bytes = "vec", tag = "4")]
152    pub path: ::prost::alloc::vec::Vec<u8>,
153    /// the marshaled data bytes
154    #[prost(bytes = "vec", tag = "5")]
155    pub data: ::prost::alloc::vec::Vec<u8>,
156}
157impl ::prost::Name for SignBytes {
158    const NAME: &'static str = "SignBytes";
159    const PACKAGE: &'static str = "ibc.lightclients.solomachine.v3";
160    fn full_name() -> ::prost::alloc::string::String {
161        "ibc.lightclients.solomachine.v3.SignBytes".into()
162    }
163    fn type_url() -> ::prost::alloc::string::String {
164        "/ibc.lightclients.solomachine.v3.SignBytes".into()
165    }
166}
167/// HeaderData returns the SignBytes data for update verification.
168#[derive(Clone, PartialEq, ::prost::Message)]
169pub struct HeaderData {
170    /// header public key
171    #[prost(message, optional, tag = "1")]
172    pub new_pub_key: ::core::option::Option<::tendermint_proto::google::protobuf::Any>,
173    /// header diversifier
174    #[prost(string, tag = "2")]
175    pub new_diversifier: ::prost::alloc::string::String,
176}
177impl ::prost::Name for HeaderData {
178    const NAME: &'static str = "HeaderData";
179    const PACKAGE: &'static str = "ibc.lightclients.solomachine.v3";
180    fn full_name() -> ::prost::alloc::string::String {
181        "ibc.lightclients.solomachine.v3.HeaderData".into()
182    }
183    fn type_url() -> ::prost::alloc::string::String {
184        "/ibc.lightclients.solomachine.v3.HeaderData".into()
185    }
186}