juno_std/types/tendermint/
crypto.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.crypto.Proof")]
14pub struct Proof {
15	#[prost(int64, tag = "1")]
16	#[serde(
17		serialize_with = "crate::serde::as_str::serialize",
18		deserialize_with = "crate::serde::as_str::deserialize"
19	)]
20	pub total: i64,
21	#[prost(int64, tag = "2")]
22	#[serde(
23		serialize_with = "crate::serde::as_str::serialize",
24		deserialize_with = "crate::serde::as_str::deserialize"
25	)]
26	pub index: i64,
27	#[prost(bytes = "vec", tag = "3")]
28	#[serde(
29		serialize_with = "crate::serde::as_base64_encoded_string::serialize",
30		deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
31	)]
32	pub leaf_hash: ::prost::alloc::vec::Vec<u8>,
33	#[prost(bytes = "vec", repeated, tag = "4")]
34	pub aunts: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
35}
36#[allow(clippy::derive_partial_eq_without_eq)]
37#[derive(
38	Clone,
39	PartialEq,
40	Eq,
41	::prost::Message,
42	::serde::Serialize,
43	::serde::Deserialize,
44	::schemars::JsonSchema,
45	CosmwasmExt,
46)]
47#[proto_message(type_url = "/tendermint.crypto.ValueOp")]
48pub struct ValueOp {
49	/// Encoded in ProofOp.Key.
50	#[prost(bytes = "vec", tag = "1")]
51	#[serde(
52		serialize_with = "crate::serde::as_base64_encoded_string::serialize",
53		deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
54	)]
55	pub key: ::prost::alloc::vec::Vec<u8>,
56	/// To encode in ProofOp.Data
57	#[prost(message, optional, tag = "2")]
58	pub proof: ::core::option::Option<Proof>,
59}
60#[allow(clippy::derive_partial_eq_without_eq)]
61#[derive(
62	Clone,
63	PartialEq,
64	Eq,
65	::prost::Message,
66	::serde::Serialize,
67	::serde::Deserialize,
68	::schemars::JsonSchema,
69	CosmwasmExt,
70)]
71#[proto_message(type_url = "/tendermint.crypto.DominoOp")]
72pub struct DominoOp {
73	#[prost(string, tag = "1")]
74	pub key: ::prost::alloc::string::String,
75	#[prost(string, tag = "2")]
76	pub input: ::prost::alloc::string::String,
77	#[prost(string, tag = "3")]
78	pub output: ::prost::alloc::string::String,
79}
80/// ProofOp defines an operation used for calculating Merkle root
81/// The data could be arbitrary format, providing nessecary data
82/// for example neighbouring node hash
83#[allow(clippy::derive_partial_eq_without_eq)]
84#[derive(
85	Clone,
86	PartialEq,
87	Eq,
88	::prost::Message,
89	::serde::Serialize,
90	::serde::Deserialize,
91	::schemars::JsonSchema,
92	CosmwasmExt,
93)]
94#[proto_message(type_url = "/tendermint.crypto.ProofOp")]
95pub struct ProofOp {
96	#[prost(string, tag = "1")]
97	pub r#type: ::prost::alloc::string::String,
98	#[prost(bytes = "vec", tag = "2")]
99	#[serde(
100		serialize_with = "crate::serde::as_base64_encoded_string::serialize",
101		deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
102	)]
103	pub key: ::prost::alloc::vec::Vec<u8>,
104	#[prost(bytes = "vec", tag = "3")]
105	#[serde(
106		serialize_with = "crate::serde::as_base64_encoded_string::serialize",
107		deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
108	)]
109	pub data: ::prost::alloc::vec::Vec<u8>,
110}
111/// ProofOps is Merkle proof defined by the list of ProofOps
112#[allow(clippy::derive_partial_eq_without_eq)]
113#[derive(
114	Clone,
115	PartialEq,
116	Eq,
117	::prost::Message,
118	::serde::Serialize,
119	::serde::Deserialize,
120	::schemars::JsonSchema,
121	CosmwasmExt,
122)]
123#[proto_message(type_url = "/tendermint.crypto.ProofOps")]
124pub struct ProofOps {
125	#[prost(message, repeated, tag = "1")]
126	pub ops: ::prost::alloc::vec::Vec<ProofOp>,
127}
128/// PublicKey defines the keys available for use with Validators
129#[allow(clippy::derive_partial_eq_without_eq)]
130#[derive(
131	Clone,
132	PartialEq,
133	Eq,
134	::prost::Message,
135	::serde::Serialize,
136	::serde::Deserialize,
137	::schemars::JsonSchema,
138	CosmwasmExt,
139)]
140#[proto_message(type_url = "/tendermint.crypto.PublicKey")]
141pub struct PublicKey {
142	#[prost(oneof = "public_key::Sum", tags = "1, 2")]
143	pub sum: ::core::option::Option<public_key::Sum>,
144}
145/// Nested message and enum types in `PublicKey`.
146pub mod public_key {
147	#[allow(clippy::derive_partial_eq_without_eq)]
148	#[derive(
149		Clone,
150		PartialEq,
151		Eq,
152		::prost::Oneof,
153		::serde::Serialize,
154		::serde::Deserialize,
155		::schemars::JsonSchema,
156	)]
157	pub enum Sum {
158		#[prost(bytes, tag = "1")]
159		Ed25519(::prost::alloc::vec::Vec<u8>),
160		#[prost(bytes, tag = "2")]
161		Secp256k1(::prost::alloc::vec::Vec<u8>),
162	}
163}