penumbra_sdk_proto/gen/
tendermint.types.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct ValidatorSet {
4    #[prost(message, repeated, tag = "1")]
5    pub validators: ::prost::alloc::vec::Vec<Validator>,
6    #[prost(message, optional, tag = "2")]
7    pub proposer: ::core::option::Option<Validator>,
8    #[prost(int64, tag = "3")]
9    pub total_voting_power: i64,
10}
11impl ::prost::Name for ValidatorSet {
12    const NAME: &'static str = "ValidatorSet";
13    const PACKAGE: &'static str = "tendermint.types";
14    fn full_name() -> ::prost::alloc::string::String {
15        "tendermint.types.ValidatorSet".into()
16    }
17    fn type_url() -> ::prost::alloc::string::String {
18        "/tendermint.types.ValidatorSet".into()
19    }
20}
21#[derive(Clone, PartialEq, ::prost::Message)]
22pub struct Validator {
23    #[prost(bytes = "vec", tag = "1")]
24    pub address: ::prost::alloc::vec::Vec<u8>,
25    #[prost(message, optional, tag = "2")]
26    pub pub_key: ::core::option::Option<super::crypto::PublicKey>,
27    #[prost(int64, tag = "3")]
28    pub voting_power: i64,
29    #[prost(int64, tag = "4")]
30    pub proposer_priority: i64,
31}
32impl ::prost::Name for Validator {
33    const NAME: &'static str = "Validator";
34    const PACKAGE: &'static str = "tendermint.types";
35    fn full_name() -> ::prost::alloc::string::String {
36        "tendermint.types.Validator".into()
37    }
38    fn type_url() -> ::prost::alloc::string::String {
39        "/tendermint.types.Validator".into()
40    }
41}
42#[derive(Clone, PartialEq, ::prost::Message)]
43pub struct SimpleValidator {
44    #[prost(message, optional, tag = "1")]
45    pub pub_key: ::core::option::Option<super::crypto::PublicKey>,
46    #[prost(int64, tag = "2")]
47    pub voting_power: i64,
48}
49impl ::prost::Name for SimpleValidator {
50    const NAME: &'static str = "SimpleValidator";
51    const PACKAGE: &'static str = "tendermint.types";
52    fn full_name() -> ::prost::alloc::string::String {
53        "tendermint.types.SimpleValidator".into()
54    }
55    fn type_url() -> ::prost::alloc::string::String {
56        "/tendermint.types.SimpleValidator".into()
57    }
58}
59/// PartsetHeader
60#[derive(Clone, PartialEq, ::prost::Message)]
61pub struct PartSetHeader {
62    #[prost(uint32, tag = "1")]
63    pub total: u32,
64    #[prost(bytes = "vec", tag = "2")]
65    pub hash: ::prost::alloc::vec::Vec<u8>,
66}
67impl ::prost::Name for PartSetHeader {
68    const NAME: &'static str = "PartSetHeader";
69    const PACKAGE: &'static str = "tendermint.types";
70    fn full_name() -> ::prost::alloc::string::String {
71        "tendermint.types.PartSetHeader".into()
72    }
73    fn type_url() -> ::prost::alloc::string::String {
74        "/tendermint.types.PartSetHeader".into()
75    }
76}
77#[derive(Clone, PartialEq, ::prost::Message)]
78pub struct Part {
79    #[prost(uint32, tag = "1")]
80    pub index: u32,
81    #[prost(bytes = "vec", tag = "2")]
82    pub bytes: ::prost::alloc::vec::Vec<u8>,
83    #[prost(message, optional, tag = "3")]
84    pub proof: ::core::option::Option<super::crypto::Proof>,
85}
86impl ::prost::Name for Part {
87    const NAME: &'static str = "Part";
88    const PACKAGE: &'static str = "tendermint.types";
89    fn full_name() -> ::prost::alloc::string::String {
90        "tendermint.types.Part".into()
91    }
92    fn type_url() -> ::prost::alloc::string::String {
93        "/tendermint.types.Part".into()
94    }
95}
96/// BlockID
97#[derive(Clone, PartialEq, ::prost::Message)]
98pub struct BlockId {
99    #[prost(bytes = "vec", tag = "1")]
100    pub hash: ::prost::alloc::vec::Vec<u8>,
101    #[prost(message, optional, tag = "2")]
102    pub part_set_header: ::core::option::Option<PartSetHeader>,
103}
104impl ::prost::Name for BlockId {
105    const NAME: &'static str = "BlockID";
106    const PACKAGE: &'static str = "tendermint.types";
107    fn full_name() -> ::prost::alloc::string::String {
108        "tendermint.types.BlockID".into()
109    }
110    fn type_url() -> ::prost::alloc::string::String {
111        "/tendermint.types.BlockID".into()
112    }
113}
114/// Header defines the structure of a block header.
115#[derive(Clone, PartialEq, ::prost::Message)]
116pub struct Header {
117    /// basic block info
118    #[prost(message, optional, tag = "1")]
119    pub version: ::core::option::Option<super::version::Consensus>,
120    #[prost(string, tag = "2")]
121    pub chain_id: ::prost::alloc::string::String,
122    #[prost(int64, tag = "3")]
123    pub height: i64,
124    #[prost(message, optional, tag = "4")]
125    pub time: ::core::option::Option<::pbjson_types::Timestamp>,
126    /// prev block info
127    #[prost(message, optional, tag = "5")]
128    pub last_block_id: ::core::option::Option<BlockId>,
129    /// hashes of block data
130    ///
131    /// commit from validators from the last block
132    #[prost(bytes = "vec", tag = "6")]
133    pub last_commit_hash: ::prost::alloc::vec::Vec<u8>,
134    /// transactions
135    #[prost(bytes = "vec", tag = "7")]
136    pub data_hash: ::prost::alloc::vec::Vec<u8>,
137    /// hashes from the app output from the prev block
138    ///
139    /// validators for the current block
140    #[prost(bytes = "vec", tag = "8")]
141    pub validators_hash: ::prost::alloc::vec::Vec<u8>,
142    /// validators for the next block
143    #[prost(bytes = "vec", tag = "9")]
144    pub next_validators_hash: ::prost::alloc::vec::Vec<u8>,
145    /// consensus params for current block
146    #[prost(bytes = "vec", tag = "10")]
147    pub consensus_hash: ::prost::alloc::vec::Vec<u8>,
148    /// state after txs from the previous block
149    #[prost(bytes = "vec", tag = "11")]
150    pub app_hash: ::prost::alloc::vec::Vec<u8>,
151    /// root hash of all results from the txs from the previous block
152    #[prost(bytes = "vec", tag = "12")]
153    pub last_results_hash: ::prost::alloc::vec::Vec<u8>,
154    /// consensus info
155    ///
156    /// evidence included in the block
157    #[prost(bytes = "vec", tag = "13")]
158    pub evidence_hash: ::prost::alloc::vec::Vec<u8>,
159    /// original proposer of the block
160    #[prost(bytes = "vec", tag = "14")]
161    pub proposer_address: ::prost::alloc::vec::Vec<u8>,
162}
163impl ::prost::Name for Header {
164    const NAME: &'static str = "Header";
165    const PACKAGE: &'static str = "tendermint.types";
166    fn full_name() -> ::prost::alloc::string::String {
167        "tendermint.types.Header".into()
168    }
169    fn type_url() -> ::prost::alloc::string::String {
170        "/tendermint.types.Header".into()
171    }
172}
173/// Data contains the set of transactions included in the block
174#[derive(Clone, PartialEq, ::prost::Message)]
175pub struct Data {
176    /// Txs that will be applied by state @ block.Height+1.
177    /// NOTE: not all txs here are valid.  We're just agreeing on the order first.
178    /// This means that block.AppHash does not include these txs.
179    #[prost(bytes = "vec", repeated, tag = "1")]
180    pub txs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
181}
182impl ::prost::Name for Data {
183    const NAME: &'static str = "Data";
184    const PACKAGE: &'static str = "tendermint.types";
185    fn full_name() -> ::prost::alloc::string::String {
186        "tendermint.types.Data".into()
187    }
188    fn type_url() -> ::prost::alloc::string::String {
189        "/tendermint.types.Data".into()
190    }
191}
192/// Vote represents a prevote, precommit, or commit vote from validators for
193/// consensus.
194#[derive(Clone, PartialEq, ::prost::Message)]
195pub struct Vote {
196    #[prost(enumeration = "SignedMsgType", tag = "1")]
197    pub r#type: i32,
198    #[prost(int64, tag = "2")]
199    pub height: i64,
200    #[prost(int32, tag = "3")]
201    pub round: i32,
202    /// zero if vote is nil.
203    #[prost(message, optional, tag = "4")]
204    pub block_id: ::core::option::Option<BlockId>,
205    #[prost(message, optional, tag = "5")]
206    pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
207    #[prost(bytes = "vec", tag = "6")]
208    pub validator_address: ::prost::alloc::vec::Vec<u8>,
209    #[prost(int32, tag = "7")]
210    pub validator_index: i32,
211    #[prost(bytes = "vec", tag = "8")]
212    pub signature: ::prost::alloc::vec::Vec<u8>,
213}
214impl ::prost::Name for Vote {
215    const NAME: &'static str = "Vote";
216    const PACKAGE: &'static str = "tendermint.types";
217    fn full_name() -> ::prost::alloc::string::String {
218        "tendermint.types.Vote".into()
219    }
220    fn type_url() -> ::prost::alloc::string::String {
221        "/tendermint.types.Vote".into()
222    }
223}
224/// Commit contains the evidence that a block was committed by a set of validators.
225#[derive(Clone, PartialEq, ::prost::Message)]
226pub struct Commit {
227    #[prost(int64, tag = "1")]
228    pub height: i64,
229    #[prost(int32, tag = "2")]
230    pub round: i32,
231    #[prost(message, optional, tag = "3")]
232    pub block_id: ::core::option::Option<BlockId>,
233    #[prost(message, repeated, tag = "4")]
234    pub signatures: ::prost::alloc::vec::Vec<CommitSig>,
235}
236impl ::prost::Name for Commit {
237    const NAME: &'static str = "Commit";
238    const PACKAGE: &'static str = "tendermint.types";
239    fn full_name() -> ::prost::alloc::string::String {
240        "tendermint.types.Commit".into()
241    }
242    fn type_url() -> ::prost::alloc::string::String {
243        "/tendermint.types.Commit".into()
244    }
245}
246/// CommitSig is a part of the Vote included in a Commit.
247#[derive(Clone, PartialEq, ::prost::Message)]
248pub struct CommitSig {
249    #[prost(enumeration = "BlockIdFlag", tag = "1")]
250    pub block_id_flag: i32,
251    #[prost(bytes = "vec", tag = "2")]
252    pub validator_address: ::prost::alloc::vec::Vec<u8>,
253    #[prost(message, optional, tag = "3")]
254    pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
255    #[prost(bytes = "vec", tag = "4")]
256    pub signature: ::prost::alloc::vec::Vec<u8>,
257}
258impl ::prost::Name for CommitSig {
259    const NAME: &'static str = "CommitSig";
260    const PACKAGE: &'static str = "tendermint.types";
261    fn full_name() -> ::prost::alloc::string::String {
262        "tendermint.types.CommitSig".into()
263    }
264    fn type_url() -> ::prost::alloc::string::String {
265        "/tendermint.types.CommitSig".into()
266    }
267}
268#[derive(Clone, PartialEq, ::prost::Message)]
269pub struct Proposal {
270    #[prost(enumeration = "SignedMsgType", tag = "1")]
271    pub r#type: i32,
272    #[prost(int64, tag = "2")]
273    pub height: i64,
274    #[prost(int32, tag = "3")]
275    pub round: i32,
276    #[prost(int32, tag = "4")]
277    pub pol_round: i32,
278    #[prost(message, optional, tag = "5")]
279    pub block_id: ::core::option::Option<BlockId>,
280    #[prost(message, optional, tag = "6")]
281    pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
282    #[prost(bytes = "vec", tag = "7")]
283    pub signature: ::prost::alloc::vec::Vec<u8>,
284}
285impl ::prost::Name for Proposal {
286    const NAME: &'static str = "Proposal";
287    const PACKAGE: &'static str = "tendermint.types";
288    fn full_name() -> ::prost::alloc::string::String {
289        "tendermint.types.Proposal".into()
290    }
291    fn type_url() -> ::prost::alloc::string::String {
292        "/tendermint.types.Proposal".into()
293    }
294}
295#[derive(Clone, PartialEq, ::prost::Message)]
296pub struct SignedHeader {
297    #[prost(message, optional, tag = "1")]
298    pub header: ::core::option::Option<Header>,
299    #[prost(message, optional, tag = "2")]
300    pub commit: ::core::option::Option<Commit>,
301}
302impl ::prost::Name for SignedHeader {
303    const NAME: &'static str = "SignedHeader";
304    const PACKAGE: &'static str = "tendermint.types";
305    fn full_name() -> ::prost::alloc::string::String {
306        "tendermint.types.SignedHeader".into()
307    }
308    fn type_url() -> ::prost::alloc::string::String {
309        "/tendermint.types.SignedHeader".into()
310    }
311}
312#[derive(Clone, PartialEq, ::prost::Message)]
313pub struct LightBlock {
314    #[prost(message, optional, tag = "1")]
315    pub signed_header: ::core::option::Option<SignedHeader>,
316    #[prost(message, optional, tag = "2")]
317    pub validator_set: ::core::option::Option<ValidatorSet>,
318}
319impl ::prost::Name for LightBlock {
320    const NAME: &'static str = "LightBlock";
321    const PACKAGE: &'static str = "tendermint.types";
322    fn full_name() -> ::prost::alloc::string::String {
323        "tendermint.types.LightBlock".into()
324    }
325    fn type_url() -> ::prost::alloc::string::String {
326        "/tendermint.types.LightBlock".into()
327    }
328}
329#[derive(Clone, PartialEq, ::prost::Message)]
330pub struct BlockMeta {
331    #[prost(message, optional, tag = "1")]
332    pub block_id: ::core::option::Option<BlockId>,
333    #[prost(int64, tag = "2")]
334    pub block_size: i64,
335    #[prost(message, optional, tag = "3")]
336    pub header: ::core::option::Option<Header>,
337    #[prost(int64, tag = "4")]
338    pub num_txs: i64,
339}
340impl ::prost::Name for BlockMeta {
341    const NAME: &'static str = "BlockMeta";
342    const PACKAGE: &'static str = "tendermint.types";
343    fn full_name() -> ::prost::alloc::string::String {
344        "tendermint.types.BlockMeta".into()
345    }
346    fn type_url() -> ::prost::alloc::string::String {
347        "/tendermint.types.BlockMeta".into()
348    }
349}
350/// TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree.
351#[derive(Clone, PartialEq, ::prost::Message)]
352pub struct TxProof {
353    #[prost(bytes = "vec", tag = "1")]
354    pub root_hash: ::prost::alloc::vec::Vec<u8>,
355    #[prost(bytes = "vec", tag = "2")]
356    pub data: ::prost::alloc::vec::Vec<u8>,
357    #[prost(message, optional, tag = "3")]
358    pub proof: ::core::option::Option<super::crypto::Proof>,
359}
360impl ::prost::Name for TxProof {
361    const NAME: &'static str = "TxProof";
362    const PACKAGE: &'static str = "tendermint.types";
363    fn full_name() -> ::prost::alloc::string::String {
364        "tendermint.types.TxProof".into()
365    }
366    fn type_url() -> ::prost::alloc::string::String {
367        "/tendermint.types.TxProof".into()
368    }
369}
370/// BlockIdFlag indicates which BlcokID the signature is for
371#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
372#[repr(i32)]
373pub enum BlockIdFlag {
374    Unknown = 0,
375    Absent = 1,
376    Commit = 2,
377    Nil = 3,
378}
379impl BlockIdFlag {
380    /// String value of the enum field names used in the ProtoBuf definition.
381    ///
382    /// The values are not transformed in any way and thus are considered stable
383    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
384    pub fn as_str_name(&self) -> &'static str {
385        match self {
386            Self::Unknown => "BLOCK_ID_FLAG_UNKNOWN",
387            Self::Absent => "BLOCK_ID_FLAG_ABSENT",
388            Self::Commit => "BLOCK_ID_FLAG_COMMIT",
389            Self::Nil => "BLOCK_ID_FLAG_NIL",
390        }
391    }
392    /// Creates an enum from field names used in the ProtoBuf definition.
393    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
394        match value {
395            "BLOCK_ID_FLAG_UNKNOWN" => Some(Self::Unknown),
396            "BLOCK_ID_FLAG_ABSENT" => Some(Self::Absent),
397            "BLOCK_ID_FLAG_COMMIT" => Some(Self::Commit),
398            "BLOCK_ID_FLAG_NIL" => Some(Self::Nil),
399            _ => None,
400        }
401    }
402}
403/// SignedMsgType is a type of signed message in the consensus.
404#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
405#[repr(i32)]
406pub enum SignedMsgType {
407    Unknown = 0,
408    /// Votes
409    Prevote = 1,
410    Precommit = 2,
411    /// Proposals
412    Proposal = 32,
413}
414impl SignedMsgType {
415    /// String value of the enum field names used in the ProtoBuf definition.
416    ///
417    /// The values are not transformed in any way and thus are considered stable
418    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
419    pub fn as_str_name(&self) -> &'static str {
420        match self {
421            Self::Unknown => "SIGNED_MSG_TYPE_UNKNOWN",
422            Self::Prevote => "SIGNED_MSG_TYPE_PREVOTE",
423            Self::Precommit => "SIGNED_MSG_TYPE_PRECOMMIT",
424            Self::Proposal => "SIGNED_MSG_TYPE_PROPOSAL",
425        }
426    }
427    /// Creates an enum from field names used in the ProtoBuf definition.
428    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
429        match value {
430            "SIGNED_MSG_TYPE_UNKNOWN" => Some(Self::Unknown),
431            "SIGNED_MSG_TYPE_PREVOTE" => Some(Self::Prevote),
432            "SIGNED_MSG_TYPE_PRECOMMIT" => Some(Self::Precommit),
433            "SIGNED_MSG_TYPE_PROPOSAL" => Some(Self::Proposal),
434            _ => None,
435        }
436    }
437}
438#[derive(Clone, PartialEq, ::prost::Message)]
439pub struct Evidence {
440    #[prost(oneof = "evidence::Sum", tags = "1, 2")]
441    pub sum: ::core::option::Option<evidence::Sum>,
442}
443/// Nested message and enum types in `Evidence`.
444pub mod evidence {
445    #[derive(Clone, PartialEq, ::prost::Oneof)]
446    pub enum Sum {
447        #[prost(message, tag = "1")]
448        DuplicateVoteEvidence(super::DuplicateVoteEvidence),
449        #[prost(message, tag = "2")]
450        LightClientAttackEvidence(super::LightClientAttackEvidence),
451    }
452}
453impl ::prost::Name for Evidence {
454    const NAME: &'static str = "Evidence";
455    const PACKAGE: &'static str = "tendermint.types";
456    fn full_name() -> ::prost::alloc::string::String {
457        "tendermint.types.Evidence".into()
458    }
459    fn type_url() -> ::prost::alloc::string::String {
460        "/tendermint.types.Evidence".into()
461    }
462}
463/// DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes.
464#[derive(Clone, PartialEq, ::prost::Message)]
465pub struct DuplicateVoteEvidence {
466    #[prost(message, optional, tag = "1")]
467    pub vote_a: ::core::option::Option<Vote>,
468    #[prost(message, optional, tag = "2")]
469    pub vote_b: ::core::option::Option<Vote>,
470    #[prost(int64, tag = "3")]
471    pub total_voting_power: i64,
472    #[prost(int64, tag = "4")]
473    pub validator_power: i64,
474    #[prost(message, optional, tag = "5")]
475    pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
476}
477impl ::prost::Name for DuplicateVoteEvidence {
478    const NAME: &'static str = "DuplicateVoteEvidence";
479    const PACKAGE: &'static str = "tendermint.types";
480    fn full_name() -> ::prost::alloc::string::String {
481        "tendermint.types.DuplicateVoteEvidence".into()
482    }
483    fn type_url() -> ::prost::alloc::string::String {
484        "/tendermint.types.DuplicateVoteEvidence".into()
485    }
486}
487/// LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client.
488#[derive(Clone, PartialEq, ::prost::Message)]
489pub struct LightClientAttackEvidence {
490    #[prost(message, optional, tag = "1")]
491    pub conflicting_block: ::core::option::Option<LightBlock>,
492    #[prost(int64, tag = "2")]
493    pub common_height: i64,
494    #[prost(message, repeated, tag = "3")]
495    pub byzantine_validators: ::prost::alloc::vec::Vec<Validator>,
496    #[prost(int64, tag = "4")]
497    pub total_voting_power: i64,
498    #[prost(message, optional, tag = "5")]
499    pub timestamp: ::core::option::Option<::pbjson_types::Timestamp>,
500}
501impl ::prost::Name for LightClientAttackEvidence {
502    const NAME: &'static str = "LightClientAttackEvidence";
503    const PACKAGE: &'static str = "tendermint.types";
504    fn full_name() -> ::prost::alloc::string::String {
505        "tendermint.types.LightClientAttackEvidence".into()
506    }
507    fn type_url() -> ::prost::alloc::string::String {
508        "/tendermint.types.LightClientAttackEvidence".into()
509    }
510}
511#[derive(Clone, PartialEq, ::prost::Message)]
512pub struct EvidenceList {
513    #[prost(message, repeated, tag = "1")]
514    pub evidence: ::prost::alloc::vec::Vec<Evidence>,
515}
516impl ::prost::Name for EvidenceList {
517    const NAME: &'static str = "EvidenceList";
518    const PACKAGE: &'static str = "tendermint.types";
519    fn full_name() -> ::prost::alloc::string::String {
520        "tendermint.types.EvidenceList".into()
521    }
522    fn type_url() -> ::prost::alloc::string::String {
523        "/tendermint.types.EvidenceList".into()
524    }
525}
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct Block {
528    #[prost(message, optional, tag = "1")]
529    pub header: ::core::option::Option<Header>,
530    #[prost(message, optional, tag = "2")]
531    pub data: ::core::option::Option<Data>,
532    #[prost(message, optional, tag = "3")]
533    pub evidence: ::core::option::Option<EvidenceList>,
534    #[prost(message, optional, tag = "4")]
535    pub last_commit: ::core::option::Option<Commit>,
536}
537impl ::prost::Name for Block {
538    const NAME: &'static str = "Block";
539    const PACKAGE: &'static str = "tendermint.types";
540    fn full_name() -> ::prost::alloc::string::String {
541        "tendermint.types.Block".into()
542    }
543    fn type_url() -> ::prost::alloc::string::String {
544        "/tendermint.types.Block".into()
545    }
546}
547/// ConsensusParams contains consensus critical parameters that determine the
548/// validity of blocks.
549#[derive(Clone, PartialEq, ::prost::Message)]
550pub struct ConsensusParams {
551    #[prost(message, optional, tag = "1")]
552    pub block: ::core::option::Option<BlockParams>,
553    #[prost(message, optional, tag = "2")]
554    pub evidence: ::core::option::Option<EvidenceParams>,
555    #[prost(message, optional, tag = "3")]
556    pub validator: ::core::option::Option<ValidatorParams>,
557    #[prost(message, optional, tag = "4")]
558    pub version: ::core::option::Option<VersionParams>,
559}
560impl ::prost::Name for ConsensusParams {
561    const NAME: &'static str = "ConsensusParams";
562    const PACKAGE: &'static str = "tendermint.types";
563    fn full_name() -> ::prost::alloc::string::String {
564        "tendermint.types.ConsensusParams".into()
565    }
566    fn type_url() -> ::prost::alloc::string::String {
567        "/tendermint.types.ConsensusParams".into()
568    }
569}
570/// BlockParams contains limits on the block size.
571#[derive(Clone, Copy, PartialEq, ::prost::Message)]
572pub struct BlockParams {
573    /// Max block size, in bytes.
574    /// Note: must be greater than 0
575    #[prost(int64, tag = "1")]
576    pub max_bytes: i64,
577    /// Max gas per block.
578    /// Note: must be greater or equal to -1
579    #[prost(int64, tag = "2")]
580    pub max_gas: i64,
581}
582impl ::prost::Name for BlockParams {
583    const NAME: &'static str = "BlockParams";
584    const PACKAGE: &'static str = "tendermint.types";
585    fn full_name() -> ::prost::alloc::string::String {
586        "tendermint.types.BlockParams".into()
587    }
588    fn type_url() -> ::prost::alloc::string::String {
589        "/tendermint.types.BlockParams".into()
590    }
591}
592/// EvidenceParams determine how we handle evidence of malfeasance.
593#[derive(Clone, Copy, PartialEq, ::prost::Message)]
594pub struct EvidenceParams {
595    /// Max age of evidence, in blocks.
596    ///
597    /// The basic formula for calculating this is: MaxAgeDuration / {average block
598    /// time}.
599    #[prost(int64, tag = "1")]
600    pub max_age_num_blocks: i64,
601    /// Max age of evidence, in time.
602    ///
603    /// It should correspond with an app's "unbonding period" or other similar
604    /// mechanism for handling [Nothing-At-Stake
605    /// attacks](<https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed>).
606    #[prost(message, optional, tag = "2")]
607    pub max_age_duration: ::core::option::Option<::pbjson_types::Duration>,
608    /// This sets the maximum size of total evidence in bytes that can be committed in a single block.
609    /// and should fall comfortably under the max block bytes.
610    /// Default is 1048576 or 1MB
611    #[prost(int64, tag = "3")]
612    pub max_bytes: i64,
613}
614impl ::prost::Name for EvidenceParams {
615    const NAME: &'static str = "EvidenceParams";
616    const PACKAGE: &'static str = "tendermint.types";
617    fn full_name() -> ::prost::alloc::string::String {
618        "tendermint.types.EvidenceParams".into()
619    }
620    fn type_url() -> ::prost::alloc::string::String {
621        "/tendermint.types.EvidenceParams".into()
622    }
623}
624/// ValidatorParams restrict the public key types validators can use.
625/// NOTE: uses ABCI pubkey naming, not Amino names.
626#[derive(Clone, PartialEq, ::prost::Message)]
627pub struct ValidatorParams {
628    #[prost(string, repeated, tag = "1")]
629    pub pub_key_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
630}
631impl ::prost::Name for ValidatorParams {
632    const NAME: &'static str = "ValidatorParams";
633    const PACKAGE: &'static str = "tendermint.types";
634    fn full_name() -> ::prost::alloc::string::String {
635        "tendermint.types.ValidatorParams".into()
636    }
637    fn type_url() -> ::prost::alloc::string::String {
638        "/tendermint.types.ValidatorParams".into()
639    }
640}
641/// VersionParams contains the ABCI application version.
642#[derive(Clone, Copy, PartialEq, ::prost::Message)]
643pub struct VersionParams {
644    #[prost(uint64, tag = "1")]
645    pub app: u64,
646}
647impl ::prost::Name for VersionParams {
648    const NAME: &'static str = "VersionParams";
649    const PACKAGE: &'static str = "tendermint.types";
650    fn full_name() -> ::prost::alloc::string::String {
651        "tendermint.types.VersionParams".into()
652    }
653    fn type_url() -> ::prost::alloc::string::String {
654        "/tendermint.types.VersionParams".into()
655    }
656}
657/// HashedParams is a subset of ConsensusParams.
658///
659/// It is hashed into the Header.ConsensusHash.
660#[derive(Clone, Copy, PartialEq, ::prost::Message)]
661pub struct HashedParams {
662    #[prost(int64, tag = "1")]
663    pub block_max_bytes: i64,
664    #[prost(int64, tag = "2")]
665    pub block_max_gas: i64,
666}
667impl ::prost::Name for HashedParams {
668    const NAME: &'static str = "HashedParams";
669    const PACKAGE: &'static str = "tendermint.types";
670    fn full_name() -> ::prost::alloc::string::String {
671        "tendermint.types.HashedParams".into()
672    }
673    fn type_url() -> ::prost::alloc::string::String {
674        "/tendermint.types.HashedParams".into()
675    }
676}