- syntax = "proto3";
- package tendermint.types;
-
- option go_package = "github.com/tendermint/tendermint/proto/types";
-
- import "third_party/proto/gogoproto/gogo.proto";
- import "proto/types/types.proto";
- import "google/protobuf/timestamp.proto";
- import "proto/crypto/keys/types.proto";
-
- // DuplicateVoteEvidence contains evidence a validator signed two conflicting
- // votes.
- message DuplicateVoteEvidence {
- Vote vote_a = 1;
- Vote vote_b = 2;
- }
-
- message PotentialAmnesiaEvidence {
- Vote vote_a = 1;
- Vote vote_b = 2;
-
- int64 height_stamp = 3;
- }
-
- message AmnesiaEvidence {
- PotentialAmnesiaEvidence potential_amnesia_evidence = 1;
- ProofOfLockChange polc = 2;
- }
-
- // MockEvidence is used for testing pruposes
- message MockEvidence {
- int64 evidence_height = 1;
- google.protobuf.Timestamp evidence_time = 2
- [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
- bytes evidence_address = 3;
- }
- message MockRandomEvidence {
- int64 evidence_height = 1;
- google.protobuf.Timestamp evidence_time = 2
- [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];
- bytes evidence_address = 3;
- bytes rand_bytes = 4;
- }
-
- message ConflictingHeadersEvidence {
- SignedHeader h1 = 1;
- SignedHeader h2 = 2;
- }
-
- message LunaticValidatorEvidence {
- Header header = 1;
- Vote vote = 2;
- string invalid_header_field = 3;
- }
-
- message PhantomValidatorEvidence {
- Vote vote = 1;
- int64 last_height_validator_was_in_set = 2;
- }
-
- message Evidence {
- oneof sum {
- DuplicateVoteEvidence duplicate_vote_evidence = 1;
- ConflictingHeadersEvidence conflicting_headers_evidence = 2;
- LunaticValidatorEvidence lunatic_validator_evidence = 3;
- PotentialAmnesiaEvidence potential_amnesia_evidence = 4;
- AmnesiaEvidence amnesia_evidence = 5;
- PhantomValidatorEvidence phantom_validator_evidence = 6;
-
- MockEvidence mock_evidence = 7;
- MockRandomEvidence mock_random_evidence = 8;
- }
- }
-
- // EvidenceData contains any evidence of malicious wrong-doing by validators
- message EvidenceData {
- repeated Evidence evidence = 1 [(gogoproto.nullable) = false];
- bytes hash = 2;
- }
-
- message ProofOfLockChange {
- repeated Vote votes = 1;
- tendermint.crypto.keys.PublicKey pub_key = 2;
- }
|