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 CrystallizedStateHashAnnounce { bytes hash = 1; } message CrystallizedStateRequest { bytes hash = 1; } message CrystallizedStateResponse { repeated ValidatorRecord active_validators = 1; repeated ValidatorRecord queued_validators = 2; repeated ValidatorRecord exited_validators = 3; repeated uint64 current_epoch_shuffling = 4; uint64 current_epoch = 5; uint64 last_justified_epoch = 6; uint64 last_finalized_epoch = 7; uint64 current_dynasty = 8; uint64 next_shard = 9; bytes current_check_point = 10; uint64 total_deposits = 11; bytes dynasty_seed = 12; uint64 dynasty_seed_last_reset = 13; } message ActiveStateHashAnnounce { bytes hash = 1; } message ActiveStateRequest { bytes hash = 1; } message ActiveStateResponse { uint64 total_attester_deposits = 1; bytes attester_bitfield = 2; } 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 ValidatorRecord { uint64 public_key = 1; uint64 withdrawal_shard = 2; bytes withdrawal_address = 3; bytes randao_commitment = 4; uint64 balance = 5; uint64 switch_dynasty = 6; } 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; }