mirror of
				https://github.com/0glabs/0g-chain.git
				synced 2025-11-04 02:57:26 +00:00 
			
		
		
		
	* sync all third party proto definitions * update cosmos swagger for new imported third party protos
		
			
				
	
	
		
			335 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			335 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
syntax = "proto3";
 | 
						|
package cosmos.staking.v1beta1;
 | 
						|
 | 
						|
import "gogoproto/gogo.proto";
 | 
						|
import "google/protobuf/any.proto";
 | 
						|
import "google/protobuf/duration.proto";
 | 
						|
import "google/protobuf/timestamp.proto";
 | 
						|
 | 
						|
import "cosmos_proto/cosmos.proto";
 | 
						|
import "cosmos/base/v1beta1/coin.proto";
 | 
						|
import "tendermint/types/types.proto";
 | 
						|
 | 
						|
option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types";
 | 
						|
 | 
						|
// HistoricalInfo contains header and validator information for a given block.
 | 
						|
// It is stored as part of staking module's state, which persists the `n` most
 | 
						|
// recent HistoricalInfo
 | 
						|
// (`n` is set by the staking module's `historical_entries` parameter).
 | 
						|
message HistoricalInfo {
 | 
						|
  tendermint.types.Header header = 1 [(gogoproto.nullable) = false];
 | 
						|
  repeated Validator      valset = 2 [(gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// CommissionRates defines the initial commission rates to be used for creating
 | 
						|
// a validator.
 | 
						|
message CommissionRates {
 | 
						|
  option (gogoproto.equal)            = true;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // rate is the commission rate charged to delegators, as a fraction.
 | 
						|
  string rate = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
 | 
						|
  // max_rate defines the maximum commission rate which validator can ever charge, as a fraction.
 | 
						|
  string max_rate = 2 [
 | 
						|
    (gogoproto.moretags)   = "yaml:\"max_rate\"",
 | 
						|
    (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
 | 
						|
    (gogoproto.nullable)   = false
 | 
						|
  ];
 | 
						|
  // max_change_rate defines the maximum daily increase of the validator commission, as a fraction.
 | 
						|
  string max_change_rate = 3 [
 | 
						|
    (gogoproto.moretags)   = "yaml:\"max_change_rate\"",
 | 
						|
    (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
 | 
						|
    (gogoproto.nullable)   = false
 | 
						|
  ];
 | 
						|
}
 | 
						|
 | 
						|
// Commission defines commission parameters for a given validator.
 | 
						|
message Commission {
 | 
						|
  option (gogoproto.equal)            = true;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // commission_rates defines the initial commission rates to be used for creating a validator.
 | 
						|
  CommissionRates commission_rates = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
 | 
						|
  // update_time is the last time the commission rate was changed.
 | 
						|
  google.protobuf.Timestamp update_time = 2
 | 
						|
      [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"update_time\""];
 | 
						|
}
 | 
						|
 | 
						|
// Description defines a validator description.
 | 
						|
message Description {
 | 
						|
  option (gogoproto.equal)            = true;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // moniker defines a human-readable name for the validator.
 | 
						|
  string moniker = 1;
 | 
						|
  // identity defines an optional identity signature (ex. UPort or Keybase).
 | 
						|
  string identity = 2;
 | 
						|
  // website defines an optional website link.
 | 
						|
  string website = 3;
 | 
						|
  // security_contact defines an optional email for security contact.
 | 
						|
  string security_contact = 4 [(gogoproto.moretags) = "yaml:\"security_contact\""];
 | 
						|
  // details define other optional details.
 | 
						|
  string details = 5;
 | 
						|
}
 | 
						|
 | 
						|
// Validator defines a validator, together with the total amount of the
 | 
						|
// Validator's bond shares and their exchange rate to coins. Slashing results in
 | 
						|
// a decrease in the exchange rate, allowing correct calculation of future
 | 
						|
// undelegations without iterating over delegators. When coins are delegated to
 | 
						|
// this validator, the validator is credited with a delegation whose number of
 | 
						|
// bond shares is based on the amount of coins delegated divided by the current
 | 
						|
// exchange rate. Voting power can be calculated as total bonded shares
 | 
						|
// multiplied by exchange rate.
 | 
						|
message Validator {
 | 
						|
  option (gogoproto.equal)            = false;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
  option (gogoproto.goproto_getters)  = false;
 | 
						|
 | 
						|
  // operator_address defines the address of the validator's operator; bech encoded in JSON.
 | 
						|
  string operator_address = 1 [(gogoproto.moretags) = "yaml:\"operator_address\""];
 | 
						|
  // consensus_pubkey is the consensus public key of the validator, as a Protobuf Any.
 | 
						|
  google.protobuf.Any consensus_pubkey = 2
 | 
						|
      [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey", (gogoproto.moretags) = "yaml:\"consensus_pubkey\""];
 | 
						|
  // jailed defined whether the validator has been jailed from bonded status or not.
 | 
						|
  bool jailed = 3;
 | 
						|
  // status is the validator status (bonded/unbonding/unbonded).
 | 
						|
  BondStatus status = 4;
 | 
						|
  // tokens define the delegated tokens (incl. self-delegation).
 | 
						|
  string tokens = 5 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
 | 
						|
  // delegator_shares defines total shares issued to a validator's delegators.
 | 
						|
  string delegator_shares = 6 [
 | 
						|
    (gogoproto.moretags)   = "yaml:\"delegator_shares\"",
 | 
						|
    (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
 | 
						|
    (gogoproto.nullable)   = false
 | 
						|
  ];
 | 
						|
  // description defines the description terms for the validator.
 | 
						|
  Description description = 7 [(gogoproto.nullable) = false];
 | 
						|
  // unbonding_height defines, if unbonding, the height at which this validator has begun unbonding.
 | 
						|
  int64 unbonding_height = 8 [(gogoproto.moretags) = "yaml:\"unbonding_height\""];
 | 
						|
  // unbonding_time defines, if unbonding, the min time for the validator to complete unbonding.
 | 
						|
  google.protobuf.Timestamp unbonding_time = 9
 | 
						|
      [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"unbonding_time\""];
 | 
						|
  // commission defines the commission parameters.
 | 
						|
  Commission commission = 10 [(gogoproto.nullable) = false];
 | 
						|
  // min_self_delegation is the validator's self declared minimum self delegation.
 | 
						|
  string min_self_delegation = 11 [
 | 
						|
    (gogoproto.moretags)   = "yaml:\"min_self_delegation\"",
 | 
						|
    (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | 
						|
    (gogoproto.nullable)   = false
 | 
						|
  ];
 | 
						|
}
 | 
						|
 | 
						|
// BondStatus is the status of a validator.
 | 
						|
enum BondStatus {
 | 
						|
  option (gogoproto.goproto_enum_prefix) = false;
 | 
						|
 | 
						|
  // UNSPECIFIED defines an invalid validator status.
 | 
						|
  BOND_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "Unspecified"];
 | 
						|
  // UNBONDED defines a validator that is not bonded.
 | 
						|
  BOND_STATUS_UNBONDED = 1 [(gogoproto.enumvalue_customname) = "Unbonded"];
 | 
						|
  // UNBONDING defines a validator that is unbonding.
 | 
						|
  BOND_STATUS_UNBONDING = 2 [(gogoproto.enumvalue_customname) = "Unbonding"];
 | 
						|
  // BONDED defines a validator that is bonded.
 | 
						|
  BOND_STATUS_BONDED = 3 [(gogoproto.enumvalue_customname) = "Bonded"];
 | 
						|
}
 | 
						|
 | 
						|
// ValAddresses defines a repeated set of validator addresses.
 | 
						|
message ValAddresses {
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
  option (gogoproto.stringer)         = true;
 | 
						|
 | 
						|
  repeated string addresses = 1;
 | 
						|
}
 | 
						|
 | 
						|
// DVPair is struct that just has a delegator-validator pair with no other data.
 | 
						|
// It is intended to be used as a marshalable pointer. For example, a DVPair can
 | 
						|
// be used to construct the key to getting an UnbondingDelegation from state.
 | 
						|
message DVPair {
 | 
						|
  option (gogoproto.equal)            = false;
 | 
						|
  option (gogoproto.goproto_getters)  = false;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
 | 
						|
  string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
 | 
						|
}
 | 
						|
 | 
						|
// DVPairs defines an array of DVPair objects.
 | 
						|
message DVPairs {
 | 
						|
  repeated DVPair pairs = 1 [(gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// DVVTriplet is struct that just has a delegator-validator-validator triplet
 | 
						|
// with no other data. It is intended to be used as a marshalable pointer. For
 | 
						|
// example, a DVVTriplet can be used to construct the key to getting a
 | 
						|
// Redelegation from state.
 | 
						|
message DVVTriplet {
 | 
						|
  option (gogoproto.equal)            = false;
 | 
						|
  option (gogoproto.goproto_getters)  = false;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  string delegator_address     = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
 | 
						|
  string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""];
 | 
						|
  string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""];
 | 
						|
}
 | 
						|
 | 
						|
// DVVTriplets defines an array of DVVTriplet objects.
 | 
						|
message DVVTriplets {
 | 
						|
  repeated DVVTriplet triplets = 1 [(gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// Delegation represents the bond with tokens held by an account. It is
 | 
						|
// owned by one delegator, and is associated with the voting power of one
 | 
						|
// validator.
 | 
						|
message Delegation {
 | 
						|
  option (gogoproto.equal)            = false;
 | 
						|
  option (gogoproto.goproto_getters)  = false;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // delegator_address is the bech32-encoded address of the delegator.
 | 
						|
  string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
 | 
						|
  // validator_address is the bech32-encoded address of the validator.
 | 
						|
  string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
 | 
						|
  // shares define the delegation shares received.
 | 
						|
  string shares = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// UnbondingDelegation stores all of a single delegator's unbonding bonds
 | 
						|
// for a single validator in an time-ordered list.
 | 
						|
message UnbondingDelegation {
 | 
						|
  option (gogoproto.equal)            = false;
 | 
						|
  option (gogoproto.goproto_getters)  = false;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // delegator_address is the bech32-encoded address of the delegator.
 | 
						|
  string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
 | 
						|
  // validator_address is the bech32-encoded address of the validator.
 | 
						|
  string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""];
 | 
						|
  // entries are the unbonding delegation entries.
 | 
						|
  repeated UnbondingDelegationEntry entries = 3 [(gogoproto.nullable) = false]; // unbonding delegation entries
 | 
						|
}
 | 
						|
 | 
						|
// UnbondingDelegationEntry defines an unbonding object with relevant metadata.
 | 
						|
message UnbondingDelegationEntry {
 | 
						|
  option (gogoproto.equal)            = true;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // creation_height is the height which the unbonding took place.
 | 
						|
  int64 creation_height = 1 [(gogoproto.moretags) = "yaml:\"creation_height\""];
 | 
						|
  // completion_time is the unix time for unbonding completion.
 | 
						|
  google.protobuf.Timestamp completion_time = 2
 | 
						|
      [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"completion_time\""];
 | 
						|
  // initial_balance defines the tokens initially scheduled to receive at completion.
 | 
						|
  string initial_balance = 3 [
 | 
						|
    (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | 
						|
    (gogoproto.nullable)   = false,
 | 
						|
    (gogoproto.moretags)   = "yaml:\"initial_balance\""
 | 
						|
  ];
 | 
						|
  // balance defines the tokens to receive at completion.
 | 
						|
  string balance = 4 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// RedelegationEntry defines a redelegation object with relevant metadata.
 | 
						|
message RedelegationEntry {
 | 
						|
  option (gogoproto.equal)            = true;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // creation_height  defines the height which the redelegation took place.
 | 
						|
  int64 creation_height = 1 [(gogoproto.moretags) = "yaml:\"creation_height\""];
 | 
						|
  // completion_time defines the unix time for redelegation completion.
 | 
						|
  google.protobuf.Timestamp completion_time = 2
 | 
						|
      [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"completion_time\""];
 | 
						|
  // initial_balance defines the initial balance when redelegation started.
 | 
						|
  string initial_balance = 3 [
 | 
						|
    (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | 
						|
    (gogoproto.nullable)   = false,
 | 
						|
    (gogoproto.moretags)   = "yaml:\"initial_balance\""
 | 
						|
  ];
 | 
						|
  // shares_dst is the amount of destination-validator shares created by redelegation.
 | 
						|
  string shares_dst = 4
 | 
						|
      [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// Redelegation contains the list of a particular delegator's redelegating bonds
 | 
						|
// from a particular source validator to a particular destination validator.
 | 
						|
message Redelegation {
 | 
						|
  option (gogoproto.equal)            = false;
 | 
						|
  option (gogoproto.goproto_getters)  = false;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // delegator_address is the bech32-encoded address of the delegator.
 | 
						|
  string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""];
 | 
						|
  // validator_src_address is the validator redelegation source operator address.
 | 
						|
  string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""];
 | 
						|
  // validator_dst_address is the validator redelegation destination operator address.
 | 
						|
  string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""];
 | 
						|
  // entries are the redelegation entries.
 | 
						|
  repeated RedelegationEntry entries = 4 [(gogoproto.nullable) = false]; // redelegation entries
 | 
						|
}
 | 
						|
 | 
						|
// Params defines the parameters for the staking module.
 | 
						|
message Params {
 | 
						|
  option (gogoproto.equal)            = true;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  // unbonding_time is the time duration of unbonding.
 | 
						|
  google.protobuf.Duration unbonding_time = 1
 | 
						|
      [(gogoproto.nullable) = false, (gogoproto.stdduration) = true, (gogoproto.moretags) = "yaml:\"unbonding_time\""];
 | 
						|
  // max_validators is the maximum number of validators.
 | 
						|
  uint32 max_validators = 2 [(gogoproto.moretags) = "yaml:\"max_validators\""];
 | 
						|
  // max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio).
 | 
						|
  uint32 max_entries = 3 [(gogoproto.moretags) = "yaml:\"max_entries\""];
 | 
						|
  // historical_entries is the number of historical entries to persist.
 | 
						|
  uint32 historical_entries = 4 [(gogoproto.moretags) = "yaml:\"historical_entries\""];
 | 
						|
  // bond_denom defines the bondable coin denomination.
 | 
						|
  string bond_denom = 5 [(gogoproto.moretags) = "yaml:\"bond_denom\""];
 | 
						|
}
 | 
						|
 | 
						|
// DelegationResponse is equivalent to Delegation except that it contains a
 | 
						|
// balance in addition to shares which is more suitable for client responses.
 | 
						|
message DelegationResponse {
 | 
						|
  option (gogoproto.equal)            = false;
 | 
						|
  option (gogoproto.goproto_stringer) = false;
 | 
						|
 | 
						|
  Delegation delegation = 1 [(gogoproto.nullable) = false];
 | 
						|
 | 
						|
  cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// RedelegationEntryResponse is equivalent to a RedelegationEntry except that it
 | 
						|
// contains a balance in addition to shares which is more suitable for client
 | 
						|
// responses.
 | 
						|
message RedelegationEntryResponse {
 | 
						|
  option (gogoproto.equal) = true;
 | 
						|
 | 
						|
  RedelegationEntry redelegation_entry = 1 [(gogoproto.nullable) = false];
 | 
						|
  string balance = 4 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// RedelegationResponse is equivalent to a Redelegation except that its entries
 | 
						|
// contain a balance in addition to shares which is more suitable for client
 | 
						|
// responses.
 | 
						|
message RedelegationResponse {
 | 
						|
  option (gogoproto.equal) = false;
 | 
						|
 | 
						|
  Redelegation                       redelegation = 1 [(gogoproto.nullable) = false];
 | 
						|
  repeated RedelegationEntryResponse entries      = 2 [(gogoproto.nullable) = false];
 | 
						|
}
 | 
						|
 | 
						|
// Pool is used for tracking bonded and not-bonded token supply of the bond
 | 
						|
// denomination.
 | 
						|
message Pool {
 | 
						|
  option (gogoproto.description) = true;
 | 
						|
  option (gogoproto.equal)       = true;
 | 
						|
  string not_bonded_tokens       = 1 [
 | 
						|
    (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | 
						|
    (gogoproto.jsontag)    = "not_bonded_tokens",
 | 
						|
    (gogoproto.nullable)   = false
 | 
						|
  ];
 | 
						|
  string bonded_tokens = 2 [
 | 
						|
    (gogoproto.jsontag)    = "bonded_tokens",
 | 
						|
    (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
 | 
						|
    (gogoproto.nullable)   = false,
 | 
						|
    (gogoproto.moretags)   = "yaml:\"bonded_tokens\""
 | 
						|
  ];
 | 
						|
}
 |