syntax = "proto3";

package ethereum.beacon.p2p.v1;

import "github.com/gogo/protobuf/gogoproto/gogo.proto";

message Status {
  bytes fork_digest = 1 [(gogoproto.moretags) = "ssz-size:\"4\""];
  bytes finalized_root = 2 [(gogoproto.moretags) = "ssz-size:\"32\""];
  uint64 finalized_epoch = 3;
  bytes head_root = 4 [(gogoproto.moretags) = "ssz-size:\"32\""];
  uint64 head_slot = 5;
}

message BeaconBlocksByRangeRequest {
  uint64 start_slot = 1;
  uint64 count = 2;
  uint64 step = 3;
}
// Deprecated: Will eventually be removed is only kept around for backward compatibility.
message BeaconBlocksByRootRequest {
  repeated bytes block_roots = 1 [(gogoproto.moretags) = "ssz-size:\"?,32\" ssz-max:\"1024\""];
}

message ErrorResponse {
  bytes message = 1 [(gogoproto.moretags) = "ssz-max:\"256\""];
}

message ENRForkID {
  bytes current_fork_digest = 1 [(gogoproto.moretags) = "ssz-size:\"4\""];
  bytes next_fork_version = 2 [(gogoproto.moretags) = "ssz-size:\"4\""];
  uint64 next_fork_epoch = 3;
}
/*
 Spec Definition:
 MetaData
 (
  seq_number: uint64
  attnets: Bitvector[ATTESTATION_SUBNET_COUNT]
 )
*/
message MetaData {
  uint64 seq_number =1;
  bytes attnets = 2 [(gogoproto.moretags) = "ssz-size:\"8\"", (gogoproto.casttype) = "github.com/prysmaticlabs/go-bitfield.Bitvector64"];
}