github.com/devwanda/aphelion-staking@v0.33.9/proto/types/evidence.proto (about)

     1  syntax = "proto3";
     2  package tendermint.proto.types;
     3  
     4  option go_package = "github.com/devwanda/aphelion-staking/proto/types";
     5  
     6  import "third_party/proto/gogoproto/gogo.proto";
     7  import "proto/types/types.proto";
     8  import "google/protobuf/timestamp.proto";
     9  import "proto/crypto/keys/types.proto";
    10  
    11  // DuplicateVoteEvidence contains evidence a validator signed two conflicting
    12  // votes.
    13  message DuplicateVoteEvidence {
    14    tendermint.proto.crypto.keys.PublicKey pub_key = 1;
    15    Vote vote_a = 2;
    16    Vote vote_b = 3;
    17  }
    18  
    19  message PotentialAmnesiaEvidence {
    20    Vote vote_a = 1;
    21    Vote vote_b = 2;
    22  }
    23  
    24  // MockEvidence is used for testing pruposes
    25  message MockEvidence {
    26    int64                     evidence_height = 1;
    27    google.protobuf.Timestamp evidence_time   = 2
    28        [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
    29    bytes evidence_address = 3;
    30  }
    31  message MockRandomEvidence {
    32    int64                     evidence_height = 1;
    33    google.protobuf.Timestamp evidence_time   = 2
    34        [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
    35    bytes evidence_address = 3;
    36    bytes rand_bytes       = 4;
    37  }
    38  
    39  message ConflictingHeadersEvidence {
    40    SignedHeader h1 = 1;
    41    SignedHeader h2 = 2;
    42  }
    43  
    44  message LunaticValidatorEvidence {
    45    Header header               = 1;
    46    Vote   vote                 = 2;
    47    string invalid_header_field = 3;
    48  }
    49  
    50  message Evidence {
    51    oneof sum {
    52      DuplicateVoteEvidence      duplicate_vote_evidence      = 1;
    53      ConflictingHeadersEvidence conflicting_headers_evidence = 2;
    54      LunaticValidatorEvidence   lunatic_validator_evidence   = 3;
    55      PotentialAmnesiaEvidence   potential_amnesia_evidence   = 4;
    56  
    57      MockEvidence       mock_evidence        = 5;
    58      MockRandomEvidence mock_random_evidence = 6;
    59    }
    60  }
    61  
    62  // EvidenceData contains any evidence of malicious wrong-doing by validators
    63  message EvidenceData {
    64    repeated Evidence evidence = 1 [(gogoproto.nullable) = false];
    65    bytes             hash     = 2;
    66  }
    67  
    68  message ProofOfLockChange {
    69    repeated Vote                          votes   = 1 [(gogoproto.nullable) = false];
    70    tendermint.proto.crypto.keys.PublicKey pub_key = 2 [(gogoproto.nullable) = false];
    71  }