2020-02-19 16:04:13 -08:00
|
|
|
syntax = "proto3";
|
2020-08-11 04:49:45 -07:00
|
|
|
package cosmos.slashing.v1beta1;
|
2020-02-19 16:04:13 -08:00
|
|
|
|
2020-02-21 02:31:16 -08:00
|
|
|
option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types";
|
|
|
|
option (gogoproto.equal_all) = true;
|
2020-02-19 16:04:13 -08:00
|
|
|
|
2020-06-18 10:04:26 -07:00
|
|
|
import "gogoproto/gogo.proto";
|
2020-07-06 14:54:25 -07:00
|
|
|
import "google/protobuf/duration.proto";
|
2020-02-19 16:04:13 -08:00
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
|
|
|
|
// ValidatorSigningInfo defines the signing info for a validator
|
|
|
|
message ValidatorSigningInfo {
|
|
|
|
option (gogoproto.equal) = true;
|
|
|
|
option (gogoproto.goproto_stringer) = false;
|
|
|
|
|
|
|
|
bytes address = 1 [
|
2020-07-14 08:55:19 -07:00
|
|
|
(gogoproto.casttype) = "github.com/cosmos/cosmos-sdk/types.ConsAddress" // validator consensus address
|
2020-02-19 16:04:13 -08:00
|
|
|
];
|
2020-02-20 08:15:22 -08:00
|
|
|
// height at which validator was first a candidate OR was unjailed
|
|
|
|
int64 start_height = 2 [(gogoproto.moretags) = "yaml:\"start_height\""];
|
|
|
|
// index offset into signed block bit array
|
|
|
|
int64 index_offset = 3 [(gogoproto.moretags) = "yaml:\"index_offset\""];
|
|
|
|
// timestamp validator cannot be unjailed until
|
2020-07-14 08:55:19 -07:00
|
|
|
google.protobuf.Timestamp jailed_until = 4
|
|
|
|
[(gogoproto.moretags) = "yaml:\"jailed_until\"", (gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
2020-02-20 08:15:22 -08:00
|
|
|
// whether or not a validator has been tombstoned (killed out of validator set)
|
|
|
|
bool tombstoned = 5;
|
|
|
|
// missed blocks counter (to avoid scanning the array every time)
|
|
|
|
int64 missed_blocks_counter = 6 [(gogoproto.moretags) = "yaml:\"missed_blocks_counter\""];
|
|
|
|
}
|
2020-07-06 14:54:25 -07:00
|
|
|
|
|
|
|
// Params - used for initializing default parameter for slashing at genesis
|
2020-07-14 08:55:19 -07:00
|
|
|
message Params {
|
|
|
|
int64 signed_blocks_window = 1 [(gogoproto.moretags) = "yaml:\"signed_blocks_window\""];
|
|
|
|
bytes min_signed_per_window = 2 [
|
|
|
|
(gogoproto.moretags) = "yaml:\"min_signed_per_window\"",
|
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
|
|
|
(gogoproto.nullable) = false
|
|
|
|
];
|
|
|
|
google.protobuf.Duration downtime_jail_duration = 3 [
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(gogoproto.stdduration) = true,
|
|
|
|
(gogoproto.moretags) = "yaml:\"downtime_jail_duration\""
|
|
|
|
];
|
|
|
|
bytes slash_fraction_double_sign = 4 [
|
|
|
|
(gogoproto.moretags) = "yaml:\"slash_fraction_double_sign\"",
|
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
|
|
|
(gogoproto.nullable) = false
|
|
|
|
];
|
|
|
|
bytes slash_fraction_downtime = 5 [
|
|
|
|
(gogoproto.moretags) = "yaml:\"slash_fraction_downtime\"",
|
|
|
|
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec",
|
|
|
|
(gogoproto.nullable) = false
|
|
|
|
];
|
|
|
|
}
|