use osmosis_std_derive::CosmwasmExt;
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.ValidatorSigningInfo")]
pub struct ValidatorSigningInfo {
#[prost(string, tag = "1")]
pub address: ::prost::alloc::string::String,
#[prost(int64, tag = "2")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub start_height: i64,
#[prost(int64, tag = "3")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub index_offset: i64,
#[prost(message, optional, tag = "4")]
pub jailed_until: ::core::option::Option<crate::shim::Timestamp>,
#[prost(bool, tag = "5")]
pub tombstoned: bool,
#[prost(int64, tag = "6")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub missed_blocks_counter: i64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.Params")]
pub struct Params {
#[prost(int64, tag = "1")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub signed_blocks_window: i64,
#[prost(bytes = "vec", tag = "2")]
#[serde(
serialize_with = "crate::serde::as_base64_encoded_string::serialize",
deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
)]
pub min_signed_per_window: ::prost::alloc::vec::Vec<u8>,
#[prost(message, optional, tag = "3")]
pub downtime_jail_duration: ::core::option::Option<crate::shim::Duration>,
#[prost(bytes = "vec", tag = "4")]
#[serde(
serialize_with = "crate::serde::as_base64_encoded_string::serialize",
deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
)]
pub slash_fraction_double_sign: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "5")]
#[serde(
serialize_with = "crate::serde::as_base64_encoded_string::serialize",
deserialize_with = "crate::serde::as_base64_encoded_string::deserialize"
)]
pub slash_fraction_downtime: ::prost::alloc::vec::Vec<u8>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.GenesisState")]
pub struct GenesisState {
#[prost(message, optional, tag = "1")]
pub params: ::core::option::Option<Params>,
#[prost(message, repeated, tag = "2")]
pub signing_infos: ::prost::alloc::vec::Vec<SigningInfo>,
#[prost(message, repeated, tag = "3")]
pub missed_blocks: ::prost::alloc::vec::Vec<ValidatorMissedBlocks>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.SigningInfo")]
pub struct SigningInfo {
#[prost(string, tag = "1")]
pub address: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub validator_signing_info: ::core::option::Option<ValidatorSigningInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.ValidatorMissedBlocks")]
pub struct ValidatorMissedBlocks {
#[prost(string, tag = "1")]
pub address: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub missed_blocks: ::prost::alloc::vec::Vec<MissedBlock>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.MissedBlock")]
pub struct MissedBlock {
#[prost(int64, tag = "1")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub index: i64,
#[prost(bool, tag = "2")]
pub missed: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.QueryParamsRequest")]
#[proto_query(
path = "/cosmos.slashing.v1beta1.Query/Params",
response_type = QueryParamsResponse
)]
pub struct QueryParamsRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.QueryParamsResponse")]
pub struct QueryParamsResponse {
#[prost(message, optional, tag = "1")]
pub params: ::core::option::Option<Params>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.QuerySigningInfoRequest")]
#[proto_query(
path = "/cosmos.slashing.v1beta1.Query/SigningInfo",
response_type = QuerySigningInfoResponse
)]
pub struct QuerySigningInfoRequest {
#[prost(string, tag = "1")]
pub cons_address: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.QuerySigningInfoResponse")]
pub struct QuerySigningInfoResponse {
#[prost(message, optional, tag = "1")]
pub val_signing_info: ::core::option::Option<ValidatorSigningInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.QuerySigningInfosRequest")]
#[proto_query(
path = "/cosmos.slashing.v1beta1.Query/SigningInfos",
response_type = QuerySigningInfosResponse
)]
pub struct QuerySigningInfosRequest {
#[prost(message, optional, tag = "1")]
pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageRequest>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.QuerySigningInfosResponse")]
pub struct QuerySigningInfosResponse {
#[prost(message, repeated, tag = "1")]
pub info: ::prost::alloc::vec::Vec<ValidatorSigningInfo>,
#[prost(message, optional, tag = "2")]
pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageResponse>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.MsgUnjail")]
pub struct MsgUnjail {
#[prost(string, tag = "1")]
pub validator_addr: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.MsgUnjailResponse")]
pub struct MsgUnjailResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.MsgUpdateParams")]
pub struct MsgUpdateParams {
#[prost(string, tag = "1")]
pub authority: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub params: ::core::option::Option<Params>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/cosmos.slashing.v1beta1.MsgUpdateParamsResponse")]
pub struct MsgUpdateParamsResponse {}
pub struct SlashingQuerier<'a, Q: cosmwasm_std::CustomQuery> {
querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>,
}
impl<'a, Q: cosmwasm_std::CustomQuery> SlashingQuerier<'a, Q> {
pub fn new(querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>) -> Self {
Self { querier }
}
pub fn params(&self) -> Result<QueryParamsResponse, cosmwasm_std::StdError> {
QueryParamsRequest {}.query(self.querier)
}
pub fn signing_info(
&self,
cons_address: ::prost::alloc::string::String,
) -> Result<QuerySigningInfoResponse, cosmwasm_std::StdError> {
QuerySigningInfoRequest { cons_address }.query(self.querier)
}
pub fn signing_infos(
&self,
pagination: ::core::option::Option<super::super::base::query::v1beta1::PageRequest>,
) -> Result<QuerySigningInfosResponse, cosmwasm_std::StdError> {
QuerySigningInfosRequest { pagination }.query(self.querier)
}
}