syntax = "proto3"; package ethereum.messages.v1; import "google/protobuf/timestamp.proto"; enum Topic { UNKNOWN = 0; COLLATION_BODY_REQUEST = 1; COLLATION_BODY_RESPONSE = 2; TRANSACTIONS = 3; BEACON_BLOCK_HASH_ANNOUNCE = 4; BEACON_BLOCK_REQUEST = 5; BEACON_BLOCK_RESPONSE = 6; } message BeaconBlockHashAnnounce { bytes hash = 1; } message BeaconBlockRequest { bytes hash = 1; } message BeaconBlockResponse { bytes parent_hash = 1; uint64 slot_number = 2; bytes randao_reveal = 3; bytes attestation_bitmask = 4; repeated uint32 attestation_aggregate_sig = 5; repeated AggregateVote shard_aggregate_votes = 6; bytes main_chain_ref = 7; bytes active_state_hash = 8; bytes crystallized_state_hash = 9; google.protobuf.Timestamp timestamp = 10; } message AggregateVote { uint32 shard_id = 1; bytes shard_block_hash = 2; bytes signer_bitmask = 3; repeated uint32 aggregate_sig = 4; } message CollationBodyRequest { uint64 shard_id = 1; uint64 period = 2; bytes chunk_root = 3; bytes proposer_address = 4; bytes signature = 5; } message CollationBodyResponse { bytes header_hash = 1; bytes body = 2; } message Transaction { uint64 nonce = 1; uint64 gas_price = 2; uint64 gas_limit = 3; bytes recipient = 4; uint64 value = 5; bytes input = 6; Signature signature = 7; } message Signature { uint64 v = 1; uint64 r = 2; uint64 s = 3; }