neutron_std/types/tendermint/
abci.rs

1use neutron_std_derive::CosmwasmExt;
2#[allow(clippy::derive_partial_eq_without_eq)]
3#[derive(
4    Clone,
5    PartialEq,
6    Eq,
7    ::prost::Message,
8    ::serde::Serialize,
9    ::serde::Deserialize,
10    ::schemars::JsonSchema,
11    CosmwasmExt,
12)]
13#[proto_message(type_url = "/tendermint.abci.Request")]
14pub struct Request {
15    #[prost(
16        oneof = "request::Value",
17        tags = "1, 2, 3, 5, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20"
18    )]
19    pub value: ::core::option::Option<request::Value>,
20}
21/// Nested message and enum types in `Request`.
22pub mod request {
23    #[allow(clippy::derive_partial_eq_without_eq)]
24    #[derive(
25        Clone,
26        PartialEq,
27        Eq,
28        ::prost::Oneof,
29        ::serde::Serialize,
30        ::serde::Deserialize,
31        ::schemars::JsonSchema,
32    )]
33    pub enum Value {
34        #[prost(message, tag = "1")]
35        Echo(super::RequestEcho),
36        #[prost(message, tag = "2")]
37        Flush(super::RequestFlush),
38        #[prost(message, tag = "3")]
39        Info(super::RequestInfo),
40        #[prost(message, tag = "5")]
41        InitChain(super::RequestInitChain),
42        #[prost(message, tag = "6")]
43        Query(super::RequestQuery),
44        #[prost(message, tag = "8")]
45        CheckTx(super::RequestCheckTx),
46        #[prost(message, tag = "11")]
47        Commit(super::RequestCommit),
48        #[prost(message, tag = "12")]
49        ListSnapshots(super::RequestListSnapshots),
50        #[prost(message, tag = "13")]
51        OfferSnapshot(super::RequestOfferSnapshot),
52        #[prost(message, tag = "14")]
53        LoadSnapshotChunk(super::RequestLoadSnapshotChunk),
54        #[prost(message, tag = "15")]
55        ApplySnapshotChunk(super::RequestApplySnapshotChunk),
56        #[prost(message, tag = "16")]
57        PrepareProposal(super::RequestPrepareProposal),
58        #[prost(message, tag = "17")]
59        ProcessProposal(super::RequestProcessProposal),
60        #[prost(message, tag = "18")]
61        ExtendVote(super::RequestExtendVote),
62        #[prost(message, tag = "19")]
63        VerifyVoteExtension(super::RequestVerifyVoteExtension),
64        #[prost(message, tag = "20")]
65        FinalizeBlock(super::RequestFinalizeBlock),
66    }
67}
68#[allow(clippy::derive_partial_eq_without_eq)]
69#[derive(
70    Clone,
71    PartialEq,
72    Eq,
73    ::prost::Message,
74    ::serde::Serialize,
75    ::serde::Deserialize,
76    ::schemars::JsonSchema,
77    CosmwasmExt,
78)]
79#[proto_message(type_url = "/tendermint.abci.RequestEcho")]
80pub struct RequestEcho {
81    #[prost(string, tag = "1")]
82    pub message: ::prost::alloc::string::String,
83}
84#[allow(clippy::derive_partial_eq_without_eq)]
85#[derive(
86    Clone,
87    PartialEq,
88    Eq,
89    ::prost::Message,
90    ::serde::Serialize,
91    ::serde::Deserialize,
92    ::schemars::JsonSchema,
93    CosmwasmExt,
94)]
95#[proto_message(type_url = "/tendermint.abci.RequestFlush")]
96pub struct RequestFlush {}
97#[allow(clippy::derive_partial_eq_without_eq)]
98#[derive(
99    Clone,
100    PartialEq,
101    Eq,
102    ::prost::Message,
103    ::serde::Serialize,
104    ::serde::Deserialize,
105    ::schemars::JsonSchema,
106    CosmwasmExt,
107)]
108#[proto_message(type_url = "/tendermint.abci.RequestInfo")]
109pub struct RequestInfo {
110    #[prost(string, tag = "1")]
111    pub version: ::prost::alloc::string::String,
112    #[prost(uint64, tag = "2")]
113    #[serde(
114        serialize_with = "crate::serde::as_str::serialize",
115        deserialize_with = "crate::serde::as_str::deserialize"
116    )]
117    pub block_version: u64,
118    #[prost(uint64, tag = "3")]
119    #[serde(
120        serialize_with = "crate::serde::as_str::serialize",
121        deserialize_with = "crate::serde::as_str::deserialize"
122    )]
123    pub p2p_version: u64,
124    #[prost(string, tag = "4")]
125    pub abci_version: ::prost::alloc::string::String,
126}
127#[allow(clippy::derive_partial_eq_without_eq)]
128#[derive(
129    Clone,
130    PartialEq,
131    Eq,
132    ::prost::Message,
133    ::serde::Serialize,
134    ::serde::Deserialize,
135    ::schemars::JsonSchema,
136    CosmwasmExt,
137)]
138#[proto_message(type_url = "/tendermint.abci.RequestInitChain")]
139pub struct RequestInitChain {
140    #[prost(message, optional, tag = "1")]
141    pub time: ::core::option::Option<crate::shim::Timestamp>,
142    #[prost(string, tag = "2")]
143    #[serde(alias = "chainID")]
144    pub chain_id: ::prost::alloc::string::String,
145    #[prost(message, optional, tag = "3")]
146    pub consensus_params: ::core::option::Option<super::types::ConsensusParams>,
147    #[prost(message, repeated, tag = "4")]
148    pub validators: ::prost::alloc::vec::Vec<ValidatorUpdate>,
149    #[prost(bytes = "vec", tag = "5")]
150    #[serde(
151        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
152        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
153    )]
154    pub app_state_bytes: ::prost::alloc::vec::Vec<u8>,
155    #[prost(int64, tag = "6")]
156    #[serde(
157        serialize_with = "crate::serde::as_str::serialize",
158        deserialize_with = "crate::serde::as_str::deserialize"
159    )]
160    pub initial_height: i64,
161}
162#[allow(clippy::derive_partial_eq_without_eq)]
163#[derive(
164    Clone,
165    PartialEq,
166    Eq,
167    ::prost::Message,
168    ::serde::Serialize,
169    ::serde::Deserialize,
170    ::schemars::JsonSchema,
171    CosmwasmExt,
172)]
173#[proto_message(type_url = "/tendermint.abci.RequestQuery")]
174pub struct RequestQuery {
175    #[prost(bytes = "vec", tag = "1")]
176    #[serde(
177        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
178        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
179    )]
180    pub data: ::prost::alloc::vec::Vec<u8>,
181    #[prost(string, tag = "2")]
182    pub path: ::prost::alloc::string::String,
183    #[prost(int64, tag = "3")]
184    #[serde(
185        serialize_with = "crate::serde::as_str::serialize",
186        deserialize_with = "crate::serde::as_str::deserialize"
187    )]
188    pub height: i64,
189    #[prost(bool, tag = "4")]
190    pub prove: bool,
191}
192#[allow(clippy::derive_partial_eq_without_eq)]
193#[derive(
194    Clone,
195    PartialEq,
196    Eq,
197    ::prost::Message,
198    ::serde::Serialize,
199    ::serde::Deserialize,
200    ::schemars::JsonSchema,
201    CosmwasmExt,
202)]
203#[proto_message(type_url = "/tendermint.abci.RequestCheckTx")]
204pub struct RequestCheckTx {
205    #[prost(bytes = "vec", tag = "1")]
206    #[serde(
207        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
208        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
209    )]
210    pub tx: ::prost::alloc::vec::Vec<u8>,
211    #[prost(enumeration = "CheckTxType", tag = "2")]
212    #[serde(
213        serialize_with = "crate::serde::as_str::serialize",
214        deserialize_with = "crate::serde::as_str::deserialize"
215    )]
216    pub r#type: i32,
217}
218#[allow(clippy::derive_partial_eq_without_eq)]
219#[derive(
220    Clone,
221    PartialEq,
222    Eq,
223    ::prost::Message,
224    ::serde::Serialize,
225    ::serde::Deserialize,
226    ::schemars::JsonSchema,
227    CosmwasmExt,
228)]
229#[proto_message(type_url = "/tendermint.abci.RequestCommit")]
230pub struct RequestCommit {}
231/// lists available snapshots
232#[allow(clippy::derive_partial_eq_without_eq)]
233#[derive(
234    Clone,
235    PartialEq,
236    Eq,
237    ::prost::Message,
238    ::serde::Serialize,
239    ::serde::Deserialize,
240    ::schemars::JsonSchema,
241    CosmwasmExt,
242)]
243#[proto_message(type_url = "/tendermint.abci.RequestListSnapshots")]
244pub struct RequestListSnapshots {}
245/// offers a snapshot to the application
246#[allow(clippy::derive_partial_eq_without_eq)]
247#[derive(
248    Clone,
249    PartialEq,
250    Eq,
251    ::prost::Message,
252    ::serde::Serialize,
253    ::serde::Deserialize,
254    ::schemars::JsonSchema,
255    CosmwasmExt,
256)]
257#[proto_message(type_url = "/tendermint.abci.RequestOfferSnapshot")]
258pub struct RequestOfferSnapshot {
259    /// snapshot offered by peers
260    #[prost(message, optional, tag = "1")]
261    pub snapshot: ::core::option::Option<Snapshot>,
262    /// light client-verified app hash for snapshot height
263    #[prost(bytes = "vec", tag = "2")]
264    #[serde(
265        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
266        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
267    )]
268    pub app_hash: ::prost::alloc::vec::Vec<u8>,
269}
270/// loads a snapshot chunk
271#[allow(clippy::derive_partial_eq_without_eq)]
272#[derive(
273    Clone,
274    PartialEq,
275    Eq,
276    ::prost::Message,
277    ::serde::Serialize,
278    ::serde::Deserialize,
279    ::schemars::JsonSchema,
280    CosmwasmExt,
281)]
282#[proto_message(type_url = "/tendermint.abci.RequestLoadSnapshotChunk")]
283pub struct RequestLoadSnapshotChunk {
284    #[prost(uint64, tag = "1")]
285    #[serde(
286        serialize_with = "crate::serde::as_str::serialize",
287        deserialize_with = "crate::serde::as_str::deserialize"
288    )]
289    pub height: u64,
290    #[prost(uint32, tag = "2")]
291    #[serde(
292        serialize_with = "crate::serde::as_str::serialize",
293        deserialize_with = "crate::serde::as_str::deserialize"
294    )]
295    pub format: u32,
296    #[prost(uint32, tag = "3")]
297    #[serde(
298        serialize_with = "crate::serde::as_str::serialize",
299        deserialize_with = "crate::serde::as_str::deserialize"
300    )]
301    pub chunk: u32,
302}
303/// Applies a snapshot chunk
304#[allow(clippy::derive_partial_eq_without_eq)]
305#[derive(
306    Clone,
307    PartialEq,
308    Eq,
309    ::prost::Message,
310    ::serde::Serialize,
311    ::serde::Deserialize,
312    ::schemars::JsonSchema,
313    CosmwasmExt,
314)]
315#[proto_message(type_url = "/tendermint.abci.RequestApplySnapshotChunk")]
316pub struct RequestApplySnapshotChunk {
317    #[prost(uint32, tag = "1")]
318    #[serde(
319        serialize_with = "crate::serde::as_str::serialize",
320        deserialize_with = "crate::serde::as_str::deserialize"
321    )]
322    pub index: u32,
323    #[prost(bytes = "vec", tag = "2")]
324    #[serde(
325        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
326        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
327    )]
328    pub chunk: ::prost::alloc::vec::Vec<u8>,
329    #[prost(string, tag = "3")]
330    pub sender: ::prost::alloc::string::String,
331}
332#[allow(clippy::derive_partial_eq_without_eq)]
333#[derive(
334    Clone,
335    PartialEq,
336    Eq,
337    ::prost::Message,
338    ::serde::Serialize,
339    ::serde::Deserialize,
340    ::schemars::JsonSchema,
341    CosmwasmExt,
342)]
343#[proto_message(type_url = "/tendermint.abci.RequestPrepareProposal")]
344pub struct RequestPrepareProposal {
345    /// the modified transactions cannot exceed this size.
346    #[prost(int64, tag = "1")]
347    #[serde(
348        serialize_with = "crate::serde::as_str::serialize",
349        deserialize_with = "crate::serde::as_str::deserialize"
350    )]
351    pub max_tx_bytes: i64,
352    /// txs is an array of transactions that will be included in a block,
353    /// sent to the app for possible modifications.
354    #[prost(bytes = "vec", repeated, tag = "2")]
355    pub txs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
356    #[prost(message, optional, tag = "3")]
357    pub local_last_commit: ::core::option::Option<ExtendedCommitInfo>,
358    #[prost(message, repeated, tag = "4")]
359    pub misbehavior: ::prost::alloc::vec::Vec<Misbehavior>,
360    #[prost(int64, tag = "5")]
361    #[serde(
362        serialize_with = "crate::serde::as_str::serialize",
363        deserialize_with = "crate::serde::as_str::deserialize"
364    )]
365    pub height: i64,
366    #[prost(message, optional, tag = "6")]
367    pub time: ::core::option::Option<crate::shim::Timestamp>,
368    #[prost(bytes = "vec", tag = "7")]
369    #[serde(
370        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
371        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
372    )]
373    pub next_validators_hash: ::prost::alloc::vec::Vec<u8>,
374    /// address of the public key of the validator proposing the block.
375    #[prost(bytes = "vec", tag = "8")]
376    #[serde(
377        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
378        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
379    )]
380    pub proposer_address: ::prost::alloc::vec::Vec<u8>,
381}
382#[allow(clippy::derive_partial_eq_without_eq)]
383#[derive(
384    Clone,
385    PartialEq,
386    Eq,
387    ::prost::Message,
388    ::serde::Serialize,
389    ::serde::Deserialize,
390    ::schemars::JsonSchema,
391    CosmwasmExt,
392)]
393#[proto_message(type_url = "/tendermint.abci.RequestProcessProposal")]
394pub struct RequestProcessProposal {
395    #[prost(bytes = "vec", repeated, tag = "1")]
396    pub txs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
397    #[prost(message, optional, tag = "2")]
398    pub proposed_last_commit: ::core::option::Option<CommitInfo>,
399    #[prost(message, repeated, tag = "3")]
400    pub misbehavior: ::prost::alloc::vec::Vec<Misbehavior>,
401    /// hash is the merkle root hash of the fields of the proposed block.
402    #[prost(bytes = "vec", tag = "4")]
403    #[serde(
404        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
405        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
406    )]
407    pub hash: ::prost::alloc::vec::Vec<u8>,
408    #[prost(int64, tag = "5")]
409    #[serde(
410        serialize_with = "crate::serde::as_str::serialize",
411        deserialize_with = "crate::serde::as_str::deserialize"
412    )]
413    pub height: i64,
414    #[prost(message, optional, tag = "6")]
415    pub time: ::core::option::Option<crate::shim::Timestamp>,
416    #[prost(bytes = "vec", tag = "7")]
417    #[serde(
418        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
419        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
420    )]
421    pub next_validators_hash: ::prost::alloc::vec::Vec<u8>,
422    /// address of the public key of the original proposer of the block.
423    #[prost(bytes = "vec", tag = "8")]
424    #[serde(
425        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
426        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
427    )]
428    pub proposer_address: ::prost::alloc::vec::Vec<u8>,
429}
430/// Extends a vote with application-injected data
431#[allow(clippy::derive_partial_eq_without_eq)]
432#[derive(
433    Clone,
434    PartialEq,
435    Eq,
436    ::prost::Message,
437    ::serde::Serialize,
438    ::serde::Deserialize,
439    ::schemars::JsonSchema,
440    CosmwasmExt,
441)]
442#[proto_message(type_url = "/tendermint.abci.RequestExtendVote")]
443pub struct RequestExtendVote {
444    /// the hash of the block that this vote may be referring to
445    #[prost(bytes = "vec", tag = "1")]
446    #[serde(
447        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
448        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
449    )]
450    pub hash: ::prost::alloc::vec::Vec<u8>,
451    /// the height of the extended vote
452    #[prost(int64, tag = "2")]
453    #[serde(
454        serialize_with = "crate::serde::as_str::serialize",
455        deserialize_with = "crate::serde::as_str::deserialize"
456    )]
457    pub height: i64,
458    /// info of the block that this vote may be referring to
459    #[prost(message, optional, tag = "3")]
460    pub time: ::core::option::Option<crate::shim::Timestamp>,
461    #[prost(bytes = "vec", repeated, tag = "4")]
462    pub txs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
463    #[prost(message, optional, tag = "5")]
464    pub proposed_last_commit: ::core::option::Option<CommitInfo>,
465    #[prost(message, repeated, tag = "6")]
466    pub misbehavior: ::prost::alloc::vec::Vec<Misbehavior>,
467    #[prost(bytes = "vec", tag = "7")]
468    #[serde(
469        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
470        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
471    )]
472    pub next_validators_hash: ::prost::alloc::vec::Vec<u8>,
473    /// address of the public key of the original proposer of the block.
474    #[prost(bytes = "vec", tag = "8")]
475    #[serde(
476        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
477        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
478    )]
479    pub proposer_address: ::prost::alloc::vec::Vec<u8>,
480}
481/// Verify the vote extension
482#[allow(clippy::derive_partial_eq_without_eq)]
483#[derive(
484    Clone,
485    PartialEq,
486    Eq,
487    ::prost::Message,
488    ::serde::Serialize,
489    ::serde::Deserialize,
490    ::schemars::JsonSchema,
491    CosmwasmExt,
492)]
493#[proto_message(type_url = "/tendermint.abci.RequestVerifyVoteExtension")]
494pub struct RequestVerifyVoteExtension {
495    /// the hash of the block that this received vote corresponds to
496    #[prost(bytes = "vec", tag = "1")]
497    #[serde(
498        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
499        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
500    )]
501    pub hash: ::prost::alloc::vec::Vec<u8>,
502    /// the validator that signed the vote extension
503    #[prost(bytes = "vec", tag = "2")]
504    #[serde(
505        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
506        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
507    )]
508    pub validator_address: ::prost::alloc::vec::Vec<u8>,
509    #[prost(int64, tag = "3")]
510    #[serde(
511        serialize_with = "crate::serde::as_str::serialize",
512        deserialize_with = "crate::serde::as_str::deserialize"
513    )]
514    pub height: i64,
515    #[prost(bytes = "vec", tag = "4")]
516    #[serde(
517        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
518        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
519    )]
520    pub vote_extension: ::prost::alloc::vec::Vec<u8>,
521}
522#[allow(clippy::derive_partial_eq_without_eq)]
523#[derive(
524    Clone,
525    PartialEq,
526    Eq,
527    ::prost::Message,
528    ::serde::Serialize,
529    ::serde::Deserialize,
530    ::schemars::JsonSchema,
531    CosmwasmExt,
532)]
533#[proto_message(type_url = "/tendermint.abci.RequestFinalizeBlock")]
534pub struct RequestFinalizeBlock {
535    #[prost(bytes = "vec", repeated, tag = "1")]
536    pub txs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
537    #[prost(message, optional, tag = "2")]
538    pub decided_last_commit: ::core::option::Option<CommitInfo>,
539    #[prost(message, repeated, tag = "3")]
540    pub misbehavior: ::prost::alloc::vec::Vec<Misbehavior>,
541    /// hash is the merkle root hash of the fields of the decided block.
542    #[prost(bytes = "vec", tag = "4")]
543    #[serde(
544        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
545        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
546    )]
547    pub hash: ::prost::alloc::vec::Vec<u8>,
548    #[prost(int64, tag = "5")]
549    #[serde(
550        serialize_with = "crate::serde::as_str::serialize",
551        deserialize_with = "crate::serde::as_str::deserialize"
552    )]
553    pub height: i64,
554    #[prost(message, optional, tag = "6")]
555    pub time: ::core::option::Option<crate::shim::Timestamp>,
556    #[prost(bytes = "vec", tag = "7")]
557    #[serde(
558        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
559        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
560    )]
561    pub next_validators_hash: ::prost::alloc::vec::Vec<u8>,
562    /// proposer_address is the address of the public key of the original proposer of the block.
563    #[prost(bytes = "vec", tag = "8")]
564    #[serde(
565        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
566        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
567    )]
568    pub proposer_address: ::prost::alloc::vec::Vec<u8>,
569}
570#[allow(clippy::derive_partial_eq_without_eq)]
571#[derive(
572    Clone,
573    PartialEq,
574    Eq,
575    ::prost::Message,
576    ::serde::Serialize,
577    ::serde::Deserialize,
578    ::schemars::JsonSchema,
579    CosmwasmExt,
580)]
581#[proto_message(type_url = "/tendermint.abci.Response")]
582pub struct Response {
583    #[prost(
584        oneof = "response::Value",
585        tags = "1, 2, 3, 4, 6, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21"
586    )]
587    pub value: ::core::option::Option<response::Value>,
588}
589/// Nested message and enum types in `Response`.
590pub mod response {
591    #[allow(clippy::derive_partial_eq_without_eq)]
592    #[derive(
593        Clone,
594        PartialEq,
595        Eq,
596        ::prost::Oneof,
597        ::serde::Serialize,
598        ::serde::Deserialize,
599        ::schemars::JsonSchema,
600    )]
601    pub enum Value {
602        #[prost(message, tag = "1")]
603        Exception(super::ResponseException),
604        #[prost(message, tag = "2")]
605        Echo(super::ResponseEcho),
606        #[prost(message, tag = "3")]
607        Flush(super::ResponseFlush),
608        #[prost(message, tag = "4")]
609        Info(super::ResponseInfo),
610        #[prost(message, tag = "6")]
611        InitChain(super::ResponseInitChain),
612        #[prost(message, tag = "7")]
613        Query(super::ResponseQuery),
614        #[prost(message, tag = "9")]
615        CheckTx(super::ResponseCheckTx),
616        #[prost(message, tag = "12")]
617        Commit(super::ResponseCommit),
618        #[prost(message, tag = "13")]
619        ListSnapshots(super::ResponseListSnapshots),
620        #[prost(message, tag = "14")]
621        OfferSnapshot(super::ResponseOfferSnapshot),
622        #[prost(message, tag = "15")]
623        LoadSnapshotChunk(super::ResponseLoadSnapshotChunk),
624        #[prost(message, tag = "16")]
625        ApplySnapshotChunk(super::ResponseApplySnapshotChunk),
626        #[prost(message, tag = "17")]
627        PrepareProposal(super::ResponsePrepareProposal),
628        #[prost(message, tag = "18")]
629        ProcessProposal(super::ResponseProcessProposal),
630        #[prost(message, tag = "19")]
631        ExtendVote(super::ResponseExtendVote),
632        #[prost(message, tag = "20")]
633        VerifyVoteExtension(super::ResponseVerifyVoteExtension),
634        #[prost(message, tag = "21")]
635        FinalizeBlock(super::ResponseFinalizeBlock),
636    }
637}
638/// nondeterministic
639#[allow(clippy::derive_partial_eq_without_eq)]
640#[derive(
641    Clone,
642    PartialEq,
643    Eq,
644    ::prost::Message,
645    ::serde::Serialize,
646    ::serde::Deserialize,
647    ::schemars::JsonSchema,
648    CosmwasmExt,
649)]
650#[proto_message(type_url = "/tendermint.abci.ResponseException")]
651pub struct ResponseException {
652    #[prost(string, tag = "1")]
653    pub error: ::prost::alloc::string::String,
654}
655#[allow(clippy::derive_partial_eq_without_eq)]
656#[derive(
657    Clone,
658    PartialEq,
659    Eq,
660    ::prost::Message,
661    ::serde::Serialize,
662    ::serde::Deserialize,
663    ::schemars::JsonSchema,
664    CosmwasmExt,
665)]
666#[proto_message(type_url = "/tendermint.abci.ResponseEcho")]
667pub struct ResponseEcho {
668    #[prost(string, tag = "1")]
669    pub message: ::prost::alloc::string::String,
670}
671#[allow(clippy::derive_partial_eq_without_eq)]
672#[derive(
673    Clone,
674    PartialEq,
675    Eq,
676    ::prost::Message,
677    ::serde::Serialize,
678    ::serde::Deserialize,
679    ::schemars::JsonSchema,
680    CosmwasmExt,
681)]
682#[proto_message(type_url = "/tendermint.abci.ResponseFlush")]
683pub struct ResponseFlush {}
684#[allow(clippy::derive_partial_eq_without_eq)]
685#[derive(
686    Clone,
687    PartialEq,
688    Eq,
689    ::prost::Message,
690    ::serde::Serialize,
691    ::serde::Deserialize,
692    ::schemars::JsonSchema,
693    CosmwasmExt,
694)]
695#[proto_message(type_url = "/tendermint.abci.ResponseInfo")]
696pub struct ResponseInfo {
697    #[prost(string, tag = "1")]
698    pub data: ::prost::alloc::string::String,
699    #[prost(string, tag = "2")]
700    pub version: ::prost::alloc::string::String,
701    #[prost(uint64, tag = "3")]
702    #[serde(
703        serialize_with = "crate::serde::as_str::serialize",
704        deserialize_with = "crate::serde::as_str::deserialize"
705    )]
706    pub app_version: u64,
707    #[prost(int64, tag = "4")]
708    #[serde(
709        serialize_with = "crate::serde::as_str::serialize",
710        deserialize_with = "crate::serde::as_str::deserialize"
711    )]
712    pub last_block_height: i64,
713    #[prost(bytes = "vec", tag = "5")]
714    #[serde(
715        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
716        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
717    )]
718    pub last_block_app_hash: ::prost::alloc::vec::Vec<u8>,
719}
720#[allow(clippy::derive_partial_eq_without_eq)]
721#[derive(
722    Clone,
723    PartialEq,
724    Eq,
725    ::prost::Message,
726    ::serde::Serialize,
727    ::serde::Deserialize,
728    ::schemars::JsonSchema,
729    CosmwasmExt,
730)]
731#[proto_message(type_url = "/tendermint.abci.ResponseInitChain")]
732pub struct ResponseInitChain {
733    #[prost(message, optional, tag = "1")]
734    pub consensus_params: ::core::option::Option<super::types::ConsensusParams>,
735    #[prost(message, repeated, tag = "2")]
736    pub validators: ::prost::alloc::vec::Vec<ValidatorUpdate>,
737    #[prost(bytes = "vec", tag = "3")]
738    #[serde(
739        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
740        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
741    )]
742    pub app_hash: ::prost::alloc::vec::Vec<u8>,
743}
744#[allow(clippy::derive_partial_eq_without_eq)]
745#[derive(
746    Clone,
747    PartialEq,
748    Eq,
749    ::prost::Message,
750    ::serde::Serialize,
751    ::serde::Deserialize,
752    ::schemars::JsonSchema,
753    CosmwasmExt,
754)]
755#[proto_message(type_url = "/tendermint.abci.ResponseQuery")]
756pub struct ResponseQuery {
757    #[prost(uint32, tag = "1")]
758    #[serde(
759        serialize_with = "crate::serde::as_str::serialize",
760        deserialize_with = "crate::serde::as_str::deserialize"
761    )]
762    pub code: u32,
763    /// bytes data = 2; // use "value" instead.
764    ///
765    /// nondeterministic
766    #[prost(string, tag = "3")]
767    pub log: ::prost::alloc::string::String,
768    /// nondeterministic
769    #[prost(string, tag = "4")]
770    pub info: ::prost::alloc::string::String,
771    #[prost(int64, tag = "5")]
772    #[serde(
773        serialize_with = "crate::serde::as_str::serialize",
774        deserialize_with = "crate::serde::as_str::deserialize"
775    )]
776    pub index: i64,
777    #[prost(bytes = "vec", tag = "6")]
778    #[serde(
779        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
780        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
781    )]
782    pub key: ::prost::alloc::vec::Vec<u8>,
783    #[prost(bytes = "vec", tag = "7")]
784    #[serde(
785        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
786        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
787    )]
788    pub value: ::prost::alloc::vec::Vec<u8>,
789    #[prost(message, optional, tag = "8")]
790    pub proof_ops: ::core::option::Option<super::crypto::ProofOps>,
791    #[prost(int64, tag = "9")]
792    #[serde(
793        serialize_with = "crate::serde::as_str::serialize",
794        deserialize_with = "crate::serde::as_str::deserialize"
795    )]
796    pub height: i64,
797    #[prost(string, tag = "10")]
798    pub codespace: ::prost::alloc::string::String,
799}
800#[allow(clippy::derive_partial_eq_without_eq)]
801#[derive(
802    Clone,
803    PartialEq,
804    Eq,
805    ::prost::Message,
806    ::serde::Serialize,
807    ::serde::Deserialize,
808    ::schemars::JsonSchema,
809    CosmwasmExt,
810)]
811#[proto_message(type_url = "/tendermint.abci.ResponseCheckTx")]
812pub struct ResponseCheckTx {
813    #[prost(uint32, tag = "1")]
814    #[serde(
815        serialize_with = "crate::serde::as_str::serialize",
816        deserialize_with = "crate::serde::as_str::deserialize"
817    )]
818    pub code: u32,
819    #[prost(bytes = "vec", tag = "2")]
820    #[serde(
821        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
822        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
823    )]
824    pub data: ::prost::alloc::vec::Vec<u8>,
825    /// nondeterministic
826    #[prost(string, tag = "3")]
827    pub log: ::prost::alloc::string::String,
828    /// nondeterministic
829    #[prost(string, tag = "4")]
830    pub info: ::prost::alloc::string::String,
831    #[prost(int64, tag = "5")]
832    #[serde(
833        serialize_with = "crate::serde::as_str::serialize",
834        deserialize_with = "crate::serde::as_str::deserialize"
835    )]
836    pub gas_wanted: i64,
837    #[prost(int64, tag = "6")]
838    #[serde(
839        serialize_with = "crate::serde::as_str::serialize",
840        deserialize_with = "crate::serde::as_str::deserialize"
841    )]
842    pub gas_used: i64,
843    #[prost(message, repeated, tag = "7")]
844    pub events: ::prost::alloc::vec::Vec<Event>,
845    #[prost(string, tag = "8")]
846    pub codespace: ::prost::alloc::string::String,
847}
848#[allow(clippy::derive_partial_eq_without_eq)]
849#[derive(
850    Clone,
851    PartialEq,
852    Eq,
853    ::prost::Message,
854    ::serde::Serialize,
855    ::serde::Deserialize,
856    ::schemars::JsonSchema,
857    CosmwasmExt,
858)]
859#[proto_message(type_url = "/tendermint.abci.ResponseCommit")]
860pub struct ResponseCommit {
861    #[prost(int64, tag = "3")]
862    #[serde(
863        serialize_with = "crate::serde::as_str::serialize",
864        deserialize_with = "crate::serde::as_str::deserialize"
865    )]
866    pub retain_height: i64,
867}
868#[allow(clippy::derive_partial_eq_without_eq)]
869#[derive(
870    Clone,
871    PartialEq,
872    Eq,
873    ::prost::Message,
874    ::serde::Serialize,
875    ::serde::Deserialize,
876    ::schemars::JsonSchema,
877    CosmwasmExt,
878)]
879#[proto_message(type_url = "/tendermint.abci.ResponseListSnapshots")]
880pub struct ResponseListSnapshots {
881    #[prost(message, repeated, tag = "1")]
882    pub snapshots: ::prost::alloc::vec::Vec<Snapshot>,
883}
884#[allow(clippy::derive_partial_eq_without_eq)]
885#[derive(
886    Clone,
887    PartialEq,
888    Eq,
889    ::prost::Message,
890    ::serde::Serialize,
891    ::serde::Deserialize,
892    ::schemars::JsonSchema,
893    CosmwasmExt,
894)]
895#[proto_message(type_url = "/tendermint.abci.ResponseOfferSnapshot")]
896pub struct ResponseOfferSnapshot {
897    #[prost(enumeration = "response_offer_snapshot::Result", tag = "1")]
898    #[serde(
899        serialize_with = "crate::serde::as_str::serialize",
900        deserialize_with = "crate::serde::as_str::deserialize"
901    )]
902    pub result: i32,
903}
904/// Nested message and enum types in `ResponseOfferSnapshot`.
905pub mod response_offer_snapshot {
906    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
907    #[repr(i32)]
908    #[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)]
909    pub enum Result {
910        /// Unknown result, abort all snapshot restoration
911        Unknown = 0,
912        /// Snapshot accepted, apply chunks
913        Accept = 1,
914        /// Abort all snapshot restoration
915        Abort = 2,
916        /// Reject this specific snapshot, try others
917        Reject = 3,
918        /// Reject all snapshots of this format, try others
919        RejectFormat = 4,
920        /// Reject all snapshots from the sender(s), try others
921        RejectSender = 5,
922    }
923    impl Result {
924        /// String value of the enum field names used in the ProtoBuf definition.
925        ///
926        /// The values are not transformed in any way and thus are considered stable
927        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
928        pub fn as_str_name(&self) -> &'static str {
929            match self {
930                Result::Unknown => "UNKNOWN",
931                Result::Accept => "ACCEPT",
932                Result::Abort => "ABORT",
933                Result::Reject => "REJECT",
934                Result::RejectFormat => "REJECT_FORMAT",
935                Result::RejectSender => "REJECT_SENDER",
936            }
937        }
938        /// Creates an enum from field names used in the ProtoBuf definition.
939        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
940            match value {
941                "UNKNOWN" => Some(Self::Unknown),
942                "ACCEPT" => Some(Self::Accept),
943                "ABORT" => Some(Self::Abort),
944                "REJECT" => Some(Self::Reject),
945                "REJECT_FORMAT" => Some(Self::RejectFormat),
946                "REJECT_SENDER" => Some(Self::RejectSender),
947                _ => None,
948            }
949        }
950    }
951}
952#[allow(clippy::derive_partial_eq_without_eq)]
953#[derive(
954    Clone,
955    PartialEq,
956    Eq,
957    ::prost::Message,
958    ::serde::Serialize,
959    ::serde::Deserialize,
960    ::schemars::JsonSchema,
961    CosmwasmExt,
962)]
963#[proto_message(type_url = "/tendermint.abci.ResponseLoadSnapshotChunk")]
964pub struct ResponseLoadSnapshotChunk {
965    #[prost(bytes = "vec", tag = "1")]
966    #[serde(
967        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
968        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
969    )]
970    pub chunk: ::prost::alloc::vec::Vec<u8>,
971}
972#[allow(clippy::derive_partial_eq_without_eq)]
973#[derive(
974    Clone,
975    PartialEq,
976    Eq,
977    ::prost::Message,
978    ::serde::Serialize,
979    ::serde::Deserialize,
980    ::schemars::JsonSchema,
981    CosmwasmExt,
982)]
983#[proto_message(type_url = "/tendermint.abci.ResponseApplySnapshotChunk")]
984pub struct ResponseApplySnapshotChunk {
985    #[prost(enumeration = "response_apply_snapshot_chunk::Result", tag = "1")]
986    #[serde(
987        serialize_with = "crate::serde::as_str::serialize",
988        deserialize_with = "crate::serde::as_str::deserialize"
989    )]
990    pub result: i32,
991    /// Chunks to refetch and reapply
992    #[prost(uint32, repeated, tag = "2")]
993    #[serde(
994        serialize_with = "crate::serde::as_str_vec::serialize",
995        deserialize_with = "crate::serde::as_str_vec::deserialize"
996    )]
997    pub refetch_chunks: ::prost::alloc::vec::Vec<u32>,
998    /// Chunk senders to reject and ban
999    #[prost(string, repeated, tag = "3")]
1000    pub reject_senders: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1001}
1002/// Nested message and enum types in `ResponseApplySnapshotChunk`.
1003pub mod response_apply_snapshot_chunk {
1004    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1005    #[repr(i32)]
1006    #[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)]
1007    pub enum Result {
1008        /// Unknown result, abort all snapshot restoration
1009        Unknown = 0,
1010        /// Chunk successfully accepted
1011        Accept = 1,
1012        /// Abort all snapshot restoration
1013        Abort = 2,
1014        /// Retry chunk (combine with refetch and reject)
1015        Retry = 3,
1016        /// Retry snapshot (combine with refetch and reject)
1017        RetrySnapshot = 4,
1018        /// Reject this snapshot, try others
1019        RejectSnapshot = 5,
1020    }
1021    impl Result {
1022        /// String value of the enum field names used in the ProtoBuf definition.
1023        ///
1024        /// The values are not transformed in any way and thus are considered stable
1025        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1026        pub fn as_str_name(&self) -> &'static str {
1027            match self {
1028                Result::Unknown => "UNKNOWN",
1029                Result::Accept => "ACCEPT",
1030                Result::Abort => "ABORT",
1031                Result::Retry => "RETRY",
1032                Result::RetrySnapshot => "RETRY_SNAPSHOT",
1033                Result::RejectSnapshot => "REJECT_SNAPSHOT",
1034            }
1035        }
1036        /// Creates an enum from field names used in the ProtoBuf definition.
1037        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1038            match value {
1039                "UNKNOWN" => Some(Self::Unknown),
1040                "ACCEPT" => Some(Self::Accept),
1041                "ABORT" => Some(Self::Abort),
1042                "RETRY" => Some(Self::Retry),
1043                "RETRY_SNAPSHOT" => Some(Self::RetrySnapshot),
1044                "REJECT_SNAPSHOT" => Some(Self::RejectSnapshot),
1045                _ => None,
1046            }
1047        }
1048    }
1049}
1050#[allow(clippy::derive_partial_eq_without_eq)]
1051#[derive(
1052    Clone,
1053    PartialEq,
1054    Eq,
1055    ::prost::Message,
1056    ::serde::Serialize,
1057    ::serde::Deserialize,
1058    ::schemars::JsonSchema,
1059    CosmwasmExt,
1060)]
1061#[proto_message(type_url = "/tendermint.abci.ResponsePrepareProposal")]
1062pub struct ResponsePrepareProposal {
1063    #[prost(bytes = "vec", repeated, tag = "1")]
1064    pub txs: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
1065}
1066#[allow(clippy::derive_partial_eq_without_eq)]
1067#[derive(
1068    Clone,
1069    PartialEq,
1070    Eq,
1071    ::prost::Message,
1072    ::serde::Serialize,
1073    ::serde::Deserialize,
1074    ::schemars::JsonSchema,
1075    CosmwasmExt,
1076)]
1077#[proto_message(type_url = "/tendermint.abci.ResponseProcessProposal")]
1078pub struct ResponseProcessProposal {
1079    #[prost(enumeration = "response_process_proposal::ProposalStatus", tag = "1")]
1080    #[serde(
1081        serialize_with = "crate::serde::as_str::serialize",
1082        deserialize_with = "crate::serde::as_str::deserialize"
1083    )]
1084    pub status: i32,
1085}
1086/// Nested message and enum types in `ResponseProcessProposal`.
1087pub mod response_process_proposal {
1088    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1089    #[repr(i32)]
1090    #[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)]
1091    pub enum ProposalStatus {
1092        Unknown = 0,
1093        Accept = 1,
1094        Reject = 2,
1095    }
1096    impl ProposalStatus {
1097        /// String value of the enum field names used in the ProtoBuf definition.
1098        ///
1099        /// The values are not transformed in any way and thus are considered stable
1100        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1101        pub fn as_str_name(&self) -> &'static str {
1102            match self {
1103                ProposalStatus::Unknown => "UNKNOWN",
1104                ProposalStatus::Accept => "ACCEPT",
1105                ProposalStatus::Reject => "REJECT",
1106            }
1107        }
1108        /// Creates an enum from field names used in the ProtoBuf definition.
1109        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1110            match value {
1111                "UNKNOWN" => Some(Self::Unknown),
1112                "ACCEPT" => Some(Self::Accept),
1113                "REJECT" => Some(Self::Reject),
1114                _ => None,
1115            }
1116        }
1117    }
1118}
1119#[allow(clippy::derive_partial_eq_without_eq)]
1120#[derive(
1121    Clone,
1122    PartialEq,
1123    Eq,
1124    ::prost::Message,
1125    ::serde::Serialize,
1126    ::serde::Deserialize,
1127    ::schemars::JsonSchema,
1128    CosmwasmExt,
1129)]
1130#[proto_message(type_url = "/tendermint.abci.ResponseExtendVote")]
1131pub struct ResponseExtendVote {
1132    #[prost(bytes = "vec", tag = "1")]
1133    #[serde(
1134        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1135        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1136    )]
1137    pub vote_extension: ::prost::alloc::vec::Vec<u8>,
1138}
1139#[allow(clippy::derive_partial_eq_without_eq)]
1140#[derive(
1141    Clone,
1142    PartialEq,
1143    Eq,
1144    ::prost::Message,
1145    ::serde::Serialize,
1146    ::serde::Deserialize,
1147    ::schemars::JsonSchema,
1148    CosmwasmExt,
1149)]
1150#[proto_message(type_url = "/tendermint.abci.ResponseVerifyVoteExtension")]
1151pub struct ResponseVerifyVoteExtension {
1152    #[prost(
1153        enumeration = "response_verify_vote_extension::VerifyStatus",
1154        tag = "1"
1155    )]
1156    #[serde(
1157        serialize_with = "crate::serde::as_str::serialize",
1158        deserialize_with = "crate::serde::as_str::deserialize"
1159    )]
1160    pub status: i32,
1161}
1162/// Nested message and enum types in `ResponseVerifyVoteExtension`.
1163pub mod response_verify_vote_extension {
1164    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1165    #[repr(i32)]
1166    #[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)]
1167    pub enum VerifyStatus {
1168        Unknown = 0,
1169        Accept = 1,
1170        /// Rejecting the vote extension will reject the entire precommit by the sender.
1171        /// Incorrectly implementing this thus has liveness implications as it may affect
1172        /// CometBFT's ability to receive 2/3+ valid votes to finalize the block.
1173        /// Honest nodes should never be rejected.
1174        Reject = 2,
1175    }
1176    impl VerifyStatus {
1177        /// String value of the enum field names used in the ProtoBuf definition.
1178        ///
1179        /// The values are not transformed in any way and thus are considered stable
1180        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1181        pub fn as_str_name(&self) -> &'static str {
1182            match self {
1183                VerifyStatus::Unknown => "UNKNOWN",
1184                VerifyStatus::Accept => "ACCEPT",
1185                VerifyStatus::Reject => "REJECT",
1186            }
1187        }
1188        /// Creates an enum from field names used in the ProtoBuf definition.
1189        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1190            match value {
1191                "UNKNOWN" => Some(Self::Unknown),
1192                "ACCEPT" => Some(Self::Accept),
1193                "REJECT" => Some(Self::Reject),
1194                _ => None,
1195            }
1196        }
1197    }
1198}
1199#[allow(clippy::derive_partial_eq_without_eq)]
1200#[derive(
1201    Clone,
1202    PartialEq,
1203    Eq,
1204    ::prost::Message,
1205    ::serde::Serialize,
1206    ::serde::Deserialize,
1207    ::schemars::JsonSchema,
1208    CosmwasmExt,
1209)]
1210#[proto_message(type_url = "/tendermint.abci.ResponseFinalizeBlock")]
1211pub struct ResponseFinalizeBlock {
1212    /// set of block events emmitted as part of executing the block
1213    #[prost(message, repeated, tag = "1")]
1214    pub events: ::prost::alloc::vec::Vec<Event>,
1215    /// the result of executing each transaction including the events
1216    /// the particular transction emitted. This should match the order
1217    /// of the transactions delivered in the block itself
1218    #[prost(message, repeated, tag = "2")]
1219    pub tx_results: ::prost::alloc::vec::Vec<ExecTxResult>,
1220    /// a list of updates to the validator set. These will reflect the validator set at current height + 2.
1221    #[prost(message, repeated, tag = "3")]
1222    pub validator_updates: ::prost::alloc::vec::Vec<ValidatorUpdate>,
1223    /// updates to the consensus params, if any.
1224    #[prost(message, optional, tag = "4")]
1225    pub consensus_param_updates: ::core::option::Option<super::types::ConsensusParams>,
1226    /// app_hash is the hash of the applications' state which is used to confirm that execution of the transactions was deterministic. It is up to the application to decide which algorithm to use.
1227    #[prost(bytes = "vec", tag = "5")]
1228    #[serde(
1229        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1230        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1231    )]
1232    pub app_hash: ::prost::alloc::vec::Vec<u8>,
1233}
1234#[allow(clippy::derive_partial_eq_without_eq)]
1235#[derive(
1236    Clone,
1237    PartialEq,
1238    Eq,
1239    ::prost::Message,
1240    ::serde::Serialize,
1241    ::serde::Deserialize,
1242    ::schemars::JsonSchema,
1243    CosmwasmExt,
1244)]
1245#[proto_message(type_url = "/tendermint.abci.CommitInfo")]
1246pub struct CommitInfo {
1247    #[prost(int32, tag = "1")]
1248    #[serde(
1249        serialize_with = "crate::serde::as_str::serialize",
1250        deserialize_with = "crate::serde::as_str::deserialize"
1251    )]
1252    pub round: i32,
1253    #[prost(message, repeated, tag = "2")]
1254    pub votes: ::prost::alloc::vec::Vec<VoteInfo>,
1255}
1256/// ExtendedCommitInfo is similar to CommitInfo except that it is only used in
1257/// the PrepareProposal request such that CometBFT can provide vote extensions
1258/// to the application.
1259#[allow(clippy::derive_partial_eq_without_eq)]
1260#[derive(
1261    Clone,
1262    PartialEq,
1263    Eq,
1264    ::prost::Message,
1265    ::serde::Serialize,
1266    ::serde::Deserialize,
1267    ::schemars::JsonSchema,
1268    CosmwasmExt,
1269)]
1270#[proto_message(type_url = "/tendermint.abci.ExtendedCommitInfo")]
1271pub struct ExtendedCommitInfo {
1272    /// The round at which the block proposer decided in the previous height.
1273    #[prost(int32, tag = "1")]
1274    #[serde(
1275        serialize_with = "crate::serde::as_str::serialize",
1276        deserialize_with = "crate::serde::as_str::deserialize"
1277    )]
1278    pub round: i32,
1279    /// List of validators' addresses in the last validator set with their voting
1280    /// information, including vote extensions.
1281    #[prost(message, repeated, tag = "2")]
1282    pub votes: ::prost::alloc::vec::Vec<ExtendedVoteInfo>,
1283}
1284/// Event allows application developers to attach additional information to
1285/// ResponseFinalizeBlock and ResponseCheckTx.
1286/// Later, transactions may be queried using these events.
1287#[allow(clippy::derive_partial_eq_without_eq)]
1288#[derive(
1289    Clone,
1290    PartialEq,
1291    Eq,
1292    ::prost::Message,
1293    ::serde::Serialize,
1294    ::serde::Deserialize,
1295    ::schemars::JsonSchema,
1296    CosmwasmExt,
1297)]
1298#[proto_message(type_url = "/tendermint.abci.Event")]
1299pub struct Event {
1300    #[prost(string, tag = "1")]
1301    pub r#type: ::prost::alloc::string::String,
1302    #[prost(message, repeated, tag = "2")]
1303    pub attributes: ::prost::alloc::vec::Vec<EventAttribute>,
1304}
1305/// EventAttribute is a single key-value pair, associated with an event.
1306#[allow(clippy::derive_partial_eq_without_eq)]
1307#[derive(
1308    Clone,
1309    PartialEq,
1310    Eq,
1311    ::prost::Message,
1312    ::serde::Serialize,
1313    ::serde::Deserialize,
1314    ::schemars::JsonSchema,
1315    CosmwasmExt,
1316)]
1317#[proto_message(type_url = "/tendermint.abci.EventAttribute")]
1318pub struct EventAttribute {
1319    #[prost(string, tag = "1")]
1320    pub key: ::prost::alloc::string::String,
1321    #[prost(string, tag = "2")]
1322    pub value: ::prost::alloc::string::String,
1323    /// nondeterministic
1324    #[prost(bool, tag = "3")]
1325    pub index: bool,
1326}
1327/// ExecTxResult contains results of executing one individual transaction.
1328///
1329/// * Its structure is equivalent to #ResponseDeliverTx which will be deprecated/deleted
1330#[allow(clippy::derive_partial_eq_without_eq)]
1331#[derive(
1332    Clone,
1333    PartialEq,
1334    Eq,
1335    ::prost::Message,
1336    ::serde::Serialize,
1337    ::serde::Deserialize,
1338    ::schemars::JsonSchema,
1339    CosmwasmExt,
1340)]
1341#[proto_message(type_url = "/tendermint.abci.ExecTxResult")]
1342pub struct ExecTxResult {
1343    #[prost(uint32, tag = "1")]
1344    #[serde(
1345        serialize_with = "crate::serde::as_str::serialize",
1346        deserialize_with = "crate::serde::as_str::deserialize"
1347    )]
1348    pub code: u32,
1349    #[prost(bytes = "vec", tag = "2")]
1350    #[serde(
1351        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1352        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1353    )]
1354    pub data: ::prost::alloc::vec::Vec<u8>,
1355    /// nondeterministic
1356    #[prost(string, tag = "3")]
1357    pub log: ::prost::alloc::string::String,
1358    /// nondeterministic
1359    #[prost(string, tag = "4")]
1360    pub info: ::prost::alloc::string::String,
1361    #[prost(int64, tag = "5")]
1362    #[serde(
1363        serialize_with = "crate::serde::as_str::serialize",
1364        deserialize_with = "crate::serde::as_str::deserialize"
1365    )]
1366    pub gas_wanted: i64,
1367    #[prost(int64, tag = "6")]
1368    #[serde(
1369        serialize_with = "crate::serde::as_str::serialize",
1370        deserialize_with = "crate::serde::as_str::deserialize"
1371    )]
1372    pub gas_used: i64,
1373    /// nondeterministic
1374    #[prost(message, repeated, tag = "7")]
1375    pub events: ::prost::alloc::vec::Vec<Event>,
1376    #[prost(string, tag = "8")]
1377    pub codespace: ::prost::alloc::string::String,
1378}
1379/// TxResult contains results of executing the transaction.
1380///
1381/// One usage is indexing transaction results.
1382#[allow(clippy::derive_partial_eq_without_eq)]
1383#[derive(
1384    Clone,
1385    PartialEq,
1386    Eq,
1387    ::prost::Message,
1388    ::serde::Serialize,
1389    ::serde::Deserialize,
1390    ::schemars::JsonSchema,
1391    CosmwasmExt,
1392)]
1393#[proto_message(type_url = "/tendermint.abci.TxResult")]
1394pub struct TxResult {
1395    #[prost(int64, tag = "1")]
1396    #[serde(
1397        serialize_with = "crate::serde::as_str::serialize",
1398        deserialize_with = "crate::serde::as_str::deserialize"
1399    )]
1400    pub height: i64,
1401    #[prost(uint32, tag = "2")]
1402    #[serde(
1403        serialize_with = "crate::serde::as_str::serialize",
1404        deserialize_with = "crate::serde::as_str::deserialize"
1405    )]
1406    pub index: u32,
1407    #[prost(bytes = "vec", tag = "3")]
1408    #[serde(
1409        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1410        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1411    )]
1412    pub tx: ::prost::alloc::vec::Vec<u8>,
1413    #[prost(message, optional, tag = "4")]
1414    pub result: ::core::option::Option<ExecTxResult>,
1415}
1416#[allow(clippy::derive_partial_eq_without_eq)]
1417#[derive(
1418    Clone,
1419    PartialEq,
1420    Eq,
1421    ::prost::Message,
1422    ::serde::Serialize,
1423    ::serde::Deserialize,
1424    ::schemars::JsonSchema,
1425    CosmwasmExt,
1426)]
1427#[proto_message(type_url = "/tendermint.abci.Validator")]
1428pub struct Validator {
1429    /// The first 20 bytes of SHA256(public key)
1430    #[prost(bytes = "vec", tag = "1")]
1431    #[serde(
1432        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1433        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1434    )]
1435    pub address: ::prost::alloc::vec::Vec<u8>,
1436    /// PubKey pub_key = 2 \[(gogoproto.nullable)=false\];
1437    ///
1438    /// The voting power
1439    #[prost(int64, tag = "3")]
1440    #[serde(
1441        serialize_with = "crate::serde::as_str::serialize",
1442        deserialize_with = "crate::serde::as_str::deserialize"
1443    )]
1444    pub power: i64,
1445}
1446#[allow(clippy::derive_partial_eq_without_eq)]
1447#[derive(
1448    Clone,
1449    PartialEq,
1450    Eq,
1451    ::prost::Message,
1452    ::serde::Serialize,
1453    ::serde::Deserialize,
1454    ::schemars::JsonSchema,
1455    CosmwasmExt,
1456)]
1457#[proto_message(type_url = "/tendermint.abci.ValidatorUpdate")]
1458pub struct ValidatorUpdate {
1459    #[prost(message, optional, tag = "1")]
1460    pub pub_key: ::core::option::Option<super::crypto::PublicKey>,
1461    #[prost(int64, tag = "2")]
1462    #[serde(
1463        serialize_with = "crate::serde::as_str::serialize",
1464        deserialize_with = "crate::serde::as_str::deserialize"
1465    )]
1466    pub power: i64,
1467}
1468#[allow(clippy::derive_partial_eq_without_eq)]
1469#[derive(
1470    Clone,
1471    PartialEq,
1472    Eq,
1473    ::prost::Message,
1474    ::serde::Serialize,
1475    ::serde::Deserialize,
1476    ::schemars::JsonSchema,
1477    CosmwasmExt,
1478)]
1479#[proto_message(type_url = "/tendermint.abci.VoteInfo")]
1480pub struct VoteInfo {
1481    #[prost(message, optional, tag = "1")]
1482    pub validator: ::core::option::Option<Validator>,
1483    #[prost(enumeration = "super::types::BlockIdFlag", tag = "3")]
1484    #[serde(alias = "blockID_flag")]
1485    #[serde(
1486        serialize_with = "crate::serde::as_str::serialize",
1487        deserialize_with = "crate::serde::as_str::deserialize"
1488    )]
1489    pub block_id_flag: i32,
1490}
1491#[allow(clippy::derive_partial_eq_without_eq)]
1492#[derive(
1493    Clone,
1494    PartialEq,
1495    Eq,
1496    ::prost::Message,
1497    ::serde::Serialize,
1498    ::serde::Deserialize,
1499    ::schemars::JsonSchema,
1500    CosmwasmExt,
1501)]
1502#[proto_message(type_url = "/tendermint.abci.ExtendedVoteInfo")]
1503pub struct ExtendedVoteInfo {
1504    /// The validator that sent the vote.
1505    #[prost(message, optional, tag = "1")]
1506    pub validator: ::core::option::Option<Validator>,
1507    /// Non-deterministic extension provided by the sending validator's application.
1508    #[prost(bytes = "vec", tag = "3")]
1509    #[serde(
1510        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1511        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1512    )]
1513    pub vote_extension: ::prost::alloc::vec::Vec<u8>,
1514    /// Vote extension signature created by CometBFT
1515    #[prost(bytes = "vec", tag = "4")]
1516    #[serde(
1517        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1518        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1519    )]
1520    pub extension_signature: ::prost::alloc::vec::Vec<u8>,
1521    /// block_id_flag indicates whether the validator voted for a block, nil, or did not vote at all
1522    #[prost(enumeration = "super::types::BlockIdFlag", tag = "5")]
1523    #[serde(alias = "blockID_flag")]
1524    #[serde(
1525        serialize_with = "crate::serde::as_str::serialize",
1526        deserialize_with = "crate::serde::as_str::deserialize"
1527    )]
1528    pub block_id_flag: i32,
1529}
1530#[allow(clippy::derive_partial_eq_without_eq)]
1531#[derive(
1532    Clone,
1533    PartialEq,
1534    Eq,
1535    ::prost::Message,
1536    ::serde::Serialize,
1537    ::serde::Deserialize,
1538    ::schemars::JsonSchema,
1539    CosmwasmExt,
1540)]
1541#[proto_message(type_url = "/tendermint.abci.Misbehavior")]
1542pub struct Misbehavior {
1543    #[prost(enumeration = "MisbehaviorType", tag = "1")]
1544    #[serde(
1545        serialize_with = "crate::serde::as_str::serialize",
1546        deserialize_with = "crate::serde::as_str::deserialize"
1547    )]
1548    pub r#type: i32,
1549    /// The offending validator
1550    #[prost(message, optional, tag = "2")]
1551    pub validator: ::core::option::Option<Validator>,
1552    /// The height when the offense occurred
1553    #[prost(int64, tag = "3")]
1554    #[serde(
1555        serialize_with = "crate::serde::as_str::serialize",
1556        deserialize_with = "crate::serde::as_str::deserialize"
1557    )]
1558    pub height: i64,
1559    /// The corresponding time where the offense occurred
1560    #[prost(message, optional, tag = "4")]
1561    pub time: ::core::option::Option<crate::shim::Timestamp>,
1562    /// Total voting power of the validator set in case the ABCI application does
1563    /// not store historical validators.
1564    /// <https://github.com/tendermint/tendermint/issues/4581>
1565    #[prost(int64, tag = "5")]
1566    #[serde(
1567        serialize_with = "crate::serde::as_str::serialize",
1568        deserialize_with = "crate::serde::as_str::deserialize"
1569    )]
1570    pub total_voting_power: i64,
1571}
1572#[allow(clippy::derive_partial_eq_without_eq)]
1573#[derive(
1574    Clone,
1575    PartialEq,
1576    Eq,
1577    ::prost::Message,
1578    ::serde::Serialize,
1579    ::serde::Deserialize,
1580    ::schemars::JsonSchema,
1581    CosmwasmExt,
1582)]
1583#[proto_message(type_url = "/tendermint.abci.Snapshot")]
1584pub struct Snapshot {
1585    /// The height at which the snapshot was taken
1586    #[prost(uint64, tag = "1")]
1587    #[serde(
1588        serialize_with = "crate::serde::as_str::serialize",
1589        deserialize_with = "crate::serde::as_str::deserialize"
1590    )]
1591    pub height: u64,
1592    /// The application-specific snapshot format
1593    #[prost(uint32, tag = "2")]
1594    #[serde(
1595        serialize_with = "crate::serde::as_str::serialize",
1596        deserialize_with = "crate::serde::as_str::deserialize"
1597    )]
1598    pub format: u32,
1599    /// Number of chunks in the snapshot
1600    #[prost(uint32, tag = "3")]
1601    #[serde(
1602        serialize_with = "crate::serde::as_str::serialize",
1603        deserialize_with = "crate::serde::as_str::deserialize"
1604    )]
1605    pub chunks: u32,
1606    /// Arbitrary snapshot hash, equal only if identical
1607    #[prost(bytes = "vec", tag = "4")]
1608    #[serde(
1609        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1610        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1611    )]
1612    pub hash: ::prost::alloc::vec::Vec<u8>,
1613    /// Arbitrary application metadata
1614    #[prost(bytes = "vec", tag = "5")]
1615    #[serde(
1616        serialize_with = "crate::serde::as_base64_encoded_string::serialize",
1617        deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
1618    )]
1619    pub metadata: ::prost::alloc::vec::Vec<u8>,
1620}
1621#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1622#[repr(i32)]
1623#[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)]
1624pub enum CheckTxType {
1625    New = 0,
1626    Recheck = 1,
1627}
1628impl CheckTxType {
1629    /// String value of the enum field names used in the ProtoBuf definition.
1630    ///
1631    /// The values are not transformed in any way and thus are considered stable
1632    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1633    pub fn as_str_name(&self) -> &'static str {
1634        match self {
1635            CheckTxType::New => "NEW",
1636            CheckTxType::Recheck => "RECHECK",
1637        }
1638    }
1639    /// Creates an enum from field names used in the ProtoBuf definition.
1640    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1641        match value {
1642            "NEW" => Some(Self::New),
1643            "RECHECK" => Some(Self::Recheck),
1644            _ => None,
1645        }
1646    }
1647}
1648#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1649#[repr(i32)]
1650#[derive(::serde::Serialize, ::serde::Deserialize, ::schemars::JsonSchema)]
1651pub enum MisbehaviorType {
1652    Unknown = 0,
1653    DuplicateVote = 1,
1654    LightClientAttack = 2,
1655}
1656impl MisbehaviorType {
1657    /// String value of the enum field names used in the ProtoBuf definition.
1658    ///
1659    /// The values are not transformed in any way and thus are considered stable
1660    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1661    pub fn as_str_name(&self) -> &'static str {
1662        match self {
1663            MisbehaviorType::Unknown => "UNKNOWN",
1664            MisbehaviorType::DuplicateVote => "DUPLICATE_VOTE",
1665            MisbehaviorType::LightClientAttack => "LIGHT_CLIENT_ATTACK",
1666        }
1667    }
1668    /// Creates an enum from field names used in the ProtoBuf definition.
1669    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1670        match value {
1671            "UNKNOWN" => Some(Self::Unknown),
1672            "DUPLICATE_VOTE" => Some(Self::DuplicateVote),
1673            "LIGHT_CLIENT_ATTACK" => Some(Self::LightClientAttack),
1674            _ => None,
1675        }
1676    }
1677}