2022-01-08 01:59:34 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
package cosmos.distribution.v1beta1;
|
|
|
|
|
|
|
|
option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types";
|
|
|
|
option (gogoproto.equal_all) = true;
|
|
|
|
|
|
|
|
import "gogoproto/gogo.proto";
|
|
|
|
import "cosmos/base/v1beta1/coin.proto";
|
2023-04-04 00:08:45 +00:00
|
|
|
import "cosmos_proto/cosmos.proto";
|
2024-02-06 22:54:10 +00:00
|
|
|
import "amino/amino.proto";
|
2022-01-08 01:59:34 +00:00
|
|
|
|
|
|
|
// Params defines the set of params for the distribution module.
|
|
|
|
message Params {
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/x/distribution/Params";
|
2022-01-08 01:59:34 +00:00
|
|
|
option (gogoproto.goproto_stringer) = false;
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
string community_tax = 1 [
|
2023-04-04 00:08:45 +00:00
|
|
|
(cosmos_proto.scalar) = "cosmos.Dec",
|
2022-01-08 01:59:34 +00:00
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
|
|
|
(gogoproto.nullable) = false
|
|
|
|
];
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// Deprecated: The base_proposer_reward field is deprecated and is no longer used
|
|
|
|
// in the x/distribution module's reward mechanism.
|
2022-01-08 01:59:34 +00:00
|
|
|
string base_proposer_reward = 2 [
|
2023-04-04 00:08:45 +00:00
|
|
|
(cosmos_proto.scalar) = "cosmos.Dec",
|
2022-01-08 01:59:34 +00:00
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
2024-02-06 22:54:10 +00:00
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
deprecated = true
|
2022-01-08 01:59:34 +00:00
|
|
|
];
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// Deprecated: The bonus_proposer_reward field is deprecated and is no longer used
|
|
|
|
// in the x/distribution module's reward mechanism.
|
2022-01-08 01:59:34 +00:00
|
|
|
string bonus_proposer_reward = 3 [
|
2023-04-04 00:08:45 +00:00
|
|
|
(cosmos_proto.scalar) = "cosmos.Dec",
|
2022-01-08 01:59:34 +00:00
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
2024-02-06 22:54:10 +00:00
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
deprecated = true
|
2022-01-08 01:59:34 +00:00
|
|
|
];
|
2024-02-06 22:54:10 +00:00
|
|
|
|
2023-04-04 00:08:45 +00:00
|
|
|
bool withdraw_addr_enabled = 4;
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// ValidatorHistoricalRewards represents historical rewards for a validator.
|
|
|
|
// Height is implicit within the store key.
|
|
|
|
// Cumulative reward ratio is the sum from the zeroeth period
|
|
|
|
// until this period of rewards / tokens, per the spec.
|
|
|
|
// The reference count indicates the number of objects
|
|
|
|
// which might need to reference this historical entry at any point.
|
|
|
|
// ReferenceCount =
|
|
|
|
// number of outstanding delegations which ended the associated period (and
|
|
|
|
// might need to read that record)
|
|
|
|
// + number of slashes which ended the associated period (and might need to
|
|
|
|
// read that record)
|
|
|
|
// + one per validator for the zeroeth period, set on initialization
|
|
|
|
message ValidatorHistoricalRewards {
|
2024-02-06 22:54:10 +00:00
|
|
|
repeated cosmos.base.v1beta1.DecCoin cumulative_reward_ratio = 1 [
|
|
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(amino.dont_omitempty) = true
|
|
|
|
];
|
2023-04-04 00:08:45 +00:00
|
|
|
uint32 reference_count = 2;
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// ValidatorCurrentRewards represents current rewards and current
|
|
|
|
// period for a validator kept as a running counter and incremented
|
|
|
|
// each block as long as the validator's tokens remain constant.
|
|
|
|
message ValidatorCurrentRewards {
|
2024-02-06 22:54:10 +00:00
|
|
|
repeated cosmos.base.v1beta1.DecCoin rewards = 1 [
|
|
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(amino.dont_omitempty) = true
|
|
|
|
];
|
2022-01-08 01:59:34 +00:00
|
|
|
uint64 period = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// ValidatorAccumulatedCommission represents accumulated commission
|
|
|
|
// for a validator kept as a running counter, can be withdrawn at any time.
|
|
|
|
message ValidatorAccumulatedCommission {
|
2024-02-06 22:54:10 +00:00
|
|
|
repeated cosmos.base.v1beta1.DecCoin commission = 1 [
|
|
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(amino.dont_omitempty) = true
|
|
|
|
];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards
|
|
|
|
// for a validator inexpensive to track, allows simple sanity checks.
|
|
|
|
message ValidatorOutstandingRewards {
|
2024-02-06 22:54:10 +00:00
|
|
|
repeated cosmos.base.v1beta1.DecCoin rewards = 1 [
|
|
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(amino.dont_omitempty) = true
|
|
|
|
];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// ValidatorSlashEvent represents a validator slash event.
|
|
|
|
// Height is implicit within the store key.
|
|
|
|
// This is needed to calculate appropriate amount of staking tokens
|
|
|
|
// for delegations which are withdrawn after a slash has occurred.
|
|
|
|
message ValidatorSlashEvent {
|
2023-04-04 00:08:45 +00:00
|
|
|
uint64 validator_period = 1;
|
|
|
|
string fraction = 2 [
|
|
|
|
(cosmos_proto.scalar) = "cosmos.Dec",
|
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
|
|
|
(gogoproto.nullable) = false
|
|
|
|
];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// ValidatorSlashEvents is a collection of ValidatorSlashEvent messages.
|
|
|
|
message ValidatorSlashEvents {
|
|
|
|
option (gogoproto.goproto_stringer) = false;
|
2024-02-06 22:54:10 +00:00
|
|
|
repeated ValidatorSlashEvent validator_slash_events = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// FeePool is the global fee pool for distribution.
|
|
|
|
message FeePool {
|
2024-02-06 22:54:10 +00:00
|
|
|
repeated cosmos.base.v1beta1.DecCoin community_pool = 1 [
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(amino.dont_omitempty) = true,
|
|
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins"
|
|
|
|
];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// CommunityPoolSpendProposal details a proposal for use of community funds,
|
|
|
|
// together with how many coins are proposed to be spent, and to which
|
|
|
|
// recipient account.
|
2024-02-06 22:54:10 +00:00
|
|
|
//
|
|
|
|
// Deprecated: Do not use. As of the Cosmos SDK release v0.47.x, there is no
|
|
|
|
// longer a need for an explicit CommunityPoolSpendProposal. To spend community
|
|
|
|
// pool funds, a simple MsgCommunityPoolSpend can be invoked from the x/gov
|
|
|
|
// module via a v1 governance proposal.
|
2022-01-08 01:59:34 +00:00
|
|
|
message CommunityPoolSpendProposal {
|
2024-02-06 22:54:10 +00:00
|
|
|
option deprecated = true;
|
2023-04-04 00:08:45 +00:00
|
|
|
option (gogoproto.equal) = false;
|
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
option (gogoproto.goproto_stringer) = false;
|
|
|
|
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
2022-01-08 01:59:34 +00:00
|
|
|
|
|
|
|
string title = 1;
|
|
|
|
string description = 2;
|
|
|
|
string recipient = 3;
|
2024-02-06 22:54:10 +00:00
|
|
|
repeated cosmos.base.v1beta1.Coin amount = 4 [
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(amino.dont_omitempty) = true,
|
|
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"
|
|
|
|
];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// DelegatorStartingInfo represents the starting info for a delegator reward
|
|
|
|
// period. It tracks the previous validator period, the delegation's amount of
|
|
|
|
// staking token, and the creation height (to check later on if any slashes have
|
|
|
|
// occurred). NOTE: Even though validators are slashed to whole staking tokens,
|
|
|
|
// the delegators within the validator may be left with less than a full token,
|
|
|
|
// thus sdk.Dec is used.
|
|
|
|
message DelegatorStartingInfo {
|
2023-04-04 00:08:45 +00:00
|
|
|
uint64 previous_period = 1;
|
2022-01-08 01:59:34 +00:00
|
|
|
string stake = 2 [
|
2023-04-04 00:08:45 +00:00
|
|
|
(cosmos_proto.scalar) = "cosmos.Dec",
|
2022-01-08 01:59:34 +00:00
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
|
|
|
(gogoproto.nullable) = false
|
|
|
|
];
|
2024-02-06 22:54:10 +00:00
|
|
|
uint64 height = 3
|
|
|
|
[(gogoproto.jsontag) = "creation_height", (amino.field_name) = "creation_height", (amino.dont_omitempty) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// DelegationDelegatorReward represents the properties
|
|
|
|
// of a delegator's delegation reward.
|
|
|
|
message DelegationDelegatorReward {
|
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
option (gogoproto.goproto_stringer) = true;
|
|
|
|
|
2023-04-04 00:08:45 +00:00
|
|
|
string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2022-01-08 01:59:34 +00:00
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
repeated cosmos.base.v1beta1.DecCoin reward = 2 [
|
|
|
|
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins",
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(amino.dont_omitempty) = true
|
|
|
|
];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal
|
|
|
|
// with a deposit
|
|
|
|
message CommunityPoolSpendProposalWithDeposit {
|
2023-04-04 00:08:45 +00:00
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
option (gogoproto.goproto_stringer) = true;
|
|
|
|
option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content";
|
|
|
|
|
|
|
|
string title = 1;
|
|
|
|
string description = 2;
|
|
|
|
string recipient = 3;
|
|
|
|
string amount = 4;
|
|
|
|
string deposit = 5;
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|