2022-01-08 01:59:34 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
package cosmos.staking.v1beta1;
|
|
|
|
|
|
|
|
import "google/protobuf/any.proto";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
import "gogoproto/gogo.proto";
|
|
|
|
|
|
|
|
import "cosmos_proto/cosmos.proto";
|
|
|
|
import "cosmos/base/v1beta1/coin.proto";
|
|
|
|
import "cosmos/staking/v1beta1/staking.proto";
|
2023-04-04 00:08:45 +00:00
|
|
|
import "cosmos/msg/v1/msg.proto";
|
2024-02-06 22:54:10 +00:00
|
|
|
import "amino/amino.proto";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2022-01-08 01:59:34 +00:00
|
|
|
option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types";
|
|
|
|
|
|
|
|
// Msg defines the staking Msg service.
|
|
|
|
service Msg {
|
2024-02-06 22:54:10 +00:00
|
|
|
option (cosmos.msg.v1.service) = true;
|
|
|
|
|
2022-01-08 01:59:34 +00:00
|
|
|
// CreateValidator defines a method for creating a new validator.
|
|
|
|
rpc CreateValidator(MsgCreateValidator) returns (MsgCreateValidatorResponse);
|
|
|
|
|
|
|
|
// EditValidator defines a method for editing an existing validator.
|
|
|
|
rpc EditValidator(MsgEditValidator) returns (MsgEditValidatorResponse);
|
|
|
|
|
|
|
|
// Delegate defines a method for performing a delegation of coins
|
|
|
|
// from a delegator to a validator.
|
|
|
|
rpc Delegate(MsgDelegate) returns (MsgDelegateResponse);
|
|
|
|
|
|
|
|
// BeginRedelegate defines a method for performing a redelegation
|
|
|
|
// of coins from a delegator and source validator to a destination validator.
|
|
|
|
rpc BeginRedelegate(MsgBeginRedelegate) returns (MsgBeginRedelegateResponse);
|
|
|
|
|
|
|
|
// Undelegate defines a method for performing an undelegation from a
|
|
|
|
// delegate and a validator.
|
|
|
|
rpc Undelegate(MsgUndelegate) returns (MsgUndelegateResponse);
|
2023-04-04 00:08:45 +00:00
|
|
|
|
|
|
|
// CancelUnbondingDelegation defines a method for performing canceling the unbonding delegation
|
|
|
|
// and delegate back to previous validator.
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.46
|
|
|
|
rpc CancelUnbondingDelegation(MsgCancelUnbondingDelegation) returns (MsgCancelUnbondingDelegationResponse);
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// UpdateParams defines an operation for updating the x/staking module
|
|
|
|
// parameters.
|
|
|
|
// Since: cosmos-sdk 0.47
|
|
|
|
rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse);
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgCreateValidator defines a SDK message for creating a new validator.
|
|
|
|
message MsgCreateValidator {
|
2023-04-04 00:08:45 +00:00
|
|
|
// NOTE(fdymylja): this is a particular case in which
|
|
|
|
// if validator_address == delegator_address then only one
|
|
|
|
// is expected to sign, otherwise both are.
|
|
|
|
option (cosmos.msg.v1.signer) = "delegator_address";
|
|
|
|
option (cosmos.msg.v1.signer) = "validator_address";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/MsgCreateValidator";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2022-01-08 01:59:34 +00:00
|
|
|
option (gogoproto.equal) = false;
|
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
Description description = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
|
|
|
CommissionRates commission = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
string min_self_delegation = 3 [
|
2023-04-04 00:08:45 +00:00
|
|
|
(cosmos_proto.scalar) = "cosmos.Int",
|
2022-01-08 01:59:34 +00:00
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int",
|
|
|
|
(gogoproto.nullable) = false
|
|
|
|
];
|
2023-04-04 00:08:45 +00:00
|
|
|
string delegator_address = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
string validator_address = 5 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2022-01-08 01:59:34 +00:00
|
|
|
google.protobuf.Any pubkey = 6 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"];
|
2024-02-06 22:54:10 +00:00
|
|
|
cosmos.base.v1beta1.Coin value = 7 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgCreateValidatorResponse defines the Msg/CreateValidator response type.
|
|
|
|
message MsgCreateValidatorResponse {}
|
|
|
|
|
|
|
|
// MsgEditValidator defines a SDK message for editing an existing validator.
|
|
|
|
message MsgEditValidator {
|
2023-04-04 00:08:45 +00:00
|
|
|
option (cosmos.msg.v1.signer) = "validator_address";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/MsgEditValidator";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2022-01-08 01:59:34 +00:00
|
|
|
option (gogoproto.equal) = false;
|
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
Description description = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2023-04-04 00:08:45 +00:00
|
|
|
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2022-01-08 01:59:34 +00:00
|
|
|
|
|
|
|
// We pass a reference to the new commission rate and min self delegation as
|
|
|
|
// it's not mandatory to update. If not updated, the deserialized rate will be
|
|
|
|
// zero with no way to distinguish if an update was intended.
|
|
|
|
// REF: #2373
|
2023-04-04 00:08:45 +00:00
|
|
|
string commission_rate = 3
|
|
|
|
[(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec"];
|
|
|
|
string min_self_delegation = 4
|
|
|
|
[(cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int"];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgEditValidatorResponse defines the Msg/EditValidator response type.
|
|
|
|
message MsgEditValidatorResponse {}
|
|
|
|
|
|
|
|
// MsgDelegate defines a SDK message for performing a delegation of coins
|
|
|
|
// from a delegator to a validator.
|
|
|
|
message MsgDelegate {
|
2023-04-04 00:08:45 +00:00
|
|
|
option (cosmos.msg.v1.signer) = "delegator_address";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/MsgDelegate";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
option (gogoproto.equal) = false;
|
|
|
|
option (gogoproto.goproto_getters) = false;
|
2022-01-08 01:59:34 +00:00
|
|
|
|
2023-04-04 00:08:45 +00:00
|
|
|
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2024-02-06 22:54:10 +00:00
|
|
|
cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgDelegateResponse defines the Msg/Delegate response type.
|
|
|
|
message MsgDelegateResponse {}
|
|
|
|
|
|
|
|
// MsgBeginRedelegate defines a SDK message for performing a redelegation
|
|
|
|
// of coins from a delegator and source validator to a destination validator.
|
|
|
|
message MsgBeginRedelegate {
|
2023-04-04 00:08:45 +00:00
|
|
|
option (cosmos.msg.v1.signer) = "delegator_address";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/MsgBeginRedelegate";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
option (gogoproto.equal) = false;
|
|
|
|
option (gogoproto.goproto_getters) = false;
|
2022-01-08 01:59:34 +00:00
|
|
|
|
2023-04-04 00:08:45 +00:00
|
|
|
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
string validator_src_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2024-02-06 22:54:10 +00:00
|
|
|
cosmos.base.v1beta1.Coin amount = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type.
|
|
|
|
message MsgBeginRedelegateResponse {
|
2024-02-06 22:54:10 +00:00
|
|
|
google.protobuf.Timestamp completion_time = 1
|
|
|
|
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgUndelegate defines a SDK message for performing an undelegation from a
|
|
|
|
// delegate and a validator.
|
|
|
|
message MsgUndelegate {
|
2023-04-04 00:08:45 +00:00
|
|
|
option (cosmos.msg.v1.signer) = "delegator_address";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/MsgUndelegate";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
option (gogoproto.equal) = false;
|
|
|
|
option (gogoproto.goproto_getters) = false;
|
2022-01-08 01:59:34 +00:00
|
|
|
|
2023-04-04 00:08:45 +00:00
|
|
|
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2024-02-06 22:54:10 +00:00
|
|
|
cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgUndelegateResponse defines the Msg/Undelegate response type.
|
|
|
|
message MsgUndelegateResponse {
|
2024-02-06 22:54:10 +00:00
|
|
|
google.protobuf.Timestamp completion_time = 1
|
|
|
|
[(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true];
|
2022-01-08 01:59:34 +00:00
|
|
|
}
|
2023-04-04 00:08:45 +00:00
|
|
|
|
|
|
|
// MsgCancelUnbondingDelegation defines the SDK message for performing a cancel unbonding delegation for delegator
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.46
|
|
|
|
message MsgCancelUnbondingDelegation {
|
2024-02-06 22:54:10 +00:00
|
|
|
option (cosmos.msg.v1.signer) = "delegator_address";
|
|
|
|
option (amino.name) = "cosmos-sdk/MsgCancelUnbondingDelegation";
|
|
|
|
option (gogoproto.equal) = false;
|
|
|
|
option (gogoproto.goproto_getters) = false;
|
2023-04-04 00:08:45 +00:00
|
|
|
|
|
|
|
string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// amount is always less than or equal to unbonding delegation entry balance
|
2024-02-06 22:54:10 +00:00
|
|
|
cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2023-04-04 00:08:45 +00:00
|
|
|
// creation_height is the height which the unbonding took place.
|
|
|
|
int64 creation_height = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
// MsgCancelUnbondingDelegationResponse
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.46
|
|
|
|
message MsgCancelUnbondingDelegationResponse {}
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// MsgUpdateParams is the Msg/UpdateParams request type.
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.47
|
|
|
|
message MsgUpdateParams {
|
|
|
|
option (cosmos.msg.v1.signer) = "authority";
|
|
|
|
option (amino.name) = "cosmos-sdk/x/staking/MsgUpdateParams";
|
|
|
|
|
|
|
|
// authority is the address that controls the module (defaults to x/gov unless overwritten).
|
|
|
|
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// params defines the x/staking parameters to update.
|
|
|
|
//
|
|
|
|
// NOTE: All parameters must be supplied.
|
|
|
|
Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
|
|
|
};
|
|
|
|
|
|
|
|
// MsgUpdateParamsResponse defines the response structure for executing a
|
|
|
|
// MsgUpdateParams message.
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.47
|
|
|
|
message MsgUpdateParamsResponse {};
|