syntax = "proto3"; package proto3; message PartSetHeader { int32 Total = 1; bytes Hash = 2; } message BlockID { bytes Hash = 1; PartSetHeader PartsHeader = 2; } message Header { // basic block info Version Version = 1; string ChainID = 2; int64 Height = 3; Timestamp Time = 4; // prev block info BlockID LastBlockID = 5; // hashes of block data bytes LastCommitHash = 6; // commit from validators from the last block bytes DataHash = 7; // transactions // hashes from the app output from the prev block bytes ValidatorsHash = 8; // validators for the current block bytes NextValidatorsHash = 9; // validators for the next block bytes ConsensusHash = 10; // consensus params for current block bytes AppHash = 11; // state after txs from the previous block bytes LastResultsHash = 12; // root hash of all results from the txs from the previous block // consensus info bytes EvidenceHash = 13; // evidence included in the block bytes ProposerAddress = 14; // original proposer of the block } message Version { uint64 Block = 1; uint64 App = 2; } // Timestamp wraps how amino encodes time. // This is the protobuf well-known type protobuf/timestamp.proto // See: // https://github.com/google/protobuf/blob/d2980062c859649523d5fd51d6b55ab310e47482/src/google/protobuf/timestamp.proto#L123-L135 // NOTE/XXX: nanos do not get skipped if they are zero in amino. message Timestamp { int64 seconds = 1; int32 nanos = 2; }