syntax = "proto3";
package cosmos.evidence.v1beta1;

option go_package            = "cosmossdk.io/x/evidence/types";
option (gogoproto.equal_all) = true;

import "amino/amino.proto";
import "gogoproto/gogo.proto";
import "google/protobuf/timestamp.proto";
import "cosmos_proto/cosmos.proto";

// Equivocation implements the Evidence interface and defines evidence of double
// signing misbehavior.
message Equivocation {
  option (amino.name)                = "cosmos-sdk/Equivocation";
  option (gogoproto.goproto_getters) = false;
  option (gogoproto.equal)           = false;

  // height is the equivocation height.
  int64 height = 1;

  // time is the equivocation time.
  google.protobuf.Timestamp time = 2
      [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true];

  // power is the equivocation validator power.
  int64 power = 3;

  // consensus_address is the equivocation validator consensus address.
  string consensus_address = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"];
}