use neutron_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 = "/neutron.revenue.Params")]
pub struct Params {
#[prost(string, tag = "1")]
pub reward_asset: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub reward_quote: ::core::option::Option<RewardQuote>,
#[prost(message, optional, tag = "3")]
pub blocks_performance_requirement: ::core::option::Option<PerformanceRequirement>,
#[prost(message, optional, tag = "4")]
pub oracle_votes_performance_requirement: ::core::option::Option<PerformanceRequirement>,
#[prost(message, optional, tag = "5")]
pub payment_schedule_type: ::core::option::Option<PaymentScheduleType>,
#[prost(int64, tag = "6")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub twap_window: 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 = "/neutron.revenue.RewardQuote")]
pub struct RewardQuote {
#[prost(uint64, tag = "1")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub amount: u64,
#[prost(string, tag = "2")]
pub asset: ::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 = "/neutron.revenue.PaymentScheduleType")]
pub struct PaymentScheduleType {
#[prost(oneof = "payment_schedule_type::PaymentScheduleType", tags = "4, 5, 6")]
pub payment_schedule_type: ::core::option::Option<payment_schedule_type::PaymentScheduleType>,
}
pub mod payment_schedule_type {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Oneof,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
)]
pub enum PaymentScheduleType {
#[prost(message, tag = "4")]
MonthlyPaymentScheduleType(super::MonthlyPaymentScheduleType),
#[prost(message, tag = "5")]
BlockBasedPaymentScheduleType(super::BlockBasedPaymentScheduleType),
#[prost(message, tag = "6")]
EmptyPaymentScheduleType(super::EmptyPaymentScheduleType),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.MonthlyPaymentScheduleType")]
pub struct MonthlyPaymentScheduleType {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.BlockBasedPaymentScheduleType")]
pub struct BlockBasedPaymentScheduleType {
#[prost(uint64, tag = "1")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub blocks_per_period: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.EmptyPaymentScheduleType")]
pub struct EmptyPaymentScheduleType {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.PerformanceRequirement")]
pub struct PerformanceRequirement {
#[prost(string, tag = "1")]
pub allowed_to_miss: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub required_at_least: ::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 = "/neutron.revenue.GenesisState")]
pub struct GenesisState {
#[prost(message, optional, tag = "1")]
pub params: ::core::option::Option<Params>,
#[prost(message, optional, tag = "2")]
pub payment_schedule: ::core::option::Option<PaymentSchedule>,
#[prost(message, repeated, tag = "3")]
pub validators: ::prost::alloc::vec::Vec<ValidatorInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.PaymentSchedule")]
pub struct PaymentSchedule {
#[prost(oneof = "payment_schedule::PaymentSchedule", tags = "1, 2, 3")]
pub payment_schedule: ::core::option::Option<payment_schedule::PaymentSchedule>,
}
pub mod payment_schedule {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Oneof,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
)]
pub enum PaymentSchedule {
#[prost(message, tag = "1")]
MonthlyPaymentSchedule(super::MonthlyPaymentSchedule),
#[prost(message, tag = "2")]
BlockBasedPaymentSchedule(super::BlockBasedPaymentSchedule),
#[prost(message, tag = "3")]
EmptyPaymentSchedule(super::EmptyPaymentSchedule),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.ValidatorInfo")]
pub struct ValidatorInfo {
#[prost(string, tag = "1")]
pub val_oper_address: ::prost::alloc::string::String,
#[prost(uint64, tag = "2")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub commited_blocks_in_period: u64,
#[prost(uint64, tag = "3")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub commited_oracle_votes_in_period: u64,
#[prost(uint64, tag = "4")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub in_active_valset_for_blocks_in_period: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.MonthlyPaymentSchedule")]
pub struct MonthlyPaymentSchedule {
#[prost(uint64, tag = "1")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub current_month_start_block: u64,
#[prost(uint64, tag = "2")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub current_month_start_block_ts: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.BlockBasedPaymentSchedule")]
pub struct BlockBasedPaymentSchedule {
#[prost(uint64, tag = "1")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub blocks_per_period: u64,
#[prost(uint64, tag = "2")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub current_period_start_block: u64,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.EmptyPaymentSchedule")]
pub struct EmptyPaymentSchedule {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.RewardAssetPrice")]
pub struct RewardAssetPrice {
#[prost(string, tag = "1")]
pub cumulative_price: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub absolute_price: ::prost::alloc::string::String,
#[prost(int64, tag = "3")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub timestamp: 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 = "/neutron.revenue.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 = "/neutron.revenue.MsgUpdateParamsResponse")]
pub struct MsgUpdateParamsResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.MsgFundTreasury")]
pub struct MsgFundTreasury {
#[prost(string, tag = "1")]
pub sender: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub amount: ::prost::alloc::vec::Vec<super::super::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.MsgFundTreasuryResponse")]
pub struct MsgFundTreasuryResponse {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.QueryParamsRequest")]
#[proto_query(
path = "/neutron.revenue.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 = "/neutron.revenue.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 = "/neutron.revenue.QueryPaymentInfoRequest")]
#[proto_query(
path = "/neutron.revenue.Query/PaymentInfo",
response_type = QueryPaymentInfoResponse
)]
pub struct QueryPaymentInfoRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.QueryPaymentInfoResponse")]
pub struct QueryPaymentInfoResponse {
#[prost(message, optional, tag = "1")]
pub payment_schedule: ::core::option::Option<PaymentSchedule>,
#[prost(string, tag = "2")]
pub effective_period_progress: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub reward_asset_twap: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub base_revenue_amount: ::core::option::Option<super::super::cosmos::base::v1beta1::Coin>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.QueryValidatorStatsRequest")]
#[proto_query(
path = "/neutron.revenue.Query/ValidatorStats",
response_type = QueryValidatorStatsResponse
)]
pub struct QueryValidatorStatsRequest {
#[prost(string, tag = "1")]
pub val_oper_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 = "/neutron.revenue.QueryValidatorStatsResponse")]
pub struct QueryValidatorStatsResponse {
#[prost(message, optional, tag = "1")]
pub stats: ::core::option::Option<ValidatorStats>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.QueryValidatorsStatsRequest")]
#[proto_query(
path = "/neutron.revenue.Query/ValidatorsStats",
response_type = QueryValidatorsStatsResponse
)]
pub struct QueryValidatorsStatsRequest {}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.QueryValidatorsStatsResponse")]
pub struct QueryValidatorsStatsResponse {
#[prost(message, repeated, tag = "1")]
pub stats: ::prost::alloc::vec::Vec<ValidatorStats>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(
Clone,
PartialEq,
Eq,
::prost::Message,
::serde::Serialize,
::serde::Deserialize,
::schemars::JsonSchema,
CosmwasmExt,
)]
#[proto_message(type_url = "/neutron.revenue.ValidatorStats")]
pub struct ValidatorStats {
#[prost(message, optional, tag = "1")]
pub validator_info: ::core::option::Option<ValidatorInfo>,
#[prost(uint64, tag = "2")]
#[serde(
serialize_with = "crate::serde::as_str::serialize",
deserialize_with = "crate::serde::as_str::deserialize"
)]
pub total_produced_blocks_in_period: u64,
#[prost(string, tag = "3")]
pub performance_rating: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub expected_revenue: ::core::option::Option<super::super::cosmos::base::v1beta1::Coin>,
}
pub struct RevenueQuerier<'a, Q: cosmwasm_std::CustomQuery> {
querier: &'a cosmwasm_std::QuerierWrapper<'a, Q>,
}
impl<'a, Q: cosmwasm_std::CustomQuery> RevenueQuerier<'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 payment_info(&self) -> Result<QueryPaymentInfoResponse, cosmwasm_std::StdError> {
QueryPaymentInfoRequest {}.query(self.querier)
}
pub fn validator_stats(
&self,
val_oper_address: ::prost::alloc::string::String,
) -> Result<QueryValidatorStatsResponse, cosmwasm_std::StdError> {
QueryValidatorStatsRequest { val_oper_address }.query(self.querier)
}
pub fn validators_stats(&self) -> Result<QueryValidatorsStatsResponse, cosmwasm_std::StdError> {
QueryValidatorsStatsRequest {}.query(self.querier)
}
}