1use provwasm_proc_macro::CosmwasmExt;
2#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
6#[proto_message(type_url = "/cosmos.slashing.v1beta1.ValidatorSigningInfo")]
7pub struct ValidatorSigningInfo {
8 #[prost(string, tag = "1")]
9 pub address: ::prost::alloc::string::String,
10 #[prost(int64, tag = "2")]
12 pub start_height: i64,
13 #[prost(int64, tag = "3")]
17 pub index_offset: i64,
18 #[prost(message, optional, tag = "4")]
20 pub jailed_until: ::core::option::Option<crate::shim::Timestamp>,
21 #[prost(bool, tag = "5")]
25 pub tombstoned: bool,
26 #[prost(int64, tag = "6")]
29 pub missed_blocks_counter: i64,
30}
31#[allow(clippy::derive_partial_eq_without_eq)]
33#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
34#[proto_message(type_url = "/cosmos.slashing.v1beta1.Params")]
35pub struct Params {
36 #[prost(int64, tag = "1")]
37 pub signed_blocks_window: i64,
38 #[prost(bytes = "vec", tag = "2")]
39 pub min_signed_per_window: ::prost::alloc::vec::Vec<u8>,
40 #[prost(message, optional, tag = "3")]
41 pub downtime_jail_duration: ::core::option::Option<crate::shim::Duration>,
42 #[prost(bytes = "vec", tag = "4")]
43 pub slash_fraction_double_sign: ::prost::alloc::vec::Vec<u8>,
44 #[prost(bytes = "vec", tag = "5")]
45 pub slash_fraction_downtime: ::prost::alloc::vec::Vec<u8>,
46}
47#[allow(clippy::derive_partial_eq_without_eq)]
49#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
50#[proto_message(type_url = "/cosmos.slashing.v1beta1.GenesisState")]
51pub struct GenesisState {
52 #[prost(message, optional, tag = "1")]
54 pub params: ::core::option::Option<Params>,
55 #[prost(message, repeated, tag = "2")]
58 pub signing_infos: ::prost::alloc::vec::Vec<SigningInfo>,
59 #[prost(message, repeated, tag = "3")]
62 pub missed_blocks: ::prost::alloc::vec::Vec<ValidatorMissedBlocks>,
63}
64#[allow(clippy::derive_partial_eq_without_eq)]
66#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
67#[proto_message(type_url = "/cosmos.slashing.v1beta1.SigningInfo")]
68pub struct SigningInfo {
69 #[prost(string, tag = "1")]
71 pub address: ::prost::alloc::string::String,
72 #[prost(message, optional, tag = "2")]
74 pub validator_signing_info: ::core::option::Option<ValidatorSigningInfo>,
75}
76#[allow(clippy::derive_partial_eq_without_eq)]
79#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
80#[proto_message(type_url = "/cosmos.slashing.v1beta1.ValidatorMissedBlocks")]
81pub struct ValidatorMissedBlocks {
82 #[prost(string, tag = "1")]
84 pub address: ::prost::alloc::string::String,
85 #[prost(message, repeated, tag = "2")]
87 pub missed_blocks: ::prost::alloc::vec::Vec<MissedBlock>,
88}
89#[allow(clippy::derive_partial_eq_without_eq)]
91#[derive(Clone, Copy, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
92#[proto_message(type_url = "/cosmos.slashing.v1beta1.MissedBlock")]
93pub struct MissedBlock {
94 #[prost(int64, tag = "1")]
96 pub index: i64,
97 #[prost(bool, tag = "2")]
99 pub missed: bool,
100}
101#[allow(clippy::derive_partial_eq_without_eq)]
103#[derive(Clone, Copy, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
104#[proto_message(type_url = "/cosmos.slashing.v1beta1.QueryParamsRequest")]
105#[proto_query(
106 path = "/cosmos.slashing.v1beta1.Query/Params",
107 response_type = QueryParamsResponse
108)]
109pub struct QueryParamsRequest {}
110#[allow(clippy::derive_partial_eq_without_eq)]
112#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
113#[proto_message(type_url = "/cosmos.slashing.v1beta1.QueryParamsResponse")]
114pub struct QueryParamsResponse {
115 #[prost(message, optional, tag = "1")]
116 pub params: ::core::option::Option<Params>,
117}
118#[allow(clippy::derive_partial_eq_without_eq)]
121#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
122#[proto_message(type_url = "/cosmos.slashing.v1beta1.QuerySigningInfoRequest")]
123#[proto_query(
124 path = "/cosmos.slashing.v1beta1.Query/SigningInfo",
125 response_type = QuerySigningInfoResponse
126)]
127pub struct QuerySigningInfoRequest {
128 #[prost(string, tag = "1")]
130 pub cons_address: ::prost::alloc::string::String,
131}
132#[allow(clippy::derive_partial_eq_without_eq)]
135#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
136#[proto_message(type_url = "/cosmos.slashing.v1beta1.QuerySigningInfoResponse")]
137pub struct QuerySigningInfoResponse {
138 #[prost(message, optional, tag = "1")]
140 pub val_signing_info: ::core::option::Option<ValidatorSigningInfo>,
141}
142#[allow(clippy::derive_partial_eq_without_eq)]
145#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
146#[proto_message(type_url = "/cosmos.slashing.v1beta1.QuerySigningInfosRequest")]
147#[proto_query(
148 path = "/cosmos.slashing.v1beta1.Query/SigningInfos",
149 response_type = QuerySigningInfosResponse
150)]
151pub struct QuerySigningInfosRequest {
152 #[prost(message, optional, tag = "1")]
153 pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageRequest>,
154}
155#[allow(clippy::derive_partial_eq_without_eq)]
158#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
159#[proto_message(type_url = "/cosmos.slashing.v1beta1.QuerySigningInfosResponse")]
160pub struct QuerySigningInfosResponse {
161 #[prost(message, repeated, tag = "1")]
163 pub info: ::prost::alloc::vec::Vec<ValidatorSigningInfo>,
164 #[prost(message, optional, tag = "2")]
165 pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageResponse>,
166}
167#[allow(clippy::derive_partial_eq_without_eq)]
169#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
170#[proto_message(type_url = "/cosmos.slashing.v1beta1.MsgUnjail")]
171pub struct MsgUnjail {
172 #[prost(string, tag = "1")]
173 pub validator_addr: ::prost::alloc::string::String,
174}
175#[allow(clippy::derive_partial_eq_without_eq)]
177#[derive(Clone, Copy, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
178#[proto_message(type_url = "/cosmos.slashing.v1beta1.MsgUnjailResponse")]
179pub struct MsgUnjailResponse {}
180#[allow(clippy::derive_partial_eq_without_eq)]
184#[derive(Clone, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
185#[proto_message(type_url = "/cosmos.slashing.v1beta1.MsgUpdateParams")]
186pub struct MsgUpdateParams {
187 #[prost(string, tag = "1")]
189 pub authority: ::prost::alloc::string::String,
190 #[prost(message, optional, tag = "2")]
194 pub params: ::core::option::Option<Params>,
195}
196#[allow(clippy::derive_partial_eq_without_eq)]
201#[derive(Clone, Copy, PartialEq, Eq, ::prost::Message, ::schemars::JsonSchema, CosmwasmExt)]
202#[proto_message(type_url = "/cosmos.slashing.v1beta1.MsgUpdateParamsResponse")]
203pub struct MsgUpdateParamsResponse {}
204pub struct SlashingQuerier<'a, Q: cosmwasm_std::CustomQuery> {
205 querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>,
206}
207impl<'a, Q: cosmwasm_std::CustomQuery> SlashingQuerier<'a, Q> {
208 pub fn new(querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>) -> Self {
209 Self { querier }
210 }
211 pub fn params(&self) -> Result<QueryParamsResponse, cosmwasm_std::StdError> {
212 QueryParamsRequest {}.query(self.querier)
213 }
214 pub fn signing_info(
215 &self,
216 cons_address: ::prost::alloc::string::String,
217 ) -> Result<QuerySigningInfoResponse, cosmwasm_std::StdError> {
218 QuerySigningInfoRequest { cons_address }.query(self.querier)
219 }
220 pub fn signing_infos(
221 &self,
222 pagination: ::core::option::Option<super::super::base::query::v1beta1::PageRequest>,
223 ) -> Result<QuerySigningInfosResponse, cosmwasm_std::StdError> {
224 QuerySigningInfosRequest { pagination }.query(self.querier)
225 }
226}