juno_std/types/tendermint/
abci.rs

1use juno_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}