nibiru_std/proto/buf/
cosmos.staking.v1beta1.rs

1// @generated
2/// Nested message and enum types in `StakeAuthorization`.
3pub mod stake_authorization {
4    /// Validators defines list of validator addresses.
5    #[allow(clippy::derive_partial_eq_without_eq)]
6    #[derive(Clone, PartialEq, ::prost::Message)]
7    pub struct Validators {
8        #[prost(string, repeated, tag = "1")]
9        pub address: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
10    }
11}
12/// AuthorizationType defines the type of staking module authorization type
13///
14/// Since: cosmos-sdk 0.43
15#[derive(
16    Clone,
17    Copy,
18    Debug,
19    PartialEq,
20    Eq,
21    Hash,
22    PartialOrd,
23    Ord,
24    ::prost::Enumeration,
25)]
26#[repr(i32)]
27pub enum AuthorizationType {
28    /// AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type
29    Unspecified = 0,
30    /// AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate
31    Delegate = 1,
32    /// AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate
33    Undelegate = 2,
34    /// AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate
35    Redelegate = 3,
36}
37impl AuthorizationType {
38    /// String value of the enum field names used in the ProtoBuf definition.
39    ///
40    /// The values are not transformed in any way and thus are considered stable
41    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
42    pub fn as_str_name(&self) -> &'static str {
43        match self {
44            AuthorizationType::Unspecified => "AUTHORIZATION_TYPE_UNSPECIFIED",
45            AuthorizationType::Delegate => "AUTHORIZATION_TYPE_DELEGATE",
46            AuthorizationType::Undelegate => "AUTHORIZATION_TYPE_UNDELEGATE",
47            AuthorizationType::Redelegate => "AUTHORIZATION_TYPE_REDELEGATE",
48        }
49    }
50    /// Creates an enum from field names used in the ProtoBuf definition.
51    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
52        match value {
53            "AUTHORIZATION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
54            "AUTHORIZATION_TYPE_DELEGATE" => Some(Self::Delegate),
55            "AUTHORIZATION_TYPE_UNDELEGATE" => Some(Self::Undelegate),
56            "AUTHORIZATION_TYPE_REDELEGATE" => Some(Self::Redelegate),
57            _ => None,
58        }
59    }
60}
61/// HistoricalInfo contains header and validator information for a given block.
62/// It is stored as part of staking module's state, which persists the `n` most
63/// recent HistoricalInfo
64/// (`n` is set by the staking module's `historical_entries` parameter).
65#[allow(clippy::derive_partial_eq_without_eq)]
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct HistoricalInfo {
68    #[prost(message, optional, tag = "1")]
69    pub header: ::core::option::Option<crate::proto::tendermint::types::Header>,
70    #[prost(message, repeated, tag = "2")]
71    pub valset: ::prost::alloc::vec::Vec<Validator>,
72}
73/// CommissionRates defines the initial commission rates to be used for creating
74/// a validator.
75#[allow(clippy::derive_partial_eq_without_eq)]
76#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct CommissionRates {
78    /// rate is the commission rate charged to delegators, as a fraction.
79    #[prost(string, tag = "1")]
80    pub rate: ::prost::alloc::string::String,
81    /// max_rate defines the maximum commission rate which validator can ever charge, as a fraction.
82    #[prost(string, tag = "2")]
83    pub max_rate: ::prost::alloc::string::String,
84    /// max_change_rate defines the maximum daily increase of the validator commission, as a fraction.
85    #[prost(string, tag = "3")]
86    pub max_change_rate: ::prost::alloc::string::String,
87}
88/// Commission defines commission parameters for a given validator.
89#[allow(clippy::derive_partial_eq_without_eq)]
90#[derive(Clone, PartialEq, ::prost::Message)]
91pub struct Commission {
92    /// commission_rates defines the initial commission rates to be used for creating a validator.
93    #[prost(message, optional, tag = "1")]
94    pub commission_rates: ::core::option::Option<CommissionRates>,
95    /// update_time is the last time the commission rate was changed.
96    #[prost(message, optional, tag = "2")]
97    pub update_time: ::core::option::Option<::prost_types::Timestamp>,
98}
99/// Description defines a validator description.
100#[allow(clippy::derive_partial_eq_without_eq)]
101#[derive(Clone, PartialEq, ::prost::Message)]
102pub struct Description {
103    /// moniker defines a human-readable name for the validator.
104    #[prost(string, tag = "1")]
105    pub moniker: ::prost::alloc::string::String,
106    /// identity defines an optional identity signature (ex. UPort or Keybase).
107    #[prost(string, tag = "2")]
108    pub identity: ::prost::alloc::string::String,
109    /// website defines an optional website link.
110    #[prost(string, tag = "3")]
111    pub website: ::prost::alloc::string::String,
112    /// security_contact defines an optional email for security contact.
113    #[prost(string, tag = "4")]
114    pub security_contact: ::prost::alloc::string::String,
115    /// details define other optional details.
116    #[prost(string, tag = "5")]
117    pub details: ::prost::alloc::string::String,
118}
119/// Validator defines a validator, together with the total amount of the
120/// Validator's bond shares and their exchange rate to coins. Slashing results in
121/// a decrease in the exchange rate, allowing correct calculation of future
122/// undelegations without iterating over delegators. When coins are delegated to
123/// this validator, the validator is credited with a delegation whose number of
124/// bond shares is based on the amount of coins delegated divided by the current
125/// exchange rate. Voting power can be calculated as total bonded shares
126/// multiplied by exchange rate.
127#[allow(clippy::derive_partial_eq_without_eq)]
128#[derive(Clone, PartialEq, ::prost::Message)]
129pub struct Validator {
130    /// operator_address defines the address of the validator's operator; bech encoded in JSON.
131    #[prost(string, tag = "1")]
132    pub operator_address: ::prost::alloc::string::String,
133    /// consensus_pubkey is the consensus public key of the validator, as a Protobuf Any.
134    #[prost(message, optional, tag = "2")]
135    pub consensus_pubkey: ::core::option::Option<::prost_types::Any>,
136    /// jailed defined whether the validator has been jailed from bonded status or not.
137    #[prost(bool, tag = "3")]
138    pub jailed: bool,
139    /// status is the validator status (bonded/unbonding/unbonded).
140    #[prost(enumeration = "BondStatus", tag = "4")]
141    pub status: i32,
142    /// tokens define the delegated tokens (incl. self-delegation).
143    #[prost(string, tag = "5")]
144    pub tokens: ::prost::alloc::string::String,
145    /// delegator_shares defines total shares issued to a validator's delegators.
146    #[prost(string, tag = "6")]
147    pub delegator_shares: ::prost::alloc::string::String,
148    /// description defines the description terms for the validator.
149    #[prost(message, optional, tag = "7")]
150    pub description: ::core::option::Option<Description>,
151    /// unbonding_height defines, if unbonding, the height at which this validator has begun unbonding.
152    #[prost(int64, tag = "8")]
153    pub unbonding_height: i64,
154    /// unbonding_time defines, if unbonding, the min time for the validator to complete unbonding.
155    #[prost(message, optional, tag = "9")]
156    pub unbonding_time: ::core::option::Option<::prost_types::Timestamp>,
157    /// commission defines the commission parameters.
158    #[prost(message, optional, tag = "10")]
159    pub commission: ::core::option::Option<Commission>,
160    /// min_self_delegation is the validator's self declared minimum self delegation.
161    ///
162    /// Since: cosmos-sdk 0.46
163    #[prost(string, tag = "11")]
164    pub min_self_delegation: ::prost::alloc::string::String,
165    /// strictly positive if this validator's unbonding has been stopped by external modules
166    #[prost(int64, tag = "12")]
167    pub unbonding_on_hold_ref_count: i64,
168    /// list of unbonding ids, each uniquely identifing an unbonding of this validator
169    #[prost(uint64, repeated, tag = "13")]
170    pub unbonding_ids: ::prost::alloc::vec::Vec<u64>,
171}
172/// ValAddresses defines a repeated set of validator addresses.
173#[allow(clippy::derive_partial_eq_without_eq)]
174#[derive(Clone, PartialEq, ::prost::Message)]
175pub struct ValAddresses {
176    #[prost(string, repeated, tag = "1")]
177    pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
178}
179/// DVPair is struct that just has a delegator-validator pair with no other data.
180/// It is intended to be used as a marshalable pointer. For example, a DVPair can
181/// be used to construct the key to getting an UnbondingDelegation from state.
182#[allow(clippy::derive_partial_eq_without_eq)]
183#[derive(Clone, PartialEq, ::prost::Message)]
184pub struct DvPair {
185    #[prost(string, tag = "1")]
186    pub delegator_address: ::prost::alloc::string::String,
187    #[prost(string, tag = "2")]
188    pub validator_address: ::prost::alloc::string::String,
189}
190/// DVPairs defines an array of DVPair objects.
191#[allow(clippy::derive_partial_eq_without_eq)]
192#[derive(Clone, PartialEq, ::prost::Message)]
193pub struct DvPairs {
194    #[prost(message, repeated, tag = "1")]
195    pub pairs: ::prost::alloc::vec::Vec<DvPair>,
196}
197/// DVVTriplet is struct that just has a delegator-validator-validator triplet
198/// with no other data. It is intended to be used as a marshalable pointer. For
199/// example, a DVVTriplet can be used to construct the key to getting a
200/// Redelegation from state.
201#[allow(clippy::derive_partial_eq_without_eq)]
202#[derive(Clone, PartialEq, ::prost::Message)]
203pub struct DvvTriplet {
204    #[prost(string, tag = "1")]
205    pub delegator_address: ::prost::alloc::string::String,
206    #[prost(string, tag = "2")]
207    pub validator_src_address: ::prost::alloc::string::String,
208    #[prost(string, tag = "3")]
209    pub validator_dst_address: ::prost::alloc::string::String,
210}
211/// DVVTriplets defines an array of DVVTriplet objects.
212#[allow(clippy::derive_partial_eq_without_eq)]
213#[derive(Clone, PartialEq, ::prost::Message)]
214pub struct DvvTriplets {
215    #[prost(message, repeated, tag = "1")]
216    pub triplets: ::prost::alloc::vec::Vec<DvvTriplet>,
217}
218/// Delegation represents the bond with tokens held by an account. It is
219/// owned by one delegator, and is associated with the voting power of one
220/// validator.
221#[allow(clippy::derive_partial_eq_without_eq)]
222#[derive(Clone, PartialEq, ::prost::Message)]
223pub struct Delegation {
224    /// delegator_address is the bech32-encoded address of the delegator.
225    #[prost(string, tag = "1")]
226    pub delegator_address: ::prost::alloc::string::String,
227    /// validator_address is the bech32-encoded address of the validator.
228    #[prost(string, tag = "2")]
229    pub validator_address: ::prost::alloc::string::String,
230    /// shares define the delegation shares received.
231    #[prost(string, tag = "3")]
232    pub shares: ::prost::alloc::string::String,
233}
234/// UnbondingDelegation stores all of a single delegator's unbonding bonds
235/// for a single validator in an time-ordered list.
236#[allow(clippy::derive_partial_eq_without_eq)]
237#[derive(Clone, PartialEq, ::prost::Message)]
238pub struct UnbondingDelegation {
239    /// delegator_address is the bech32-encoded address of the delegator.
240    #[prost(string, tag = "1")]
241    pub delegator_address: ::prost::alloc::string::String,
242    /// validator_address is the bech32-encoded address of the validator.
243    #[prost(string, tag = "2")]
244    pub validator_address: ::prost::alloc::string::String,
245    /// entries are the unbonding delegation entries.
246    ///
247    /// unbonding delegation entries
248    #[prost(message, repeated, tag = "3")]
249    pub entries: ::prost::alloc::vec::Vec<UnbondingDelegationEntry>,
250}
251/// UnbondingDelegationEntry defines an unbonding object with relevant metadata.
252#[allow(clippy::derive_partial_eq_without_eq)]
253#[derive(Clone, PartialEq, ::prost::Message)]
254pub struct UnbondingDelegationEntry {
255    /// creation_height is the height which the unbonding took place.
256    #[prost(int64, tag = "1")]
257    pub creation_height: i64,
258    /// completion_time is the unix time for unbonding completion.
259    #[prost(message, optional, tag = "2")]
260    pub completion_time: ::core::option::Option<::prost_types::Timestamp>,
261    /// initial_balance defines the tokens initially scheduled to receive at completion.
262    #[prost(string, tag = "3")]
263    pub initial_balance: ::prost::alloc::string::String,
264    /// balance defines the tokens to receive at completion.
265    #[prost(string, tag = "4")]
266    pub balance: ::prost::alloc::string::String,
267    /// Incrementing id that uniquely identifies this entry
268    #[prost(uint64, tag = "5")]
269    pub unbonding_id: u64,
270    /// Strictly positive if this entry's unbonding has been stopped by external modules
271    #[prost(int64, tag = "6")]
272    pub unbonding_on_hold_ref_count: i64,
273}
274/// RedelegationEntry defines a redelegation object with relevant metadata.
275#[allow(clippy::derive_partial_eq_without_eq)]
276#[derive(Clone, PartialEq, ::prost::Message)]
277pub struct RedelegationEntry {
278    /// creation_height  defines the height which the redelegation took place.
279    #[prost(int64, tag = "1")]
280    pub creation_height: i64,
281    /// completion_time defines the unix time for redelegation completion.
282    #[prost(message, optional, tag = "2")]
283    pub completion_time: ::core::option::Option<::prost_types::Timestamp>,
284    /// initial_balance defines the initial balance when redelegation started.
285    #[prost(string, tag = "3")]
286    pub initial_balance: ::prost::alloc::string::String,
287    /// shares_dst is the amount of destination-validator shares created by redelegation.
288    #[prost(string, tag = "4")]
289    pub shares_dst: ::prost::alloc::string::String,
290    /// Incrementing id that uniquely identifies this entry
291    #[prost(uint64, tag = "5")]
292    pub unbonding_id: u64,
293    /// Strictly positive if this entry's unbonding has been stopped by external modules
294    #[prost(int64, tag = "6")]
295    pub unbonding_on_hold_ref_count: i64,
296}
297/// Redelegation contains the list of a particular delegator's redelegating bonds
298/// from a particular source validator to a particular destination validator.
299#[allow(clippy::derive_partial_eq_without_eq)]
300#[derive(Clone, PartialEq, ::prost::Message)]
301pub struct Redelegation {
302    /// delegator_address is the bech32-encoded address of the delegator.
303    #[prost(string, tag = "1")]
304    pub delegator_address: ::prost::alloc::string::String,
305    /// validator_src_address is the validator redelegation source operator address.
306    #[prost(string, tag = "2")]
307    pub validator_src_address: ::prost::alloc::string::String,
308    /// validator_dst_address is the validator redelegation destination operator address.
309    #[prost(string, tag = "3")]
310    pub validator_dst_address: ::prost::alloc::string::String,
311    /// entries are the redelegation entries.
312    ///
313    /// redelegation entries
314    #[prost(message, repeated, tag = "4")]
315    pub entries: ::prost::alloc::vec::Vec<RedelegationEntry>,
316}
317/// Params defines the parameters for the x/staking module.
318#[allow(clippy::derive_partial_eq_without_eq)]
319#[derive(Clone, PartialEq, ::prost::Message)]
320pub struct Params {
321    /// unbonding_time is the time duration of unbonding.
322    #[prost(message, optional, tag = "1")]
323    pub unbonding_time: ::core::option::Option<::prost_types::Duration>,
324    /// max_validators is the maximum number of validators.
325    #[prost(uint32, tag = "2")]
326    pub max_validators: u32,
327    /// max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio).
328    #[prost(uint32, tag = "3")]
329    pub max_entries: u32,
330    /// historical_entries is the number of historical entries to persist.
331    #[prost(uint32, tag = "4")]
332    pub historical_entries: u32,
333    /// bond_denom defines the bondable coin denomination.
334    #[prost(string, tag = "5")]
335    pub bond_denom: ::prost::alloc::string::String,
336    /// min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators
337    #[prost(string, tag = "6")]
338    pub min_commission_rate: ::prost::alloc::string::String,
339}
340/// DelegationResponse is equivalent to Delegation except that it contains a
341/// balance in addition to shares which is more suitable for client responses.
342#[allow(clippy::derive_partial_eq_without_eq)]
343#[derive(Clone, PartialEq, ::prost::Message)]
344pub struct DelegationResponse {
345    #[prost(message, optional, tag = "1")]
346    pub delegation: ::core::option::Option<Delegation>,
347    #[prost(message, optional, tag = "2")]
348    pub balance:
349        ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
350}
351/// RedelegationEntryResponse is equivalent to a RedelegationEntry except that it
352/// contains a balance in addition to shares which is more suitable for client
353/// responses.
354#[allow(clippy::derive_partial_eq_without_eq)]
355#[derive(Clone, PartialEq, ::prost::Message)]
356pub struct RedelegationEntryResponse {
357    #[prost(message, optional, tag = "1")]
358    pub redelegation_entry: ::core::option::Option<RedelegationEntry>,
359    #[prost(string, tag = "4")]
360    pub balance: ::prost::alloc::string::String,
361}
362/// RedelegationResponse is equivalent to a Redelegation except that its entries
363/// contain a balance in addition to shares which is more suitable for client
364/// responses.
365#[allow(clippy::derive_partial_eq_without_eq)]
366#[derive(Clone, PartialEq, ::prost::Message)]
367pub struct RedelegationResponse {
368    #[prost(message, optional, tag = "1")]
369    pub redelegation: ::core::option::Option<Redelegation>,
370    #[prost(message, repeated, tag = "2")]
371    pub entries: ::prost::alloc::vec::Vec<RedelegationEntryResponse>,
372}
373/// Pool is used for tracking bonded and not-bonded token supply of the bond
374/// denomination.
375#[allow(clippy::derive_partial_eq_without_eq)]
376#[derive(Clone, PartialEq, ::prost::Message)]
377pub struct Pool {
378    #[prost(string, tag = "1")]
379    pub not_bonded_tokens: ::prost::alloc::string::String,
380    #[prost(string, tag = "2")]
381    pub bonded_tokens: ::prost::alloc::string::String,
382}
383/// ValidatorUpdates defines an array of abci.ValidatorUpdate objects.
384/// TODO: explore moving this to proto/cosmos/base to separate modules from tendermint dependence
385#[allow(clippy::derive_partial_eq_without_eq)]
386#[derive(Clone, PartialEq, ::prost::Message)]
387pub struct ValidatorUpdates {
388    #[prost(message, repeated, tag = "1")]
389    pub updates: ::prost::alloc::vec::Vec<
390        crate::proto::tendermint::abci::ValidatorUpdate,
391    >,
392}
393/// BondStatus is the status of a validator.
394#[derive(
395    Clone,
396    Copy,
397    Debug,
398    PartialEq,
399    Eq,
400    Hash,
401    PartialOrd,
402    Ord,
403    ::prost::Enumeration,
404)]
405#[repr(i32)]
406pub enum BondStatus {
407    /// UNSPECIFIED defines an invalid validator status.
408    Unspecified = 0,
409    /// UNBONDED defines a validator that is not bonded.
410    Unbonded = 1,
411    /// UNBONDING defines a validator that is unbonding.
412    Unbonding = 2,
413    /// BONDED defines a validator that is bonded.
414    Bonded = 3,
415}
416impl BondStatus {
417    /// String value of the enum field names used in the ProtoBuf definition.
418    ///
419    /// The values are not transformed in any way and thus are considered stable
420    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
421    pub fn as_str_name(&self) -> &'static str {
422        match self {
423            BondStatus::Unspecified => "BOND_STATUS_UNSPECIFIED",
424            BondStatus::Unbonded => "BOND_STATUS_UNBONDED",
425            BondStatus::Unbonding => "BOND_STATUS_UNBONDING",
426            BondStatus::Bonded => "BOND_STATUS_BONDED",
427        }
428    }
429    /// Creates an enum from field names used in the ProtoBuf definition.
430    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
431        match value {
432            "BOND_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
433            "BOND_STATUS_UNBONDED" => Some(Self::Unbonded),
434            "BOND_STATUS_UNBONDING" => Some(Self::Unbonding),
435            "BOND_STATUS_BONDED" => Some(Self::Bonded),
436            _ => None,
437        }
438    }
439}
440/// Infraction indicates the infraction a validator commited.
441#[derive(
442    Clone,
443    Copy,
444    Debug,
445    PartialEq,
446    Eq,
447    Hash,
448    PartialOrd,
449    Ord,
450    ::prost::Enumeration,
451)]
452#[repr(i32)]
453pub enum Infraction {
454    /// UNSPECIFIED defines an empty infraction.
455    Unspecified = 0,
456    /// DOUBLE_SIGN defines a validator that double-signs a block.
457    DoubleSign = 1,
458    /// DOWNTIME defines a validator that missed signing too many blocks.
459    Downtime = 2,
460}
461impl Infraction {
462    /// String value of the enum field names used in the ProtoBuf definition.
463    ///
464    /// The values are not transformed in any way and thus are considered stable
465    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
466    pub fn as_str_name(&self) -> &'static str {
467        match self {
468            Infraction::Unspecified => "INFRACTION_UNSPECIFIED",
469            Infraction::DoubleSign => "INFRACTION_DOUBLE_SIGN",
470            Infraction::Downtime => "INFRACTION_DOWNTIME",
471        }
472    }
473    /// Creates an enum from field names used in the ProtoBuf definition.
474    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
475        match value {
476            "INFRACTION_UNSPECIFIED" => Some(Self::Unspecified),
477            "INFRACTION_DOUBLE_SIGN" => Some(Self::DoubleSign),
478            "INFRACTION_DOWNTIME" => Some(Self::Downtime),
479            _ => None,
480        }
481    }
482}
483/// GenesisState defines the staking module's genesis state.
484#[allow(clippy::derive_partial_eq_without_eq)]
485#[derive(Clone, PartialEq, ::prost::Message)]
486pub struct GenesisState {
487    /// params defines all the parameters of related to deposit.
488    #[prost(message, optional, tag = "1")]
489    pub params: ::core::option::Option<Params>,
490    /// last_total_power tracks the total amounts of bonded tokens recorded during
491    /// the previous end block.
492    #[prost(bytes = "bytes", tag = "2")]
493    pub last_total_power: ::prost::bytes::Bytes,
494    /// last_validator_powers is a special index that provides a historical list
495    /// of the last-block's bonded validators.
496    #[prost(message, repeated, tag = "3")]
497    pub last_validator_powers: ::prost::alloc::vec::Vec<LastValidatorPower>,
498    /// delegations defines the validator set at genesis.
499    #[prost(message, repeated, tag = "4")]
500    pub validators: ::prost::alloc::vec::Vec<Validator>,
501    /// delegations defines the delegations active at genesis.
502    #[prost(message, repeated, tag = "5")]
503    pub delegations: ::prost::alloc::vec::Vec<Delegation>,
504    /// unbonding_delegations defines the unbonding delegations active at genesis.
505    #[prost(message, repeated, tag = "6")]
506    pub unbonding_delegations: ::prost::alloc::vec::Vec<UnbondingDelegation>,
507    /// redelegations defines the redelegations active at genesis.
508    #[prost(message, repeated, tag = "7")]
509    pub redelegations: ::prost::alloc::vec::Vec<Redelegation>,
510    #[prost(bool, tag = "8")]
511    pub exported: bool,
512}
513/// LastValidatorPower required for validator set update logic.
514#[allow(clippy::derive_partial_eq_without_eq)]
515#[derive(Clone, PartialEq, ::prost::Message)]
516pub struct LastValidatorPower {
517    /// address is the address of the validator.
518    #[prost(string, tag = "1")]
519    pub address: ::prost::alloc::string::String,
520    /// power defines the power of the validator.
521    #[prost(int64, tag = "2")]
522    pub power: i64,
523}
524/// QueryValidatorsRequest is request type for Query/Validators RPC method.
525#[allow(clippy::derive_partial_eq_without_eq)]
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct QueryValidatorsRequest {
528    /// status enables to query for validators matching a given status.
529    #[prost(string, tag = "1")]
530    pub status: ::prost::alloc::string::String,
531    /// pagination defines an optional pagination for the request.
532    #[prost(message, optional, tag = "2")]
533    pub pagination: ::core::option::Option<
534        crate::proto::cosmos::base::query::v1beta1::PageRequest,
535    >,
536}
537/// QueryValidatorsResponse is response type for the Query/Validators RPC method
538#[allow(clippy::derive_partial_eq_without_eq)]
539#[derive(Clone, PartialEq, ::prost::Message)]
540pub struct QueryValidatorsResponse {
541    /// validators contains all the queried validators.
542    #[prost(message, repeated, tag = "1")]
543    pub validators: ::prost::alloc::vec::Vec<Validator>,
544    /// pagination defines the pagination in the response.
545    #[prost(message, optional, tag = "2")]
546    pub pagination: ::core::option::Option<
547        crate::proto::cosmos::base::query::v1beta1::PageResponse,
548    >,
549}
550/// QueryValidatorRequest is response type for the Query/Validator RPC method
551#[allow(clippy::derive_partial_eq_without_eq)]
552#[derive(Clone, PartialEq, ::prost::Message)]
553pub struct QueryValidatorRequest {
554    /// validator_addr defines the validator address to query for.
555    #[prost(string, tag = "1")]
556    pub validator_addr: ::prost::alloc::string::String,
557}
558/// QueryValidatorResponse is response type for the Query/Validator RPC method
559#[allow(clippy::derive_partial_eq_without_eq)]
560#[derive(Clone, PartialEq, ::prost::Message)]
561pub struct QueryValidatorResponse {
562    /// validator defines the validator info.
563    #[prost(message, optional, tag = "1")]
564    pub validator: ::core::option::Option<Validator>,
565}
566/// QueryValidatorDelegationsRequest is request type for the
567/// Query/ValidatorDelegations RPC method
568#[allow(clippy::derive_partial_eq_without_eq)]
569#[derive(Clone, PartialEq, ::prost::Message)]
570pub struct QueryValidatorDelegationsRequest {
571    /// validator_addr defines the validator address to query for.
572    #[prost(string, tag = "1")]
573    pub validator_addr: ::prost::alloc::string::String,
574    /// pagination defines an optional pagination for the request.
575    #[prost(message, optional, tag = "2")]
576    pub pagination: ::core::option::Option<
577        crate::proto::cosmos::base::query::v1beta1::PageRequest,
578    >,
579}
580/// QueryValidatorDelegationsResponse is response type for the
581/// Query/ValidatorDelegations RPC method
582#[allow(clippy::derive_partial_eq_without_eq)]
583#[derive(Clone, PartialEq, ::prost::Message)]
584pub struct QueryValidatorDelegationsResponse {
585    #[prost(message, repeated, tag = "1")]
586    pub delegation_responses: ::prost::alloc::vec::Vec<DelegationResponse>,
587    /// pagination defines the pagination in the response.
588    #[prost(message, optional, tag = "2")]
589    pub pagination: ::core::option::Option<
590        crate::proto::cosmos::base::query::v1beta1::PageResponse,
591    >,
592}
593/// QueryValidatorUnbondingDelegationsRequest is required type for the
594/// Query/ValidatorUnbondingDelegations RPC method
595#[allow(clippy::derive_partial_eq_without_eq)]
596#[derive(Clone, PartialEq, ::prost::Message)]
597pub struct QueryValidatorUnbondingDelegationsRequest {
598    /// validator_addr defines the validator address to query for.
599    #[prost(string, tag = "1")]
600    pub validator_addr: ::prost::alloc::string::String,
601    /// pagination defines an optional pagination for the request.
602    #[prost(message, optional, tag = "2")]
603    pub pagination: ::core::option::Option<
604        crate::proto::cosmos::base::query::v1beta1::PageRequest,
605    >,
606}
607/// QueryValidatorUnbondingDelegationsResponse is response type for the
608/// Query/ValidatorUnbondingDelegations RPC method.
609#[allow(clippy::derive_partial_eq_without_eq)]
610#[derive(Clone, PartialEq, ::prost::Message)]
611pub struct QueryValidatorUnbondingDelegationsResponse {
612    #[prost(message, repeated, tag = "1")]
613    pub unbonding_responses: ::prost::alloc::vec::Vec<UnbondingDelegation>,
614    /// pagination defines the pagination in the response.
615    #[prost(message, optional, tag = "2")]
616    pub pagination: ::core::option::Option<
617        crate::proto::cosmos::base::query::v1beta1::PageResponse,
618    >,
619}
620/// QueryDelegationRequest is request type for the Query/Delegation RPC method.
621#[allow(clippy::derive_partial_eq_without_eq)]
622#[derive(Clone, PartialEq, ::prost::Message)]
623pub struct QueryDelegationRequest {
624    /// delegator_addr defines the delegator address to query for.
625    #[prost(string, tag = "1")]
626    pub delegator_addr: ::prost::alloc::string::String,
627    /// validator_addr defines the validator address to query for.
628    #[prost(string, tag = "2")]
629    pub validator_addr: ::prost::alloc::string::String,
630}
631/// QueryDelegationResponse is response type for the Query/Delegation RPC method.
632#[allow(clippy::derive_partial_eq_without_eq)]
633#[derive(Clone, PartialEq, ::prost::Message)]
634pub struct QueryDelegationResponse {
635    /// delegation_responses defines the delegation info of a delegation.
636    #[prost(message, optional, tag = "1")]
637    pub delegation_response: ::core::option::Option<DelegationResponse>,
638}
639/// QueryUnbondingDelegationRequest is request type for the
640/// Query/UnbondingDelegation RPC method.
641#[allow(clippy::derive_partial_eq_without_eq)]
642#[derive(Clone, PartialEq, ::prost::Message)]
643pub struct QueryUnbondingDelegationRequest {
644    /// delegator_addr defines the delegator address to query for.
645    #[prost(string, tag = "1")]
646    pub delegator_addr: ::prost::alloc::string::String,
647    /// validator_addr defines the validator address to query for.
648    #[prost(string, tag = "2")]
649    pub validator_addr: ::prost::alloc::string::String,
650}
651/// QueryDelegationResponse is response type for the Query/UnbondingDelegation
652/// RPC method.
653#[allow(clippy::derive_partial_eq_without_eq)]
654#[derive(Clone, PartialEq, ::prost::Message)]
655pub struct QueryUnbondingDelegationResponse {
656    /// unbond defines the unbonding information of a delegation.
657    #[prost(message, optional, tag = "1")]
658    pub unbond: ::core::option::Option<UnbondingDelegation>,
659}
660/// QueryDelegatorDelegationsRequest is request type for the
661/// Query/DelegatorDelegations RPC method.
662#[allow(clippy::derive_partial_eq_without_eq)]
663#[derive(Clone, PartialEq, ::prost::Message)]
664pub struct QueryDelegatorDelegationsRequest {
665    /// delegator_addr defines the delegator address to query for.
666    #[prost(string, tag = "1")]
667    pub delegator_addr: ::prost::alloc::string::String,
668    /// pagination defines an optional pagination for the request.
669    #[prost(message, optional, tag = "2")]
670    pub pagination: ::core::option::Option<
671        crate::proto::cosmos::base::query::v1beta1::PageRequest,
672    >,
673}
674/// QueryDelegatorDelegationsResponse is response type for the
675/// Query/DelegatorDelegations RPC method.
676#[allow(clippy::derive_partial_eq_without_eq)]
677#[derive(Clone, PartialEq, ::prost::Message)]
678pub struct QueryDelegatorDelegationsResponse {
679    /// delegation_responses defines all the delegations' info of a delegator.
680    #[prost(message, repeated, tag = "1")]
681    pub delegation_responses: ::prost::alloc::vec::Vec<DelegationResponse>,
682    /// pagination defines the pagination in the response.
683    #[prost(message, optional, tag = "2")]
684    pub pagination: ::core::option::Option<
685        crate::proto::cosmos::base::query::v1beta1::PageResponse,
686    >,
687}
688/// QueryDelegatorUnbondingDelegationsRequest is request type for the
689/// Query/DelegatorUnbondingDelegations RPC method.
690#[allow(clippy::derive_partial_eq_without_eq)]
691#[derive(Clone, PartialEq, ::prost::Message)]
692pub struct QueryDelegatorUnbondingDelegationsRequest {
693    /// delegator_addr defines the delegator address to query for.
694    #[prost(string, tag = "1")]
695    pub delegator_addr: ::prost::alloc::string::String,
696    /// pagination defines an optional pagination for the request.
697    #[prost(message, optional, tag = "2")]
698    pub pagination: ::core::option::Option<
699        crate::proto::cosmos::base::query::v1beta1::PageRequest,
700    >,
701}
702/// QueryUnbondingDelegatorDelegationsResponse is response type for the
703/// Query/UnbondingDelegatorDelegations RPC method.
704#[allow(clippy::derive_partial_eq_without_eq)]
705#[derive(Clone, PartialEq, ::prost::Message)]
706pub struct QueryDelegatorUnbondingDelegationsResponse {
707    #[prost(message, repeated, tag = "1")]
708    pub unbonding_responses: ::prost::alloc::vec::Vec<UnbondingDelegation>,
709    /// pagination defines the pagination in the response.
710    #[prost(message, optional, tag = "2")]
711    pub pagination: ::core::option::Option<
712        crate::proto::cosmos::base::query::v1beta1::PageResponse,
713    >,
714}
715/// QueryRedelegationsRequest is request type for the Query/Redelegations RPC
716/// method.
717#[allow(clippy::derive_partial_eq_without_eq)]
718#[derive(Clone, PartialEq, ::prost::Message)]
719pub struct QueryRedelegationsRequest {
720    /// delegator_addr defines the delegator address to query for.
721    #[prost(string, tag = "1")]
722    pub delegator_addr: ::prost::alloc::string::String,
723    /// src_validator_addr defines the validator address to redelegate from.
724    #[prost(string, tag = "2")]
725    pub src_validator_addr: ::prost::alloc::string::String,
726    /// dst_validator_addr defines the validator address to redelegate to.
727    #[prost(string, tag = "3")]
728    pub dst_validator_addr: ::prost::alloc::string::String,
729    /// pagination defines an optional pagination for the request.
730    #[prost(message, optional, tag = "4")]
731    pub pagination: ::core::option::Option<
732        crate::proto::cosmos::base::query::v1beta1::PageRequest,
733    >,
734}
735/// QueryRedelegationsResponse is response type for the Query/Redelegations RPC
736/// method.
737#[allow(clippy::derive_partial_eq_without_eq)]
738#[derive(Clone, PartialEq, ::prost::Message)]
739pub struct QueryRedelegationsResponse {
740    #[prost(message, repeated, tag = "1")]
741    pub redelegation_responses: ::prost::alloc::vec::Vec<RedelegationResponse>,
742    /// pagination defines the pagination in the response.
743    #[prost(message, optional, tag = "2")]
744    pub pagination: ::core::option::Option<
745        crate::proto::cosmos::base::query::v1beta1::PageResponse,
746    >,
747}
748/// QueryDelegatorValidatorsRequest is request type for the
749/// Query/DelegatorValidators RPC method.
750#[allow(clippy::derive_partial_eq_without_eq)]
751#[derive(Clone, PartialEq, ::prost::Message)]
752pub struct QueryDelegatorValidatorsRequest {
753    /// delegator_addr defines the delegator address to query for.
754    #[prost(string, tag = "1")]
755    pub delegator_addr: ::prost::alloc::string::String,
756    /// pagination defines an optional pagination for the request.
757    #[prost(message, optional, tag = "2")]
758    pub pagination: ::core::option::Option<
759        crate::proto::cosmos::base::query::v1beta1::PageRequest,
760    >,
761}
762/// QueryDelegatorValidatorsResponse is response type for the
763/// Query/DelegatorValidators RPC method.
764#[allow(clippy::derive_partial_eq_without_eq)]
765#[derive(Clone, PartialEq, ::prost::Message)]
766pub struct QueryDelegatorValidatorsResponse {
767    /// validators defines the validators' info of a delegator.
768    #[prost(message, repeated, tag = "1")]
769    pub validators: ::prost::alloc::vec::Vec<Validator>,
770    /// pagination defines the pagination in the response.
771    #[prost(message, optional, tag = "2")]
772    pub pagination: ::core::option::Option<
773        crate::proto::cosmos::base::query::v1beta1::PageResponse,
774    >,
775}
776/// QueryDelegatorValidatorRequest is request type for the
777/// Query/DelegatorValidator RPC method.
778#[allow(clippy::derive_partial_eq_without_eq)]
779#[derive(Clone, PartialEq, ::prost::Message)]
780pub struct QueryDelegatorValidatorRequest {
781    /// delegator_addr defines the delegator address to query for.
782    #[prost(string, tag = "1")]
783    pub delegator_addr: ::prost::alloc::string::String,
784    /// validator_addr defines the validator address to query for.
785    #[prost(string, tag = "2")]
786    pub validator_addr: ::prost::alloc::string::String,
787}
788/// QueryDelegatorValidatorResponse response type for the
789/// Query/DelegatorValidator RPC method.
790#[allow(clippy::derive_partial_eq_without_eq)]
791#[derive(Clone, PartialEq, ::prost::Message)]
792pub struct QueryDelegatorValidatorResponse {
793    /// validator defines the validator info.
794    #[prost(message, optional, tag = "1")]
795    pub validator: ::core::option::Option<Validator>,
796}
797/// QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC
798/// method.
799#[allow(clippy::derive_partial_eq_without_eq)]
800#[derive(Clone, PartialEq, ::prost::Message)]
801pub struct QueryHistoricalInfoRequest {
802    /// height defines at which height to query the historical info.
803    #[prost(int64, tag = "1")]
804    pub height: i64,
805}
806/// QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC
807/// method.
808#[allow(clippy::derive_partial_eq_without_eq)]
809#[derive(Clone, PartialEq, ::prost::Message)]
810pub struct QueryHistoricalInfoResponse {
811    /// hist defines the historical info at the given height.
812    #[prost(message, optional, tag = "1")]
813    pub hist: ::core::option::Option<HistoricalInfo>,
814}
815/// QueryPoolRequest is request type for the Query/Pool RPC method.
816#[allow(clippy::derive_partial_eq_without_eq)]
817#[derive(Clone, PartialEq, ::prost::Message)]
818pub struct QueryPoolRequest {}
819/// QueryPoolResponse is response type for the Query/Pool RPC method.
820#[allow(clippy::derive_partial_eq_without_eq)]
821#[derive(Clone, PartialEq, ::prost::Message)]
822pub struct QueryPoolResponse {
823    /// pool defines the pool info.
824    #[prost(message, optional, tag = "1")]
825    pub pool: ::core::option::Option<Pool>,
826}
827/// QueryParamsRequest is request type for the Query/Params RPC method.
828#[allow(clippy::derive_partial_eq_without_eq)]
829#[derive(Clone, PartialEq, ::prost::Message)]
830pub struct QueryParamsRequest {}
831/// QueryParamsResponse is response type for the Query/Params RPC method.
832#[allow(clippy::derive_partial_eq_without_eq)]
833#[derive(Clone, PartialEq, ::prost::Message)]
834pub struct QueryParamsResponse {
835    /// params holds all the parameters of this module.
836    #[prost(message, optional, tag = "1")]
837    pub params: ::core::option::Option<Params>,
838}
839/// MsgCreateValidator defines a SDK message for creating a new validator.
840#[allow(clippy::derive_partial_eq_without_eq)]
841#[derive(Clone, PartialEq, ::prost::Message)]
842pub struct MsgCreateValidator {
843    #[prost(message, optional, tag = "1")]
844    pub description: ::core::option::Option<Description>,
845    #[prost(message, optional, tag = "2")]
846    pub commission: ::core::option::Option<CommissionRates>,
847    #[prost(string, tag = "3")]
848    pub min_self_delegation: ::prost::alloc::string::String,
849    #[prost(string, tag = "4")]
850    pub delegator_address: ::prost::alloc::string::String,
851    #[prost(string, tag = "5")]
852    pub validator_address: ::prost::alloc::string::String,
853    #[prost(message, optional, tag = "6")]
854    pub pubkey: ::core::option::Option<::prost_types::Any>,
855    #[prost(message, optional, tag = "7")]
856    pub value: ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
857}
858/// MsgCreateValidatorResponse defines the Msg/CreateValidator response type.
859#[allow(clippy::derive_partial_eq_without_eq)]
860#[derive(Clone, PartialEq, ::prost::Message)]
861pub struct MsgCreateValidatorResponse {}
862/// MsgEditValidator defines a SDK message for editing an existing validator.
863#[allow(clippy::derive_partial_eq_without_eq)]
864#[derive(Clone, PartialEq, ::prost::Message)]
865pub struct MsgEditValidator {
866    #[prost(message, optional, tag = "1")]
867    pub description: ::core::option::Option<Description>,
868    #[prost(string, tag = "2")]
869    pub validator_address: ::prost::alloc::string::String,
870    /// We pass a reference to the new commission rate and min self delegation as
871    /// it's not mandatory to update. If not updated, the deserialized rate will be
872    /// zero with no way to distinguish if an update was intended.
873    /// REF: #2373
874    #[prost(string, tag = "3")]
875    pub commission_rate: ::prost::alloc::string::String,
876    #[prost(string, tag = "4")]
877    pub min_self_delegation: ::prost::alloc::string::String,
878}
879/// MsgEditValidatorResponse defines the Msg/EditValidator response type.
880#[allow(clippy::derive_partial_eq_without_eq)]
881#[derive(Clone, PartialEq, ::prost::Message)]
882pub struct MsgEditValidatorResponse {}
883/// MsgDelegate defines a SDK message for performing a delegation of coins
884/// from a delegator to a validator.
885#[allow(clippy::derive_partial_eq_without_eq)]
886#[derive(Clone, PartialEq, ::prost::Message)]
887pub struct MsgDelegate {
888    #[prost(string, tag = "1")]
889    pub delegator_address: ::prost::alloc::string::String,
890    #[prost(string, tag = "2")]
891    pub validator_address: ::prost::alloc::string::String,
892    #[prost(message, optional, tag = "3")]
893    pub amount:
894        ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
895}
896/// MsgDelegateResponse defines the Msg/Delegate response type.
897#[allow(clippy::derive_partial_eq_without_eq)]
898#[derive(Clone, PartialEq, ::prost::Message)]
899pub struct MsgDelegateResponse {}
900/// MsgBeginRedelegate defines a SDK message for performing a redelegation
901/// of coins from a delegator and source validator to a destination validator.
902#[allow(clippy::derive_partial_eq_without_eq)]
903#[derive(Clone, PartialEq, ::prost::Message)]
904pub struct MsgBeginRedelegate {
905    #[prost(string, tag = "1")]
906    pub delegator_address: ::prost::alloc::string::String,
907    #[prost(string, tag = "2")]
908    pub validator_src_address: ::prost::alloc::string::String,
909    #[prost(string, tag = "3")]
910    pub validator_dst_address: ::prost::alloc::string::String,
911    #[prost(message, optional, tag = "4")]
912    pub amount:
913        ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
914}
915/// MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type.
916#[allow(clippy::derive_partial_eq_without_eq)]
917#[derive(Clone, PartialEq, ::prost::Message)]
918pub struct MsgBeginRedelegateResponse {
919    #[prost(message, optional, tag = "1")]
920    pub completion_time: ::core::option::Option<::prost_types::Timestamp>,
921}
922/// MsgUndelegate defines a SDK message for performing an undelegation from a
923/// delegate and a validator.
924#[allow(clippy::derive_partial_eq_without_eq)]
925#[derive(Clone, PartialEq, ::prost::Message)]
926pub struct MsgUndelegate {
927    #[prost(string, tag = "1")]
928    pub delegator_address: ::prost::alloc::string::String,
929    #[prost(string, tag = "2")]
930    pub validator_address: ::prost::alloc::string::String,
931    #[prost(message, optional, tag = "3")]
932    pub amount:
933        ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
934}
935/// MsgUndelegateResponse defines the Msg/Undelegate response type.
936#[allow(clippy::derive_partial_eq_without_eq)]
937#[derive(Clone, PartialEq, ::prost::Message)]
938pub struct MsgUndelegateResponse {
939    #[prost(message, optional, tag = "1")]
940    pub completion_time: ::core::option::Option<::prost_types::Timestamp>,
941}
942/// MsgCancelUnbondingDelegation defines the SDK message for performing a cancel unbonding delegation for delegator
943///
944/// Since: cosmos-sdk 0.46
945#[allow(clippy::derive_partial_eq_without_eq)]
946#[derive(Clone, PartialEq, ::prost::Message)]
947pub struct MsgCancelUnbondingDelegation {
948    #[prost(string, tag = "1")]
949    pub delegator_address: ::prost::alloc::string::String,
950    #[prost(string, tag = "2")]
951    pub validator_address: ::prost::alloc::string::String,
952    /// amount is always less than or equal to unbonding delegation entry balance
953    #[prost(message, optional, tag = "3")]
954    pub amount:
955        ::core::option::Option<crate::proto::cosmos::base::v1beta1::Coin>,
956    /// creation_height is the height which the unbonding took place.
957    #[prost(int64, tag = "4")]
958    pub creation_height: i64,
959}
960/// MsgCancelUnbondingDelegationResponse
961///
962/// Since: cosmos-sdk 0.46
963#[allow(clippy::derive_partial_eq_without_eq)]
964#[derive(Clone, PartialEq, ::prost::Message)]
965pub struct MsgCancelUnbondingDelegationResponse {}
966/// MsgUpdateParams is the Msg/UpdateParams request type.
967///
968/// Since: cosmos-sdk 0.47
969#[allow(clippy::derive_partial_eq_without_eq)]
970#[derive(Clone, PartialEq, ::prost::Message)]
971pub struct MsgUpdateParams {
972    /// authority is the address that controls the module (defaults to x/gov unless overwritten).
973    #[prost(string, tag = "1")]
974    pub authority: ::prost::alloc::string::String,
975    /// params defines the x/staking parameters to update.
976    ///
977    /// NOTE: All parameters must be supplied.
978    #[prost(message, optional, tag = "2")]
979    pub params: ::core::option::Option<Params>,
980}
981/// MsgUpdateParamsResponse defines the response structure for executing a
982/// MsgUpdateParams message.
983///
984/// Since: cosmos-sdk 0.47
985#[allow(clippy::derive_partial_eq_without_eq)]
986#[derive(Clone, PartialEq, ::prost::Message)]
987pub struct MsgUpdateParamsResponse {}
988// @@protoc_insertion_point(module)