diff --git a/proto/engine/v1/json_marshal_unmarshal.go b/proto/engine/v1/json_marshal_unmarshal.go index aae2fa137..31f5c5949 100644 --- a/proto/engine/v1/json_marshal_unmarshal.go +++ b/proto/engine/v1/json_marshal_unmarshal.go @@ -16,8 +16,6 @@ import ( "github.com/prysmaticlabs/prysm/v5/runtime/version" ) -var errExecutionUnmarshal = errors.New("unable to unmarshal execution engine data") - // PayloadIDBytes defines a custom type for Payload IDs used by the engine API // client with proper JSON Marshal and Unmarshal methods to hex. type PayloadIDBytes [8]byte diff --git a/proto/eth/v1/BUILD.bazel b/proto/eth/v1/BUILD.bazel index f35ed02bc..8db674d4c 100644 --- a/proto/eth/v1/BUILD.bazel +++ b/proto/eth/v1/BUILD.bazel @@ -113,7 +113,6 @@ ssz_proto_files( name = "ssz_proto_files", srcs = [ "beacon_block.proto", - "beacon_state.proto", ], config = select({ "//conditions:default": "mainnet", diff --git a/proto/eth/v1/beacon_state.pb.go b/proto/eth/v1/beacon_state.pb.go deleted file mode 100755 index 0bd7fecf3..000000000 --- a/proto/eth/v1/beacon_state.pb.go +++ /dev/null @@ -1,938 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.31.0 -// protoc v4.25.1 -// source: proto/eth/v1/beacon_state.proto - -package v1 - -import ( - reflect "reflect" - sync "sync" - - github_com_prysmaticlabs_go_bitfield "github.com/prysmaticlabs/go-bitfield" - github_com_prysmaticlabs_prysm_v5_consensus_types_primitives "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives" - _ "github.com/prysmaticlabs/prysm/v5/proto/eth/ext" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/descriptorpb" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type BeaconState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GenesisTime uint64 `protobuf:"varint,1001,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` - GenesisValidatorsRoot []byte `protobuf:"bytes,1002,opt,name=genesis_validators_root,json=genesisValidatorsRoot,proto3" json:"genesis_validators_root,omitempty" ssz-size:"32"` - Slot github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,1003,opt,name=slot,proto3" json:"slot,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` - Fork *Fork `protobuf:"bytes,1004,opt,name=fork,proto3" json:"fork,omitempty"` - LatestBlockHeader *BeaconBlockHeader `protobuf:"bytes,2001,opt,name=latest_block_header,json=latestBlockHeader,proto3" json:"latest_block_header,omitempty"` - BlockRoots [][]byte `protobuf:"bytes,2002,rep,name=block_roots,json=blockRoots,proto3" json:"block_roots,omitempty" ssz-size:"8192,32"` - StateRoots [][]byte `protobuf:"bytes,2003,rep,name=state_roots,json=stateRoots,proto3" json:"state_roots,omitempty" ssz-size:"8192,32"` - HistoricalRoots [][]byte `protobuf:"bytes,2004,rep,name=historical_roots,json=historicalRoots,proto3" json:"historical_roots,omitempty" ssz-max:"16777216" ssz-size:"?,32"` - Eth1Data *Eth1Data `protobuf:"bytes,3001,opt,name=eth1_data,json=eth1Data,proto3" json:"eth1_data,omitempty"` - Eth1DataVotes []*Eth1Data `protobuf:"bytes,3002,rep,name=eth1_data_votes,json=eth1DataVotes,proto3" json:"eth1_data_votes,omitempty" ssz-max:"2048"` - Eth1DepositIndex uint64 `protobuf:"varint,3003,opt,name=eth1_deposit_index,json=eth1DepositIndex,proto3" json:"eth1_deposit_index,omitempty"` - Validators []*Validator `protobuf:"bytes,4001,rep,name=validators,proto3" json:"validators,omitempty" ssz-max:"1099511627776"` - Balances []uint64 `protobuf:"varint,4002,rep,packed,name=balances,proto3" json:"balances,omitempty" ssz-max:"1099511627776"` - RandaoMixes [][]byte `protobuf:"bytes,5001,rep,name=randao_mixes,json=randaoMixes,proto3" json:"randao_mixes,omitempty" ssz-size:"65536,32"` - Slashings []uint64 `protobuf:"varint,6001,rep,packed,name=slashings,proto3" json:"slashings,omitempty" ssz-size:"8192"` - PreviousEpochAttestations []*PendingAttestation `protobuf:"bytes,7001,rep,name=previous_epoch_attestations,json=previousEpochAttestations,proto3" json:"previous_epoch_attestations,omitempty" ssz-max:"4096"` - CurrentEpochAttestations []*PendingAttestation `protobuf:"bytes,7002,rep,name=current_epoch_attestations,json=currentEpochAttestations,proto3" json:"current_epoch_attestations,omitempty" ssz-max:"4096"` - JustificationBits github_com_prysmaticlabs_go_bitfield.Bitvector4 `protobuf:"bytes,8001,opt,name=justification_bits,json=justificationBits,proto3" json:"justification_bits,omitempty" cast-type:"github.com/prysmaticlabs/go-bitfield.Bitvector4" ssz-size:"1"` - PreviousJustifiedCheckpoint *Checkpoint `protobuf:"bytes,8002,opt,name=previous_justified_checkpoint,json=previousJustifiedCheckpoint,proto3" json:"previous_justified_checkpoint,omitempty"` - CurrentJustifiedCheckpoint *Checkpoint `protobuf:"bytes,8003,opt,name=current_justified_checkpoint,json=currentJustifiedCheckpoint,proto3" json:"current_justified_checkpoint,omitempty"` - FinalizedCheckpoint *Checkpoint `protobuf:"bytes,8004,opt,name=finalized_checkpoint,json=finalizedCheckpoint,proto3" json:"finalized_checkpoint,omitempty"` -} - -func (x *BeaconState) Reset() { - *x = BeaconState{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BeaconState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BeaconState) ProtoMessage() {} - -func (x *BeaconState) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BeaconState.ProtoReflect.Descriptor instead. -func (*BeaconState) Descriptor() ([]byte, []int) { - return file_proto_eth_v1_beacon_state_proto_rawDescGZIP(), []int{0} -} - -func (x *BeaconState) GetGenesisTime() uint64 { - if x != nil { - return x.GenesisTime - } - return 0 -} - -func (x *BeaconState) GetGenesisValidatorsRoot() []byte { - if x != nil { - return x.GenesisValidatorsRoot - } - return nil -} - -func (x *BeaconState) GetSlot() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.Slot - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -func (x *BeaconState) GetFork() *Fork { - if x != nil { - return x.Fork - } - return nil -} - -func (x *BeaconState) GetLatestBlockHeader() *BeaconBlockHeader { - if x != nil { - return x.LatestBlockHeader - } - return nil -} - -func (x *BeaconState) GetBlockRoots() [][]byte { - if x != nil { - return x.BlockRoots - } - return nil -} - -func (x *BeaconState) GetStateRoots() [][]byte { - if x != nil { - return x.StateRoots - } - return nil -} - -func (x *BeaconState) GetHistoricalRoots() [][]byte { - if x != nil { - return x.HistoricalRoots - } - return nil -} - -func (x *BeaconState) GetEth1Data() *Eth1Data { - if x != nil { - return x.Eth1Data - } - return nil -} - -func (x *BeaconState) GetEth1DataVotes() []*Eth1Data { - if x != nil { - return x.Eth1DataVotes - } - return nil -} - -func (x *BeaconState) GetEth1DepositIndex() uint64 { - if x != nil { - return x.Eth1DepositIndex - } - return 0 -} - -func (x *BeaconState) GetValidators() []*Validator { - if x != nil { - return x.Validators - } - return nil -} - -func (x *BeaconState) GetBalances() []uint64 { - if x != nil { - return x.Balances - } - return nil -} - -func (x *BeaconState) GetRandaoMixes() [][]byte { - if x != nil { - return x.RandaoMixes - } - return nil -} - -func (x *BeaconState) GetSlashings() []uint64 { - if x != nil { - return x.Slashings - } - return nil -} - -func (x *BeaconState) GetPreviousEpochAttestations() []*PendingAttestation { - if x != nil { - return x.PreviousEpochAttestations - } - return nil -} - -func (x *BeaconState) GetCurrentEpochAttestations() []*PendingAttestation { - if x != nil { - return x.CurrentEpochAttestations - } - return nil -} - -func (x *BeaconState) GetJustificationBits() github_com_prysmaticlabs_go_bitfield.Bitvector4 { - if x != nil { - return x.JustificationBits - } - return github_com_prysmaticlabs_go_bitfield.Bitvector4(nil) -} - -func (x *BeaconState) GetPreviousJustifiedCheckpoint() *Checkpoint { - if x != nil { - return x.PreviousJustifiedCheckpoint - } - return nil -} - -func (x *BeaconState) GetCurrentJustifiedCheckpoint() *Checkpoint { - if x != nil { - return x.CurrentJustifiedCheckpoint - } - return nil -} - -func (x *BeaconState) GetFinalizedCheckpoint() *Checkpoint { - if x != nil { - return x.FinalizedCheckpoint - } - return nil -} - -type PendingAttestation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AggregationBits github_com_prysmaticlabs_go_bitfield.Bitlist `protobuf:"bytes,1,opt,name=aggregation_bits,json=aggregationBits,proto3" json:"aggregation_bits,omitempty" cast-type:"github.com/prysmaticlabs/go-bitfield.Bitlist" ssz-max:"2048"` - Data *AttestationData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - InclusionDelay github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,3,opt,name=inclusion_delay,json=inclusionDelay,proto3" json:"inclusion_delay,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` - ProposerIndex github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex `protobuf:"varint,4,opt,name=proposer_index,json=proposerIndex,proto3" json:"proposer_index,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"` -} - -func (x *PendingAttestation) Reset() { - *x = PendingAttestation{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PendingAttestation) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PendingAttestation) ProtoMessage() {} - -func (x *PendingAttestation) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PendingAttestation.ProtoReflect.Descriptor instead. -func (*PendingAttestation) Descriptor() ([]byte, []int) { - return file_proto_eth_v1_beacon_state_proto_rawDescGZIP(), []int{1} -} - -func (x *PendingAttestation) GetAggregationBits() github_com_prysmaticlabs_go_bitfield.Bitlist { - if x != nil { - return x.AggregationBits - } - return github_com_prysmaticlabs_go_bitfield.Bitlist(nil) -} - -func (x *PendingAttestation) GetData() *AttestationData { - if x != nil { - return x.Data - } - return nil -} - -func (x *PendingAttestation) GetInclusionDelay() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.InclusionDelay - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -func (x *PendingAttestation) GetProposerIndex() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex { - if x != nil { - return x.ProposerIndex - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex(0) -} - -type Committee struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Index github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.CommitteeIndex `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.CommitteeIndex"` - Slot github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,2,opt,name=slot,proto3" json:"slot,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` - Validators []github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex `protobuf:"varint,3,rep,packed,name=validators,proto3" json:"validators,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"` -} - -func (x *Committee) Reset() { - *x = Committee{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Committee) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Committee) ProtoMessage() {} - -func (x *Committee) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Committee.ProtoReflect.Descriptor instead. -func (*Committee) Descriptor() ([]byte, []int) { - return file_proto_eth_v1_beacon_state_proto_rawDescGZIP(), []int{2} -} - -func (x *Committee) GetIndex() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.CommitteeIndex { - if x != nil { - return x.Index - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.CommitteeIndex(0) -} - -func (x *Committee) GetSlot() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.Slot - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -func (x *Committee) GetValidators() []github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex { - if x != nil { - return x.Validators - } - return []github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex(nil) -} - -type Fork struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PreviousVersion []byte `protobuf:"bytes,1,opt,name=previous_version,json=previousVersion,proto3" json:"previous_version,omitempty" ssz-size:"4"` - CurrentVersion []byte `protobuf:"bytes,2,opt,name=current_version,json=currentVersion,proto3" json:"current_version,omitempty" ssz-size:"4"` - Epoch github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Epoch `protobuf:"varint,3,opt,name=epoch,proto3" json:"epoch,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"` -} - -func (x *Fork) Reset() { - *x = Fork{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Fork) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Fork) ProtoMessage() {} - -func (x *Fork) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Fork.ProtoReflect.Descriptor instead. -func (*Fork) Descriptor() ([]byte, []int) { - return file_proto_eth_v1_beacon_state_proto_rawDescGZIP(), []int{3} -} - -func (x *Fork) GetPreviousVersion() []byte { - if x != nil { - return x.PreviousVersion - } - return nil -} - -func (x *Fork) GetCurrentVersion() []byte { - if x != nil { - return x.CurrentVersion - } - return nil -} - -func (x *Fork) GetEpoch() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Epoch { - if x != nil { - return x.Epoch - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Epoch(0) -} - -type ForkChoiceHeadsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Data []*ForkChoiceHead `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` -} - -func (x *ForkChoiceHeadsResponse) Reset() { - *x = ForkChoiceHeadsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ForkChoiceHeadsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ForkChoiceHeadsResponse) ProtoMessage() {} - -func (x *ForkChoiceHeadsResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ForkChoiceHeadsResponse.ProtoReflect.Descriptor instead. -func (*ForkChoiceHeadsResponse) Descriptor() ([]byte, []int) { - return file_proto_eth_v1_beacon_state_proto_rawDescGZIP(), []int{4} -} - -func (x *ForkChoiceHeadsResponse) GetData() []*ForkChoiceHead { - if x != nil { - return x.Data - } - return nil -} - -type ForkChoiceHead struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Root []byte `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty" ssz-size:"32"` - Slot github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,2,opt,name=slot,proto3" json:"slot,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` -} - -func (x *ForkChoiceHead) Reset() { - *x = ForkChoiceHead{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ForkChoiceHead) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ForkChoiceHead) ProtoMessage() {} - -func (x *ForkChoiceHead) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ForkChoiceHead.ProtoReflect.Descriptor instead. -func (*ForkChoiceHead) Descriptor() ([]byte, []int) { - return file_proto_eth_v1_beacon_state_proto_rawDescGZIP(), []int{5} -} - -func (x *ForkChoiceHead) GetRoot() []byte { - if x != nil { - return x.Root - } - return nil -} - -func (x *ForkChoiceHead) GetSlot() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.Slot - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -type BeaconStateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Data *BeaconState `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` -} - -func (x *BeaconStateResponse) Reset() { - *x = BeaconStateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BeaconStateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BeaconStateResponse) ProtoMessage() {} - -func (x *BeaconStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v1_beacon_state_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BeaconStateResponse.ProtoReflect.Descriptor instead. -func (*BeaconStateResponse) Descriptor() ([]byte, []int) { - return file_proto_eth_v1_beacon_state_proto_rawDescGZIP(), []int{6} -} - -func (x *BeaconStateResponse) GetData() *BeaconState { - if x != nil { - return x.Data - } - return nil -} - -var File_proto_eth_v1_beacon_state_proto protoreflect.FileDescriptor - -var file_proto_eth_v1_beacon_state_proto_rawDesc = []byte{ - 0x0a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, - 0x65, 0x78, 0x74, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, - 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, - 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xdb, 0x0b, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x17, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0xea, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x15, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x5a, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0xeb, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, - 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x12, 0x53, 0x0a, - 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x18, 0xd1, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, - 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x73, 0x18, 0xd2, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0b, 0x8a, 0xb5, 0x18, 0x07, 0x38, 0x31, - 0x39, 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, - 0x73, 0x12, 0x2d, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, - 0x18, 0xd3, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0b, 0x8a, 0xb5, 0x18, 0x07, 0x38, 0x31, 0x39, - 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x73, - 0x12, 0x40, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, - 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd4, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x14, 0x8a, 0xb5, 0x18, - 0x04, 0x3f, 0x2c, 0x33, 0x32, 0x92, 0xb5, 0x18, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, - 0x36, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x6f, 0x6f, - 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x65, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x0f, 0x65, - 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0xba, - 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x08, 0x92, 0xb5, 0x18, 0x04, 0x32, 0x30, 0x34, 0x38, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x31, - 0x44, 0x61, 0x74, 0x61, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x74, 0x68, - 0x31, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0xbb, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x65, 0x74, 0x68, 0x31, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0xa1, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, - 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x0a, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x18, 0xa2, 0x1f, 0x20, 0x03, 0x28, 0x04, 0x42, 0x11, 0x92, 0xb5, 0x18, - 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x08, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x61, 0x6e, 0x64, - 0x61, 0x6f, 0x5f, 0x6d, 0x69, 0x78, 0x65, 0x73, 0x18, 0x89, 0x27, 0x20, 0x03, 0x28, 0x0c, 0x42, - 0x0c, 0x8a, 0xb5, 0x18, 0x08, 0x36, 0x35, 0x35, 0x33, 0x36, 0x2c, 0x33, 0x32, 0x52, 0x0b, 0x72, - 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x4d, 0x69, 0x78, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x09, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0xf1, 0x2e, 0x20, 0x03, 0x28, 0x04, 0x42, 0x08, - 0x8a, 0xb5, 0x18, 0x04, 0x38, 0x31, 0x39, 0x32, 0x52, 0x09, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x73, 0x12, 0x6e, 0x0a, 0x1b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0xd9, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, - 0x92, 0xb5, 0x18, 0x04, 0x34, 0x30, 0x39, 0x36, 0x52, 0x19, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x6c, 0x0a, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0xda, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x92, - 0xb5, 0x18, 0x04, 0x34, 0x30, 0x39, 0x36, 0x52, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x68, 0x0a, 0x12, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0xc1, 0x3e, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x38, - 0x82, 0xb5, 0x18, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, - 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x67, 0x6f, 0x2d, - 0x62, 0x69, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x42, 0x69, 0x74, 0x76, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x34, 0x8a, 0xb5, 0x18, 0x01, 0x31, 0x52, 0x11, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x1d, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc2, 0x3e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x52, 0x1b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x5e, 0x0a, - 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc3, 0x3e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4f, 0x0a, - 0x14, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc4, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x97, - 0x03, 0x0a, 0x12, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, - 0x38, 0x82, 0xb5, 0x18, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x67, 0x6f, - 0x2d, 0x62, 0x69, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x42, 0x69, 0x74, 0x6c, 0x69, 0x73, - 0x74, 0x92, 0xb5, 0x18, 0x04, 0x32, 0x30, 0x34, 0x38, 0x52, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x6e, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, 0x41, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, - 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, - 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, 0x6f, 0x74, - 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x61, 0x79, - 0x12, 0x76, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x4f, 0x82, 0xb5, 0x18, 0x4b, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, - 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, - 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, - 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xbe, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x65, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x4f, 0x82, 0xb5, 0x18, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, - 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, - 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x59, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, - 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, - 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x6f, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x42, 0x4f, 0x82, 0xb5, - 0x18, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, - 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, - 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0a, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x04, 0x46, 0x6f, - 0x72, 0x6b, 0x12, 0x30, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x05, 0x8a, 0xb5, - 0x18, 0x01, 0x34, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x05, 0x8a, - 0xb5, 0x18, 0x01, 0x34, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x46, 0x82, 0xb5, 0x18, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, - 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x22, 0x4e, 0x0a, 0x17, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x48, 0x65, 0x61, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, - 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x87, 0x01, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x04, 0x72, 0x6f, 0x6f, - 0x74, 0x12, 0x59, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, - 0x45, 0x82, 0xb5, 0x18, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, - 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x73, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x22, 0x47, 0x0a, 0x13, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x7d, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x2e, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, - 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, - 0x2f, 0x76, 0x35, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, - 0xaa, 0x02, 0x0f, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x74, 0x68, 0x2e, - 0x56, 0x31, 0xca, 0x02, 0x0f, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5c, 0x45, 0x74, - 0x68, 0x5c, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_proto_eth_v1_beacon_state_proto_rawDescOnce sync.Once - file_proto_eth_v1_beacon_state_proto_rawDescData = file_proto_eth_v1_beacon_state_proto_rawDesc -) - -func file_proto_eth_v1_beacon_state_proto_rawDescGZIP() []byte { - file_proto_eth_v1_beacon_state_proto_rawDescOnce.Do(func() { - file_proto_eth_v1_beacon_state_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_eth_v1_beacon_state_proto_rawDescData) - }) - return file_proto_eth_v1_beacon_state_proto_rawDescData -} - -var file_proto_eth_v1_beacon_state_proto_msgTypes = make([]protoimpl.MessageInfo, 7) -var file_proto_eth_v1_beacon_state_proto_goTypes = []interface{}{ - (*BeaconState)(nil), // 0: ethereum.eth.v1.BeaconState - (*PendingAttestation)(nil), // 1: ethereum.eth.v1.PendingAttestation - (*Committee)(nil), // 2: ethereum.eth.v1.Committee - (*Fork)(nil), // 3: ethereum.eth.v1.Fork - (*ForkChoiceHeadsResponse)(nil), // 4: ethereum.eth.v1.ForkChoiceHeadsResponse - (*ForkChoiceHead)(nil), // 5: ethereum.eth.v1.ForkChoiceHead - (*BeaconStateResponse)(nil), // 6: ethereum.eth.v1.BeaconStateResponse - (*BeaconBlockHeader)(nil), // 7: ethereum.eth.v1.BeaconBlockHeader - (*Eth1Data)(nil), // 8: ethereum.eth.v1.Eth1Data - (*Validator)(nil), // 9: ethereum.eth.v1.Validator - (*Checkpoint)(nil), // 10: ethereum.eth.v1.Checkpoint - (*AttestationData)(nil), // 11: ethereum.eth.v1.AttestationData -} -var file_proto_eth_v1_beacon_state_proto_depIdxs = []int32{ - 3, // 0: ethereum.eth.v1.BeaconState.fork:type_name -> ethereum.eth.v1.Fork - 7, // 1: ethereum.eth.v1.BeaconState.latest_block_header:type_name -> ethereum.eth.v1.BeaconBlockHeader - 8, // 2: ethereum.eth.v1.BeaconState.eth1_data:type_name -> ethereum.eth.v1.Eth1Data - 8, // 3: ethereum.eth.v1.BeaconState.eth1_data_votes:type_name -> ethereum.eth.v1.Eth1Data - 9, // 4: ethereum.eth.v1.BeaconState.validators:type_name -> ethereum.eth.v1.Validator - 1, // 5: ethereum.eth.v1.BeaconState.previous_epoch_attestations:type_name -> ethereum.eth.v1.PendingAttestation - 1, // 6: ethereum.eth.v1.BeaconState.current_epoch_attestations:type_name -> ethereum.eth.v1.PendingAttestation - 10, // 7: ethereum.eth.v1.BeaconState.previous_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 10, // 8: ethereum.eth.v1.BeaconState.current_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 10, // 9: ethereum.eth.v1.BeaconState.finalized_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 11, // 10: ethereum.eth.v1.PendingAttestation.data:type_name -> ethereum.eth.v1.AttestationData - 5, // 11: ethereum.eth.v1.ForkChoiceHeadsResponse.data:type_name -> ethereum.eth.v1.ForkChoiceHead - 0, // 12: ethereum.eth.v1.BeaconStateResponse.data:type_name -> ethereum.eth.v1.BeaconState - 13, // [13:13] is the sub-list for method output_type - 13, // [13:13] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name -} - -func init() { file_proto_eth_v1_beacon_state_proto_init() } -func file_proto_eth_v1_beacon_state_proto_init() { - if File_proto_eth_v1_beacon_state_proto != nil { - return - } - file_proto_eth_v1_attestation_proto_init() - file_proto_eth_v1_beacon_block_proto_init() - file_proto_eth_v1_validator_proto_init() - if !protoimpl.UnsafeEnabled { - file_proto_eth_v1_beacon_state_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BeaconState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v1_beacon_state_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PendingAttestation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v1_beacon_state_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Committee); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v1_beacon_state_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Fork); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v1_beacon_state_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForkChoiceHeadsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v1_beacon_state_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForkChoiceHead); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v1_beacon_state_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BeaconStateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_proto_eth_v1_beacon_state_proto_rawDesc, - NumEnums: 0, - NumMessages: 7, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_proto_eth_v1_beacon_state_proto_goTypes, - DependencyIndexes: file_proto_eth_v1_beacon_state_proto_depIdxs, - MessageInfos: file_proto_eth_v1_beacon_state_proto_msgTypes, - }.Build() - File_proto_eth_v1_beacon_state_proto = out.File - file_proto_eth_v1_beacon_state_proto_rawDesc = nil - file_proto_eth_v1_beacon_state_proto_goTypes = nil - file_proto_eth_v1_beacon_state_proto_depIdxs = nil -} diff --git a/proto/eth/v1/beacon_state.pb.gw.go b/proto/eth/v1/beacon_state.pb.gw.go deleted file mode 100755 index cdd03643f..000000000 --- a/proto/eth/v1/beacon_state.pb.gw.go +++ /dev/null @@ -1,4 +0,0 @@ -//go:build ignore -// +build ignore - -package ignore diff --git a/proto/eth/v1/beacon_state.proto b/proto/eth/v1/beacon_state.proto deleted file mode 100644 index 4ce8d83f2..000000000 --- a/proto/eth/v1/beacon_state.proto +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2020 Prysmatic Labs. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -syntax = "proto3"; - -package ethereum.eth.v1; - -import "google/protobuf/descriptor.proto"; - -import "proto/eth/ext/options.proto"; -import "proto/eth/v1/attestation.proto"; -import "proto/eth/v1/beacon_block.proto"; -import "proto/eth/v1/validator.proto"; - -option csharp_namespace = "Ethereum.Eth.V1"; -option go_package = "github.com/prysmaticlabs/prysm/v5/proto/eth/v1"; -option java_multiple_files = true; -option java_outer_classname = "BeaconStateProto"; -option java_package = "org.ethereum.eth.v1"; -option php_namespace = "Ethereum\\Eth\\v1"; - -message BeaconState { - // Versioning [1001-2000] - uint64 genesis_time = 1001; - bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; - uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; - Fork fork = 1004; - - // History [2001-3000] - BeaconBlockHeader latest_block_header = 2001; - repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; - repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; - repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; - - // Eth1 [3001-4000] - Eth1Data eth1_data = 3001; - repeated Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; - uint64 eth1_deposit_index = 3003; - - // Registry [4001-5000] - repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - - // Randomness [5001-6000] - repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; - - // Slashings [6001-7000] - repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; - - // Attestations [7001-8000] - repeated PendingAttestation previous_epoch_attestations = 7001 [(ethereum.eth.ext.ssz_max) = "previous_epoch_attestations.max"]; - repeated PendingAttestation current_epoch_attestations = 7002 [(ethereum.eth.ext.ssz_max) = "current_epoch_attestations.max"]; - - // Finality [8001-9000] - // Spec type [4]Bitvector which means this would be a fixed size of 4 bits. - bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; - Checkpoint previous_justified_checkpoint = 8002; - Checkpoint current_justified_checkpoint = 8003; - Checkpoint finalized_checkpoint = 8004; -} - -message PendingAttestation { - // Bitfield representation of validator indices that have voted exactly - // the same vote and have been aggregated into this attestation. - bytes aggregation_bits = 1 [(ethereum.eth.ext.ssz_max) = "2048", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitlist"]; - AttestationData data = 2; - // The difference of when attestation gets created and get included on chain. - uint64 inclusion_delay = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; - // The proposer who included the attestation in the block. - uint64 proposer_index = 4 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; -} - -message Committee { - uint64 index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.CommitteeIndex"]; - uint64 slot = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; - repeated uint64 validators = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; -} - -// Fork structure used for indicating beacon chain versioning and forks. -message Fork { - bytes previous_version = 1 [(ethereum.eth.ext.ssz_size) = "4"]; - bytes current_version = 2 [(ethereum.eth.ext.ssz_size) = "4"]; - uint64 epoch = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; -} - -message ForkChoiceHeadsResponse { - repeated ForkChoiceHead data = 1; -} - -message ForkChoiceHead { - bytes root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; - uint64 slot = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; -} - -message BeaconStateResponse { - BeaconState data = 1; -} diff --git a/proto/eth/v2/BUILD.bazel b/proto/eth/v2/BUILD.bazel index 82aaaa9e9..70099df14 100644 --- a/proto/eth/v2/BUILD.bazel +++ b/proto/eth/v2/BUILD.bazel @@ -99,7 +99,6 @@ ssz_proto_files( srcs = [ "beacon_block.proto", "beacon_lightclient.proto", - "beacon_state.proto", "sync_committee.proto", "validator.proto", "withdrawals.proto", diff --git a/proto/eth/v2/beacon_state.pb.go b/proto/eth/v2/beacon_state.pb.go deleted file mode 100755 index beb68f4fa..000000000 --- a/proto/eth/v2/beacon_state.pb.go +++ /dev/null @@ -1,2004 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.31.0 -// protoc v4.25.1 -// source: proto/eth/v2/beacon_state.proto - -package eth - -import ( - reflect "reflect" - sync "sync" - - github_com_prysmaticlabs_go_bitfield "github.com/prysmaticlabs/go-bitfield" - github_com_prysmaticlabs_prysm_v5_consensus_types_primitives "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives" - v11 "github.com/prysmaticlabs/prysm/v5/proto/engine/v1" - _ "github.com/prysmaticlabs/prysm/v5/proto/eth/ext" - v1 "github.com/prysmaticlabs/prysm/v5/proto/eth/v1" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type BeaconState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GenesisTime uint64 `protobuf:"varint,1001,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` - GenesisValidatorsRoot []byte `protobuf:"bytes,1002,opt,name=genesis_validators_root,json=genesisValidatorsRoot,proto3" json:"genesis_validators_root,omitempty" ssz-size:"32"` - Slot github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,1003,opt,name=slot,proto3" json:"slot,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` - Fork *v1.Fork `protobuf:"bytes,1004,opt,name=fork,proto3" json:"fork,omitempty"` - LatestBlockHeader *v1.BeaconBlockHeader `protobuf:"bytes,2001,opt,name=latest_block_header,json=latestBlockHeader,proto3" json:"latest_block_header,omitempty"` - BlockRoots [][]byte `protobuf:"bytes,2002,rep,name=block_roots,json=blockRoots,proto3" json:"block_roots,omitempty" ssz-size:"8192,32"` - StateRoots [][]byte `protobuf:"bytes,2003,rep,name=state_roots,json=stateRoots,proto3" json:"state_roots,omitempty" ssz-size:"8192,32"` - HistoricalRoots [][]byte `protobuf:"bytes,2004,rep,name=historical_roots,json=historicalRoots,proto3" json:"historical_roots,omitempty" ssz-max:"16777216" ssz-size:"?,32"` - Eth1Data *v1.Eth1Data `protobuf:"bytes,3001,opt,name=eth1_data,json=eth1Data,proto3" json:"eth1_data,omitempty"` - Eth1DataVotes []*v1.Eth1Data `protobuf:"bytes,3002,rep,name=eth1_data_votes,json=eth1DataVotes,proto3" json:"eth1_data_votes,omitempty" ssz-max:"2048"` - Eth1DepositIndex uint64 `protobuf:"varint,3003,opt,name=eth1_deposit_index,json=eth1DepositIndex,proto3" json:"eth1_deposit_index,omitempty"` - Validators []*v1.Validator `protobuf:"bytes,4001,rep,name=validators,proto3" json:"validators,omitempty" ssz-max:"1099511627776"` - Balances []uint64 `protobuf:"varint,4002,rep,packed,name=balances,proto3" json:"balances,omitempty" ssz-max:"1099511627776"` - RandaoMixes [][]byte `protobuf:"bytes,5001,rep,name=randao_mixes,json=randaoMixes,proto3" json:"randao_mixes,omitempty" ssz-size:"65536,32"` - Slashings []uint64 `protobuf:"varint,6001,rep,packed,name=slashings,proto3" json:"slashings,omitempty" ssz-size:"8192"` - PreviousEpochParticipation []byte `protobuf:"bytes,7001,opt,name=previous_epoch_participation,json=previousEpochParticipation,proto3" json:"previous_epoch_participation,omitempty" ssz-max:"1099511627776"` - CurrentEpochParticipation []byte `protobuf:"bytes,7002,opt,name=current_epoch_participation,json=currentEpochParticipation,proto3" json:"current_epoch_participation,omitempty" ssz-max:"1099511627776"` - JustificationBits github_com_prysmaticlabs_go_bitfield.Bitvector4 `protobuf:"bytes,8001,opt,name=justification_bits,json=justificationBits,proto3" json:"justification_bits,omitempty" cast-type:"github.com/prysmaticlabs/go-bitfield.Bitvector4" ssz-size:"1"` - PreviousJustifiedCheckpoint *v1.Checkpoint `protobuf:"bytes,8002,opt,name=previous_justified_checkpoint,json=previousJustifiedCheckpoint,proto3" json:"previous_justified_checkpoint,omitempty"` - CurrentJustifiedCheckpoint *v1.Checkpoint `protobuf:"bytes,8003,opt,name=current_justified_checkpoint,json=currentJustifiedCheckpoint,proto3" json:"current_justified_checkpoint,omitempty"` - FinalizedCheckpoint *v1.Checkpoint `protobuf:"bytes,8004,opt,name=finalized_checkpoint,json=finalizedCheckpoint,proto3" json:"finalized_checkpoint,omitempty"` - InactivityScores []uint64 `protobuf:"varint,9001,rep,packed,name=inactivity_scores,json=inactivityScores,proto3" json:"inactivity_scores,omitempty" ssz-max:"1099511627776"` - CurrentSyncCommittee *SyncCommittee `protobuf:"bytes,9002,opt,name=current_sync_committee,json=currentSyncCommittee,proto3" json:"current_sync_committee,omitempty"` - NextSyncCommittee *SyncCommittee `protobuf:"bytes,9003,opt,name=next_sync_committee,json=nextSyncCommittee,proto3" json:"next_sync_committee,omitempty"` -} - -func (x *BeaconState) Reset() { - *x = BeaconState{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BeaconState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BeaconState) ProtoMessage() {} - -func (x *BeaconState) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BeaconState.ProtoReflect.Descriptor instead. -func (*BeaconState) Descriptor() ([]byte, []int) { - return file_proto_eth_v2_beacon_state_proto_rawDescGZIP(), []int{0} -} - -func (x *BeaconState) GetGenesisTime() uint64 { - if x != nil { - return x.GenesisTime - } - return 0 -} - -func (x *BeaconState) GetGenesisValidatorsRoot() []byte { - if x != nil { - return x.GenesisValidatorsRoot - } - return nil -} - -func (x *BeaconState) GetSlot() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.Slot - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -func (x *BeaconState) GetFork() *v1.Fork { - if x != nil { - return x.Fork - } - return nil -} - -func (x *BeaconState) GetLatestBlockHeader() *v1.BeaconBlockHeader { - if x != nil { - return x.LatestBlockHeader - } - return nil -} - -func (x *BeaconState) GetBlockRoots() [][]byte { - if x != nil { - return x.BlockRoots - } - return nil -} - -func (x *BeaconState) GetStateRoots() [][]byte { - if x != nil { - return x.StateRoots - } - return nil -} - -func (x *BeaconState) GetHistoricalRoots() [][]byte { - if x != nil { - return x.HistoricalRoots - } - return nil -} - -func (x *BeaconState) GetEth1Data() *v1.Eth1Data { - if x != nil { - return x.Eth1Data - } - return nil -} - -func (x *BeaconState) GetEth1DataVotes() []*v1.Eth1Data { - if x != nil { - return x.Eth1DataVotes - } - return nil -} - -func (x *BeaconState) GetEth1DepositIndex() uint64 { - if x != nil { - return x.Eth1DepositIndex - } - return 0 -} - -func (x *BeaconState) GetValidators() []*v1.Validator { - if x != nil { - return x.Validators - } - return nil -} - -func (x *BeaconState) GetBalances() []uint64 { - if x != nil { - return x.Balances - } - return nil -} - -func (x *BeaconState) GetRandaoMixes() [][]byte { - if x != nil { - return x.RandaoMixes - } - return nil -} - -func (x *BeaconState) GetSlashings() []uint64 { - if x != nil { - return x.Slashings - } - return nil -} - -func (x *BeaconState) GetPreviousEpochParticipation() []byte { - if x != nil { - return x.PreviousEpochParticipation - } - return nil -} - -func (x *BeaconState) GetCurrentEpochParticipation() []byte { - if x != nil { - return x.CurrentEpochParticipation - } - return nil -} - -func (x *BeaconState) GetJustificationBits() github_com_prysmaticlabs_go_bitfield.Bitvector4 { - if x != nil { - return x.JustificationBits - } - return github_com_prysmaticlabs_go_bitfield.Bitvector4(nil) -} - -func (x *BeaconState) GetPreviousJustifiedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.PreviousJustifiedCheckpoint - } - return nil -} - -func (x *BeaconState) GetCurrentJustifiedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.CurrentJustifiedCheckpoint - } - return nil -} - -func (x *BeaconState) GetFinalizedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.FinalizedCheckpoint - } - return nil -} - -func (x *BeaconState) GetInactivityScores() []uint64 { - if x != nil { - return x.InactivityScores - } - return nil -} - -func (x *BeaconState) GetCurrentSyncCommittee() *SyncCommittee { - if x != nil { - return x.CurrentSyncCommittee - } - return nil -} - -func (x *BeaconState) GetNextSyncCommittee() *SyncCommittee { - if x != nil { - return x.NextSyncCommittee - } - return nil -} - -type BeaconStateBellatrix struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GenesisTime uint64 `protobuf:"varint,1001,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` - GenesisValidatorsRoot []byte `protobuf:"bytes,1002,opt,name=genesis_validators_root,json=genesisValidatorsRoot,proto3" json:"genesis_validators_root,omitempty" ssz-size:"32"` - Slot github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,1003,opt,name=slot,proto3" json:"slot,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` - Fork *v1.Fork `protobuf:"bytes,1004,opt,name=fork,proto3" json:"fork,omitempty"` - LatestBlockHeader *v1.BeaconBlockHeader `protobuf:"bytes,2001,opt,name=latest_block_header,json=latestBlockHeader,proto3" json:"latest_block_header,omitempty"` - BlockRoots [][]byte `protobuf:"bytes,2002,rep,name=block_roots,json=blockRoots,proto3" json:"block_roots,omitempty" ssz-size:"8192,32"` - StateRoots [][]byte `protobuf:"bytes,2003,rep,name=state_roots,json=stateRoots,proto3" json:"state_roots,omitempty" ssz-size:"8192,32"` - HistoricalRoots [][]byte `protobuf:"bytes,2004,rep,name=historical_roots,json=historicalRoots,proto3" json:"historical_roots,omitempty" ssz-max:"16777216" ssz-size:"?,32"` - Eth1Data *v1.Eth1Data `protobuf:"bytes,3001,opt,name=eth1_data,json=eth1Data,proto3" json:"eth1_data,omitempty"` - Eth1DataVotes []*v1.Eth1Data `protobuf:"bytes,3002,rep,name=eth1_data_votes,json=eth1DataVotes,proto3" json:"eth1_data_votes,omitempty" ssz-max:"2048"` - Eth1DepositIndex uint64 `protobuf:"varint,3003,opt,name=eth1_deposit_index,json=eth1DepositIndex,proto3" json:"eth1_deposit_index,omitempty"` - Validators []*v1.Validator `protobuf:"bytes,4001,rep,name=validators,proto3" json:"validators,omitempty" ssz-max:"1099511627776"` - Balances []uint64 `protobuf:"varint,4002,rep,packed,name=balances,proto3" json:"balances,omitempty" ssz-max:"1099511627776"` - RandaoMixes [][]byte `protobuf:"bytes,5001,rep,name=randao_mixes,json=randaoMixes,proto3" json:"randao_mixes,omitempty" ssz-size:"65536,32"` - Slashings []uint64 `protobuf:"varint,6001,rep,packed,name=slashings,proto3" json:"slashings,omitempty" ssz-size:"8192"` - PreviousEpochParticipation []byte `protobuf:"bytes,7001,opt,name=previous_epoch_participation,json=previousEpochParticipation,proto3" json:"previous_epoch_participation,omitempty" ssz-max:"1099511627776"` - CurrentEpochParticipation []byte `protobuf:"bytes,7002,opt,name=current_epoch_participation,json=currentEpochParticipation,proto3" json:"current_epoch_participation,omitempty" ssz-max:"1099511627776"` - JustificationBits github_com_prysmaticlabs_go_bitfield.Bitvector4 `protobuf:"bytes,8001,opt,name=justification_bits,json=justificationBits,proto3" json:"justification_bits,omitempty" cast-type:"github.com/prysmaticlabs/go-bitfield.Bitvector4" ssz-size:"1"` - PreviousJustifiedCheckpoint *v1.Checkpoint `protobuf:"bytes,8002,opt,name=previous_justified_checkpoint,json=previousJustifiedCheckpoint,proto3" json:"previous_justified_checkpoint,omitempty"` - CurrentJustifiedCheckpoint *v1.Checkpoint `protobuf:"bytes,8003,opt,name=current_justified_checkpoint,json=currentJustifiedCheckpoint,proto3" json:"current_justified_checkpoint,omitempty"` - FinalizedCheckpoint *v1.Checkpoint `protobuf:"bytes,8004,opt,name=finalized_checkpoint,json=finalizedCheckpoint,proto3" json:"finalized_checkpoint,omitempty"` - InactivityScores []uint64 `protobuf:"varint,9001,rep,packed,name=inactivity_scores,json=inactivityScores,proto3" json:"inactivity_scores,omitempty" ssz-max:"1099511627776"` - CurrentSyncCommittee *SyncCommittee `protobuf:"bytes,9002,opt,name=current_sync_committee,json=currentSyncCommittee,proto3" json:"current_sync_committee,omitempty"` - NextSyncCommittee *SyncCommittee `protobuf:"bytes,9003,opt,name=next_sync_committee,json=nextSyncCommittee,proto3" json:"next_sync_committee,omitempty"` - LatestExecutionPayloadHeader *v11.ExecutionPayloadHeader `protobuf:"bytes,10001,opt,name=latest_execution_payload_header,json=latestExecutionPayloadHeader,proto3" json:"latest_execution_payload_header,omitempty"` -} - -func (x *BeaconStateBellatrix) Reset() { - *x = BeaconStateBellatrix{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BeaconStateBellatrix) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BeaconStateBellatrix) ProtoMessage() {} - -func (x *BeaconStateBellatrix) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BeaconStateBellatrix.ProtoReflect.Descriptor instead. -func (*BeaconStateBellatrix) Descriptor() ([]byte, []int) { - return file_proto_eth_v2_beacon_state_proto_rawDescGZIP(), []int{1} -} - -func (x *BeaconStateBellatrix) GetGenesisTime() uint64 { - if x != nil { - return x.GenesisTime - } - return 0 -} - -func (x *BeaconStateBellatrix) GetGenesisValidatorsRoot() []byte { - if x != nil { - return x.GenesisValidatorsRoot - } - return nil -} - -func (x *BeaconStateBellatrix) GetSlot() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.Slot - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -func (x *BeaconStateBellatrix) GetFork() *v1.Fork { - if x != nil { - return x.Fork - } - return nil -} - -func (x *BeaconStateBellatrix) GetLatestBlockHeader() *v1.BeaconBlockHeader { - if x != nil { - return x.LatestBlockHeader - } - return nil -} - -func (x *BeaconStateBellatrix) GetBlockRoots() [][]byte { - if x != nil { - return x.BlockRoots - } - return nil -} - -func (x *BeaconStateBellatrix) GetStateRoots() [][]byte { - if x != nil { - return x.StateRoots - } - return nil -} - -func (x *BeaconStateBellatrix) GetHistoricalRoots() [][]byte { - if x != nil { - return x.HistoricalRoots - } - return nil -} - -func (x *BeaconStateBellatrix) GetEth1Data() *v1.Eth1Data { - if x != nil { - return x.Eth1Data - } - return nil -} - -func (x *BeaconStateBellatrix) GetEth1DataVotes() []*v1.Eth1Data { - if x != nil { - return x.Eth1DataVotes - } - return nil -} - -func (x *BeaconStateBellatrix) GetEth1DepositIndex() uint64 { - if x != nil { - return x.Eth1DepositIndex - } - return 0 -} - -func (x *BeaconStateBellatrix) GetValidators() []*v1.Validator { - if x != nil { - return x.Validators - } - return nil -} - -func (x *BeaconStateBellatrix) GetBalances() []uint64 { - if x != nil { - return x.Balances - } - return nil -} - -func (x *BeaconStateBellatrix) GetRandaoMixes() [][]byte { - if x != nil { - return x.RandaoMixes - } - return nil -} - -func (x *BeaconStateBellatrix) GetSlashings() []uint64 { - if x != nil { - return x.Slashings - } - return nil -} - -func (x *BeaconStateBellatrix) GetPreviousEpochParticipation() []byte { - if x != nil { - return x.PreviousEpochParticipation - } - return nil -} - -func (x *BeaconStateBellatrix) GetCurrentEpochParticipation() []byte { - if x != nil { - return x.CurrentEpochParticipation - } - return nil -} - -func (x *BeaconStateBellatrix) GetJustificationBits() github_com_prysmaticlabs_go_bitfield.Bitvector4 { - if x != nil { - return x.JustificationBits - } - return github_com_prysmaticlabs_go_bitfield.Bitvector4(nil) -} - -func (x *BeaconStateBellatrix) GetPreviousJustifiedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.PreviousJustifiedCheckpoint - } - return nil -} - -func (x *BeaconStateBellatrix) GetCurrentJustifiedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.CurrentJustifiedCheckpoint - } - return nil -} - -func (x *BeaconStateBellatrix) GetFinalizedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.FinalizedCheckpoint - } - return nil -} - -func (x *BeaconStateBellatrix) GetInactivityScores() []uint64 { - if x != nil { - return x.InactivityScores - } - return nil -} - -func (x *BeaconStateBellatrix) GetCurrentSyncCommittee() *SyncCommittee { - if x != nil { - return x.CurrentSyncCommittee - } - return nil -} - -func (x *BeaconStateBellatrix) GetNextSyncCommittee() *SyncCommittee { - if x != nil { - return x.NextSyncCommittee - } - return nil -} - -func (x *BeaconStateBellatrix) GetLatestExecutionPayloadHeader() *v11.ExecutionPayloadHeader { - if x != nil { - return x.LatestExecutionPayloadHeader - } - return nil -} - -type BeaconStateCapella struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GenesisTime uint64 `protobuf:"varint,1001,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` - GenesisValidatorsRoot []byte `protobuf:"bytes,1002,opt,name=genesis_validators_root,json=genesisValidatorsRoot,proto3" json:"genesis_validators_root,omitempty" ssz-size:"32"` - Slot github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,1003,opt,name=slot,proto3" json:"slot,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` - Fork *v1.Fork `protobuf:"bytes,1004,opt,name=fork,proto3" json:"fork,omitempty"` - LatestBlockHeader *v1.BeaconBlockHeader `protobuf:"bytes,2001,opt,name=latest_block_header,json=latestBlockHeader,proto3" json:"latest_block_header,omitempty"` - BlockRoots [][]byte `protobuf:"bytes,2002,rep,name=block_roots,json=blockRoots,proto3" json:"block_roots,omitempty" ssz-size:"8192,32"` - StateRoots [][]byte `protobuf:"bytes,2003,rep,name=state_roots,json=stateRoots,proto3" json:"state_roots,omitempty" ssz-size:"8192,32"` - HistoricalRoots [][]byte `protobuf:"bytes,2004,rep,name=historical_roots,json=historicalRoots,proto3" json:"historical_roots,omitempty" ssz-max:"16777216" ssz-size:"?,32"` - Eth1Data *v1.Eth1Data `protobuf:"bytes,3001,opt,name=eth1_data,json=eth1Data,proto3" json:"eth1_data,omitempty"` - Eth1DataVotes []*v1.Eth1Data `protobuf:"bytes,3002,rep,name=eth1_data_votes,json=eth1DataVotes,proto3" json:"eth1_data_votes,omitempty" ssz-max:"2048"` - Eth1DepositIndex uint64 `protobuf:"varint,3003,opt,name=eth1_deposit_index,json=eth1DepositIndex,proto3" json:"eth1_deposit_index,omitempty"` - Validators []*v1.Validator `protobuf:"bytes,4001,rep,name=validators,proto3" json:"validators,omitempty" ssz-max:"1099511627776"` - Balances []uint64 `protobuf:"varint,4002,rep,packed,name=balances,proto3" json:"balances,omitempty" ssz-max:"1099511627776"` - RandaoMixes [][]byte `protobuf:"bytes,5001,rep,name=randao_mixes,json=randaoMixes,proto3" json:"randao_mixes,omitempty" ssz-size:"65536,32"` - Slashings []uint64 `protobuf:"varint,6001,rep,packed,name=slashings,proto3" json:"slashings,omitempty" ssz-size:"8192"` - PreviousEpochParticipation []byte `protobuf:"bytes,7001,opt,name=previous_epoch_participation,json=previousEpochParticipation,proto3" json:"previous_epoch_participation,omitempty" ssz-max:"1099511627776"` - CurrentEpochParticipation []byte `protobuf:"bytes,7002,opt,name=current_epoch_participation,json=currentEpochParticipation,proto3" json:"current_epoch_participation,omitempty" ssz-max:"1099511627776"` - JustificationBits github_com_prysmaticlabs_go_bitfield.Bitvector4 `protobuf:"bytes,8001,opt,name=justification_bits,json=justificationBits,proto3" json:"justification_bits,omitempty" cast-type:"github.com/prysmaticlabs/go-bitfield.Bitvector4" ssz-size:"1"` - PreviousJustifiedCheckpoint *v1.Checkpoint `protobuf:"bytes,8002,opt,name=previous_justified_checkpoint,json=previousJustifiedCheckpoint,proto3" json:"previous_justified_checkpoint,omitempty"` - CurrentJustifiedCheckpoint *v1.Checkpoint `protobuf:"bytes,8003,opt,name=current_justified_checkpoint,json=currentJustifiedCheckpoint,proto3" json:"current_justified_checkpoint,omitempty"` - FinalizedCheckpoint *v1.Checkpoint `protobuf:"bytes,8004,opt,name=finalized_checkpoint,json=finalizedCheckpoint,proto3" json:"finalized_checkpoint,omitempty"` - InactivityScores []uint64 `protobuf:"varint,9001,rep,packed,name=inactivity_scores,json=inactivityScores,proto3" json:"inactivity_scores,omitempty" ssz-max:"1099511627776"` - CurrentSyncCommittee *SyncCommittee `protobuf:"bytes,9002,opt,name=current_sync_committee,json=currentSyncCommittee,proto3" json:"current_sync_committee,omitempty"` - NextSyncCommittee *SyncCommittee `protobuf:"bytes,9003,opt,name=next_sync_committee,json=nextSyncCommittee,proto3" json:"next_sync_committee,omitempty"` - LatestExecutionPayloadHeader *v11.ExecutionPayloadHeaderCapella `protobuf:"bytes,10001,opt,name=latest_execution_payload_header,json=latestExecutionPayloadHeader,proto3" json:"latest_execution_payload_header,omitempty"` - NextWithdrawalIndex uint64 `protobuf:"varint,11001,opt,name=next_withdrawal_index,json=nextWithdrawalIndex,proto3" json:"next_withdrawal_index,omitempty"` - NextWithdrawalValidatorIndex github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex `protobuf:"varint,11002,opt,name=next_withdrawal_validator_index,json=nextWithdrawalValidatorIndex,proto3" json:"next_withdrawal_validator_index,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"` - HistoricalSummaries []*HistoricalSummary `protobuf:"bytes,11003,rep,name=historical_summaries,json=historicalSummaries,proto3" json:"historical_summaries,omitempty" ssz-max:"16777216"` -} - -func (x *BeaconStateCapella) Reset() { - *x = BeaconStateCapella{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BeaconStateCapella) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BeaconStateCapella) ProtoMessage() {} - -func (x *BeaconStateCapella) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BeaconStateCapella.ProtoReflect.Descriptor instead. -func (*BeaconStateCapella) Descriptor() ([]byte, []int) { - return file_proto_eth_v2_beacon_state_proto_rawDescGZIP(), []int{2} -} - -func (x *BeaconStateCapella) GetGenesisTime() uint64 { - if x != nil { - return x.GenesisTime - } - return 0 -} - -func (x *BeaconStateCapella) GetGenesisValidatorsRoot() []byte { - if x != nil { - return x.GenesisValidatorsRoot - } - return nil -} - -func (x *BeaconStateCapella) GetSlot() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.Slot - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -func (x *BeaconStateCapella) GetFork() *v1.Fork { - if x != nil { - return x.Fork - } - return nil -} - -func (x *BeaconStateCapella) GetLatestBlockHeader() *v1.BeaconBlockHeader { - if x != nil { - return x.LatestBlockHeader - } - return nil -} - -func (x *BeaconStateCapella) GetBlockRoots() [][]byte { - if x != nil { - return x.BlockRoots - } - return nil -} - -func (x *BeaconStateCapella) GetStateRoots() [][]byte { - if x != nil { - return x.StateRoots - } - return nil -} - -func (x *BeaconStateCapella) GetHistoricalRoots() [][]byte { - if x != nil { - return x.HistoricalRoots - } - return nil -} - -func (x *BeaconStateCapella) GetEth1Data() *v1.Eth1Data { - if x != nil { - return x.Eth1Data - } - return nil -} - -func (x *BeaconStateCapella) GetEth1DataVotes() []*v1.Eth1Data { - if x != nil { - return x.Eth1DataVotes - } - return nil -} - -func (x *BeaconStateCapella) GetEth1DepositIndex() uint64 { - if x != nil { - return x.Eth1DepositIndex - } - return 0 -} - -func (x *BeaconStateCapella) GetValidators() []*v1.Validator { - if x != nil { - return x.Validators - } - return nil -} - -func (x *BeaconStateCapella) GetBalances() []uint64 { - if x != nil { - return x.Balances - } - return nil -} - -func (x *BeaconStateCapella) GetRandaoMixes() [][]byte { - if x != nil { - return x.RandaoMixes - } - return nil -} - -func (x *BeaconStateCapella) GetSlashings() []uint64 { - if x != nil { - return x.Slashings - } - return nil -} - -func (x *BeaconStateCapella) GetPreviousEpochParticipation() []byte { - if x != nil { - return x.PreviousEpochParticipation - } - return nil -} - -func (x *BeaconStateCapella) GetCurrentEpochParticipation() []byte { - if x != nil { - return x.CurrentEpochParticipation - } - return nil -} - -func (x *BeaconStateCapella) GetJustificationBits() github_com_prysmaticlabs_go_bitfield.Bitvector4 { - if x != nil { - return x.JustificationBits - } - return github_com_prysmaticlabs_go_bitfield.Bitvector4(nil) -} - -func (x *BeaconStateCapella) GetPreviousJustifiedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.PreviousJustifiedCheckpoint - } - return nil -} - -func (x *BeaconStateCapella) GetCurrentJustifiedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.CurrentJustifiedCheckpoint - } - return nil -} - -func (x *BeaconStateCapella) GetFinalizedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.FinalizedCheckpoint - } - return nil -} - -func (x *BeaconStateCapella) GetInactivityScores() []uint64 { - if x != nil { - return x.InactivityScores - } - return nil -} - -func (x *BeaconStateCapella) GetCurrentSyncCommittee() *SyncCommittee { - if x != nil { - return x.CurrentSyncCommittee - } - return nil -} - -func (x *BeaconStateCapella) GetNextSyncCommittee() *SyncCommittee { - if x != nil { - return x.NextSyncCommittee - } - return nil -} - -func (x *BeaconStateCapella) GetLatestExecutionPayloadHeader() *v11.ExecutionPayloadHeaderCapella { - if x != nil { - return x.LatestExecutionPayloadHeader - } - return nil -} - -func (x *BeaconStateCapella) GetNextWithdrawalIndex() uint64 { - if x != nil { - return x.NextWithdrawalIndex - } - return 0 -} - -func (x *BeaconStateCapella) GetNextWithdrawalValidatorIndex() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex { - if x != nil { - return x.NextWithdrawalValidatorIndex - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex(0) -} - -func (x *BeaconStateCapella) GetHistoricalSummaries() []*HistoricalSummary { - if x != nil { - return x.HistoricalSummaries - } - return nil -} - -type BeaconStateDeneb struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GenesisTime uint64 `protobuf:"varint,1001,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"` - GenesisValidatorsRoot []byte `protobuf:"bytes,1002,opt,name=genesis_validators_root,json=genesisValidatorsRoot,proto3" json:"genesis_validators_root,omitempty" ssz-size:"32"` - Slot github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,1003,opt,name=slot,proto3" json:"slot,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` - Fork *v1.Fork `protobuf:"bytes,1004,opt,name=fork,proto3" json:"fork,omitempty"` - LatestBlockHeader *v1.BeaconBlockHeader `protobuf:"bytes,2001,opt,name=latest_block_header,json=latestBlockHeader,proto3" json:"latest_block_header,omitempty"` - BlockRoots [][]byte `protobuf:"bytes,2002,rep,name=block_roots,json=blockRoots,proto3" json:"block_roots,omitempty" ssz-size:"8192,32"` - StateRoots [][]byte `protobuf:"bytes,2003,rep,name=state_roots,json=stateRoots,proto3" json:"state_roots,omitempty" ssz-size:"8192,32"` - HistoricalRoots [][]byte `protobuf:"bytes,2004,rep,name=historical_roots,json=historicalRoots,proto3" json:"historical_roots,omitempty" ssz-max:"16777216" ssz-size:"?,32"` - Eth1Data *v1.Eth1Data `protobuf:"bytes,3001,opt,name=eth1_data,json=eth1Data,proto3" json:"eth1_data,omitempty"` - Eth1DataVotes []*v1.Eth1Data `protobuf:"bytes,3002,rep,name=eth1_data_votes,json=eth1DataVotes,proto3" json:"eth1_data_votes,omitempty" ssz-max:"2048"` - Eth1DepositIndex uint64 `protobuf:"varint,3003,opt,name=eth1_deposit_index,json=eth1DepositIndex,proto3" json:"eth1_deposit_index,omitempty"` - Validators []*v1.Validator `protobuf:"bytes,4001,rep,name=validators,proto3" json:"validators,omitempty" ssz-max:"1099511627776"` - Balances []uint64 `protobuf:"varint,4002,rep,packed,name=balances,proto3" json:"balances,omitempty" ssz-max:"1099511627776"` - RandaoMixes [][]byte `protobuf:"bytes,5001,rep,name=randao_mixes,json=randaoMixes,proto3" json:"randao_mixes,omitempty" ssz-size:"65536,32"` - Slashings []uint64 `protobuf:"varint,6001,rep,packed,name=slashings,proto3" json:"slashings,omitempty" ssz-size:"8192"` - PreviousEpochParticipation []byte `protobuf:"bytes,7001,opt,name=previous_epoch_participation,json=previousEpochParticipation,proto3" json:"previous_epoch_participation,omitempty" ssz-max:"1099511627776"` - CurrentEpochParticipation []byte `protobuf:"bytes,7002,opt,name=current_epoch_participation,json=currentEpochParticipation,proto3" json:"current_epoch_participation,omitempty" ssz-max:"1099511627776"` - JustificationBits github_com_prysmaticlabs_go_bitfield.Bitvector4 `protobuf:"bytes,8001,opt,name=justification_bits,json=justificationBits,proto3" json:"justification_bits,omitempty" cast-type:"github.com/prysmaticlabs/go-bitfield.Bitvector4" ssz-size:"1"` - PreviousJustifiedCheckpoint *v1.Checkpoint `protobuf:"bytes,8002,opt,name=previous_justified_checkpoint,json=previousJustifiedCheckpoint,proto3" json:"previous_justified_checkpoint,omitempty"` - CurrentJustifiedCheckpoint *v1.Checkpoint `protobuf:"bytes,8003,opt,name=current_justified_checkpoint,json=currentJustifiedCheckpoint,proto3" json:"current_justified_checkpoint,omitempty"` - FinalizedCheckpoint *v1.Checkpoint `protobuf:"bytes,8004,opt,name=finalized_checkpoint,json=finalizedCheckpoint,proto3" json:"finalized_checkpoint,omitempty"` - InactivityScores []uint64 `protobuf:"varint,9001,rep,packed,name=inactivity_scores,json=inactivityScores,proto3" json:"inactivity_scores,omitempty" ssz-max:"1099511627776"` - CurrentSyncCommittee *SyncCommittee `protobuf:"bytes,9002,opt,name=current_sync_committee,json=currentSyncCommittee,proto3" json:"current_sync_committee,omitempty"` - NextSyncCommittee *SyncCommittee `protobuf:"bytes,9003,opt,name=next_sync_committee,json=nextSyncCommittee,proto3" json:"next_sync_committee,omitempty"` - LatestExecutionPayloadHeader *v11.ExecutionPayloadHeaderDeneb `protobuf:"bytes,10001,opt,name=latest_execution_payload_header,json=latestExecutionPayloadHeader,proto3" json:"latest_execution_payload_header,omitempty"` - NextWithdrawalIndex uint64 `protobuf:"varint,11001,opt,name=next_withdrawal_index,json=nextWithdrawalIndex,proto3" json:"next_withdrawal_index,omitempty"` - NextWithdrawalValidatorIndex github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex `protobuf:"varint,11002,opt,name=next_withdrawal_validator_index,json=nextWithdrawalValidatorIndex,proto3" json:"next_withdrawal_validator_index,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"` - HistoricalSummaries []*HistoricalSummary `protobuf:"bytes,11003,rep,name=historical_summaries,json=historicalSummaries,proto3" json:"historical_summaries,omitempty" ssz-max:"16777216"` -} - -func (x *BeaconStateDeneb) Reset() { - *x = BeaconStateDeneb{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BeaconStateDeneb) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BeaconStateDeneb) ProtoMessage() {} - -func (x *BeaconStateDeneb) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BeaconStateDeneb.ProtoReflect.Descriptor instead. -func (*BeaconStateDeneb) Descriptor() ([]byte, []int) { - return file_proto_eth_v2_beacon_state_proto_rawDescGZIP(), []int{3} -} - -func (x *BeaconStateDeneb) GetGenesisTime() uint64 { - if x != nil { - return x.GenesisTime - } - return 0 -} - -func (x *BeaconStateDeneb) GetGenesisValidatorsRoot() []byte { - if x != nil { - return x.GenesisValidatorsRoot - } - return nil -} - -func (x *BeaconStateDeneb) GetSlot() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.Slot - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -func (x *BeaconStateDeneb) GetFork() *v1.Fork { - if x != nil { - return x.Fork - } - return nil -} - -func (x *BeaconStateDeneb) GetLatestBlockHeader() *v1.BeaconBlockHeader { - if x != nil { - return x.LatestBlockHeader - } - return nil -} - -func (x *BeaconStateDeneb) GetBlockRoots() [][]byte { - if x != nil { - return x.BlockRoots - } - return nil -} - -func (x *BeaconStateDeneb) GetStateRoots() [][]byte { - if x != nil { - return x.StateRoots - } - return nil -} - -func (x *BeaconStateDeneb) GetHistoricalRoots() [][]byte { - if x != nil { - return x.HistoricalRoots - } - return nil -} - -func (x *BeaconStateDeneb) GetEth1Data() *v1.Eth1Data { - if x != nil { - return x.Eth1Data - } - return nil -} - -func (x *BeaconStateDeneb) GetEth1DataVotes() []*v1.Eth1Data { - if x != nil { - return x.Eth1DataVotes - } - return nil -} - -func (x *BeaconStateDeneb) GetEth1DepositIndex() uint64 { - if x != nil { - return x.Eth1DepositIndex - } - return 0 -} - -func (x *BeaconStateDeneb) GetValidators() []*v1.Validator { - if x != nil { - return x.Validators - } - return nil -} - -func (x *BeaconStateDeneb) GetBalances() []uint64 { - if x != nil { - return x.Balances - } - return nil -} - -func (x *BeaconStateDeneb) GetRandaoMixes() [][]byte { - if x != nil { - return x.RandaoMixes - } - return nil -} - -func (x *BeaconStateDeneb) GetSlashings() []uint64 { - if x != nil { - return x.Slashings - } - return nil -} - -func (x *BeaconStateDeneb) GetPreviousEpochParticipation() []byte { - if x != nil { - return x.PreviousEpochParticipation - } - return nil -} - -func (x *BeaconStateDeneb) GetCurrentEpochParticipation() []byte { - if x != nil { - return x.CurrentEpochParticipation - } - return nil -} - -func (x *BeaconStateDeneb) GetJustificationBits() github_com_prysmaticlabs_go_bitfield.Bitvector4 { - if x != nil { - return x.JustificationBits - } - return github_com_prysmaticlabs_go_bitfield.Bitvector4(nil) -} - -func (x *BeaconStateDeneb) GetPreviousJustifiedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.PreviousJustifiedCheckpoint - } - return nil -} - -func (x *BeaconStateDeneb) GetCurrentJustifiedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.CurrentJustifiedCheckpoint - } - return nil -} - -func (x *BeaconStateDeneb) GetFinalizedCheckpoint() *v1.Checkpoint { - if x != nil { - return x.FinalizedCheckpoint - } - return nil -} - -func (x *BeaconStateDeneb) GetInactivityScores() []uint64 { - if x != nil { - return x.InactivityScores - } - return nil -} - -func (x *BeaconStateDeneb) GetCurrentSyncCommittee() *SyncCommittee { - if x != nil { - return x.CurrentSyncCommittee - } - return nil -} - -func (x *BeaconStateDeneb) GetNextSyncCommittee() *SyncCommittee { - if x != nil { - return x.NextSyncCommittee - } - return nil -} - -func (x *BeaconStateDeneb) GetLatestExecutionPayloadHeader() *v11.ExecutionPayloadHeaderDeneb { - if x != nil { - return x.LatestExecutionPayloadHeader - } - return nil -} - -func (x *BeaconStateDeneb) GetNextWithdrawalIndex() uint64 { - if x != nil { - return x.NextWithdrawalIndex - } - return 0 -} - -func (x *BeaconStateDeneb) GetNextWithdrawalValidatorIndex() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex { - if x != nil { - return x.NextWithdrawalValidatorIndex - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.ValidatorIndex(0) -} - -func (x *BeaconStateDeneb) GetHistoricalSummaries() []*HistoricalSummary { - if x != nil { - return x.HistoricalSummaries - } - return nil -} - -type HistoricalSummary struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - BlockSummaryRoot []byte `protobuf:"bytes,1,opt,name=block_summary_root,json=blockSummaryRoot,proto3" json:"block_summary_root,omitempty" ssz-size:"32"` - StateSummaryRoot []byte `protobuf:"bytes,2,opt,name=state_summary_root,json=stateSummaryRoot,proto3" json:"state_summary_root,omitempty" ssz-size:"32"` -} - -func (x *HistoricalSummary) Reset() { - *x = HistoricalSummary{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *HistoricalSummary) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*HistoricalSummary) ProtoMessage() {} - -func (x *HistoricalSummary) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use HistoricalSummary.ProtoReflect.Descriptor instead. -func (*HistoricalSummary) Descriptor() ([]byte, []int) { - return file_proto_eth_v2_beacon_state_proto_rawDescGZIP(), []int{4} -} - -func (x *HistoricalSummary) GetBlockSummaryRoot() []byte { - if x != nil { - return x.BlockSummaryRoot - } - return nil -} - -func (x *HistoricalSummary) GetStateSummaryRoot() []byte { - if x != nil { - return x.StateSummaryRoot - } - return nil -} - -type BeaconStateSSZResponseV2 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Version Version `protobuf:"varint,1,opt,name=version,proto3,enum=ethereum.eth.v2.Version" json:"version,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` -} - -func (x *BeaconStateSSZResponseV2) Reset() { - *x = BeaconStateSSZResponseV2{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BeaconStateSSZResponseV2) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BeaconStateSSZResponseV2) ProtoMessage() {} - -func (x *BeaconStateSSZResponseV2) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BeaconStateSSZResponseV2.ProtoReflect.Descriptor instead. -func (*BeaconStateSSZResponseV2) Descriptor() ([]byte, []int) { - return file_proto_eth_v2_beacon_state_proto_rawDescGZIP(), []int{5} -} - -func (x *BeaconStateSSZResponseV2) GetVersion() Version { - if x != nil { - return x.Version - } - return Version_PHASE0 -} - -func (x *BeaconStateSSZResponseV2) GetData() []byte { - if x != nil { - return x.Data - } - return nil -} - -type ForkChoiceHeadsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Data []*ForkChoiceHead `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` -} - -func (x *ForkChoiceHeadsResponse) Reset() { - *x = ForkChoiceHeadsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ForkChoiceHeadsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ForkChoiceHeadsResponse) ProtoMessage() {} - -func (x *ForkChoiceHeadsResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ForkChoiceHeadsResponse.ProtoReflect.Descriptor instead. -func (*ForkChoiceHeadsResponse) Descriptor() ([]byte, []int) { - return file_proto_eth_v2_beacon_state_proto_rawDescGZIP(), []int{6} -} - -func (x *ForkChoiceHeadsResponse) GetData() []*ForkChoiceHead { - if x != nil { - return x.Data - } - return nil -} - -type ForkChoiceHead struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Root []byte `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty" ssz-size:"32"` - Slot github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot `protobuf:"varint,2,opt,name=slot,proto3" json:"slot,omitempty" cast-type:"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"` - ExecutionOptimistic bool `protobuf:"varint,3,opt,name=execution_optimistic,json=executionOptimistic,proto3" json:"execution_optimistic,omitempty"` -} - -func (x *ForkChoiceHead) Reset() { - *x = ForkChoiceHead{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ForkChoiceHead) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ForkChoiceHead) ProtoMessage() {} - -func (x *ForkChoiceHead) ProtoReflect() protoreflect.Message { - mi := &file_proto_eth_v2_beacon_state_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ForkChoiceHead.ProtoReflect.Descriptor instead. -func (*ForkChoiceHead) Descriptor() ([]byte, []int) { - return file_proto_eth_v2_beacon_state_proto_rawDescGZIP(), []int{7} -} - -func (x *ForkChoiceHead) GetRoot() []byte { - if x != nil { - return x.Root - } - return nil -} - -func (x *ForkChoiceHead) GetSlot() github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot { - if x != nil { - return x.Slot - } - return github_com_prysmaticlabs_prysm_v5_consensus_types_primitives.Slot(0) -} - -func (x *ForkChoiceHead) GetExecutionOptimistic() bool { - if x != nil { - return x.ExecutionOptimistic - } - return false -} - -var File_proto_eth_v2_beacon_state_proto protoreflect.FileDescriptor - -var file_proto_eth_v2_beacon_state_proto_rawDesc = []byte{ - 0x0a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x2f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x32, 0x1a, 0x1b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x65, 0x78, - 0x74, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x21, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, - 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x0d, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, - 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x67, - 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x17, 0x67, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, - 0x18, 0x02, 0x33, 0x32, 0x52, 0x15, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x5a, 0x0a, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, 0x41, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, - 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, - 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, 0x6f, - 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x18, - 0xec, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x66, - 0x6f, 0x72, 0x6b, 0x12, 0x53, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0xd1, 0x0f, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd2, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0b, - 0x8a, 0xb5, 0x18, 0x07, 0x38, 0x31, 0x39, 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd3, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0b, 0x8a, - 0xb5, 0x18, 0x07, 0x38, 0x31, 0x39, 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd4, 0x0f, 0x20, 0x03, 0x28, - 0x0c, 0x42, 0x14, 0x8a, 0xb5, 0x18, 0x04, 0x3f, 0x2c, 0x33, 0x32, 0x92, 0xb5, 0x18, 0x08, 0x31, - 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x36, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, - 0x63, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x65, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x4c, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, - 0x6f, 0x74, 0x65, 0x73, 0x18, 0xba, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, - 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x42, 0x08, 0x92, 0xb5, 0x18, 0x04, 0x32, 0x30, 0x34, 0x38, - 0x52, 0x0d, 0x65, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, - 0x2d, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xbb, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x65, 0x74, - 0x68, 0x31, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4e, - 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0xa1, 0x1f, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, - 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, - 0x37, 0x36, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, - 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xa2, 0x1f, 0x20, 0x03, 0x28, - 0x04, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, - 0x37, 0x37, 0x37, 0x36, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, - 0x0a, 0x0c, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x6d, 0x69, 0x78, 0x65, 0x73, 0x18, 0x89, - 0x27, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0c, 0x8a, 0xb5, 0x18, 0x08, 0x36, 0x35, 0x35, 0x33, 0x36, - 0x2c, 0x33, 0x32, 0x52, 0x0b, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x4d, 0x69, 0x78, 0x65, 0x73, - 0x12, 0x27, 0x0a, 0x09, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0xf1, 0x2e, - 0x20, 0x03, 0x28, 0x04, 0x42, 0x08, 0x8a, 0xb5, 0x18, 0x04, 0x38, 0x31, 0x39, 0x32, 0x52, 0x09, - 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x54, 0x0a, 0x1c, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xd9, 0x36, 0x20, 0x01, 0x28, 0x0c, - 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, - 0x37, 0x37, 0x36, 0x52, 0x1a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x52, 0x0a, 0x1b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xda, - 0x36, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, - 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x12, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0xc1, 0x3e, 0x20, 0x01, 0x28, 0x0c, - 0x42, 0x38, 0x82, 0xb5, 0x18, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x67, - 0x6f, 0x2d, 0x62, 0x69, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x42, 0x69, 0x74, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x34, 0x8a, 0xb5, 0x18, 0x01, 0x31, 0x52, 0x11, 0x6a, 0x75, 0x73, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x73, 0x12, 0x60, 0x0a, - 0x1d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc2, - 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x1b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4a, 0x75, 0x73, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x5e, 0x0a, 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, - 0xc3, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x73, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x4f, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc4, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x13, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x12, 0x3f, 0x0a, 0x11, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0xa9, 0x46, 0x20, 0x03, 0x28, 0x04, 0x42, 0x11, 0x92, 0xb5, - 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, - 0x10, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x12, 0x55, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xaa, 0x46, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x52, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, - 0xab, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x52, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x79, 0x6e, 0x63, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x22, 0x8d, 0x0e, 0x0a, 0x14, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x72, - 0x69, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x73, - 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x17, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, - 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, - 0x52, 0x15, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x5a, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, - 0xeb, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, 0x41, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, - 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, - 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, - 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, - 0x6c, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x18, 0xec, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x12, - 0x53, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0xd1, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, - 0x6f, 0x74, 0x73, 0x18, 0xd2, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0b, 0x8a, 0xb5, 0x18, 0x07, - 0x38, 0x31, 0x39, 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, - 0x6f, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x73, 0x18, 0xd3, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0b, 0x8a, 0xb5, 0x18, 0x07, 0x38, - 0x31, 0x39, 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, - 0x74, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, - 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd4, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x14, 0x8a, - 0xb5, 0x18, 0x04, 0x3f, 0x2c, 0x33, 0x32, 0x92, 0xb5, 0x18, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, - 0x32, 0x31, 0x36, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, - 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x65, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, - 0x0f, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, - 0x18, 0xba, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x08, 0x92, 0xb5, 0x18, 0x04, 0x32, 0x30, 0x34, 0x38, 0x52, 0x0d, 0x65, 0x74, - 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x65, - 0x74, 0x68, 0x31, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0xbb, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x65, 0x74, 0x68, 0x31, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4e, 0x0a, 0x0a, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0xa1, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x11, 0x92, 0xb5, 0x18, - 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x0a, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xa2, 0x1f, 0x20, 0x03, 0x28, 0x04, 0x42, 0x11, 0x92, - 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, - 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x61, - 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x6d, 0x69, 0x78, 0x65, 0x73, 0x18, 0x89, 0x27, 0x20, 0x03, 0x28, - 0x0c, 0x42, 0x0c, 0x8a, 0xb5, 0x18, 0x08, 0x36, 0x35, 0x35, 0x33, 0x36, 0x2c, 0x33, 0x32, 0x52, - 0x0b, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x4d, 0x69, 0x78, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x09, - 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0xf1, 0x2e, 0x20, 0x03, 0x28, 0x04, - 0x42, 0x08, 0x8a, 0xb5, 0x18, 0x04, 0x38, 0x31, 0x39, 0x32, 0x52, 0x09, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x54, 0x0a, 0x1c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, - 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xd9, 0x36, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x11, 0x92, 0xb5, - 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, - 0x1a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x1b, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xda, 0x36, 0x20, 0x01, 0x28, - 0x0c, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, - 0x37, 0x37, 0x37, 0x36, 0x52, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x68, 0x0a, 0x12, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0xc1, 0x3e, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x38, 0x82, 0xb5, - 0x18, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, - 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x67, 0x6f, 0x2d, 0x62, 0x69, - 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x42, 0x69, 0x74, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x34, 0x8a, 0xb5, 0x18, 0x01, 0x31, 0x52, 0x11, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x1d, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc2, 0x3e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x1b, - 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x1c, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc3, 0x3e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, - 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x14, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0xc4, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x11, - 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x18, 0xa9, 0x46, 0x20, 0x03, 0x28, 0x04, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, - 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x10, 0x69, 0x6e, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x55, 0x0a, - 0x16, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xaa, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, - 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x52, 0x14, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xab, 0x46, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x52, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x72, 0x0a, 0x1f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, - 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x1c, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xc7, 0x10, 0x0a, 0x12, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, - 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x17, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, - 0xea, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x15, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x5a, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0xeb, 0x07, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, - 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, - 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x12, 0x53, 0x0a, - 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x18, 0xd1, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, - 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, - 0x73, 0x18, 0xd2, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0b, 0x8a, 0xb5, 0x18, 0x07, 0x38, 0x31, - 0x39, 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, - 0x73, 0x12, 0x2d, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, - 0x18, 0xd3, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0b, 0x8a, 0xb5, 0x18, 0x07, 0x38, 0x31, 0x39, - 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x73, - 0x12, 0x40, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, - 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd4, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x14, 0x8a, 0xb5, 0x18, - 0x04, 0x3f, 0x2c, 0x33, 0x32, 0x92, 0xb5, 0x18, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, - 0x36, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x6f, 0x6f, - 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, - 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x65, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x0f, 0x65, - 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0xba, - 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x08, 0x92, 0xb5, 0x18, 0x04, 0x32, 0x30, 0x34, 0x38, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x31, - 0x44, 0x61, 0x74, 0x61, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x74, 0x68, - 0x31, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0xbb, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x65, 0x74, 0x68, 0x31, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0xa1, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, - 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x0a, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x18, 0xa2, 0x1f, 0x20, 0x03, 0x28, 0x04, 0x42, 0x11, 0x92, 0xb5, 0x18, - 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x08, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x61, 0x6e, 0x64, - 0x61, 0x6f, 0x5f, 0x6d, 0x69, 0x78, 0x65, 0x73, 0x18, 0x89, 0x27, 0x20, 0x03, 0x28, 0x0c, 0x42, - 0x0c, 0x8a, 0xb5, 0x18, 0x08, 0x36, 0x35, 0x35, 0x33, 0x36, 0x2c, 0x33, 0x32, 0x52, 0x0b, 0x72, - 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x4d, 0x69, 0x78, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x09, 0x73, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, 0xf1, 0x2e, 0x20, 0x03, 0x28, 0x04, 0x42, 0x08, - 0x8a, 0xb5, 0x18, 0x04, 0x38, 0x31, 0x39, 0x32, 0x52, 0x09, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x73, 0x12, 0x54, 0x0a, 0x1c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xd9, 0x36, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, - 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x1a, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x1b, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xda, 0x36, 0x20, 0x01, 0x28, 0x0c, 0x42, - 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, - 0x37, 0x36, 0x52, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, - 0x12, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, - 0x69, 0x74, 0x73, 0x18, 0xc1, 0x3e, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x38, 0x82, 0xb5, 0x18, 0x2f, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, - 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x67, 0x6f, 0x2d, 0x62, 0x69, 0x74, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x42, 0x69, 0x74, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x34, 0x8a, - 0xb5, 0x18, 0x01, 0x31, 0x52, 0x11, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x1d, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc2, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x1b, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x1c, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc3, 0x3e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x1a, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x14, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0xc4, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x11, 0x69, 0x6e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, - 0xa9, 0x46, 0x20, 0x03, 0x28, 0x04, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, - 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x10, 0x69, 0x6e, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xaa, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, - 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x52, 0x14, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xab, 0x46, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, - 0x52, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x74, 0x65, 0x65, 0x12, 0x79, 0x0a, 0x1f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x61, 0x70, 0x65, 0x6c, 0x6c, 0x61, - 0x52, 0x1c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x33, - 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, - 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xf9, 0x55, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, - 0x6e, 0x65, 0x78, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x97, 0x01, 0x0a, 0x1f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xfa, 0x55, 0x20, 0x01, 0x28, 0x04, 0x42, 0x4f, - 0x82, 0xb5, 0x18, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, - 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, - 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, - 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, - 0x1c, 0x6e, 0x65, 0x78, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x64, 0x0a, - 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0xfb, 0x55, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x42, 0x0c, 0x92, 0xb5, 0x18, 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x36, 0x52, 0x13, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, - 0x69, 0x65, 0x73, 0x22, 0xc3, 0x10, 0x0a, 0x10, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, - 0x73, 0x69, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x17, - 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, - 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x15, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x5a, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, - 0x18, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, - 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, - 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, - 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x66, 0x6f, 0x72, - 0x6b, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x52, - 0x04, 0x66, 0x6f, 0x72, 0x6b, 0x12, 0x53, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0xd1, 0x0f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x0b, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd2, 0x0f, 0x20, 0x03, 0x28, 0x0c, - 0x42, 0x0b, 0x8a, 0xb5, 0x18, 0x07, 0x38, 0x31, 0x39, 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x0b, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd3, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x42, - 0x0b, 0x8a, 0xb5, 0x18, 0x07, 0x38, 0x31, 0x39, 0x32, 0x2c, 0x33, 0x32, 0x52, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x73, 0x18, 0xd4, 0x0f, 0x20, - 0x03, 0x28, 0x0c, 0x42, 0x14, 0x8a, 0xb5, 0x18, 0x04, 0x3f, 0x2c, 0x33, 0x32, 0x92, 0xb5, 0x18, - 0x08, 0x31, 0x36, 0x37, 0x37, 0x37, 0x32, 0x31, 0x36, 0x52, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x74, - 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x65, 0x74, 0x68, 0x31, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0xba, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x42, 0x08, 0x92, 0xb5, 0x18, 0x04, 0x32, 0x30, - 0x34, 0x38, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x31, 0x44, 0x61, 0x74, 0x61, 0x56, 0x6f, 0x74, 0x65, - 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x31, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xbb, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, - 0x65, 0x74, 0x68, 0x31, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x4e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0xa1, - 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, - 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, - 0x37, 0x37, 0x37, 0x36, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0xa2, 0x1f, 0x20, - 0x03, 0x28, 0x04, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, - 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x12, 0x30, 0x0a, 0x0c, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x5f, 0x6d, 0x69, 0x78, 0x65, 0x73, - 0x18, 0x89, 0x27, 0x20, 0x03, 0x28, 0x0c, 0x42, 0x0c, 0x8a, 0xb5, 0x18, 0x08, 0x36, 0x35, 0x35, - 0x33, 0x36, 0x2c, 0x33, 0x32, 0x52, 0x0b, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x4d, 0x69, 0x78, - 0x65, 0x73, 0x12, 0x27, 0x0a, 0x09, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x18, - 0xf1, 0x2e, 0x20, 0x03, 0x28, 0x04, 0x42, 0x08, 0x8a, 0xb5, 0x18, 0x04, 0x38, 0x31, 0x39, 0x32, - 0x52, 0x09, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x54, 0x0a, 0x1c, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xd9, 0x36, 0x20, 0x01, - 0x28, 0x0c, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, - 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x1a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x52, 0x0a, 0x1b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0xda, 0x36, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x11, 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, - 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, 0x36, 0x52, 0x19, 0x63, 0x75, 0x72, 0x72, - 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x12, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0xc1, 0x3e, 0x20, 0x01, - 0x28, 0x0c, 0x42, 0x38, 0x82, 0xb5, 0x18, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, - 0x2f, 0x67, 0x6f, 0x2d, 0x62, 0x69, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x42, 0x69, 0x74, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x34, 0x8a, 0xb5, 0x18, 0x01, 0x31, 0x52, 0x11, 0x6a, 0x75, - 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x73, 0x12, - 0x60, 0x0a, 0x1d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x6a, 0x75, 0x73, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x18, 0xc2, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x1b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4a, 0x75, - 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x5e, 0x0a, 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x75, 0x73, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0xc3, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x75, - 0x73, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x4f, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0xc4, 0x3e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x13, 0x66, - 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x11, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, - 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0xa9, 0x46, 0x20, 0x03, 0x28, 0x04, 0x42, 0x11, - 0x92, 0xb5, 0x18, 0x0d, 0x31, 0x30, 0x39, 0x39, 0x35, 0x31, 0x31, 0x36, 0x32, 0x37, 0x37, 0x37, - 0x36, 0x52, 0x10, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0xaa, 0x46, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, - 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x65, 0x52, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x79, 0x6e, - 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x65, 0x18, 0xab, 0x46, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x52, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x79, - 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x77, 0x0a, 0x1f, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x91, - 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, - 0x2e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x44, 0x65, 0x6e, 0x65, 0x62, 0x52, 0x1c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xf9, 0x55, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x61, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x97, 0x01, 0x0a, 0x1f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xfa, 0x55, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x4f, 0x82, 0xb5, 0x18, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, - 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x1c, 0x6e, 0x65, 0x78, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x64, 0x0a, 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, - 0x6c, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0xfb, 0x55, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, - 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x0c, 0x92, 0xb5, 0x18, 0x08, 0x31, 0x36, 0x37, 0x37, - 0x37, 0x32, 0x31, 0x36, 0x52, 0x13, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x11, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x34, - 0x0a, 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, - 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, - 0x33, 0x32, 0x52, 0x10, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, - 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x34, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x75, - 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x42, 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0x62, 0x0a, 0x18, 0x42, 0x65, - 0x61, 0x63, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x53, 0x5a, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x32, 0x12, 0x32, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4e, - 0x0a, 0x17, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, - 0x01, 0x0a, 0x0e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, - 0x64, 0x12, 0x1a, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, - 0x06, 0x8a, 0xb5, 0x18, 0x02, 0x33, 0x32, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x59, 0x0a, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x45, 0x82, 0xb5, 0x18, - 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, - 0x76, 0x35, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2d, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2f, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6c, - 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x73, 0x74, 0x69, 0x63, 0x42, 0x83, 0x01, 0x0a, 0x13, - 0x6f, 0x72, 0x67, 0x2e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x65, 0x74, 0x68, - 0x2e, 0x76, 0x32, 0x42, 0x12, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x6c, - 0x61, 0x62, 0x73, 0x2f, 0x70, 0x72, 0x79, 0x73, 0x6d, 0x2f, 0x76, 0x35, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x65, 0x74, 0x68, 0x2f, 0x76, 0x32, 0x3b, 0x65, 0x74, 0x68, 0xaa, 0x02, 0x0f, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x74, 0x68, 0x2e, 0x56, 0x32, 0xca, - 0x02, 0x0f, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5c, 0x45, 0x74, 0x68, 0x5c, 0x76, - 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_proto_eth_v2_beacon_state_proto_rawDescOnce sync.Once - file_proto_eth_v2_beacon_state_proto_rawDescData = file_proto_eth_v2_beacon_state_proto_rawDesc -) - -func file_proto_eth_v2_beacon_state_proto_rawDescGZIP() []byte { - file_proto_eth_v2_beacon_state_proto_rawDescOnce.Do(func() { - file_proto_eth_v2_beacon_state_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_eth_v2_beacon_state_proto_rawDescData) - }) - return file_proto_eth_v2_beacon_state_proto_rawDescData -} - -var file_proto_eth_v2_beacon_state_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_proto_eth_v2_beacon_state_proto_goTypes = []interface{}{ - (*BeaconState)(nil), // 0: ethereum.eth.v2.BeaconState - (*BeaconStateBellatrix)(nil), // 1: ethereum.eth.v2.BeaconStateBellatrix - (*BeaconStateCapella)(nil), // 2: ethereum.eth.v2.BeaconStateCapella - (*BeaconStateDeneb)(nil), // 3: ethereum.eth.v2.BeaconStateDeneb - (*HistoricalSummary)(nil), // 4: ethereum.eth.v2.HistoricalSummary - (*BeaconStateSSZResponseV2)(nil), // 5: ethereum.eth.v2.BeaconStateSSZResponseV2 - (*ForkChoiceHeadsResponse)(nil), // 6: ethereum.eth.v2.ForkChoiceHeadsResponse - (*ForkChoiceHead)(nil), // 7: ethereum.eth.v2.ForkChoiceHead - (*v1.Fork)(nil), // 8: ethereum.eth.v1.Fork - (*v1.BeaconBlockHeader)(nil), // 9: ethereum.eth.v1.BeaconBlockHeader - (*v1.Eth1Data)(nil), // 10: ethereum.eth.v1.Eth1Data - (*v1.Validator)(nil), // 11: ethereum.eth.v1.Validator - (*v1.Checkpoint)(nil), // 12: ethereum.eth.v1.Checkpoint - (*SyncCommittee)(nil), // 13: ethereum.eth.v2.SyncCommittee - (*v11.ExecutionPayloadHeader)(nil), // 14: ethereum.engine.v1.ExecutionPayloadHeader - (*v11.ExecutionPayloadHeaderCapella)(nil), // 15: ethereum.engine.v1.ExecutionPayloadHeaderCapella - (*v11.ExecutionPayloadHeaderDeneb)(nil), // 16: ethereum.engine.v1.ExecutionPayloadHeaderDeneb - (Version)(0), // 17: ethereum.eth.v2.Version -} -var file_proto_eth_v2_beacon_state_proto_depIdxs = []int32{ - 8, // 0: ethereum.eth.v2.BeaconState.fork:type_name -> ethereum.eth.v1.Fork - 9, // 1: ethereum.eth.v2.BeaconState.latest_block_header:type_name -> ethereum.eth.v1.BeaconBlockHeader - 10, // 2: ethereum.eth.v2.BeaconState.eth1_data:type_name -> ethereum.eth.v1.Eth1Data - 10, // 3: ethereum.eth.v2.BeaconState.eth1_data_votes:type_name -> ethereum.eth.v1.Eth1Data - 11, // 4: ethereum.eth.v2.BeaconState.validators:type_name -> ethereum.eth.v1.Validator - 12, // 5: ethereum.eth.v2.BeaconState.previous_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 12, // 6: ethereum.eth.v2.BeaconState.current_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 12, // 7: ethereum.eth.v2.BeaconState.finalized_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 13, // 8: ethereum.eth.v2.BeaconState.current_sync_committee:type_name -> ethereum.eth.v2.SyncCommittee - 13, // 9: ethereum.eth.v2.BeaconState.next_sync_committee:type_name -> ethereum.eth.v2.SyncCommittee - 8, // 10: ethereum.eth.v2.BeaconStateBellatrix.fork:type_name -> ethereum.eth.v1.Fork - 9, // 11: ethereum.eth.v2.BeaconStateBellatrix.latest_block_header:type_name -> ethereum.eth.v1.BeaconBlockHeader - 10, // 12: ethereum.eth.v2.BeaconStateBellatrix.eth1_data:type_name -> ethereum.eth.v1.Eth1Data - 10, // 13: ethereum.eth.v2.BeaconStateBellatrix.eth1_data_votes:type_name -> ethereum.eth.v1.Eth1Data - 11, // 14: ethereum.eth.v2.BeaconStateBellatrix.validators:type_name -> ethereum.eth.v1.Validator - 12, // 15: ethereum.eth.v2.BeaconStateBellatrix.previous_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 12, // 16: ethereum.eth.v2.BeaconStateBellatrix.current_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 12, // 17: ethereum.eth.v2.BeaconStateBellatrix.finalized_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 13, // 18: ethereum.eth.v2.BeaconStateBellatrix.current_sync_committee:type_name -> ethereum.eth.v2.SyncCommittee - 13, // 19: ethereum.eth.v2.BeaconStateBellatrix.next_sync_committee:type_name -> ethereum.eth.v2.SyncCommittee - 14, // 20: ethereum.eth.v2.BeaconStateBellatrix.latest_execution_payload_header:type_name -> ethereum.engine.v1.ExecutionPayloadHeader - 8, // 21: ethereum.eth.v2.BeaconStateCapella.fork:type_name -> ethereum.eth.v1.Fork - 9, // 22: ethereum.eth.v2.BeaconStateCapella.latest_block_header:type_name -> ethereum.eth.v1.BeaconBlockHeader - 10, // 23: ethereum.eth.v2.BeaconStateCapella.eth1_data:type_name -> ethereum.eth.v1.Eth1Data - 10, // 24: ethereum.eth.v2.BeaconStateCapella.eth1_data_votes:type_name -> ethereum.eth.v1.Eth1Data - 11, // 25: ethereum.eth.v2.BeaconStateCapella.validators:type_name -> ethereum.eth.v1.Validator - 12, // 26: ethereum.eth.v2.BeaconStateCapella.previous_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 12, // 27: ethereum.eth.v2.BeaconStateCapella.current_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 12, // 28: ethereum.eth.v2.BeaconStateCapella.finalized_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 13, // 29: ethereum.eth.v2.BeaconStateCapella.current_sync_committee:type_name -> ethereum.eth.v2.SyncCommittee - 13, // 30: ethereum.eth.v2.BeaconStateCapella.next_sync_committee:type_name -> ethereum.eth.v2.SyncCommittee - 15, // 31: ethereum.eth.v2.BeaconStateCapella.latest_execution_payload_header:type_name -> ethereum.engine.v1.ExecutionPayloadHeaderCapella - 4, // 32: ethereum.eth.v2.BeaconStateCapella.historical_summaries:type_name -> ethereum.eth.v2.HistoricalSummary - 8, // 33: ethereum.eth.v2.BeaconStateDeneb.fork:type_name -> ethereum.eth.v1.Fork - 9, // 34: ethereum.eth.v2.BeaconStateDeneb.latest_block_header:type_name -> ethereum.eth.v1.BeaconBlockHeader - 10, // 35: ethereum.eth.v2.BeaconStateDeneb.eth1_data:type_name -> ethereum.eth.v1.Eth1Data - 10, // 36: ethereum.eth.v2.BeaconStateDeneb.eth1_data_votes:type_name -> ethereum.eth.v1.Eth1Data - 11, // 37: ethereum.eth.v2.BeaconStateDeneb.validators:type_name -> ethereum.eth.v1.Validator - 12, // 38: ethereum.eth.v2.BeaconStateDeneb.previous_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 12, // 39: ethereum.eth.v2.BeaconStateDeneb.current_justified_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 12, // 40: ethereum.eth.v2.BeaconStateDeneb.finalized_checkpoint:type_name -> ethereum.eth.v1.Checkpoint - 13, // 41: ethereum.eth.v2.BeaconStateDeneb.current_sync_committee:type_name -> ethereum.eth.v2.SyncCommittee - 13, // 42: ethereum.eth.v2.BeaconStateDeneb.next_sync_committee:type_name -> ethereum.eth.v2.SyncCommittee - 16, // 43: ethereum.eth.v2.BeaconStateDeneb.latest_execution_payload_header:type_name -> ethereum.engine.v1.ExecutionPayloadHeaderDeneb - 4, // 44: ethereum.eth.v2.BeaconStateDeneb.historical_summaries:type_name -> ethereum.eth.v2.HistoricalSummary - 17, // 45: ethereum.eth.v2.BeaconStateSSZResponseV2.version:type_name -> ethereum.eth.v2.Version - 7, // 46: ethereum.eth.v2.ForkChoiceHeadsResponse.data:type_name -> ethereum.eth.v2.ForkChoiceHead - 47, // [47:47] is the sub-list for method output_type - 47, // [47:47] is the sub-list for method input_type - 47, // [47:47] is the sub-list for extension type_name - 47, // [47:47] is the sub-list for extension extendee - 0, // [0:47] is the sub-list for field type_name -} - -func init() { file_proto_eth_v2_beacon_state_proto_init() } -func file_proto_eth_v2_beacon_state_proto_init() { - if File_proto_eth_v2_beacon_state_proto != nil { - return - } - file_proto_eth_v2_sync_committee_proto_init() - file_proto_eth_v2_version_proto_init() - if !protoimpl.UnsafeEnabled { - file_proto_eth_v2_beacon_state_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BeaconState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v2_beacon_state_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BeaconStateBellatrix); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v2_beacon_state_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BeaconStateCapella); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v2_beacon_state_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BeaconStateDeneb); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v2_beacon_state_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HistoricalSummary); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v2_beacon_state_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BeaconStateSSZResponseV2); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v2_beacon_state_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForkChoiceHeadsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_eth_v2_beacon_state_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ForkChoiceHead); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_proto_eth_v2_beacon_state_proto_rawDesc, - NumEnums: 0, - NumMessages: 8, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_proto_eth_v2_beacon_state_proto_goTypes, - DependencyIndexes: file_proto_eth_v2_beacon_state_proto_depIdxs, - MessageInfos: file_proto_eth_v2_beacon_state_proto_msgTypes, - }.Build() - File_proto_eth_v2_beacon_state_proto = out.File - file_proto_eth_v2_beacon_state_proto_rawDesc = nil - file_proto_eth_v2_beacon_state_proto_goTypes = nil - file_proto_eth_v2_beacon_state_proto_depIdxs = nil -} diff --git a/proto/eth/v2/beacon_state.pb.gw.go b/proto/eth/v2/beacon_state.pb.gw.go deleted file mode 100755 index cdd03643f..000000000 --- a/proto/eth/v2/beacon_state.pb.gw.go +++ /dev/null @@ -1,4 +0,0 @@ -//go:build ignore -// +build ignore - -package ignore diff --git a/proto/eth/v2/beacon_state.proto b/proto/eth/v2/beacon_state.proto deleted file mode 100644 index 65b3b6702..000000000 --- a/proto/eth/v2/beacon_state.proto +++ /dev/null @@ -1,243 +0,0 @@ -// Copyright 2021 Prysmatic Labs. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -syntax = "proto3"; - -package ethereum.eth.v2; - -import "proto/eth/ext/options.proto"; -import "proto/eth/v1/attestation.proto"; -import "proto/eth/v1/beacon_block.proto"; -import "proto/eth/v1/beacon_state.proto"; -import "proto/eth/v1/validator.proto"; -import "proto/eth/v2/sync_committee.proto"; -import "proto/eth/v2/version.proto"; -import "proto/engine/v1/execution_engine.proto"; - -option csharp_namespace = "Ethereum.Eth.V2"; -option go_package = "github.com/prysmaticlabs/prysm/v5/proto/eth/v2;eth"; -option java_multiple_files = true; -option java_outer_classname = "SyncCommitteeProto"; -option java_package = "org.ethereum.eth.v2"; -option php_namespace = "Ethereum\\Eth\\v2"; - -message BeaconState { - // Versioning [1001-2000] - uint64 genesis_time = 1001; - bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; - uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; - v1.Fork fork = 1004; - - // History [2001-3000] - v1.BeaconBlockHeader latest_block_header = 2001; - repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; - repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; - repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; - - // Eth1 [3001-4000] - v1.Eth1Data eth1_data = 3001; - repeated v1.Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; - uint64 eth1_deposit_index = 3003; - - // Registry [4001-5000] - repeated v1.Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - - // Randomness [5001-6000] - repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; - - // Slashings [6001-7000] - repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; - - // Participation [7001-8000] - bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; // [New in Altair, replaced previous_epoch_attestations] - bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; // [New in Altair, replaced current_epoch_attestations] - - // Finality [8001-9000] - // Spec type [4]Bitvector which means this would be a fixed size of 4 bits. - bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; - v1.Checkpoint previous_justified_checkpoint = 8002; - v1.Checkpoint current_justified_checkpoint = 8003; - v1.Checkpoint finalized_checkpoint = 8004; - - // New Altair fields [9001-10000] - repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; // [New in Altair] - SyncCommittee current_sync_committee = 9002; // [New in Altair] - SyncCommittee next_sync_committee = 9003; // [New in Altair] -} - -message BeaconStateBellatrix { - // Versioning [1001-2000] - uint64 genesis_time = 1001; - bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; - uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; - v1.Fork fork = 1004; - - // History [2001-3000] - v1.BeaconBlockHeader latest_block_header = 2001; - repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; - repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; - repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; - - // Eth1 [3001-4000] - v1.Eth1Data eth1_data = 3001; - repeated v1.Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; - uint64 eth1_deposit_index = 3003; - - // Registry [4001-5000] - repeated v1.Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - - // Randomness [5001-6000] - repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; - - // Slashings [6001-7000] - repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; - - // Participation [7001-8000] - bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - - // Finality [8001-9000] - // Spec type [4]Bitvector which means this would be a fixed size of 4 bits. - bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; - v1.Checkpoint previous_justified_checkpoint = 8002; - v1.Checkpoint current_justified_checkpoint = 8003; - v1.Checkpoint finalized_checkpoint = 8004; - - // Altair fields [9001-10000] - repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - SyncCommittee current_sync_committee = 9002; // [New in Altair] - SyncCommittee next_sync_committee = 9003; // [New in Altair] - - // Bellatrix fields [10001-11000] - engine.v1.ExecutionPayloadHeader latest_execution_payload_header = 10001; // [New in Bellatrix] -} - -message BeaconStateCapella { - // Versioning [1001-2000] - uint64 genesis_time = 1001; - bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; - uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; - v1.Fork fork = 1004; - - // History [2001-3000] - v1.BeaconBlockHeader latest_block_header = 2001; - repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; - repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; - repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; - - // Eth1 [3001-4000] - v1.Eth1Data eth1_data = 3001; - repeated v1.Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; - uint64 eth1_deposit_index = 3003; - - // Registry [4001-5000] - repeated v1.Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - - // Randomness [5001-6000] - repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; - - // Slashings [6001-7000] - repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; - - // Participation [7001-8000] - bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - - // Finality [8001-9000] - // Spec type [4]Bitvector which means this would be a fixed size of 4 bits. - bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; - v1.Checkpoint previous_justified_checkpoint = 8002; - v1.Checkpoint current_justified_checkpoint = 8003; - v1.Checkpoint finalized_checkpoint = 8004; - - // Altair fields [9001-10000] - repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - SyncCommittee current_sync_committee = 9002; // [New in Altair] - SyncCommittee next_sync_committee = 9003; // [New in Altair] - - // Bellatrix fields [10001-11000] - ethereum.engine.v1.ExecutionPayloadHeaderCapella latest_execution_payload_header = 10001; // [New in Bellatrix] - - // Capella fields [11001-12000] - uint64 next_withdrawal_index = 11001; // [New in Capella] - uint64 next_withdrawal_validator_index = 11002 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; // [New in Capella] - - repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"]; // [New in Capella] -} - -message BeaconStateDeneb { - // Versioning [1001-2000] - uint64 genesis_time = 1001; - bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; - uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; - v1.Fork fork = 1004; - // History [2001-3000] - v1.BeaconBlockHeader latest_block_header = 2001; - repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; - repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; - repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; - // Eth1 [3001-4000] - v1.Eth1Data eth1_data = 3001; - repeated v1.Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; - uint64 eth1_deposit_index = 3003; - // Registry [4001-5000] - repeated v1.Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - // Randomness [5001-6000] - repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; - // Slashings [6001-7000] - repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; - // Participation [7001-8000] - bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - // Finality [8001-9000] - // Spec type [4]Bitvector which means this would be a fixed size of 4 bits. - bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; - v1.Checkpoint previous_justified_checkpoint = 8002; - v1.Checkpoint current_justified_checkpoint = 8003; - v1.Checkpoint finalized_checkpoint = 8004; - // Altair fields [9001-10000] - repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; - SyncCommittee current_sync_committee = 9002; // [New in Altair] - SyncCommittee next_sync_committee = 9003; // [New in Altair] - // Bellatrix fields [10001-11000] - ethereum.engine.v1.ExecutionPayloadHeaderDeneb latest_execution_payload_header = 10001; // [Updated in Deneb] - // Capella fields [11001-12000] - uint64 next_withdrawal_index = 11001; // [New in Capella] - uint64 next_withdrawal_validator_index = 11002 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; // [New in Capella] - - repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"]; // [New in Capella] -} - -message HistoricalSummary { - bytes block_summary_root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; - bytes state_summary_root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; -} - -message BeaconStateSSZResponseV2 { - v2.Version version = 1; - bytes data = 2; -} - -message ForkChoiceHeadsResponse { - repeated ForkChoiceHead data = 1; -} - -message ForkChoiceHead { - bytes root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; - uint64 slot = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; - bool execution_optimistic = 3; -} diff --git a/proto/migration/BUILD.bazel b/proto/migration/BUILD.bazel index 9fbccac19..154b51281 100644 --- a/proto/migration/BUILD.bazel +++ b/proto/migration/BUILD.bazel @@ -6,22 +6,15 @@ go_library( "enums.go", "v1alpha1_to_v1.go", "v1alpha1_to_v2.go", - "v2_to_v1alpha1.go", ], importpath = "github.com/prysmaticlabs/prysm/v5/proto/migration", visibility = ["//visibility:public"], deps = [ - "//beacon-chain/state:go_default_library", - "//config/fieldparams:go_default_library", - "//consensus-types/interfaces:go_default_library", "//encoding/bytesutil:go_default_library", - "//encoding/ssz:go_default_library", - "//proto/engine/v1:go_default_library", "//proto/eth/v1:go_default_library", "//proto/eth/v2:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "@com_github_pkg_errors//:go_default_library", - "@org_golang_google_protobuf//proto:go_default_library", ], ) @@ -30,22 +23,13 @@ go_test( srcs = [ "enums_test.go", "v1alpha1_to_v1_test.go", - "v1alpha1_to_v2_test.go", - "v2_to_v1alpha1_test.go", ], embed = [":go_default_library"], deps = [ - "//config/fieldparams:go_default_library", - "//consensus-types/blocks:go_default_library", "//consensus-types/primitives:go_default_library", - "//encoding/bytesutil:go_default_library", - "//proto/engine/v1:go_default_library", "//proto/eth/v1:go_default_library", - "//proto/eth/v2:go_default_library", "//proto/prysm/v1alpha1:go_default_library", "//testing/assert:go_default_library", "//testing/require:go_default_library", - "//testing/util:go_default_library", - "@com_github_prysmaticlabs_go_bitfield//:go_default_library", ], ) diff --git a/proto/migration/v1alpha1_to_v1.go b/proto/migration/v1alpha1_to_v1.go index 9a4ed61e4..b23d65e4f 100644 --- a/proto/migration/v1alpha1_to_v1.go +++ b/proto/migration/v1alpha1_to_v1.go @@ -1,170 +1,10 @@ package migration import ( - "github.com/pkg/errors" - "google.golang.org/protobuf/proto" - - "github.com/prysmaticlabs/prysm/v5/beacon-chain/state" - "github.com/prysmaticlabs/prysm/v5/consensus-types/interfaces" - "github.com/prysmaticlabs/prysm/v5/encoding/bytesutil" ethpbv1 "github.com/prysmaticlabs/prysm/v5/proto/eth/v1" ethpbalpha "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1" ) -// BlockIfaceToV1BlockHeader converts a signed beacon block interface into a signed beacon block header. -func BlockIfaceToV1BlockHeader(block interfaces.ReadOnlySignedBeaconBlock) (*ethpbv1.SignedBeaconBlockHeader, error) { - bodyRoot, err := block.Block().Body().HashTreeRoot() - if err != nil { - return nil, errors.Wrap(err, "failed to get body root of block") - } - parentRoot := block.Block().ParentRoot() - stateRoot := block.Block().StateRoot() - sig := block.Signature() - return ðpbv1.SignedBeaconBlockHeader{ - Message: ðpbv1.BeaconBlockHeader{ - Slot: block.Block().Slot(), - ProposerIndex: block.Block().ProposerIndex(), - ParentRoot: parentRoot[:], - StateRoot: stateRoot[:], - BodyRoot: bodyRoot[:], - }, - Signature: sig[:], - }, nil -} - -// V1Alpha1ToV1SignedBlock converts a v1alpha1 SignedBeaconBlock proto to a v1 proto. -func V1Alpha1ToV1SignedBlock(alphaBlk *ethpbalpha.SignedBeaconBlock) (*ethpbv1.SignedBeaconBlock, error) { - marshaledBlk, err := proto.Marshal(alphaBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1Block := ðpbv1.SignedBeaconBlock{} - if err := proto.Unmarshal(marshaledBlk, v1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1Block, nil -} - -// V1ToV1Alpha1SignedBlock converts a v1 SignedBeaconBlock proto to a v1alpha1 proto. -func V1ToV1Alpha1SignedBlock(v1Blk *ethpbv1.SignedBeaconBlock) (*ethpbalpha.SignedBeaconBlock, error) { - marshaledBlk, err := proto.Marshal(v1Blk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1Block := ðpbalpha.SignedBeaconBlock{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1Block, nil -} - -// V1Alpha1ToV1Block converts a v1alpha1 ReadOnlyBeaconBlock proto to a v1 proto. -func V1Alpha1ToV1Block(alphaBlk *ethpbalpha.BeaconBlock) (*ethpbv1.BeaconBlock, error) { - marshaledBlk, err := proto.Marshal(alphaBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1Block := ðpbv1.BeaconBlock{} - if err := proto.Unmarshal(marshaledBlk, v1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1Block, nil -} - -// V1Alpha1AggregateAttAndProofToV1 converts a v1alpha1 aggregate attestation and proof to v1. -func V1Alpha1AggregateAttAndProofToV1(v1alpha1Att *ethpbalpha.AggregateAttestationAndProof) *ethpbv1.AggregateAttestationAndProof { - if v1alpha1Att == nil { - return ðpbv1.AggregateAttestationAndProof{} - } - return ðpbv1.AggregateAttestationAndProof{ - AggregatorIndex: v1alpha1Att.AggregatorIndex, - Aggregate: V1Alpha1AttestationToV1(v1alpha1Att.Aggregate), - SelectionProof: v1alpha1Att.SelectionProof, - } -} - -// V1SignedAggregateAttAndProofToV1Alpha1 converts a v1 signed aggregate attestation and proof to v1alpha1. -func V1SignedAggregateAttAndProofToV1Alpha1(v1Att *ethpbv1.SignedAggregateAttestationAndProof) *ethpbalpha.SignedAggregateAttestationAndProof { - if v1Att == nil { - return ðpbalpha.SignedAggregateAttestationAndProof{} - } - return ðpbalpha.SignedAggregateAttestationAndProof{ - Message: ðpbalpha.AggregateAttestationAndProof{ - AggregatorIndex: v1Att.Message.AggregatorIndex, - Aggregate: V1AttestationToV1Alpha1(v1Att.Message.Aggregate), - SelectionProof: v1Att.Message.SelectionProof, - }, - Signature: v1Att.Signature, - } -} - -// V1Alpha1IndexedAttToV1 converts a v1alpha1 indexed attestation to v1. -func V1Alpha1IndexedAttToV1(v1alpha1Att *ethpbalpha.IndexedAttestation) *ethpbv1.IndexedAttestation { - if v1alpha1Att == nil { - return ðpbv1.IndexedAttestation{} - } - return ðpbv1.IndexedAttestation{ - AttestingIndices: v1alpha1Att.AttestingIndices, - Data: V1Alpha1AttDataToV1(v1alpha1Att.Data), - Signature: v1alpha1Att.Signature, - } -} - -// V1Alpha1AttestationToV1 converts a v1alpha1 attestation to v1. -func V1Alpha1AttestationToV1(v1alpha1Att *ethpbalpha.Attestation) *ethpbv1.Attestation { - if v1alpha1Att == nil { - return ðpbv1.Attestation{} - } - return ðpbv1.Attestation{ - AggregationBits: v1alpha1Att.AggregationBits, - Data: V1Alpha1AttDataToV1(v1alpha1Att.Data), - Signature: v1alpha1Att.Signature, - } -} - -// V1AttestationToV1Alpha1 converts a v1 attestation to v1alpha1. -func V1AttestationToV1Alpha1(v1Att *ethpbv1.Attestation) *ethpbalpha.Attestation { - if v1Att == nil { - return ðpbalpha.Attestation{} - } - return ðpbalpha.Attestation{ - AggregationBits: v1Att.AggregationBits, - Data: V1AttDataToV1Alpha1(v1Att.Data), - Signature: v1Att.Signature, - } -} - -// V1Alpha1AttDataToV1 converts a v1alpha1 attestation data to v1. -func V1Alpha1AttDataToV1(v1alpha1AttData *ethpbalpha.AttestationData) *ethpbv1.AttestationData { - if v1alpha1AttData == nil || v1alpha1AttData.Source == nil || v1alpha1AttData.Target == nil { - return ðpbv1.AttestationData{} - } - return ðpbv1.AttestationData{ - Slot: v1alpha1AttData.Slot, - Index: v1alpha1AttData.CommitteeIndex, - BeaconBlockRoot: v1alpha1AttData.BeaconBlockRoot, - Source: ðpbv1.Checkpoint{ - Root: v1alpha1AttData.Source.Root, - Epoch: v1alpha1AttData.Source.Epoch, - }, - Target: ðpbv1.Checkpoint{ - Root: v1alpha1AttData.Target.Root, - Epoch: v1alpha1AttData.Target.Epoch, - }, - } -} - -// V1Alpha1AttSlashingToV1 converts a v1alpha1 attester slashing to v1. -func V1Alpha1AttSlashingToV1(v1alpha1Slashing *ethpbalpha.AttesterSlashing) *ethpbv1.AttesterSlashing { - if v1alpha1Slashing == nil { - return ðpbv1.AttesterSlashing{} - } - return ðpbv1.AttesterSlashing{ - Attestation_1: V1Alpha1IndexedAttToV1(v1alpha1Slashing.Attestation_1), - Attestation_2: V1Alpha1IndexedAttToV1(v1alpha1Slashing.Attestation_2), - } -} - // V1Alpha1SignedHeaderToV1 converts a v1alpha1 signed beacon block header to v1. func V1Alpha1SignedHeaderToV1(v1alpha1Hdr *ethpbalpha.SignedBeaconBlockHeader) *ethpbv1.SignedBeaconBlockHeader { if v1alpha1Hdr == nil || v1alpha1Hdr.Header == nil { @@ -191,23 +31,6 @@ func V1Alpha1HeaderToV1(v1alpha1Hdr *ethpbalpha.BeaconBlockHeader) *ethpbv1.Beac } } -// V1SignedHeaderToV1Alpha1 converts a v1 signed beacon block header to v1alpha1. -func V1SignedHeaderToV1Alpha1(v1Header *ethpbv1.SignedBeaconBlockHeader) *ethpbalpha.SignedBeaconBlockHeader { - if v1Header == nil || v1Header.Message == nil { - return ðpbalpha.SignedBeaconBlockHeader{} - } - return ðpbalpha.SignedBeaconBlockHeader{ - Header: ðpbalpha.BeaconBlockHeader{ - Slot: v1Header.Message.Slot, - ProposerIndex: v1Header.Message.ProposerIndex, - ParentRoot: v1Header.Message.ParentRoot, - StateRoot: v1Header.Message.StateRoot, - BodyRoot: v1Header.Message.BodyRoot, - }, - Signature: v1Header.Signature, - } -} - // V1HeaderToV1Alpha1 converts a v1 beacon block header to v1alpha1. func V1HeaderToV1Alpha1(v1Header *ethpbv1.BeaconBlockHeader) *ethpbalpha.BeaconBlockHeader { if v1Header == nil { @@ -222,128 +45,6 @@ func V1HeaderToV1Alpha1(v1Header *ethpbv1.BeaconBlockHeader) *ethpbalpha.BeaconB } } -// V1Alpha1ProposerSlashingToV1 converts a v1alpha1 proposer slashing to v1. -func V1Alpha1ProposerSlashingToV1(v1alpha1Slashing *ethpbalpha.ProposerSlashing) *ethpbv1.ProposerSlashing { - if v1alpha1Slashing == nil { - return ðpbv1.ProposerSlashing{} - } - return ðpbv1.ProposerSlashing{ - SignedHeader_1: V1Alpha1SignedHeaderToV1(v1alpha1Slashing.Header_1), - SignedHeader_2: V1Alpha1SignedHeaderToV1(v1alpha1Slashing.Header_2), - } -} - -// V1Alpha1ExitToV1 converts a v1alpha1 SignedVoluntaryExit to v1. -func V1Alpha1ExitToV1(v1alpha1Exit *ethpbalpha.SignedVoluntaryExit) *ethpbv1.SignedVoluntaryExit { - if v1alpha1Exit == nil || v1alpha1Exit.Exit == nil { - return ðpbv1.SignedVoluntaryExit{} - } - return ðpbv1.SignedVoluntaryExit{ - Message: ðpbv1.VoluntaryExit{ - Epoch: v1alpha1Exit.Exit.Epoch, - ValidatorIndex: v1alpha1Exit.Exit.ValidatorIndex, - }, - Signature: v1alpha1Exit.Signature, - } -} - -// V1ExitToV1Alpha1 converts a v1 SignedVoluntaryExit to v1alpha1. -func V1ExitToV1Alpha1(v1Exit *ethpbv1.SignedVoluntaryExit) *ethpbalpha.SignedVoluntaryExit { - if v1Exit == nil || v1Exit.Message == nil { - return ðpbalpha.SignedVoluntaryExit{} - } - return ðpbalpha.SignedVoluntaryExit{ - Exit: ðpbalpha.VoluntaryExit{ - Epoch: v1Exit.Message.Epoch, - ValidatorIndex: v1Exit.Message.ValidatorIndex, - }, - Signature: v1Exit.Signature, - } -} - -// V1AttToV1Alpha1 converts a v1 attestation to v1alpha1. -func V1AttToV1Alpha1(v1Att *ethpbv1.Attestation) *ethpbalpha.Attestation { - if v1Att == nil { - return ðpbalpha.Attestation{} - } - return ðpbalpha.Attestation{ - AggregationBits: v1Att.AggregationBits, - Data: V1AttDataToV1Alpha1(v1Att.Data), - Signature: v1Att.Signature, - } -} - -// V1IndexedAttToV1Alpha1 converts a v1 indexed attestation to v1alpha1. -func V1IndexedAttToV1Alpha1(v1Att *ethpbv1.IndexedAttestation) *ethpbalpha.IndexedAttestation { - if v1Att == nil { - return ðpbalpha.IndexedAttestation{} - } - return ðpbalpha.IndexedAttestation{ - AttestingIndices: v1Att.AttestingIndices, - Data: V1AttDataToV1Alpha1(v1Att.Data), - Signature: v1Att.Signature, - } -} - -// V1AttDataToV1Alpha1 converts a v1 attestation data to v1alpha1. -func V1AttDataToV1Alpha1(v1AttData *ethpbv1.AttestationData) *ethpbalpha.AttestationData { - if v1AttData == nil || v1AttData.Source == nil || v1AttData.Target == nil { - return ðpbalpha.AttestationData{} - } - return ðpbalpha.AttestationData{ - Slot: v1AttData.Slot, - CommitteeIndex: v1AttData.Index, - BeaconBlockRoot: v1AttData.BeaconBlockRoot, - Source: ðpbalpha.Checkpoint{ - Root: v1AttData.Source.Root, - Epoch: v1AttData.Source.Epoch, - }, - Target: ðpbalpha.Checkpoint{ - Root: v1AttData.Target.Root, - Epoch: v1AttData.Target.Epoch, - }, - } -} - -// V1AttSlashingToV1Alpha1 converts a v1 attester slashing to v1alpha1. -func V1AttSlashingToV1Alpha1(v1Slashing *ethpbv1.AttesterSlashing) *ethpbalpha.AttesterSlashing { - if v1Slashing == nil { - return ðpbalpha.AttesterSlashing{} - } - return ðpbalpha.AttesterSlashing{ - Attestation_1: V1IndexedAttToV1Alpha1(v1Slashing.Attestation_1), - Attestation_2: V1IndexedAttToV1Alpha1(v1Slashing.Attestation_2), - } -} - -// V1ProposerSlashingToV1Alpha1 converts a v1 proposer slashing to v1alpha1. -func V1ProposerSlashingToV1Alpha1(v1Slashing *ethpbv1.ProposerSlashing) *ethpbalpha.ProposerSlashing { - if v1Slashing == nil { - return ðpbalpha.ProposerSlashing{} - } - return ðpbalpha.ProposerSlashing{ - Header_1: V1SignedHeaderToV1Alpha1(v1Slashing.SignedHeader_1), - Header_2: V1SignedHeaderToV1Alpha1(v1Slashing.SignedHeader_2), - } -} - -// V1Alpha1ValidatorToV1 converts a v1alpha1 validator to v1. -func V1Alpha1ValidatorToV1(v1Alpha1Validator *ethpbalpha.Validator) *ethpbv1.Validator { - if v1Alpha1Validator == nil { - return ðpbv1.Validator{} - } - return ðpbv1.Validator{ - Pubkey: v1Alpha1Validator.PublicKey, - WithdrawalCredentials: v1Alpha1Validator.WithdrawalCredentials, - EffectiveBalance: v1Alpha1Validator.EffectiveBalance, - Slashed: v1Alpha1Validator.Slashed, - ActivationEligibilityEpoch: v1Alpha1Validator.ActivationEligibilityEpoch, - ActivationEpoch: v1Alpha1Validator.ActivationEpoch, - ExitEpoch: v1Alpha1Validator.ExitEpoch, - WithdrawableEpoch: v1Alpha1Validator.WithdrawableEpoch, - } -} - // V1ValidatorToV1Alpha1 converts a v1 validator to v1alpha1. func V1ValidatorToV1Alpha1(v1Validator *ethpbv1.Validator) *ethpbalpha.Validator { if v1Validator == nil { @@ -360,161 +61,3 @@ func V1ValidatorToV1Alpha1(v1Validator *ethpbv1.Validator) *ethpbalpha.Validator WithdrawableEpoch: v1Validator.WithdrawableEpoch, } } - -// SignedBeaconBlock converts a signed beacon block interface to a v1alpha1 block. -func SignedBeaconBlock(block interfaces.ReadOnlySignedBeaconBlock) (*ethpbv1.SignedBeaconBlock, error) { - if block == nil || block.IsNil() { - return nil, errors.New("could not find requested block") - } - blk, err := block.PbPhase0Block() - if err != nil { - return nil, errors.Wrapf(err, "could not get raw block") - } - - v1Block, err := V1Alpha1ToV1SignedBlock(blk) - if err != nil { - return nil, errors.New("could not convert block to v1 block") - } - - return v1Block, nil -} - -// BeaconStateToProto converts a state.BeaconState object to its protobuf equivalent. -func BeaconStateToProto(state state.BeaconState) (*ethpbv1.BeaconState, error) { - sourceFork := state.Fork() - sourceLatestBlockHeader := state.LatestBlockHeader() - sourceEth1Data := state.Eth1Data() - sourceEth1DataVotes := state.Eth1DataVotes() - sourceValidators := state.Validators() - sourcePrevEpochAtts, err := state.PreviousEpochAttestations() - if err != nil { - return nil, errors.Wrapf(err, "could not get previous epoch attestations from state") - } - sourceCurrEpochAtts, err := state.CurrentEpochAttestations() - if err != nil { - return nil, errors.Wrapf(err, "could not get current epoch attestations from state") - } - sourceJustificationBits := state.JustificationBits() - sourcePrevJustifiedCheckpoint := state.PreviousJustifiedCheckpoint() - sourceCurrJustifiedCheckpoint := state.CurrentJustifiedCheckpoint() - sourceFinalizedCheckpoint := state.FinalizedCheckpoint() - - resultEth1DataVotes := make([]*ethpbv1.Eth1Data, len(sourceEth1DataVotes)) - for i, vote := range sourceEth1DataVotes { - resultEth1DataVotes[i] = ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(vote.DepositRoot), - DepositCount: vote.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(vote.BlockHash), - } - } - resultValidators := make([]*ethpbv1.Validator, len(sourceValidators)) - for i, validator := range sourceValidators { - resultValidators[i] = ðpbv1.Validator{ - Pubkey: bytesutil.SafeCopyBytes(validator.PublicKey), - WithdrawalCredentials: bytesutil.SafeCopyBytes(validator.WithdrawalCredentials), - EffectiveBalance: validator.EffectiveBalance, - Slashed: validator.Slashed, - ActivationEligibilityEpoch: validator.ActivationEligibilityEpoch, - ActivationEpoch: validator.ActivationEpoch, - ExitEpoch: validator.ExitEpoch, - WithdrawableEpoch: validator.WithdrawableEpoch, - } - } - resultPrevEpochAtts := make([]*ethpbv1.PendingAttestation, len(sourcePrevEpochAtts)) - for i, att := range sourcePrevEpochAtts { - data := att.Data - resultPrevEpochAtts[i] = ðpbv1.PendingAttestation{ - AggregationBits: att.AggregationBits, - Data: ðpbv1.AttestationData{ - Slot: data.Slot, - Index: data.CommitteeIndex, - BeaconBlockRoot: data.BeaconBlockRoot, - Source: ðpbv1.Checkpoint{ - Epoch: data.Source.Epoch, - Root: data.Source.Root, - }, - Target: ðpbv1.Checkpoint{ - Epoch: data.Target.Epoch, - Root: data.Target.Root, - }, - }, - InclusionDelay: att.InclusionDelay, - ProposerIndex: att.ProposerIndex, - } - } - resultCurrEpochAtts := make([]*ethpbv1.PendingAttestation, len(sourceCurrEpochAtts)) - for i, att := range sourceCurrEpochAtts { - data := att.Data - resultCurrEpochAtts[i] = ðpbv1.PendingAttestation{ - AggregationBits: att.AggregationBits, - Data: ðpbv1.AttestationData{ - Slot: data.Slot, - Index: data.CommitteeIndex, - BeaconBlockRoot: data.BeaconBlockRoot, - Source: ðpbv1.Checkpoint{ - Epoch: data.Source.Epoch, - Root: data.Source.Root, - }, - Target: ðpbv1.Checkpoint{ - Epoch: data.Target.Epoch, - Root: data.Target.Root, - }, - }, - InclusionDelay: att.InclusionDelay, - ProposerIndex: att.ProposerIndex, - } - } - - hRoot, err := state.HistoricalRoots() - if err != nil { - return nil, errors.Wrapf(err, "could not get historical roots from state") - } - result := ðpbv1.BeaconState{ - GenesisTime: state.GenesisTime(), - GenesisValidatorsRoot: bytesutil.SafeCopyBytes(state.GenesisValidatorsRoot()), - Slot: state.Slot(), - Fork: ðpbv1.Fork{ - PreviousVersion: bytesutil.SafeCopyBytes(sourceFork.PreviousVersion), - CurrentVersion: bytesutil.SafeCopyBytes(sourceFork.CurrentVersion), - Epoch: sourceFork.Epoch, - }, - LatestBlockHeader: ðpbv1.BeaconBlockHeader{ - Slot: sourceLatestBlockHeader.Slot, - ProposerIndex: sourceLatestBlockHeader.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.BodyRoot), - }, - BlockRoots: bytesutil.SafeCopy2dBytes(state.BlockRoots()), - StateRoots: bytesutil.SafeCopy2dBytes(state.StateRoots()), - HistoricalRoots: bytesutil.SafeCopy2dBytes(hRoot), - Eth1Data: ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(sourceEth1Data.DepositRoot), - DepositCount: sourceEth1Data.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(sourceEth1Data.BlockHash), - }, - Eth1DataVotes: resultEth1DataVotes, - Eth1DepositIndex: state.Eth1DepositIndex(), - Validators: resultValidators, - Balances: state.Balances(), - RandaoMixes: bytesutil.SafeCopy2dBytes(state.RandaoMixes()), - Slashings: state.Slashings(), - PreviousEpochAttestations: resultPrevEpochAtts, - CurrentEpochAttestations: resultCurrEpochAtts, - JustificationBits: bytesutil.SafeCopyBytes(sourceJustificationBits), - PreviousJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourcePrevJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourcePrevJustifiedCheckpoint.Root), - }, - CurrentJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceCurrJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceCurrJustifiedCheckpoint.Root), - }, - FinalizedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceFinalizedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceFinalizedCheckpoint.Root), - }, - } - - return result, nil -} diff --git a/proto/migration/v1alpha1_to_v1_test.go b/proto/migration/v1alpha1_to_v1_test.go index 44f52df68..81dd27a9d 100644 --- a/proto/migration/v1alpha1_to_v1_test.go +++ b/proto/migration/v1alpha1_to_v1_test.go @@ -3,403 +3,12 @@ package migration import ( "testing" - "github.com/prysmaticlabs/go-bitfield" - fieldparams "github.com/prysmaticlabs/prysm/v5/config/fieldparams" - "github.com/prysmaticlabs/prysm/v5/consensus-types/blocks" "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives" - "github.com/prysmaticlabs/prysm/v5/encoding/bytesutil" ethpbv1 "github.com/prysmaticlabs/prysm/v5/proto/eth/v1" - ethpbalpha "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1" "github.com/prysmaticlabs/prysm/v5/testing/assert" "github.com/prysmaticlabs/prysm/v5/testing/require" - "github.com/prysmaticlabs/prysm/v5/testing/util" ) -var ( - slot = primitives.Slot(1) - epoch = primitives.Epoch(1) - validatorIndex = primitives.ValidatorIndex(1) - committeeIndex = primitives.CommitteeIndex(1) - depositCount = uint64(2) - attestingIndices = []uint64{1, 2} - blockNumber = uint64(10) - gasLimit = uint64(10) - gasUsed = uint64(10) - timestamp = uint64(10) - parentRoot = bytesutil.PadTo([]byte("parentroot"), fieldparams.RootLength) - stateRoot = bytesutil.PadTo([]byte("stateroot"), fieldparams.RootLength) - signature = bytesutil.PadTo([]byte("signature"), 96) - randaoReveal = bytesutil.PadTo([]byte("randaoreveal"), 96) - depositRoot = bytesutil.PadTo([]byte("depositroot"), fieldparams.RootLength) - blockHash = bytesutil.PadTo([]byte("blockhash"), 32) - beaconBlockRoot = bytesutil.PadTo([]byte("beaconblockroot"), fieldparams.RootLength) - sourceRoot = bytesutil.PadTo([]byte("sourceroot"), fieldparams.RootLength) - targetRoot = bytesutil.PadTo([]byte("targetroot"), fieldparams.RootLength) - bodyRoot = bytesutil.PadTo([]byte("bodyroot"), fieldparams.RootLength) - selectionProof = bytesutil.PadTo([]byte("selectionproof"), 96) - parentHash = bytesutil.PadTo([]byte("parenthash"), 32) - feeRecipient = bytesutil.PadTo([]byte("feerecipient"), 20) - receiptsRoot = bytesutil.PadTo([]byte("receiptsroot"), 32) - logsBloom = bytesutil.PadTo([]byte("logsbloom"), 256) - prevRandao = bytesutil.PadTo([]byte("prevrandao"), 32) - extraData = bytesutil.PadTo([]byte("extradata"), 32) - baseFeePerGas = bytesutil.PadTo([]byte("basefeepergas"), 32) - transactionsRoot = bytesutil.PadTo([]byte("transactions"), 32) - aggregationBits = bitfield.Bitlist{0x01} -) - -func Test_BlockIfaceToV1BlockHeader(t *testing.T) { - alphaBlock := util.HydrateSignedBeaconBlock(ðpbalpha.SignedBeaconBlock{}) - alphaBlock.Block.Slot = slot - alphaBlock.Block.ProposerIndex = validatorIndex - alphaBlock.Block.ParentRoot = parentRoot - alphaBlock.Block.StateRoot = stateRoot - alphaBlock.Signature = signature - - wsb, err := blocks.NewSignedBeaconBlock(alphaBlock) - require.NoError(t, err) - v1Header, err := BlockIfaceToV1BlockHeader(wsb) - require.NoError(t, err) - bodyRoot, err := alphaBlock.Block.Body.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, bodyRoot[:], v1Header.Message.BodyRoot) - assert.Equal(t, slot, v1Header.Message.Slot) - assert.Equal(t, validatorIndex, v1Header.Message.ProposerIndex) - assert.DeepEqual(t, parentRoot, v1Header.Message.ParentRoot) - assert.DeepEqual(t, stateRoot, v1Header.Message.StateRoot) - assert.DeepEqual(t, signature, v1Header.Signature) -} - -func Test_V1Alpha1AggregateAttAndProofToV1(t *testing.T) { - proof := [32]byte{1} - att := util.HydrateAttestation(ðpbalpha.Attestation{ - Data: ðpbalpha.AttestationData{ - Slot: 5, - }, - }) - alpha := ðpbalpha.AggregateAttestationAndProof{ - AggregatorIndex: 1, - Aggregate: att, - SelectionProof: proof[:], - } - v1 := V1Alpha1AggregateAttAndProofToV1(alpha) - assert.Equal(t, v1.AggregatorIndex, primitives.ValidatorIndex(1)) - assert.DeepSSZEqual(t, v1.Aggregate.Data.Slot, att.Data.Slot) - assert.DeepEqual(t, v1.SelectionProof, proof[:]) -} - -func Test_V1Alpha1ToV1SignedBlock(t *testing.T) { - alphaBlock := util.HydrateSignedBeaconBlock(ðpbalpha.SignedBeaconBlock{}) - alphaBlock.Block.Slot = slot - alphaBlock.Block.ProposerIndex = validatorIndex - alphaBlock.Block.ParentRoot = parentRoot - alphaBlock.Block.StateRoot = stateRoot - alphaBlock.Block.Body.RandaoReveal = randaoReveal - alphaBlock.Block.Body.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - alphaBlock.Signature = signature - - v1Block, err := V1Alpha1ToV1SignedBlock(alphaBlock) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v1Root) -} - -func Test_V1ToV1Alpha1SignedBlock(t *testing.T) { - v1Block := util.HydrateV1SignedBeaconBlock(ðpbv1.SignedBeaconBlock{}) - v1Block.Block.Slot = slot - v1Block.Block.ProposerIndex = validatorIndex - v1Block.Block.ParentRoot = parentRoot - v1Block.Block.StateRoot = stateRoot - v1Block.Block.Body.RandaoReveal = randaoReveal - v1Block.Block.Body.Eth1Data = ðpbv1.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - v1Block.Signature = signature - - alphaBlock, err := V1ToV1Alpha1SignedBlock(v1Block) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v1Root, alphaRoot) -} - -func Test_V1ToV1Alpha1Block(t *testing.T) { - alphaBlock := util.HydrateBeaconBlock(ðpbalpha.BeaconBlock{}) - alphaBlock.Slot = slot - alphaBlock.ProposerIndex = validatorIndex - alphaBlock.ParentRoot = parentRoot - alphaBlock.StateRoot = stateRoot - alphaBlock.Body.RandaoReveal = randaoReveal - alphaBlock.Body.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - - v1Block, err := V1Alpha1ToV1Block(alphaBlock) - require.NoError(t, err) - v1Root, err := v1Block.HashTreeRoot() - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v1Root) -} - -func Test_V1Alpha1AttSlashingToV1(t *testing.T) { - alphaAttestation := ðpbalpha.IndexedAttestation{ - AttestingIndices: attestingIndices, - Data: ðpbalpha.AttestationData{ - Slot: slot, - CommitteeIndex: committeeIndex, - BeaconBlockRoot: beaconBlockRoot, - Source: ðpbalpha.Checkpoint{ - Epoch: epoch, - Root: sourceRoot, - }, - Target: ðpbalpha.Checkpoint{ - Epoch: epoch, - Root: targetRoot, - }, - }, - Signature: signature, - } - alphaSlashing := ðpbalpha.AttesterSlashing{ - Attestation_1: alphaAttestation, - Attestation_2: alphaAttestation, - } - - v1Slashing := V1Alpha1AttSlashingToV1(alphaSlashing) - alphaRoot, err := alphaSlashing.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Slashing.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v1Root) -} - -func Test_V1Alpha1ProposerSlashingToV1(t *testing.T) { - alphaHeader := util.HydrateSignedBeaconHeader(ðpbalpha.SignedBeaconBlockHeader{}) - alphaHeader.Header.Slot = slot - alphaHeader.Header.ProposerIndex = validatorIndex - alphaHeader.Header.ParentRoot = parentRoot - alphaHeader.Header.StateRoot = stateRoot - alphaHeader.Header.BodyRoot = bodyRoot - alphaHeader.Signature = signature - alphaSlashing := ðpbalpha.ProposerSlashing{ - Header_1: alphaHeader, - Header_2: alphaHeader, - } - - v1Slashing := V1Alpha1ProposerSlashingToV1(alphaSlashing) - alphaRoot, err := alphaSlashing.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Slashing.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v1Root) -} - -func Test_V1Alpha1ExitToV1(t *testing.T) { - alphaExit := ðpbalpha.SignedVoluntaryExit{ - Exit: ðpbalpha.VoluntaryExit{ - Epoch: epoch, - ValidatorIndex: validatorIndex, - }, - Signature: signature, - } - - v1Exit := V1Alpha1ExitToV1(alphaExit) - alphaRoot, err := alphaExit.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Exit.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v1Root) -} - -func Test_V1ExitToV1Alpha1(t *testing.T) { - v1Exit := ðpbv1.SignedVoluntaryExit{ - Message: ðpbv1.VoluntaryExit{ - Epoch: epoch, - ValidatorIndex: validatorIndex, - }, - Signature: signature, - } - - alphaExit := V1ExitToV1Alpha1(v1Exit) - alphaRoot, err := alphaExit.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Exit.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v1Root) -} - -func Test_V1AttSlashingToV1Alpha1(t *testing.T) { - v1Attestation := ðpbv1.IndexedAttestation{ - AttestingIndices: attestingIndices, - Data: ðpbv1.AttestationData{ - Slot: slot, - Index: committeeIndex, - BeaconBlockRoot: beaconBlockRoot, - Source: ðpbv1.Checkpoint{ - Epoch: epoch, - Root: sourceRoot, - }, - Target: ðpbv1.Checkpoint{ - Epoch: epoch, - Root: targetRoot, - }, - }, - Signature: signature, - } - v1Slashing := ðpbv1.AttesterSlashing{ - Attestation_1: v1Attestation, - Attestation_2: v1Attestation, - } - - alphaSlashing := V1AttSlashingToV1Alpha1(v1Slashing) - alphaRoot, err := alphaSlashing.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Slashing.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v1Root, alphaRoot) -} - -func Test_V1ProposerSlashingToV1Alpha1(t *testing.T) { - v1Header := ðpbv1.SignedBeaconBlockHeader{ - Message: ðpbv1.BeaconBlockHeader{ - Slot: slot, - ProposerIndex: validatorIndex, - ParentRoot: parentRoot, - StateRoot: stateRoot, - BodyRoot: bodyRoot, - }, - Signature: signature, - } - v1Slashing := ðpbv1.ProposerSlashing{ - SignedHeader_1: v1Header, - SignedHeader_2: v1Header, - } - - alphaSlashing := V1ProposerSlashingToV1Alpha1(v1Slashing) - alphaRoot, err := alphaSlashing.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Slashing.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v1Root) -} - -func Test_V1Alpha1AttToV1(t *testing.T) { - alphaAtt := ðpbalpha.Attestation{ - AggregationBits: aggregationBits, - Data: ðpbalpha.AttestationData{ - Slot: slot, - CommitteeIndex: committeeIndex, - BeaconBlockRoot: beaconBlockRoot, - Source: ðpbalpha.Checkpoint{ - Epoch: epoch, - Root: sourceRoot, - }, - Target: ðpbalpha.Checkpoint{ - Epoch: epoch, - Root: targetRoot, - }, - }, - Signature: signature, - } - - v1Att := V1Alpha1AttestationToV1(alphaAtt) - v1Root, err := v1Att.HashTreeRoot() - require.NoError(t, err) - alphaRoot, err := alphaAtt.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v1Root, alphaRoot) -} - -func Test_V1AttToV1Alpha1(t *testing.T) { - v1Att := ðpbv1.Attestation{ - AggregationBits: aggregationBits, - Data: ðpbv1.AttestationData{ - Slot: slot, - Index: committeeIndex, - BeaconBlockRoot: beaconBlockRoot, - Source: ðpbv1.Checkpoint{ - Epoch: epoch, - Root: sourceRoot, - }, - Target: ðpbv1.Checkpoint{ - Epoch: epoch, - Root: targetRoot, - }, - }, - Signature: signature, - } - - alphaAtt := V1AttToV1Alpha1(v1Att) - alphaRoot, err := alphaAtt.HashTreeRoot() - require.NoError(t, err) - v1Root, err := v1Att.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v1Root, alphaRoot) -} - -func Test_BlockInterfaceToV1Block(t *testing.T) { - v1Alpha1Block := util.HydrateSignedBeaconBlock(ðpbalpha.SignedBeaconBlock{}) - v1Alpha1Block.Block.Slot = slot - v1Alpha1Block.Block.ProposerIndex = validatorIndex - v1Alpha1Block.Block.ParentRoot = parentRoot - v1Alpha1Block.Block.StateRoot = stateRoot - v1Alpha1Block.Block.Body.RandaoReveal = randaoReveal - v1Alpha1Block.Block.Body.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - v1Alpha1Block.Signature = signature - - wsb, err := blocks.NewSignedBeaconBlock(v1Alpha1Block) - require.NoError(t, err) - v1Block, err := SignedBeaconBlock(wsb) - require.NoError(t, err) - v1Root, err := v1Block.HashTreeRoot() - require.NoError(t, err) - v1Alpha1Root, err := v1Alpha1Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v1Root, v1Alpha1Root) -} - -func Test_V1Alpha1ValidatorToV1(t *testing.T) { - v1Alpha1Validator := ðpbalpha.Validator{ - PublicKey: []byte("pubkey"), - WithdrawalCredentials: []byte("withdraw"), - EffectiveBalance: 99, - Slashed: true, - ActivationEligibilityEpoch: 1, - ActivationEpoch: 11, - ExitEpoch: 111, - WithdrawableEpoch: 1111, - } - - v1Validator := V1Alpha1ValidatorToV1(v1Alpha1Validator) - require.NotNil(t, v1Validator) - assert.DeepEqual(t, []byte("pubkey"), v1Validator.Pubkey) - assert.DeepEqual(t, []byte("withdraw"), v1Validator.WithdrawalCredentials) - assert.Equal(t, uint64(99), v1Validator.EffectiveBalance) - assert.Equal(t, true, v1Validator.Slashed) - assert.Equal(t, primitives.Epoch(1), v1Validator.ActivationEligibilityEpoch) - assert.Equal(t, primitives.Epoch(11), v1Validator.ActivationEpoch) - assert.Equal(t, primitives.Epoch(111), v1Validator.ExitEpoch) - assert.Equal(t, primitives.Epoch(1111), v1Validator.WithdrawableEpoch) -} - func Test_V1ValidatorToV1Alpha1(t *testing.T) { v1Validator := ðpbv1.Validator{ Pubkey: []byte("pubkey"), @@ -423,231 +32,3 @@ func Test_V1ValidatorToV1Alpha1(t *testing.T) { assert.Equal(t, primitives.Epoch(111), v1Alpha1Validator.ExitEpoch) assert.Equal(t, primitives.Epoch(1111), v1Alpha1Validator.WithdrawableEpoch) } - -func Test_V1SignedAggregateAttAndProofToV1Alpha1(t *testing.T) { - v1Att := ðpbv1.SignedAggregateAttestationAndProof{ - Message: ðpbv1.AggregateAttestationAndProof{ - AggregatorIndex: 1, - Aggregate: util.HydrateV1Attestation(ðpbv1.Attestation{}), - SelectionProof: selectionProof, - }, - Signature: signature, - } - v1Alpha1Att := V1SignedAggregateAttAndProofToV1Alpha1(v1Att) - - v1Root, err := v1Att.HashTreeRoot() - require.NoError(t, err) - v1Alpha1Root, err := v1Alpha1Att.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v1Root, v1Alpha1Root) -} - -func Test_V1AttestationToV1Alpha1(t *testing.T) { - v1Att := util.HydrateV1Attestation(ðpbv1.Attestation{}) - v1Alpha1Att := V1AttToV1Alpha1(v1Att) - - v1Root, err := v1Att.HashTreeRoot() - require.NoError(t, err) - v1Alpha1Root, err := v1Alpha1Att.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v1Root, v1Alpha1Root) -} -func TestBeaconStateToProto(t *testing.T) { - source, err := util.NewBeaconState(util.FillRootsNaturalOpt, func(state *ethpbalpha.BeaconState) error { - state.GenesisTime = 1 - state.GenesisValidatorsRoot = bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32) - state.Slot = 2 - state.Fork = ðpbalpha.Fork{ - PreviousVersion: bytesutil.PadTo([]byte("123"), 4), - CurrentVersion: bytesutil.PadTo([]byte("456"), 4), - Epoch: 3, - } - state.LatestBlockHeader = ðpbalpha.BeaconBlockHeader{ - Slot: 4, - ProposerIndex: 5, - ParentRoot: bytesutil.PadTo([]byte("lbhparentroot"), 32), - StateRoot: bytesutil.PadTo([]byte("lbhstateroot"), 32), - BodyRoot: bytesutil.PadTo([]byte("lbhbodyroot"), 32), - } - state.BlockRoots = [][]byte{bytesutil.PadTo([]byte("blockroots"), 32)} - state.StateRoots = [][]byte{bytesutil.PadTo([]byte("stateroots"), 32)} - state.HistoricalRoots = [][]byte{bytesutil.PadTo([]byte("historicalroots"), 32)} - state.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: bytesutil.PadTo([]byte("e1ddepositroot"), 32), - DepositCount: 6, - BlockHash: bytesutil.PadTo([]byte("e1dblockhash"), 32), - } - state.Eth1DataVotes = []*ethpbalpha.Eth1Data{{ - DepositRoot: bytesutil.PadTo([]byte("e1dvdepositroot"), 32), - DepositCount: 7, - BlockHash: bytesutil.PadTo([]byte("e1dvblockhash"), 32), - }} - state.Eth1DepositIndex = 8 - state.Validators = []*ethpbalpha.Validator{{ - PublicKey: bytesutil.PadTo([]byte("publickey"), 48), - WithdrawalCredentials: bytesutil.PadTo([]byte("withdrawalcredentials"), 32), - EffectiveBalance: 9, - Slashed: true, - ActivationEligibilityEpoch: 10, - ActivationEpoch: 11, - ExitEpoch: 12, - WithdrawableEpoch: 13, - }} - state.Balances = []uint64{14} - state.RandaoMixes = [][]byte{bytesutil.PadTo([]byte("randaomixes"), 32)} - state.Slashings = []uint64{15} - state.PreviousEpochAttestations = []*ethpbalpha.PendingAttestation{{ - AggregationBits: bitfield.Bitlist{16}, - Data: ðpbalpha.AttestationData{ - Slot: 17, - CommitteeIndex: 18, - BeaconBlockRoot: bytesutil.PadTo([]byte("peabeaconblockroot"), 32), - Source: ðpbalpha.Checkpoint{ - Epoch: 19, - Root: bytesutil.PadTo([]byte("peasroot"), 32), - }, - Target: ðpbalpha.Checkpoint{ - Epoch: 20, - Root: bytesutil.PadTo([]byte("peatroot"), 32), - }, - }, - InclusionDelay: 21, - ProposerIndex: 22, - }} - state.CurrentEpochAttestations = []*ethpbalpha.PendingAttestation{{ - AggregationBits: bitfield.Bitlist{23}, - Data: ðpbalpha.AttestationData{ - Slot: 24, - CommitteeIndex: 25, - BeaconBlockRoot: bytesutil.PadTo([]byte("ceabeaconblockroot"), 32), - Source: ðpbalpha.Checkpoint{ - Epoch: 26, - Root: bytesutil.PadTo([]byte("ceasroot"), 32), - }, - Target: ðpbalpha.Checkpoint{ - Epoch: 27, - Root: bytesutil.PadTo([]byte("ceatroot"), 32), - }, - }, - InclusionDelay: 28, - ProposerIndex: 29, - }} - state.JustificationBits = bitfield.Bitvector4{1} - state.PreviousJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 30, - Root: bytesutil.PadTo([]byte("pjcroot"), 32), - } - state.CurrentJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 31, - Root: bytesutil.PadTo([]byte("cjcroot"), 32), - } - state.FinalizedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 32, - Root: bytesutil.PadTo([]byte("fcroot"), 32), - } - return nil - }) - require.NoError(t, err) - - result, err := BeaconStateToProto(source) - require.NoError(t, err) - require.NotNil(t, result) - assert.Equal(t, uint64(1), result.GenesisTime) - assert.DeepEqual(t, bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32), result.GenesisValidatorsRoot) - assert.Equal(t, primitives.Slot(2), result.Slot) - resultFork := result.Fork - require.NotNil(t, resultFork) - assert.DeepEqual(t, bytesutil.PadTo([]byte("123"), 4), resultFork.PreviousVersion) - assert.DeepEqual(t, bytesutil.PadTo([]byte("456"), 4), resultFork.CurrentVersion) - assert.Equal(t, primitives.Epoch(3), resultFork.Epoch) - resultLatestBlockHeader := result.LatestBlockHeader - require.NotNil(t, resultLatestBlockHeader) - assert.Equal(t, primitives.Slot(4), resultLatestBlockHeader.Slot) - assert.Equal(t, primitives.ValidatorIndex(5), resultLatestBlockHeader.ProposerIndex) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhparentroot"), 32), resultLatestBlockHeader.ParentRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhstateroot"), 32), resultLatestBlockHeader.StateRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhbodyroot"), 32), resultLatestBlockHeader.BodyRoot) - assert.Equal(t, 8192, len(result.BlockRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blockroots"), 32), result.BlockRoots[0]) - assert.Equal(t, 8192, len(result.StateRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("stateroots"), 32), result.StateRoots[0]) - assert.Equal(t, 1, len(result.HistoricalRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("historicalroots"), 32), result.HistoricalRoots[0]) - resultEth1Data := result.Eth1Data - require.NotNil(t, resultEth1Data) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1ddepositroot"), 32), resultEth1Data.DepositRoot) - assert.Equal(t, uint64(6), resultEth1Data.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dblockhash"), 32), resultEth1Data.BlockHash) - require.Equal(t, 1, len(result.Eth1DataVotes)) - resultEth1DataVote := result.Eth1DataVotes[0] - require.NotNil(t, resultEth1DataVote) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvdepositroot"), 32), resultEth1DataVote.DepositRoot) - assert.Equal(t, uint64(7), resultEth1DataVote.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvblockhash"), 32), resultEth1DataVote.BlockHash) - assert.Equal(t, uint64(8), result.Eth1DepositIndex) - require.Equal(t, 1, len(result.Validators)) - resultValidator := result.Validators[0] - require.NotNil(t, resultValidator) - assert.DeepEqual(t, bytesutil.PadTo([]byte("publickey"), 48), resultValidator.Pubkey) - assert.DeepEqual(t, bytesutil.PadTo([]byte("withdrawalcredentials"), 32), resultValidator.WithdrawalCredentials) - assert.Equal(t, uint64(9), resultValidator.EffectiveBalance) - assert.Equal(t, true, resultValidator.Slashed) - assert.Equal(t, primitives.Epoch(10), resultValidator.ActivationEligibilityEpoch) - assert.Equal(t, primitives.Epoch(11), resultValidator.ActivationEpoch) - assert.Equal(t, primitives.Epoch(12), resultValidator.ExitEpoch) - assert.Equal(t, primitives.Epoch(13), resultValidator.WithdrawableEpoch) - assert.DeepEqual(t, []uint64{14}, result.Balances) - assert.Equal(t, 65536, len(result.RandaoMixes)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("randaomixes"), 32), result.RandaoMixes[0]) - assert.DeepEqual(t, []uint64{15}, result.Slashings) - require.Equal(t, 1, len(result.PreviousEpochAttestations)) - resultPrevEpochAtt := result.PreviousEpochAttestations[0] - require.NotNil(t, resultPrevEpochAtt) - assert.DeepEqual(t, bitfield.Bitlist{16}, resultPrevEpochAtt.AggregationBits) - resultPrevEpochAttData := resultPrevEpochAtt.Data - require.NotNil(t, resultPrevEpochAttData) - assert.Equal(t, primitives.Slot(17), resultPrevEpochAttData.Slot) - assert.Equal(t, primitives.CommitteeIndex(18), resultPrevEpochAttData.Index) - assert.DeepEqual(t, bytesutil.PadTo([]byte("peabeaconblockroot"), 32), resultPrevEpochAttData.BeaconBlockRoot) - resultPrevEpochAttSource := resultPrevEpochAttData.Source - require.NotNil(t, resultPrevEpochAttSource) - assert.Equal(t, primitives.Epoch(19), resultPrevEpochAttSource.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("peasroot"), 32), resultPrevEpochAttSource.Root) - resultPrevEpochAttTarget := resultPrevEpochAttData.Target - require.NotNil(t, resultPrevEpochAttTarget) - assert.Equal(t, primitives.Epoch(20), resultPrevEpochAttTarget.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("peatroot"), 32), resultPrevEpochAttTarget.Root) - assert.Equal(t, primitives.Slot(21), resultPrevEpochAtt.InclusionDelay) - assert.Equal(t, primitives.ValidatorIndex(22), resultPrevEpochAtt.ProposerIndex) - resultCurrEpochAtt := result.CurrentEpochAttestations[0] - require.NotNil(t, resultCurrEpochAtt) - assert.DeepEqual(t, bitfield.Bitlist{23}, resultCurrEpochAtt.AggregationBits) - resultCurrEpochAttData := resultCurrEpochAtt.Data - require.NotNil(t, resultCurrEpochAttData) - assert.Equal(t, primitives.Slot(24), resultCurrEpochAttData.Slot) - assert.Equal(t, primitives.CommitteeIndex(25), resultCurrEpochAttData.Index) - assert.DeepEqual(t, bytesutil.PadTo([]byte("ceabeaconblockroot"), 32), resultCurrEpochAttData.BeaconBlockRoot) - resultCurrEpochAttSource := resultCurrEpochAttData.Source - require.NotNil(t, resultCurrEpochAttSource) - assert.Equal(t, primitives.Epoch(26), resultCurrEpochAttSource.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("ceasroot"), 32), resultCurrEpochAttSource.Root) - resultCurrEpochAttTarget := resultCurrEpochAttData.Target - require.NotNil(t, resultCurrEpochAttTarget) - assert.Equal(t, primitives.Epoch(27), resultCurrEpochAttTarget.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("ceatroot"), 32), resultCurrEpochAttTarget.Root) - assert.Equal(t, primitives.Slot(28), resultCurrEpochAtt.InclusionDelay) - assert.Equal(t, primitives.ValidatorIndex(29), resultCurrEpochAtt.ProposerIndex) - assert.DeepEqual(t, bitfield.Bitvector4{1}, result.JustificationBits) - resultPrevJustifiedCheckpoint := result.PreviousJustifiedCheckpoint - require.NotNil(t, resultPrevJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(30), resultPrevJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("pjcroot"), 32), resultPrevJustifiedCheckpoint.Root) - resultCurrJustifiedCheckpoint := result.CurrentJustifiedCheckpoint - require.NotNil(t, resultCurrJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(31), resultCurrJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cjcroot"), 32), resultCurrJustifiedCheckpoint.Root) - resultFinalizedCheckpoint := result.FinalizedCheckpoint - require.NotNil(t, resultFinalizedCheckpoint) - assert.Equal(t, primitives.Epoch(32), resultFinalizedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("fcroot"), 32), resultFinalizedCheckpoint.Root) -} diff --git a/proto/migration/v1alpha1_to_v2.go b/proto/migration/v1alpha1_to_v2.go index dddab2b4f..9636be437 100644 --- a/proto/migration/v1alpha1_to_v2.go +++ b/proto/migration/v1alpha1_to_v2.go @@ -1,1143 +1,11 @@ package migration import ( - "github.com/pkg/errors" - "google.golang.org/protobuf/proto" - - "github.com/prysmaticlabs/prysm/v5/beacon-chain/state" - fieldparams "github.com/prysmaticlabs/prysm/v5/config/fieldparams" "github.com/prysmaticlabs/prysm/v5/encoding/bytesutil" - "github.com/prysmaticlabs/prysm/v5/encoding/ssz" - enginev1 "github.com/prysmaticlabs/prysm/v5/proto/engine/v1" - ethpbv1 "github.com/prysmaticlabs/prysm/v5/proto/eth/v1" ethpbv2 "github.com/prysmaticlabs/prysm/v5/proto/eth/v2" ethpbalpha "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1" ) -// V1Alpha1BeaconBlockAltairToV2 converts a v1alpha1 Altair beacon block to a v2 Altair block. -func V1Alpha1BeaconBlockAltairToV2(v1alpha1Block *ethpbalpha.BeaconBlockAltair) (*ethpbv2.BeaconBlockAltair, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.BeaconBlockAltair{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1BeaconBlockAltairToV2Signed converts a v1alpha1 Altair signed beacon block to a v2 Altair block. -func V1Alpha1BeaconBlockAltairToV2Signed(v1alpha1Block *ethpbalpha.SignedBeaconBlockAltair) (*ethpbv2.SignedBeaconBlockAltair, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.SignedBeaconBlockAltair{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1BeaconBlockBellatrixToV2 converts a v1alpha1 Bellatrix beacon block to a v2 -// Bellatrix block. -func V1Alpha1BeaconBlockBellatrixToV2(v1alpha1Block *ethpbalpha.BeaconBlockBellatrix) (*ethpbv2.BeaconBlockBellatrix, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.BeaconBlockBellatrix{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1BeaconBlockCapellaToV2 converts a v1alpha1 Capella beacon block to a v2 -// Capella block. -func V1Alpha1BeaconBlockCapellaToV2(v1alpha1Block *ethpbalpha.BeaconBlockCapella) (*ethpbv2.BeaconBlockCapella, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.BeaconBlockCapella{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1BeaconBlockDenebToV2 converts a v1alpha1 Deneb beacon block to a v2 -// Deneb block. -func V1Alpha1BeaconBlockDenebToV2(v1alpha1Block *ethpbalpha.BeaconBlockDeneb) (*ethpbv2.BeaconBlockDeneb, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.BeaconBlockDeneb{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1SignedBeaconBlockDenebToV2 converts a v1alpha1 signed Deneb beacon block to a v2 -// Deneb block. -func V1Alpha1SignedBeaconBlockDenebToV2(v1alpha1Block *ethpbalpha.SignedBeaconBlockDeneb) (*ethpbv2.SignedBeaconBlockDeneb, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.SignedBeaconBlockDeneb{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1SignedBeaconBlockContentsDenebToV2 converts a v1alpha1 signed Deneb beacon block to a v2 -// Deneb block. -func V1Alpha1SignedBeaconBlockContentsDenebToV2(v1alpha1Block *ethpbalpha.SignedBeaconBlockContentsDeneb) (*ethpbv2.SignedBeaconBlockContentsDeneb, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.SignedBeaconBlockContentsDeneb{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1BeaconBlockBlindedDenebToV2Blinded converts a v1alpha1 Blinded Deneb beacon block to a v2 Blinded Deneb block. -func V1Alpha1BeaconBlockBlindedDenebToV2Blinded(v1alpha1Block *ethpbalpha.BlindedBeaconBlockDeneb) (*ethpbv2.BlindedBeaconBlockDeneb, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.BlindedBeaconBlockDeneb{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1SignedBeaconBlockBlindedDenebToV2Blinded converts a v1alpha1 Signed Blinded Deneb beacon block to a v2 Blinded Deneb block. -func V1Alpha1SignedBeaconBlockBlindedDenebToV2Blinded(v1alpha1Block *ethpbalpha.SignedBlindedBeaconBlockDeneb) (*ethpbv2.SignedBlindedBeaconBlockDeneb, error) { - marshaledBlk, err := proto.Marshal(v1alpha1Block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v2Block := ðpbv2.SignedBlindedBeaconBlockDeneb{} - if err := proto.Unmarshal(marshaledBlk, v2Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v2Block, nil -} - -// V1Alpha1BeaconBlockBellatrixToV2Blinded converts a v1alpha1 Bellatrix beacon block to a v2 -// blinded Bellatrix block. -func V1Alpha1BeaconBlockBellatrixToV2Blinded(v1alpha1Block *ethpbalpha.BeaconBlockBellatrix) (*ethpbv2.BlindedBeaconBlockBellatrix, error) { - sourceProposerSlashings := v1alpha1Block.Body.ProposerSlashings - resultProposerSlashings := make([]*ethpbv1.ProposerSlashing, len(sourceProposerSlashings)) - for i, s := range sourceProposerSlashings { - resultProposerSlashings[i] = ðpbv1.ProposerSlashing{ - SignedHeader_1: ðpbv1.SignedBeaconBlockHeader{ - Message: ðpbv1.BeaconBlockHeader{ - Slot: s.Header_1.Header.Slot, - ProposerIndex: s.Header_1.Header.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(s.Header_1.Header.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(s.Header_1.Header.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(s.Header_1.Header.BodyRoot), - }, - Signature: bytesutil.SafeCopyBytes(s.Header_1.Signature), - }, - SignedHeader_2: ðpbv1.SignedBeaconBlockHeader{ - Message: ðpbv1.BeaconBlockHeader{ - Slot: s.Header_2.Header.Slot, - ProposerIndex: s.Header_2.Header.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(s.Header_2.Header.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(s.Header_2.Header.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(s.Header_2.Header.BodyRoot), - }, - Signature: bytesutil.SafeCopyBytes(s.Header_2.Signature), - }, - } - } - - sourceAttesterSlashings := v1alpha1Block.Body.AttesterSlashings - resultAttesterSlashings := make([]*ethpbv1.AttesterSlashing, len(sourceAttesterSlashings)) - for i, s := range sourceAttesterSlashings { - att1Indices := make([]uint64, len(s.Attestation_1.AttestingIndices)) - copy(att1Indices, s.Attestation_1.AttestingIndices) - att2Indices := make([]uint64, len(s.Attestation_2.AttestingIndices)) - copy(att2Indices, s.Attestation_2.AttestingIndices) - resultAttesterSlashings[i] = ðpbv1.AttesterSlashing{ - Attestation_1: ðpbv1.IndexedAttestation{ - AttestingIndices: att1Indices, - Data: ðpbv1.AttestationData{ - Slot: s.Attestation_1.Data.Slot, - Index: s.Attestation_1.Data.CommitteeIndex, - BeaconBlockRoot: bytesutil.SafeCopyBytes(s.Attestation_1.Data.BeaconBlockRoot), - Source: ðpbv1.Checkpoint{ - Epoch: s.Attestation_1.Data.Source.Epoch, - Root: bytesutil.SafeCopyBytes(s.Attestation_1.Data.Source.Root), - }, - Target: ðpbv1.Checkpoint{ - Epoch: s.Attestation_1.Data.Target.Epoch, - Root: bytesutil.SafeCopyBytes(s.Attestation_1.Data.Target.Root), - }, - }, - Signature: bytesutil.SafeCopyBytes(s.Attestation_1.Signature), - }, - Attestation_2: ðpbv1.IndexedAttestation{ - AttestingIndices: att2Indices, - Data: ðpbv1.AttestationData{ - Slot: s.Attestation_2.Data.Slot, - Index: s.Attestation_2.Data.CommitteeIndex, - BeaconBlockRoot: bytesutil.SafeCopyBytes(s.Attestation_2.Data.BeaconBlockRoot), - Source: ðpbv1.Checkpoint{ - Epoch: s.Attestation_2.Data.Source.Epoch, - Root: bytesutil.SafeCopyBytes(s.Attestation_2.Data.Source.Root), - }, - Target: ðpbv1.Checkpoint{ - Epoch: s.Attestation_2.Data.Target.Epoch, - Root: bytesutil.SafeCopyBytes(s.Attestation_2.Data.Target.Root), - }, - }, - Signature: bytesutil.SafeCopyBytes(s.Attestation_2.Signature), - }, - } - } - - sourceAttestations := v1alpha1Block.Body.Attestations - resultAttestations := make([]*ethpbv1.Attestation, len(sourceAttestations)) - for i, a := range sourceAttestations { - resultAttestations[i] = ðpbv1.Attestation{ - AggregationBits: bytesutil.SafeCopyBytes(a.AggregationBits), - Data: ðpbv1.AttestationData{ - Slot: a.Data.Slot, - Index: a.Data.CommitteeIndex, - BeaconBlockRoot: bytesutil.SafeCopyBytes(a.Data.BeaconBlockRoot), - Source: ðpbv1.Checkpoint{ - Epoch: a.Data.Source.Epoch, - Root: bytesutil.SafeCopyBytes(a.Data.Source.Root), - }, - Target: ðpbv1.Checkpoint{ - Epoch: a.Data.Target.Epoch, - Root: bytesutil.SafeCopyBytes(a.Data.Target.Root), - }, - }, - Signature: bytesutil.SafeCopyBytes(a.Signature), - } - } - - sourceDeposits := v1alpha1Block.Body.Deposits - resultDeposits := make([]*ethpbv1.Deposit, len(sourceDeposits)) - for i, d := range sourceDeposits { - resultDeposits[i] = ðpbv1.Deposit{ - Proof: bytesutil.SafeCopy2dBytes(d.Proof), - Data: ðpbv1.Deposit_Data{ - Pubkey: bytesutil.SafeCopyBytes(d.Data.PublicKey), - WithdrawalCredentials: bytesutil.SafeCopyBytes(d.Data.WithdrawalCredentials), - Amount: d.Data.Amount, - Signature: bytesutil.SafeCopyBytes(d.Data.Signature), - }, - } - } - - sourceExits := v1alpha1Block.Body.VoluntaryExits - resultExits := make([]*ethpbv1.SignedVoluntaryExit, len(sourceExits)) - for i, e := range sourceExits { - resultExits[i] = ðpbv1.SignedVoluntaryExit{ - Message: ðpbv1.VoluntaryExit{ - Epoch: e.Exit.Epoch, - ValidatorIndex: e.Exit.ValidatorIndex, - }, - Signature: bytesutil.SafeCopyBytes(e.Signature), - } - } - - transactionsRoot, err := ssz.TransactionsRoot(v1alpha1Block.Body.ExecutionPayload.Transactions) - if err != nil { - return nil, errors.Wrapf(err, "could not calculate transactions root") - } - - resultBlockBody := ðpbv2.BlindedBeaconBlockBodyBellatrix{ - RandaoReveal: bytesutil.SafeCopyBytes(v1alpha1Block.Body.RandaoReveal), - Eth1Data: ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(v1alpha1Block.Body.Eth1Data.DepositRoot), - DepositCount: v1alpha1Block.Body.Eth1Data.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(v1alpha1Block.Body.Eth1Data.BlockHash), - }, - Graffiti: bytesutil.SafeCopyBytes(v1alpha1Block.Body.Graffiti), - ProposerSlashings: resultProposerSlashings, - AttesterSlashings: resultAttesterSlashings, - Attestations: resultAttestations, - Deposits: resultDeposits, - VoluntaryExits: resultExits, - SyncAggregate: ðpbv1.SyncAggregate{ - SyncCommitteeBits: bytesutil.SafeCopyBytes(v1alpha1Block.Body.SyncAggregate.SyncCommitteeBits), - SyncCommitteeSignature: bytesutil.SafeCopyBytes(v1alpha1Block.Body.SyncAggregate.SyncCommitteeSignature), - }, - ExecutionPayloadHeader: &enginev1.ExecutionPayloadHeader{ - ParentHash: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.ParentHash), - FeeRecipient: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.FeeRecipient), - StateRoot: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.StateRoot), - ReceiptsRoot: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.ReceiptsRoot), - LogsBloom: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.LogsBloom), - PrevRandao: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.PrevRandao), - BlockNumber: v1alpha1Block.Body.ExecutionPayload.BlockNumber, - GasLimit: v1alpha1Block.Body.ExecutionPayload.GasLimit, - GasUsed: v1alpha1Block.Body.ExecutionPayload.GasUsed, - Timestamp: v1alpha1Block.Body.ExecutionPayload.Timestamp, - ExtraData: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.ExtraData), - BaseFeePerGas: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.BaseFeePerGas), - BlockHash: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.BlockHash), - TransactionsRoot: transactionsRoot[:], - }, - } - v2Block := ðpbv2.BlindedBeaconBlockBellatrix{ - Slot: v1alpha1Block.Slot, - ProposerIndex: v1alpha1Block.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(v1alpha1Block.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(v1alpha1Block.StateRoot), - Body: resultBlockBody, - } - return v2Block, nil -} - -// V1Alpha1BeaconBlockCapellaToV2Blinded converts a v1alpha1 Capella beacon block to a v2 -// blinded Capella block. -func V1Alpha1BeaconBlockCapellaToV2Blinded(v1alpha1Block *ethpbalpha.BeaconBlockCapella) (*ethpbv2.BlindedBeaconBlockCapella, error) { - sourceProposerSlashings := v1alpha1Block.Body.ProposerSlashings - resultProposerSlashings := make([]*ethpbv1.ProposerSlashing, len(sourceProposerSlashings)) - for i, s := range sourceProposerSlashings { - resultProposerSlashings[i] = ðpbv1.ProposerSlashing{ - SignedHeader_1: ðpbv1.SignedBeaconBlockHeader{ - Message: ðpbv1.BeaconBlockHeader{ - Slot: s.Header_1.Header.Slot, - ProposerIndex: s.Header_1.Header.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(s.Header_1.Header.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(s.Header_1.Header.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(s.Header_1.Header.BodyRoot), - }, - Signature: bytesutil.SafeCopyBytes(s.Header_1.Signature), - }, - SignedHeader_2: ðpbv1.SignedBeaconBlockHeader{ - Message: ðpbv1.BeaconBlockHeader{ - Slot: s.Header_2.Header.Slot, - ProposerIndex: s.Header_2.Header.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(s.Header_2.Header.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(s.Header_2.Header.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(s.Header_2.Header.BodyRoot), - }, - Signature: bytesutil.SafeCopyBytes(s.Header_2.Signature), - }, - } - } - - sourceAttesterSlashings := v1alpha1Block.Body.AttesterSlashings - resultAttesterSlashings := make([]*ethpbv1.AttesterSlashing, len(sourceAttesterSlashings)) - for i, s := range sourceAttesterSlashings { - att1Indices := make([]uint64, len(s.Attestation_1.AttestingIndices)) - copy(att1Indices, s.Attestation_1.AttestingIndices) - att2Indices := make([]uint64, len(s.Attestation_2.AttestingIndices)) - copy(att2Indices, s.Attestation_2.AttestingIndices) - resultAttesterSlashings[i] = ðpbv1.AttesterSlashing{ - Attestation_1: ðpbv1.IndexedAttestation{ - AttestingIndices: att1Indices, - Data: ðpbv1.AttestationData{ - Slot: s.Attestation_1.Data.Slot, - Index: s.Attestation_1.Data.CommitteeIndex, - BeaconBlockRoot: bytesutil.SafeCopyBytes(s.Attestation_1.Data.BeaconBlockRoot), - Source: ðpbv1.Checkpoint{ - Epoch: s.Attestation_1.Data.Source.Epoch, - Root: bytesutil.SafeCopyBytes(s.Attestation_1.Data.Source.Root), - }, - Target: ðpbv1.Checkpoint{ - Epoch: s.Attestation_1.Data.Target.Epoch, - Root: bytesutil.SafeCopyBytes(s.Attestation_1.Data.Target.Root), - }, - }, - Signature: bytesutil.SafeCopyBytes(s.Attestation_1.Signature), - }, - Attestation_2: ðpbv1.IndexedAttestation{ - AttestingIndices: att2Indices, - Data: ðpbv1.AttestationData{ - Slot: s.Attestation_2.Data.Slot, - Index: s.Attestation_2.Data.CommitteeIndex, - BeaconBlockRoot: bytesutil.SafeCopyBytes(s.Attestation_2.Data.BeaconBlockRoot), - Source: ðpbv1.Checkpoint{ - Epoch: s.Attestation_2.Data.Source.Epoch, - Root: bytesutil.SafeCopyBytes(s.Attestation_2.Data.Source.Root), - }, - Target: ðpbv1.Checkpoint{ - Epoch: s.Attestation_2.Data.Target.Epoch, - Root: bytesutil.SafeCopyBytes(s.Attestation_2.Data.Target.Root), - }, - }, - Signature: bytesutil.SafeCopyBytes(s.Attestation_2.Signature), - }, - } - } - - sourceAttestations := v1alpha1Block.Body.Attestations - resultAttestations := make([]*ethpbv1.Attestation, len(sourceAttestations)) - for i, a := range sourceAttestations { - resultAttestations[i] = ðpbv1.Attestation{ - AggregationBits: bytesutil.SafeCopyBytes(a.AggregationBits), - Data: ðpbv1.AttestationData{ - Slot: a.Data.Slot, - Index: a.Data.CommitteeIndex, - BeaconBlockRoot: bytesutil.SafeCopyBytes(a.Data.BeaconBlockRoot), - Source: ðpbv1.Checkpoint{ - Epoch: a.Data.Source.Epoch, - Root: bytesutil.SafeCopyBytes(a.Data.Source.Root), - }, - Target: ðpbv1.Checkpoint{ - Epoch: a.Data.Target.Epoch, - Root: bytesutil.SafeCopyBytes(a.Data.Target.Root), - }, - }, - Signature: bytesutil.SafeCopyBytes(a.Signature), - } - } - - sourceDeposits := v1alpha1Block.Body.Deposits - resultDeposits := make([]*ethpbv1.Deposit, len(sourceDeposits)) - for i, d := range sourceDeposits { - resultDeposits[i] = ðpbv1.Deposit{ - Proof: bytesutil.SafeCopy2dBytes(d.Proof), - Data: ðpbv1.Deposit_Data{ - Pubkey: bytesutil.SafeCopyBytes(d.Data.PublicKey), - WithdrawalCredentials: bytesutil.SafeCopyBytes(d.Data.WithdrawalCredentials), - Amount: d.Data.Amount, - Signature: bytesutil.SafeCopyBytes(d.Data.Signature), - }, - } - } - - sourceExits := v1alpha1Block.Body.VoluntaryExits - resultExits := make([]*ethpbv1.SignedVoluntaryExit, len(sourceExits)) - for i, e := range sourceExits { - resultExits[i] = ðpbv1.SignedVoluntaryExit{ - Message: ðpbv1.VoluntaryExit{ - Epoch: e.Exit.Epoch, - ValidatorIndex: e.Exit.ValidatorIndex, - }, - Signature: bytesutil.SafeCopyBytes(e.Signature), - } - } - - transactionsRoot, err := ssz.TransactionsRoot(v1alpha1Block.Body.ExecutionPayload.Transactions) - if err != nil { - return nil, errors.Wrapf(err, "could not calculate transactions root") - } - - withdrawalsRoot, err := ssz.WithdrawalSliceRoot(v1alpha1Block.Body.ExecutionPayload.Withdrawals, fieldparams.MaxWithdrawalsPerPayload) - if err != nil { - return nil, errors.Wrapf(err, "could not calculate transactions root") - } - - changes := make([]*ethpbv2.SignedBLSToExecutionChange, len(v1alpha1Block.Body.BlsToExecutionChanges)) - for i, change := range v1alpha1Block.Body.BlsToExecutionChanges { - changes[i] = ðpbv2.SignedBLSToExecutionChange{ - Message: ðpbv2.BLSToExecutionChange{ - ValidatorIndex: change.Message.ValidatorIndex, - FromBlsPubkey: bytesutil.SafeCopyBytes(change.Message.FromBlsPubkey), - ToExecutionAddress: bytesutil.SafeCopyBytes(change.Message.ToExecutionAddress), - }, - Signature: bytesutil.SafeCopyBytes(change.Signature), - } - } - - resultBlockBody := ðpbv2.BlindedBeaconBlockBodyCapella{ - RandaoReveal: bytesutil.SafeCopyBytes(v1alpha1Block.Body.RandaoReveal), - Eth1Data: ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(v1alpha1Block.Body.Eth1Data.DepositRoot), - DepositCount: v1alpha1Block.Body.Eth1Data.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(v1alpha1Block.Body.Eth1Data.BlockHash), - }, - Graffiti: bytesutil.SafeCopyBytes(v1alpha1Block.Body.Graffiti), - ProposerSlashings: resultProposerSlashings, - AttesterSlashings: resultAttesterSlashings, - Attestations: resultAttestations, - Deposits: resultDeposits, - VoluntaryExits: resultExits, - SyncAggregate: ðpbv1.SyncAggregate{ - SyncCommitteeBits: bytesutil.SafeCopyBytes(v1alpha1Block.Body.SyncAggregate.SyncCommitteeBits), - SyncCommitteeSignature: bytesutil.SafeCopyBytes(v1alpha1Block.Body.SyncAggregate.SyncCommitteeSignature), - }, - ExecutionPayloadHeader: &enginev1.ExecutionPayloadHeaderCapella{ - ParentHash: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.ParentHash), - FeeRecipient: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.FeeRecipient), - StateRoot: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.StateRoot), - ReceiptsRoot: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.ReceiptsRoot), - LogsBloom: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.LogsBloom), - PrevRandao: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.PrevRandao), - BlockNumber: v1alpha1Block.Body.ExecutionPayload.BlockNumber, - GasLimit: v1alpha1Block.Body.ExecutionPayload.GasLimit, - GasUsed: v1alpha1Block.Body.ExecutionPayload.GasUsed, - Timestamp: v1alpha1Block.Body.ExecutionPayload.Timestamp, - ExtraData: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.ExtraData), - BaseFeePerGas: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.BaseFeePerGas), - BlockHash: bytesutil.SafeCopyBytes(v1alpha1Block.Body.ExecutionPayload.BlockHash), - TransactionsRoot: transactionsRoot[:], - WithdrawalsRoot: withdrawalsRoot[:], - }, - BlsToExecutionChanges: changes, - } - v2Block := ðpbv2.BlindedBeaconBlockCapella{ - Slot: v1alpha1Block.Slot, - ProposerIndex: v1alpha1Block.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(v1alpha1Block.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(v1alpha1Block.StateRoot), - Body: resultBlockBody, - } - return v2Block, nil -} - -// BeaconStateAltairToProto converts a state.BeaconState object to its protobuf equivalent. -func BeaconStateAltairToProto(altairState state.BeaconState) (*ethpbv2.BeaconState, error) { - sourceFork := altairState.Fork() - sourceLatestBlockHeader := altairState.LatestBlockHeader() - sourceEth1Data := altairState.Eth1Data() - sourceEth1DataVotes := altairState.Eth1DataVotes() - sourceValidators := altairState.Validators() - sourceJustificationBits := altairState.JustificationBits() - sourcePrevJustifiedCheckpoint := altairState.PreviousJustifiedCheckpoint() - sourceCurrJustifiedCheckpoint := altairState.CurrentJustifiedCheckpoint() - sourceFinalizedCheckpoint := altairState.FinalizedCheckpoint() - - resultEth1DataVotes := make([]*ethpbv1.Eth1Data, len(sourceEth1DataVotes)) - for i, vote := range sourceEth1DataVotes { - resultEth1DataVotes[i] = ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(vote.DepositRoot), - DepositCount: vote.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(vote.BlockHash), - } - } - resultValidators := make([]*ethpbv1.Validator, len(sourceValidators)) - for i, validator := range sourceValidators { - resultValidators[i] = ðpbv1.Validator{ - Pubkey: bytesutil.SafeCopyBytes(validator.PublicKey), - WithdrawalCredentials: bytesutil.SafeCopyBytes(validator.WithdrawalCredentials), - EffectiveBalance: validator.EffectiveBalance, - Slashed: validator.Slashed, - ActivationEligibilityEpoch: validator.ActivationEligibilityEpoch, - ActivationEpoch: validator.ActivationEpoch, - ExitEpoch: validator.ExitEpoch, - WithdrawableEpoch: validator.WithdrawableEpoch, - } - } - - sourcePrevEpochParticipation, err := altairState.PreviousEpochParticipation() - if err != nil { - return nil, errors.Wrap(err, "could not get previous epoch participation") - } - sourceCurrEpochParticipation, err := altairState.CurrentEpochParticipation() - if err != nil { - return nil, errors.Wrap(err, "could not get current epoch participation") - } - sourceInactivityScores, err := altairState.InactivityScores() - if err != nil { - return nil, errors.Wrap(err, "could not get inactivity scores") - } - sourceCurrSyncCommittee, err := altairState.CurrentSyncCommittee() - if err != nil { - return nil, errors.Wrap(err, "could not get current sync committee") - } - sourceNextSyncCommittee, err := altairState.NextSyncCommittee() - if err != nil { - return nil, errors.Wrap(err, "could not get next sync committee") - } - - hrs, err := altairState.HistoricalRoots() - if err != nil { - return nil, errors.Wrap(err, "could not get historical roots") - } - - result := ðpbv2.BeaconState{ - GenesisTime: altairState.GenesisTime(), - GenesisValidatorsRoot: bytesutil.SafeCopyBytes(altairState.GenesisValidatorsRoot()), - Slot: altairState.Slot(), - Fork: ðpbv1.Fork{ - PreviousVersion: bytesutil.SafeCopyBytes(sourceFork.PreviousVersion), - CurrentVersion: bytesutil.SafeCopyBytes(sourceFork.CurrentVersion), - Epoch: sourceFork.Epoch, - }, - LatestBlockHeader: ðpbv1.BeaconBlockHeader{ - Slot: sourceLatestBlockHeader.Slot, - ProposerIndex: sourceLatestBlockHeader.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.BodyRoot), - }, - BlockRoots: bytesutil.SafeCopy2dBytes(altairState.BlockRoots()), - StateRoots: bytesutil.SafeCopy2dBytes(altairState.StateRoots()), - HistoricalRoots: bytesutil.SafeCopy2dBytes(hrs), - Eth1Data: ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(sourceEth1Data.DepositRoot), - DepositCount: sourceEth1Data.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(sourceEth1Data.BlockHash), - }, - Eth1DataVotes: resultEth1DataVotes, - Eth1DepositIndex: altairState.Eth1DepositIndex(), - Validators: resultValidators, - Balances: altairState.Balances(), - RandaoMixes: bytesutil.SafeCopy2dBytes(altairState.RandaoMixes()), - Slashings: altairState.Slashings(), - PreviousEpochParticipation: bytesutil.SafeCopyBytes(sourcePrevEpochParticipation), - CurrentEpochParticipation: bytesutil.SafeCopyBytes(sourceCurrEpochParticipation), - JustificationBits: bytesutil.SafeCopyBytes(sourceJustificationBits), - PreviousJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourcePrevJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourcePrevJustifiedCheckpoint.Root), - }, - CurrentJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceCurrJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceCurrJustifiedCheckpoint.Root), - }, - FinalizedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceFinalizedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceFinalizedCheckpoint.Root), - }, - InactivityScores: sourceInactivityScores, - CurrentSyncCommittee: ðpbv2.SyncCommittee{ - Pubkeys: bytesutil.SafeCopy2dBytes(sourceCurrSyncCommittee.Pubkeys), - AggregatePubkey: bytesutil.SafeCopyBytes(sourceCurrSyncCommittee.AggregatePubkey), - }, - NextSyncCommittee: ðpbv2.SyncCommittee{ - Pubkeys: bytesutil.SafeCopy2dBytes(sourceNextSyncCommittee.Pubkeys), - AggregatePubkey: bytesutil.SafeCopyBytes(sourceNextSyncCommittee.AggregatePubkey), - }, - } - - return result, nil -} - -// BeaconStateBellatrixToProto converts a state.BeaconState object to its protobuf equivalent. -func BeaconStateBellatrixToProto(st state.BeaconState) (*ethpbv2.BeaconStateBellatrix, error) { - sourceFork := st.Fork() - sourceLatestBlockHeader := st.LatestBlockHeader() - sourceEth1Data := st.Eth1Data() - sourceEth1DataVotes := st.Eth1DataVotes() - sourceValidators := st.Validators() - sourceJustificationBits := st.JustificationBits() - sourcePrevJustifiedCheckpoint := st.PreviousJustifiedCheckpoint() - sourceCurrJustifiedCheckpoint := st.CurrentJustifiedCheckpoint() - sourceFinalizedCheckpoint := st.FinalizedCheckpoint() - - resultEth1DataVotes := make([]*ethpbv1.Eth1Data, len(sourceEth1DataVotes)) - for i, vote := range sourceEth1DataVotes { - resultEth1DataVotes[i] = ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(vote.DepositRoot), - DepositCount: vote.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(vote.BlockHash), - } - } - resultValidators := make([]*ethpbv1.Validator, len(sourceValidators)) - for i, validator := range sourceValidators { - resultValidators[i] = ðpbv1.Validator{ - Pubkey: bytesutil.SafeCopyBytes(validator.PublicKey), - WithdrawalCredentials: bytesutil.SafeCopyBytes(validator.WithdrawalCredentials), - EffectiveBalance: validator.EffectiveBalance, - Slashed: validator.Slashed, - ActivationEligibilityEpoch: validator.ActivationEligibilityEpoch, - ActivationEpoch: validator.ActivationEpoch, - ExitEpoch: validator.ExitEpoch, - WithdrawableEpoch: validator.WithdrawableEpoch, - } - } - - sourcePrevEpochParticipation, err := st.PreviousEpochParticipation() - if err != nil { - return nil, errors.Wrap(err, "could not get previous epoch participation") - } - sourceCurrEpochParticipation, err := st.CurrentEpochParticipation() - if err != nil { - return nil, errors.Wrap(err, "could not get current epoch participation") - } - sourceInactivityScores, err := st.InactivityScores() - if err != nil { - return nil, errors.Wrap(err, "could not get inactivity scores") - } - sourceCurrSyncCommittee, err := st.CurrentSyncCommittee() - if err != nil { - return nil, errors.Wrap(err, "could not get current sync committee") - } - sourceNextSyncCommittee, err := st.NextSyncCommittee() - if err != nil { - return nil, errors.Wrap(err, "could not get next sync committee") - } - executionPayloadHeaderInterface, err := st.LatestExecutionPayloadHeader() - if err != nil { - return nil, errors.Wrap(err, "could not get latest execution payload header") - } - sourceLatestExecutionPayloadHeader, ok := executionPayloadHeaderInterface.Proto().(*enginev1.ExecutionPayloadHeader) - if !ok { - return nil, errors.New("execution payload header has incorrect type") - } - - hRoots, err := st.HistoricalRoots() - if err != nil { - return nil, errors.Wrap(err, "could not get historical roots") - } - - result := ðpbv2.BeaconStateBellatrix{ - GenesisTime: st.GenesisTime(), - GenesisValidatorsRoot: bytesutil.SafeCopyBytes(st.GenesisValidatorsRoot()), - Slot: st.Slot(), - Fork: ðpbv1.Fork{ - PreviousVersion: bytesutil.SafeCopyBytes(sourceFork.PreviousVersion), - CurrentVersion: bytesutil.SafeCopyBytes(sourceFork.CurrentVersion), - Epoch: sourceFork.Epoch, - }, - LatestBlockHeader: ðpbv1.BeaconBlockHeader{ - Slot: sourceLatestBlockHeader.Slot, - ProposerIndex: sourceLatestBlockHeader.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.BodyRoot), - }, - BlockRoots: bytesutil.SafeCopy2dBytes(st.BlockRoots()), - StateRoots: bytesutil.SafeCopy2dBytes(st.StateRoots()), - HistoricalRoots: bytesutil.SafeCopy2dBytes(hRoots), - Eth1Data: ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(sourceEth1Data.DepositRoot), - DepositCount: sourceEth1Data.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(sourceEth1Data.BlockHash), - }, - Eth1DataVotes: resultEth1DataVotes, - Eth1DepositIndex: st.Eth1DepositIndex(), - Validators: resultValidators, - Balances: st.Balances(), - RandaoMixes: bytesutil.SafeCopy2dBytes(st.RandaoMixes()), - Slashings: st.Slashings(), - PreviousEpochParticipation: bytesutil.SafeCopyBytes(sourcePrevEpochParticipation), - CurrentEpochParticipation: bytesutil.SafeCopyBytes(sourceCurrEpochParticipation), - JustificationBits: bytesutil.SafeCopyBytes(sourceJustificationBits), - PreviousJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourcePrevJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourcePrevJustifiedCheckpoint.Root), - }, - CurrentJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceCurrJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceCurrJustifiedCheckpoint.Root), - }, - FinalizedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceFinalizedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceFinalizedCheckpoint.Root), - }, - InactivityScores: sourceInactivityScores, - CurrentSyncCommittee: ðpbv2.SyncCommittee{ - Pubkeys: bytesutil.SafeCopy2dBytes(sourceCurrSyncCommittee.Pubkeys), - AggregatePubkey: bytesutil.SafeCopyBytes(sourceCurrSyncCommittee.AggregatePubkey), - }, - NextSyncCommittee: ðpbv2.SyncCommittee{ - Pubkeys: bytesutil.SafeCopy2dBytes(sourceNextSyncCommittee.Pubkeys), - AggregatePubkey: bytesutil.SafeCopyBytes(sourceNextSyncCommittee.AggregatePubkey), - }, - LatestExecutionPayloadHeader: &enginev1.ExecutionPayloadHeader{ - ParentHash: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ParentHash), - FeeRecipient: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.FeeRecipient), - StateRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.StateRoot), - ReceiptsRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ReceiptsRoot), - LogsBloom: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.LogsBloom), - PrevRandao: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.PrevRandao), - BlockNumber: sourceLatestExecutionPayloadHeader.BlockNumber, - GasLimit: sourceLatestExecutionPayloadHeader.GasLimit, - GasUsed: sourceLatestExecutionPayloadHeader.GasUsed, - Timestamp: sourceLatestExecutionPayloadHeader.Timestamp, - ExtraData: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ExtraData), - BaseFeePerGas: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.BaseFeePerGas), - BlockHash: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.BlockHash), - TransactionsRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.TransactionsRoot), - }, - } - - return result, nil -} - -// BeaconStateCapellaToProto converts a state.BeaconState object to its protobuf equivalent. -func BeaconStateCapellaToProto(st state.BeaconState) (*ethpbv2.BeaconStateCapella, error) { - sourceFork := st.Fork() - sourceLatestBlockHeader := st.LatestBlockHeader() - sourceEth1Data := st.Eth1Data() - sourceEth1DataVotes := st.Eth1DataVotes() - sourceValidators := st.Validators() - sourceJustificationBits := st.JustificationBits() - sourcePrevJustifiedCheckpoint := st.PreviousJustifiedCheckpoint() - sourceCurrJustifiedCheckpoint := st.CurrentJustifiedCheckpoint() - sourceFinalizedCheckpoint := st.FinalizedCheckpoint() - - resultEth1DataVotes := make([]*ethpbv1.Eth1Data, len(sourceEth1DataVotes)) - for i, vote := range sourceEth1DataVotes { - resultEth1DataVotes[i] = ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(vote.DepositRoot), - DepositCount: vote.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(vote.BlockHash), - } - } - resultValidators := make([]*ethpbv1.Validator, len(sourceValidators)) - for i, validator := range sourceValidators { - resultValidators[i] = ðpbv1.Validator{ - Pubkey: bytesutil.SafeCopyBytes(validator.PublicKey), - WithdrawalCredentials: bytesutil.SafeCopyBytes(validator.WithdrawalCredentials), - EffectiveBalance: validator.EffectiveBalance, - Slashed: validator.Slashed, - ActivationEligibilityEpoch: validator.ActivationEligibilityEpoch, - ActivationEpoch: validator.ActivationEpoch, - ExitEpoch: validator.ExitEpoch, - WithdrawableEpoch: validator.WithdrawableEpoch, - } - } - - sourcePrevEpochParticipation, err := st.PreviousEpochParticipation() - if err != nil { - return nil, errors.Wrap(err, "could not get previous epoch participation") - } - sourceCurrEpochParticipation, err := st.CurrentEpochParticipation() - if err != nil { - return nil, errors.Wrap(err, "could not get current epoch participation") - } - sourceInactivityScores, err := st.InactivityScores() - if err != nil { - return nil, errors.Wrap(err, "could not get inactivity scores") - } - sourceCurrSyncCommittee, err := st.CurrentSyncCommittee() - if err != nil { - return nil, errors.Wrap(err, "could not get current sync committee") - } - sourceNextSyncCommittee, err := st.NextSyncCommittee() - if err != nil { - return nil, errors.Wrap(err, "could not get next sync committee") - } - executionPayloadHeaderInterface, err := st.LatestExecutionPayloadHeader() - if err != nil { - return nil, errors.Wrap(err, "could not get latest execution payload header") - } - sourceLatestExecutionPayloadHeader, ok := executionPayloadHeaderInterface.Proto().(*enginev1.ExecutionPayloadHeaderCapella) - if !ok { - return nil, errors.New("execution payload header has incorrect type") - } - sourceNextWithdrawalIndex, err := st.NextWithdrawalIndex() - if err != nil { - return nil, errors.Wrap(err, "could not get next withdrawal index") - } - sourceNextWithdrawalValIndex, err := st.NextWithdrawalValidatorIndex() - if err != nil { - return nil, errors.Wrap(err, "could not get next withdrawal validator index") - } - summaries, err := st.HistoricalSummaries() - if err != nil { - return nil, errors.Wrap(err, "could not get historical summaries") - } - sourceHistoricalSummaries := make([]*ethpbv2.HistoricalSummary, len(summaries)) - for i, summary := range summaries { - sourceHistoricalSummaries[i] = ðpbv2.HistoricalSummary{ - BlockSummaryRoot: summary.BlockSummaryRoot, - StateSummaryRoot: summary.StateSummaryRoot, - } - } - hRoots, err := st.HistoricalRoots() - if err != nil { - return nil, errors.Wrap(err, "could not get historical roots") - } - - result := ðpbv2.BeaconStateCapella{ - GenesisTime: st.GenesisTime(), - GenesisValidatorsRoot: bytesutil.SafeCopyBytes(st.GenesisValidatorsRoot()), - Slot: st.Slot(), - Fork: ðpbv1.Fork{ - PreviousVersion: bytesutil.SafeCopyBytes(sourceFork.PreviousVersion), - CurrentVersion: bytesutil.SafeCopyBytes(sourceFork.CurrentVersion), - Epoch: sourceFork.Epoch, - }, - LatestBlockHeader: ðpbv1.BeaconBlockHeader{ - Slot: sourceLatestBlockHeader.Slot, - ProposerIndex: sourceLatestBlockHeader.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.BodyRoot), - }, - BlockRoots: bytesutil.SafeCopy2dBytes(st.BlockRoots()), - StateRoots: bytesutil.SafeCopy2dBytes(st.StateRoots()), - Eth1Data: ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(sourceEth1Data.DepositRoot), - DepositCount: sourceEth1Data.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(sourceEth1Data.BlockHash), - }, - Eth1DataVotes: resultEth1DataVotes, - Eth1DepositIndex: st.Eth1DepositIndex(), - Validators: resultValidators, - Balances: st.Balances(), - RandaoMixes: bytesutil.SafeCopy2dBytes(st.RandaoMixes()), - Slashings: st.Slashings(), - PreviousEpochParticipation: bytesutil.SafeCopyBytes(sourcePrevEpochParticipation), - CurrentEpochParticipation: bytesutil.SafeCopyBytes(sourceCurrEpochParticipation), - JustificationBits: bytesutil.SafeCopyBytes(sourceJustificationBits), - PreviousJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourcePrevJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourcePrevJustifiedCheckpoint.Root), - }, - CurrentJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceCurrJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceCurrJustifiedCheckpoint.Root), - }, - FinalizedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceFinalizedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceFinalizedCheckpoint.Root), - }, - InactivityScores: sourceInactivityScores, - CurrentSyncCommittee: ðpbv2.SyncCommittee{ - Pubkeys: bytesutil.SafeCopy2dBytes(sourceCurrSyncCommittee.Pubkeys), - AggregatePubkey: bytesutil.SafeCopyBytes(sourceCurrSyncCommittee.AggregatePubkey), - }, - NextSyncCommittee: ðpbv2.SyncCommittee{ - Pubkeys: bytesutil.SafeCopy2dBytes(sourceNextSyncCommittee.Pubkeys), - AggregatePubkey: bytesutil.SafeCopyBytes(sourceNextSyncCommittee.AggregatePubkey), - }, - LatestExecutionPayloadHeader: &enginev1.ExecutionPayloadHeaderCapella{ - ParentHash: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ParentHash), - FeeRecipient: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.FeeRecipient), - StateRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.StateRoot), - ReceiptsRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ReceiptsRoot), - LogsBloom: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.LogsBloom), - PrevRandao: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.PrevRandao), - BlockNumber: sourceLatestExecutionPayloadHeader.BlockNumber, - GasLimit: sourceLatestExecutionPayloadHeader.GasLimit, - GasUsed: sourceLatestExecutionPayloadHeader.GasUsed, - Timestamp: sourceLatestExecutionPayloadHeader.Timestamp, - ExtraData: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ExtraData), - BaseFeePerGas: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.BaseFeePerGas), - BlockHash: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.BlockHash), - TransactionsRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.TransactionsRoot), - WithdrawalsRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.WithdrawalsRoot), - }, - NextWithdrawalIndex: sourceNextWithdrawalIndex, - NextWithdrawalValidatorIndex: sourceNextWithdrawalValIndex, - HistoricalSummaries: sourceHistoricalSummaries, - HistoricalRoots: hRoots, - } - - return result, nil -} - -// BeaconStateDenebToProto converts a state.BeaconState object to its protobuf equivalent. -func BeaconStateDenebToProto(st state.BeaconState) (*ethpbv2.BeaconStateDeneb, error) { - sourceFork := st.Fork() - sourceLatestBlockHeader := st.LatestBlockHeader() - sourceEth1Data := st.Eth1Data() - sourceEth1DataVotes := st.Eth1DataVotes() - sourceValidators := st.Validators() - sourceJustificationBits := st.JustificationBits() - sourcePrevJustifiedCheckpoint := st.PreviousJustifiedCheckpoint() - sourceCurrJustifiedCheckpoint := st.CurrentJustifiedCheckpoint() - sourceFinalizedCheckpoint := st.FinalizedCheckpoint() - - resultEth1DataVotes := make([]*ethpbv1.Eth1Data, len(sourceEth1DataVotes)) - for i, vote := range sourceEth1DataVotes { - resultEth1DataVotes[i] = ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(vote.DepositRoot), - DepositCount: vote.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(vote.BlockHash), - } - } - resultValidators := make([]*ethpbv1.Validator, len(sourceValidators)) - for i, validator := range sourceValidators { - resultValidators[i] = ðpbv1.Validator{ - Pubkey: bytesutil.SafeCopyBytes(validator.PublicKey), - WithdrawalCredentials: bytesutil.SafeCopyBytes(validator.WithdrawalCredentials), - EffectiveBalance: validator.EffectiveBalance, - Slashed: validator.Slashed, - ActivationEligibilityEpoch: validator.ActivationEligibilityEpoch, - ActivationEpoch: validator.ActivationEpoch, - ExitEpoch: validator.ExitEpoch, - WithdrawableEpoch: validator.WithdrawableEpoch, - } - } - - sourcePrevEpochParticipation, err := st.PreviousEpochParticipation() - if err != nil { - return nil, errors.Wrap(err, "could not get previous epoch participation") - } - sourceCurrEpochParticipation, err := st.CurrentEpochParticipation() - if err != nil { - return nil, errors.Wrap(err, "could not get current epoch participation") - } - sourceInactivityScores, err := st.InactivityScores() - if err != nil { - return nil, errors.Wrap(err, "could not get inactivity scores") - } - sourceCurrSyncCommittee, err := st.CurrentSyncCommittee() - if err != nil { - return nil, errors.Wrap(err, "could not get current sync committee") - } - sourceNextSyncCommittee, err := st.NextSyncCommittee() - if err != nil { - return nil, errors.Wrap(err, "could not get next sync committee") - } - executionPayloadHeaderInterface, err := st.LatestExecutionPayloadHeader() - if err != nil { - return nil, errors.Wrap(err, "could not get latest execution payload header") - } - sourceLatestExecutionPayloadHeader, ok := executionPayloadHeaderInterface.Proto().(*enginev1.ExecutionPayloadHeaderDeneb) - if !ok { - return nil, errors.New("execution payload header has incorrect type") - } - sourceNextWithdrawalIndex, err := st.NextWithdrawalIndex() - if err != nil { - return nil, errors.Wrap(err, "could not get next withdrawal index") - } - sourceNextWithdrawalValIndex, err := st.NextWithdrawalValidatorIndex() - if err != nil { - return nil, errors.Wrap(err, "could not get next withdrawal validator index") - } - summaries, err := st.HistoricalSummaries() - if err != nil { - return nil, errors.Wrap(err, "could not get historical summaries") - } - sourceHistoricalSummaries := make([]*ethpbv2.HistoricalSummary, len(summaries)) - for i, summary := range summaries { - sourceHistoricalSummaries[i] = ðpbv2.HistoricalSummary{ - BlockSummaryRoot: summary.BlockSummaryRoot, - StateSummaryRoot: summary.StateSummaryRoot, - } - } - - hr, err := st.HistoricalRoots() - if err != nil { - return nil, errors.Wrap(err, "could not get historical roots") - } - - result := ðpbv2.BeaconStateDeneb{ - GenesisTime: st.GenesisTime(), - GenesisValidatorsRoot: bytesutil.SafeCopyBytes(st.GenesisValidatorsRoot()), - Slot: st.Slot(), - Fork: ðpbv1.Fork{ - PreviousVersion: bytesutil.SafeCopyBytes(sourceFork.PreviousVersion), - CurrentVersion: bytesutil.SafeCopyBytes(sourceFork.CurrentVersion), - Epoch: sourceFork.Epoch, - }, - LatestBlockHeader: ðpbv1.BeaconBlockHeader{ - Slot: sourceLatestBlockHeader.Slot, - ProposerIndex: sourceLatestBlockHeader.ProposerIndex, - ParentRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.ParentRoot), - StateRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.StateRoot), - BodyRoot: bytesutil.SafeCopyBytes(sourceLatestBlockHeader.BodyRoot), - }, - BlockRoots: bytesutil.SafeCopy2dBytes(st.BlockRoots()), - StateRoots: bytesutil.SafeCopy2dBytes(st.StateRoots()), - HistoricalRoots: bytesutil.SafeCopy2dBytes(hr), - Eth1Data: ðpbv1.Eth1Data{ - DepositRoot: bytesutil.SafeCopyBytes(sourceEth1Data.DepositRoot), - DepositCount: sourceEth1Data.DepositCount, - BlockHash: bytesutil.SafeCopyBytes(sourceEth1Data.BlockHash), - }, - Eth1DataVotes: resultEth1DataVotes, - Eth1DepositIndex: st.Eth1DepositIndex(), - Validators: resultValidators, - Balances: st.Balances(), - RandaoMixes: bytesutil.SafeCopy2dBytes(st.RandaoMixes()), - Slashings: st.Slashings(), - PreviousEpochParticipation: bytesutil.SafeCopyBytes(sourcePrevEpochParticipation), - CurrentEpochParticipation: bytesutil.SafeCopyBytes(sourceCurrEpochParticipation), - JustificationBits: bytesutil.SafeCopyBytes(sourceJustificationBits), - PreviousJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourcePrevJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourcePrevJustifiedCheckpoint.Root), - }, - CurrentJustifiedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceCurrJustifiedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceCurrJustifiedCheckpoint.Root), - }, - FinalizedCheckpoint: ðpbv1.Checkpoint{ - Epoch: sourceFinalizedCheckpoint.Epoch, - Root: bytesutil.SafeCopyBytes(sourceFinalizedCheckpoint.Root), - }, - InactivityScores: sourceInactivityScores, - CurrentSyncCommittee: ðpbv2.SyncCommittee{ - Pubkeys: bytesutil.SafeCopy2dBytes(sourceCurrSyncCommittee.Pubkeys), - AggregatePubkey: bytesutil.SafeCopyBytes(sourceCurrSyncCommittee.AggregatePubkey), - }, - NextSyncCommittee: ðpbv2.SyncCommittee{ - Pubkeys: bytesutil.SafeCopy2dBytes(sourceNextSyncCommittee.Pubkeys), - AggregatePubkey: bytesutil.SafeCopyBytes(sourceNextSyncCommittee.AggregatePubkey), - }, - LatestExecutionPayloadHeader: &enginev1.ExecutionPayloadHeaderDeneb{ - ParentHash: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ParentHash), - FeeRecipient: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.FeeRecipient), - StateRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.StateRoot), - ReceiptsRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ReceiptsRoot), - LogsBloom: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.LogsBloom), - PrevRandao: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.PrevRandao), - BlockNumber: sourceLatestExecutionPayloadHeader.BlockNumber, - GasLimit: sourceLatestExecutionPayloadHeader.GasLimit, - GasUsed: sourceLatestExecutionPayloadHeader.GasUsed, - Timestamp: sourceLatestExecutionPayloadHeader.Timestamp, - ExtraData: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.ExtraData), - BaseFeePerGas: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.BaseFeePerGas), - BlobGasUsed: sourceLatestExecutionPayloadHeader.BlobGasUsed, - ExcessBlobGas: sourceLatestExecutionPayloadHeader.ExcessBlobGas, - BlockHash: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.BlockHash), - TransactionsRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.TransactionsRoot), - WithdrawalsRoot: bytesutil.SafeCopyBytes(sourceLatestExecutionPayloadHeader.WithdrawalsRoot), - }, - NextWithdrawalIndex: sourceNextWithdrawalIndex, - NextWithdrawalValidatorIndex: sourceNextWithdrawalValIndex, - HistoricalSummaries: sourceHistoricalSummaries, - } - - return result, nil -} - -// V1Alpha1SignedContributionAndProofToV2 converts a v1alpha1 SignedContributionAndProof object to its v2 equivalent. -func V1Alpha1SignedContributionAndProofToV2(alphaContribution *ethpbalpha.SignedContributionAndProof) *ethpbv2.SignedContributionAndProof { - result := ðpbv2.SignedContributionAndProof{ - Message: ðpbv2.ContributionAndProof{ - AggregatorIndex: alphaContribution.Message.AggregatorIndex, - Contribution: ðpbv2.SyncCommitteeContribution{ - Slot: alphaContribution.Message.Contribution.Slot, - BeaconBlockRoot: alphaContribution.Message.Contribution.BlockRoot, - SubcommitteeIndex: alphaContribution.Message.Contribution.SubcommitteeIndex, - AggregationBits: alphaContribution.Message.Contribution.AggregationBits, - Signature: alphaContribution.Message.Contribution.Signature, - }, - SelectionProof: alphaContribution.Message.SelectionProof, - }, - Signature: alphaContribution.Signature, - } - return result -} - -// V2SignedBLSToExecutionChangeToV1Alpha1 converts a V2 SignedBLSToExecutionChange to its v1alpha1 equivalent. -func V2SignedBLSToExecutionChangeToV1Alpha1(change *ethpbv2.SignedBLSToExecutionChange) *ethpbalpha.SignedBLSToExecutionChange { - return ðpbalpha.SignedBLSToExecutionChange{ - Message: ðpbalpha.BLSToExecutionChange{ - ValidatorIndex: change.Message.ValidatorIndex, - FromBlsPubkey: bytesutil.SafeCopyBytes(change.Message.FromBlsPubkey), - ToExecutionAddress: bytesutil.SafeCopyBytes(change.Message.ToExecutionAddress), - }, - Signature: bytesutil.SafeCopyBytes(change.Signature), - } -} - -// V1Alpha1SignedBLSToExecChangeToV2 converts a v1alpha1 SignedBLSToExecutionChange object to its v2 equivalent. -func V1Alpha1SignedBLSToExecChangeToV2(alphaChange *ethpbalpha.SignedBLSToExecutionChange) *ethpbv2.SignedBLSToExecutionChange { - result := ðpbv2.SignedBLSToExecutionChange{ - Message: ðpbv2.BLSToExecutionChange{ - ValidatorIndex: alphaChange.Message.ValidatorIndex, - FromBlsPubkey: bytesutil.SafeCopyBytes(alphaChange.Message.FromBlsPubkey), - ToExecutionAddress: bytesutil.SafeCopyBytes(alphaChange.Message.ToExecutionAddress), - }, - Signature: bytesutil.SafeCopyBytes(alphaChange.Signature), - } - return result -} - // V1Alpha1SyncCommitteeToV2 converts a v1alpha1 SyncCommittee object to its v2 equivalent. func V1Alpha1SyncCommitteeToV2(alphaCommittee *ethpbalpha.SyncCommittee) *ethpbv2.SyncCommittee { if alphaCommittee == nil { diff --git a/proto/migration/v1alpha1_to_v2_test.go b/proto/migration/v1alpha1_to_v2_test.go deleted file mode 100644 index c6a2f80e6..000000000 --- a/proto/migration/v1alpha1_to_v2_test.go +++ /dev/null @@ -1,901 +0,0 @@ -package migration - -import ( - "testing" - - "github.com/prysmaticlabs/go-bitfield" - "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives" - "github.com/prysmaticlabs/prysm/v5/encoding/bytesutil" - enginev1 "github.com/prysmaticlabs/prysm/v5/proto/engine/v1" - ethpbalpha "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1" - "github.com/prysmaticlabs/prysm/v5/testing/assert" - "github.com/prysmaticlabs/prysm/v5/testing/require" - "github.com/prysmaticlabs/prysm/v5/testing/util" -) - -func TestV1Alpha1SignedContributionAndProofToV2(t *testing.T) { - alphaContribution := ðpbalpha.SignedContributionAndProof{ - Message: ðpbalpha.ContributionAndProof{ - AggregatorIndex: validatorIndex, - Contribution: ðpbalpha.SyncCommitteeContribution{ - Slot: slot, - BlockRoot: blockHash, - SubcommitteeIndex: 1, - AggregationBits: bitfield.NewBitvector128(), - Signature: signature, - }, - SelectionProof: signature, - }, - Signature: signature, - } - v2Contribution := V1Alpha1SignedContributionAndProofToV2(alphaContribution) - require.NotNil(t, v2Contribution) - require.NotNil(t, v2Contribution.Message) - require.NotNil(t, v2Contribution.Message.Contribution) - assert.DeepEqual(t, signature, v2Contribution.Signature) - msg := v2Contribution.Message - assert.Equal(t, validatorIndex, msg.AggregatorIndex) - assert.DeepEqual(t, signature, msg.SelectionProof) - contrib := msg.Contribution - assert.Equal(t, slot, contrib.Slot) - assert.DeepEqual(t, blockHash, contrib.BeaconBlockRoot) - assert.Equal(t, uint64(1), contrib.SubcommitteeIndex) - assert.DeepEqual(t, bitfield.NewBitvector128(), contrib.AggregationBits) - assert.DeepEqual(t, signature, contrib.Signature) -} - -func Test_V1Alpha1BeaconBlockAltairToV2(t *testing.T) { - alphaBlock := util.HydrateBeaconBlockAltair(ðpbalpha.BeaconBlockAltair{}) - alphaBlock.Slot = slot - alphaBlock.ProposerIndex = validatorIndex - alphaBlock.ParentRoot = parentRoot - alphaBlock.StateRoot = stateRoot - alphaBlock.Body.RandaoReveal = randaoReveal - alphaBlock.Body.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - syncCommitteeBits := bitfield.NewBitvector512() - syncCommitteeBits.SetBitAt(100, true) - alphaBlock.Body.SyncAggregate = ðpbalpha.SyncAggregate{ - SyncCommitteeBits: syncCommitteeBits, - SyncCommitteeSignature: signature, - } - - v2Block, err := V1Alpha1BeaconBlockAltairToV2(alphaBlock) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v2Root, err := v2Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v2Root) -} - -func Test_V1Alpha1BeaconBlockBellatrixToV2(t *testing.T) { - alphaBlock := util.HydrateBeaconBlockBellatrix(ðpbalpha.BeaconBlockBellatrix{}) - alphaBlock.Slot = slot - alphaBlock.ProposerIndex = validatorIndex - alphaBlock.ParentRoot = parentRoot - alphaBlock.StateRoot = stateRoot - alphaBlock.Body.RandaoReveal = randaoReveal - alphaBlock.Body.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - syncCommitteeBits := bitfield.NewBitvector512() - syncCommitteeBits.SetBitAt(100, true) - alphaBlock.Body.SyncAggregate = ðpbalpha.SyncAggregate{ - SyncCommitteeBits: syncCommitteeBits, - SyncCommitteeSignature: signature, - } - - v2Block, err := V1Alpha1BeaconBlockBellatrixToV2(alphaBlock) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v2Root, err := v2Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v2Root) -} - -func Test_V1Alpha1BeaconBlockBellatrixToV2Blinded(t *testing.T) { - alphaBlock := util.HydrateBeaconBlockBellatrix(ðpbalpha.BeaconBlockBellatrix{}) - alphaBlock.Slot = slot - alphaBlock.ProposerIndex = validatorIndex - alphaBlock.ParentRoot = parentRoot - alphaBlock.StateRoot = stateRoot - alphaBlock.Body.RandaoReveal = randaoReveal - alphaBlock.Body.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - syncCommitteeBits := bitfield.NewBitvector512() - syncCommitteeBits.SetBitAt(100, true) - alphaBlock.Body.SyncAggregate = ðpbalpha.SyncAggregate{ - SyncCommitteeBits: syncCommitteeBits, - SyncCommitteeSignature: signature, - } - alphaBlock.Body.ExecutionPayload.Transactions = [][]byte{[]byte("transaction1"), []byte("transaction2")} - - v2Block, err := V1Alpha1BeaconBlockBellatrixToV2Blinded(alphaBlock) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v2Root, err := v2Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v2Root) -} - -func Test_V1Alpha1BeaconBlockCapellaToV2Blinded(t *testing.T) { - alphaBlock := util.HydrateBeaconBlockCapella(ðpbalpha.BeaconBlockCapella{}) - alphaBlock.Slot = slot - alphaBlock.ProposerIndex = validatorIndex - alphaBlock.ParentRoot = parentRoot - alphaBlock.StateRoot = stateRoot - alphaBlock.Body.RandaoReveal = randaoReveal - alphaBlock.Body.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - syncCommitteeBits := bitfield.NewBitvector512() - syncCommitteeBits.SetBitAt(100, true) - alphaBlock.Body.SyncAggregate = ðpbalpha.SyncAggregate{ - SyncCommitteeBits: syncCommitteeBits, - SyncCommitteeSignature: signature, - } - alphaBlock.Body.ExecutionPayload.Transactions = [][]byte{[]byte("transaction1"), []byte("transaction2")} - - v2Block, err := V1Alpha1BeaconBlockCapellaToV2Blinded(alphaBlock) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v2Root, err := v2Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, alphaRoot, v2Root) -} - -func TestBeaconStateAltairToProto(t *testing.T) { - source, err := util.NewBeaconStateAltair(util.FillRootsNaturalOptAltair, func(state *ethpbalpha.BeaconStateAltair) error { - state.GenesisTime = 1 - state.GenesisValidatorsRoot = bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32) - state.Slot = 2 - state.Fork = ðpbalpha.Fork{ - PreviousVersion: bytesutil.PadTo([]byte("123"), 4), - CurrentVersion: bytesutil.PadTo([]byte("456"), 4), - Epoch: 3, - } - state.LatestBlockHeader = ðpbalpha.BeaconBlockHeader{ - Slot: 4, - ProposerIndex: 5, - ParentRoot: bytesutil.PadTo([]byte("lbhparentroot"), 32), - StateRoot: bytesutil.PadTo([]byte("lbhstateroot"), 32), - BodyRoot: bytesutil.PadTo([]byte("lbhbodyroot"), 32), - } - state.BlockRoots = [][]byte{bytesutil.PadTo([]byte("blockroots"), 32)} - state.StateRoots = [][]byte{bytesutil.PadTo([]byte("stateroots"), 32)} - state.HistoricalRoots = [][]byte{bytesutil.PadTo([]byte("historicalroots"), 32)} - state.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: bytesutil.PadTo([]byte("e1ddepositroot"), 32), - DepositCount: 6, - BlockHash: bytesutil.PadTo([]byte("e1dblockhash"), 32), - } - state.Eth1DataVotes = []*ethpbalpha.Eth1Data{{ - DepositRoot: bytesutil.PadTo([]byte("e1dvdepositroot"), 32), - DepositCount: 7, - BlockHash: bytesutil.PadTo([]byte("e1dvblockhash"), 32), - }} - state.Eth1DepositIndex = 8 - state.Validators = []*ethpbalpha.Validator{{ - PublicKey: bytesutil.PadTo([]byte("publickey"), 48), - WithdrawalCredentials: bytesutil.PadTo([]byte("withdrawalcredentials"), 32), - EffectiveBalance: 9, - Slashed: true, - ActivationEligibilityEpoch: 10, - ActivationEpoch: 11, - ExitEpoch: 12, - WithdrawableEpoch: 13, - }} - state.Balances = []uint64{14} - state.RandaoMixes = [][]byte{bytesutil.PadTo([]byte("randaomixes"), 32)} - state.Slashings = []uint64{15} - state.JustificationBits = bitfield.Bitvector4{1} - state.PreviousJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 30, - Root: bytesutil.PadTo([]byte("pjcroot"), 32), - } - state.CurrentJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 31, - Root: bytesutil.PadTo([]byte("cjcroot"), 32), - } - state.FinalizedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 32, - Root: bytesutil.PadTo([]byte("fcroot"), 32), - } - state.PreviousEpochParticipation = []byte("previousepochparticipation") - state.CurrentEpochParticipation = []byte("currentepochparticipation") - state.InactivityScores = []uint64{1, 2, 3} - state.CurrentSyncCommittee = ðpbalpha.SyncCommittee{ - Pubkeys: [][]byte{bytesutil.PadTo([]byte("cscpubkeys"), 48)}, - AggregatePubkey: bytesutil.PadTo([]byte("cscaggregatepubkey"), 48), - } - state.NextSyncCommittee = ðpbalpha.SyncCommittee{ - Pubkeys: [][]byte{bytesutil.PadTo([]byte("nscpubkeys"), 48)}, - AggregatePubkey: bytesutil.PadTo([]byte("nscaggregatepubkey"), 48), - } - return nil - }) - require.NoError(t, err) - - result, err := BeaconStateAltairToProto(source) - require.NoError(t, err) - require.NotNil(t, result) - assert.Equal(t, uint64(1), result.GenesisTime) - assert.DeepEqual(t, bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32), result.GenesisValidatorsRoot) - assert.Equal(t, primitives.Slot(2), result.Slot) - resultFork := result.Fork - require.NotNil(t, resultFork) - assert.DeepEqual(t, bytesutil.PadTo([]byte("123"), 4), resultFork.PreviousVersion) - assert.DeepEqual(t, bytesutil.PadTo([]byte("456"), 4), resultFork.CurrentVersion) - assert.Equal(t, primitives.Epoch(3), resultFork.Epoch) - resultLatestBlockHeader := result.LatestBlockHeader - require.NotNil(t, resultLatestBlockHeader) - assert.Equal(t, primitives.Slot(4), resultLatestBlockHeader.Slot) - assert.Equal(t, primitives.ValidatorIndex(5), resultLatestBlockHeader.ProposerIndex) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhparentroot"), 32), resultLatestBlockHeader.ParentRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhstateroot"), 32), resultLatestBlockHeader.StateRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhbodyroot"), 32), resultLatestBlockHeader.BodyRoot) - assert.Equal(t, 8192, len(result.BlockRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blockroots"), 32), result.BlockRoots[0]) - assert.Equal(t, 8192, len(result.StateRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("stateroots"), 32), result.StateRoots[0]) - assert.Equal(t, 1, len(result.HistoricalRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("historicalroots"), 32), result.HistoricalRoots[0]) - resultEth1Data := result.Eth1Data - require.NotNil(t, resultEth1Data) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1ddepositroot"), 32), resultEth1Data.DepositRoot) - assert.Equal(t, uint64(6), resultEth1Data.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dblockhash"), 32), resultEth1Data.BlockHash) - require.Equal(t, 1, len(result.Eth1DataVotes)) - resultEth1DataVote := result.Eth1DataVotes[0] - require.NotNil(t, resultEth1DataVote) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvdepositroot"), 32), resultEth1DataVote.DepositRoot) - assert.Equal(t, uint64(7), resultEth1DataVote.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvblockhash"), 32), resultEth1DataVote.BlockHash) - assert.Equal(t, uint64(8), result.Eth1DepositIndex) - require.Equal(t, 1, len(result.Validators)) - resultValidator := result.Validators[0] - require.NotNil(t, resultValidator) - assert.DeepEqual(t, bytesutil.PadTo([]byte("publickey"), 48), resultValidator.Pubkey) - assert.DeepEqual(t, bytesutil.PadTo([]byte("withdrawalcredentials"), 32), resultValidator.WithdrawalCredentials) - assert.Equal(t, uint64(9), resultValidator.EffectiveBalance) - assert.Equal(t, true, resultValidator.Slashed) - assert.Equal(t, primitives.Epoch(10), resultValidator.ActivationEligibilityEpoch) - assert.Equal(t, primitives.Epoch(11), resultValidator.ActivationEpoch) - assert.Equal(t, primitives.Epoch(12), resultValidator.ExitEpoch) - assert.Equal(t, primitives.Epoch(13), resultValidator.WithdrawableEpoch) - assert.DeepEqual(t, []uint64{14}, result.Balances) - assert.Equal(t, 65536, len(result.RandaoMixes)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("randaomixes"), 32), result.RandaoMixes[0]) - assert.DeepEqual(t, []uint64{15}, result.Slashings) - assert.DeepEqual(t, bitfield.Bitvector4{1}, result.JustificationBits) - resultPrevJustifiedCheckpoint := result.PreviousJustifiedCheckpoint - require.NotNil(t, resultPrevJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(30), resultPrevJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("pjcroot"), 32), resultPrevJustifiedCheckpoint.Root) - resultCurrJustifiedCheckpoint := result.CurrentJustifiedCheckpoint - require.NotNil(t, resultCurrJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(31), resultCurrJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cjcroot"), 32), resultCurrJustifiedCheckpoint.Root) - resultFinalizedCheckpoint := result.FinalizedCheckpoint - require.NotNil(t, resultFinalizedCheckpoint) - assert.Equal(t, primitives.Epoch(32), resultFinalizedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("fcroot"), 32), resultFinalizedCheckpoint.Root) - assert.DeepEqual(t, []byte("previousepochparticipation"), result.PreviousEpochParticipation) - assert.DeepEqual(t, []byte("currentepochparticipation"), result.CurrentEpochParticipation) - assert.DeepEqual(t, []uint64{1, 2, 3}, result.InactivityScores) - require.NotNil(t, result.CurrentSyncCommittee) - assert.DeepEqual(t, [][]byte{bytesutil.PadTo([]byte("cscpubkeys"), 48)}, result.CurrentSyncCommittee.Pubkeys) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cscaggregatepubkey"), 48), result.CurrentSyncCommittee.AggregatePubkey) - require.NotNil(t, result.NextSyncCommittee) - assert.DeepEqual(t, [][]byte{bytesutil.PadTo([]byte("nscpubkeys"), 48)}, result.NextSyncCommittee.Pubkeys) - assert.DeepEqual(t, bytesutil.PadTo([]byte("nscaggregatepubkey"), 48), result.NextSyncCommittee.AggregatePubkey) -} - -func TestBeaconStateBellatrixToProto(t *testing.T) { - source, err := util.NewBeaconStateBellatrix(util.FillRootsNaturalOptBellatrix, func(state *ethpbalpha.BeaconStateBellatrix) error { - state.GenesisTime = 1 - state.GenesisValidatorsRoot = bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32) - state.Slot = 2 - state.Fork = ðpbalpha.Fork{ - PreviousVersion: bytesutil.PadTo([]byte("123"), 4), - CurrentVersion: bytesutil.PadTo([]byte("456"), 4), - Epoch: 3, - } - state.LatestBlockHeader = ðpbalpha.BeaconBlockHeader{ - Slot: 4, - ProposerIndex: 5, - ParentRoot: bytesutil.PadTo([]byte("lbhparentroot"), 32), - StateRoot: bytesutil.PadTo([]byte("lbhstateroot"), 32), - BodyRoot: bytesutil.PadTo([]byte("lbhbodyroot"), 32), - } - state.BlockRoots = [][]byte{bytesutil.PadTo([]byte("blockroots"), 32)} - state.StateRoots = [][]byte{bytesutil.PadTo([]byte("stateroots"), 32)} - state.HistoricalRoots = [][]byte{bytesutil.PadTo([]byte("historicalroots"), 32)} - state.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: bytesutil.PadTo([]byte("e1ddepositroot"), 32), - DepositCount: 6, - BlockHash: bytesutil.PadTo([]byte("e1dblockhash"), 32), - } - state.Eth1DataVotes = []*ethpbalpha.Eth1Data{{ - DepositRoot: bytesutil.PadTo([]byte("e1dvdepositroot"), 32), - DepositCount: 7, - BlockHash: bytesutil.PadTo([]byte("e1dvblockhash"), 32), - }} - state.Eth1DepositIndex = 8 - state.Validators = []*ethpbalpha.Validator{{ - PublicKey: bytesutil.PadTo([]byte("publickey"), 48), - WithdrawalCredentials: bytesutil.PadTo([]byte("withdrawalcredentials"), 32), - EffectiveBalance: 9, - Slashed: true, - ActivationEligibilityEpoch: 10, - ActivationEpoch: 11, - ExitEpoch: 12, - WithdrawableEpoch: 13, - }} - state.Balances = []uint64{14} - state.RandaoMixes = [][]byte{bytesutil.PadTo([]byte("randaomixes"), 32)} - state.Slashings = []uint64{15} - state.JustificationBits = bitfield.Bitvector4{1} - state.PreviousJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 30, - Root: bytesutil.PadTo([]byte("pjcroot"), 32), - } - state.CurrentJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 31, - Root: bytesutil.PadTo([]byte("cjcroot"), 32), - } - state.FinalizedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 32, - Root: bytesutil.PadTo([]byte("fcroot"), 32), - } - state.PreviousEpochParticipation = []byte("previousepochparticipation") - state.CurrentEpochParticipation = []byte("currentepochparticipation") - state.InactivityScores = []uint64{1, 2, 3} - state.CurrentSyncCommittee = ðpbalpha.SyncCommittee{ - Pubkeys: [][]byte{bytesutil.PadTo([]byte("cscpubkeys"), 48)}, - AggregatePubkey: bytesutil.PadTo([]byte("cscaggregatepubkey"), 48), - } - state.NextSyncCommittee = ðpbalpha.SyncCommittee{ - Pubkeys: [][]byte{bytesutil.PadTo([]byte("nscpubkeys"), 48)}, - AggregatePubkey: bytesutil.PadTo([]byte("nscaggregatepubkey"), 48), - } - state.LatestExecutionPayloadHeader = &enginev1.ExecutionPayloadHeader{ - ParentHash: bytesutil.PadTo([]byte("parenthash"), 32), - FeeRecipient: bytesutil.PadTo([]byte("feerecipient"), 20), - StateRoot: bytesutil.PadTo([]byte("stateroot"), 32), - ReceiptsRoot: bytesutil.PadTo([]byte("receiptroot"), 32), - LogsBloom: bytesutil.PadTo([]byte("logsbloom"), 256), - PrevRandao: bytesutil.PadTo([]byte("prevrandao"), 32), - BlockNumber: 123, - GasLimit: 456, - GasUsed: 789, - Timestamp: 012, - ExtraData: []byte("extradata"), - BaseFeePerGas: bytesutil.PadTo([]byte("basefeepergas"), 32), - BlockHash: bytesutil.PadTo([]byte("blockhash"), 32), - TransactionsRoot: bytesutil.PadTo([]byte("transactionsroot"), 32), - } - return nil - }) - require.NoError(t, err) - - result, err := BeaconStateBellatrixToProto(source) - require.NoError(t, err) - require.NotNil(t, result) - assert.Equal(t, uint64(1), result.GenesisTime) - assert.DeepEqual(t, bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32), result.GenesisValidatorsRoot) - assert.Equal(t, primitives.Slot(2), result.Slot) - resultFork := result.Fork - require.NotNil(t, resultFork) - assert.DeepEqual(t, bytesutil.PadTo([]byte("123"), 4), resultFork.PreviousVersion) - assert.DeepEqual(t, bytesutil.PadTo([]byte("456"), 4), resultFork.CurrentVersion) - assert.Equal(t, primitives.Epoch(3), resultFork.Epoch) - resultLatestBlockHeader := result.LatestBlockHeader - require.NotNil(t, resultLatestBlockHeader) - assert.Equal(t, primitives.Slot(4), resultLatestBlockHeader.Slot) - assert.Equal(t, primitives.ValidatorIndex(5), resultLatestBlockHeader.ProposerIndex) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhparentroot"), 32), resultLatestBlockHeader.ParentRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhstateroot"), 32), resultLatestBlockHeader.StateRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhbodyroot"), 32), resultLatestBlockHeader.BodyRoot) - assert.Equal(t, 8192, len(result.BlockRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blockroots"), 32), result.BlockRoots[0]) - assert.Equal(t, 8192, len(result.StateRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("stateroots"), 32), result.StateRoots[0]) - assert.Equal(t, 1, len(result.HistoricalRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("historicalroots"), 32), result.HistoricalRoots[0]) - resultEth1Data := result.Eth1Data - require.NotNil(t, resultEth1Data) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1ddepositroot"), 32), resultEth1Data.DepositRoot) - assert.Equal(t, uint64(6), resultEth1Data.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dblockhash"), 32), resultEth1Data.BlockHash) - require.Equal(t, 1, len(result.Eth1DataVotes)) - resultEth1DataVote := result.Eth1DataVotes[0] - require.NotNil(t, resultEth1DataVote) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvdepositroot"), 32), resultEth1DataVote.DepositRoot) - assert.Equal(t, uint64(7), resultEth1DataVote.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvblockhash"), 32), resultEth1DataVote.BlockHash) - assert.Equal(t, uint64(8), result.Eth1DepositIndex) - require.Equal(t, 1, len(result.Validators)) - resultValidator := result.Validators[0] - require.NotNil(t, resultValidator) - assert.DeepEqual(t, bytesutil.PadTo([]byte("publickey"), 48), resultValidator.Pubkey) - assert.DeepEqual(t, bytesutil.PadTo([]byte("withdrawalcredentials"), 32), resultValidator.WithdrawalCredentials) - assert.Equal(t, uint64(9), resultValidator.EffectiveBalance) - assert.Equal(t, true, resultValidator.Slashed) - assert.Equal(t, primitives.Epoch(10), resultValidator.ActivationEligibilityEpoch) - assert.Equal(t, primitives.Epoch(11), resultValidator.ActivationEpoch) - assert.Equal(t, primitives.Epoch(12), resultValidator.ExitEpoch) - assert.Equal(t, primitives.Epoch(13), resultValidator.WithdrawableEpoch) - assert.DeepEqual(t, []uint64{14}, result.Balances) - assert.Equal(t, 65536, len(result.RandaoMixes)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("randaomixes"), 32), result.RandaoMixes[0]) - assert.DeepEqual(t, []uint64{15}, result.Slashings) - assert.DeepEqual(t, bitfield.Bitvector4{1}, result.JustificationBits) - resultPrevJustifiedCheckpoint := result.PreviousJustifiedCheckpoint - require.NotNil(t, resultPrevJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(30), resultPrevJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("pjcroot"), 32), resultPrevJustifiedCheckpoint.Root) - resultCurrJustifiedCheckpoint := result.CurrentJustifiedCheckpoint - require.NotNil(t, resultCurrJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(31), resultCurrJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cjcroot"), 32), resultCurrJustifiedCheckpoint.Root) - resultFinalizedCheckpoint := result.FinalizedCheckpoint - require.NotNil(t, resultFinalizedCheckpoint) - assert.Equal(t, primitives.Epoch(32), resultFinalizedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("fcroot"), 32), resultFinalizedCheckpoint.Root) - assert.DeepEqual(t, []byte("previousepochparticipation"), result.PreviousEpochParticipation) - assert.DeepEqual(t, []byte("currentepochparticipation"), result.CurrentEpochParticipation) - assert.DeepEqual(t, []uint64{1, 2, 3}, result.InactivityScores) - require.NotNil(t, result.CurrentSyncCommittee) - assert.DeepEqual(t, [][]byte{bytesutil.PadTo([]byte("cscpubkeys"), 48)}, result.CurrentSyncCommittee.Pubkeys) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cscaggregatepubkey"), 48), result.CurrentSyncCommittee.AggregatePubkey) - require.NotNil(t, result.NextSyncCommittee) - assert.DeepEqual(t, [][]byte{bytesutil.PadTo([]byte("nscpubkeys"), 48)}, result.NextSyncCommittee.Pubkeys) - assert.DeepEqual(t, bytesutil.PadTo([]byte("nscaggregatepubkey"), 48), result.NextSyncCommittee.AggregatePubkey) - resultLatestExecutionPayloadHeader := result.LatestExecutionPayloadHeader - require.NotNil(t, resultLatestExecutionPayloadHeader) - assert.DeepEqual(t, bytesutil.PadTo([]byte("parenthash"), 32), resultLatestExecutionPayloadHeader.ParentHash) - assert.DeepEqual(t, bytesutil.PadTo([]byte("feerecipient"), 20), resultLatestExecutionPayloadHeader.FeeRecipient) - assert.DeepEqual(t, bytesutil.PadTo([]byte("stateroot"), 32), resultLatestExecutionPayloadHeader.StateRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("receiptroot"), 32), resultLatestExecutionPayloadHeader.ReceiptsRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("logsbloom"), 256), resultLatestExecutionPayloadHeader.LogsBloom) - assert.DeepEqual(t, bytesutil.PadTo([]byte("prevrandao"), 32), resultLatestExecutionPayloadHeader.PrevRandao) - assert.Equal(t, uint64(123), resultLatestExecutionPayloadHeader.BlockNumber) - assert.Equal(t, uint64(456), resultLatestExecutionPayloadHeader.GasLimit) - assert.Equal(t, uint64(789), resultLatestExecutionPayloadHeader.GasUsed) - assert.Equal(t, uint64(012), resultLatestExecutionPayloadHeader.Timestamp) - assert.DeepEqual(t, []byte("extradata"), resultLatestExecutionPayloadHeader.ExtraData) - assert.DeepEqual(t, bytesutil.PadTo([]byte("basefeepergas"), 32), resultLatestExecutionPayloadHeader.BaseFeePerGas) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blockhash"), 32), resultLatestExecutionPayloadHeader.BlockHash) - assert.DeepEqual(t, bytesutil.PadTo([]byte("transactionsroot"), 32), resultLatestExecutionPayloadHeader.TransactionsRoot) -} - -func TestBeaconStateCapellaToProto(t *testing.T) { - source, err := util.NewBeaconStateCapella(util.FillRootsNaturalOptCapella, func(state *ethpbalpha.BeaconStateCapella) error { - state.GenesisTime = 1 - state.GenesisValidatorsRoot = bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32) - state.Slot = 2 - state.Fork = ðpbalpha.Fork{ - PreviousVersion: bytesutil.PadTo([]byte("123"), 4), - CurrentVersion: bytesutil.PadTo([]byte("456"), 4), - Epoch: 3, - } - state.LatestBlockHeader = ðpbalpha.BeaconBlockHeader{ - Slot: 4, - ProposerIndex: 5, - ParentRoot: bytesutil.PadTo([]byte("lbhparentroot"), 32), - StateRoot: bytesutil.PadTo([]byte("lbhstateroot"), 32), - BodyRoot: bytesutil.PadTo([]byte("lbhbodyroot"), 32), - } - state.BlockRoots = [][]byte{bytesutil.PadTo([]byte("blockroots"), 32)} - state.StateRoots = [][]byte{bytesutil.PadTo([]byte("stateroots"), 32)} - state.HistoricalRoots = [][]byte{bytesutil.PadTo([]byte("historicalroots"), 32)} - state.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: bytesutil.PadTo([]byte("e1ddepositroot"), 32), - DepositCount: 6, - BlockHash: bytesutil.PadTo([]byte("e1dblockhash"), 32), - } - state.Eth1DataVotes = []*ethpbalpha.Eth1Data{{ - DepositRoot: bytesutil.PadTo([]byte("e1dvdepositroot"), 32), - DepositCount: 7, - BlockHash: bytesutil.PadTo([]byte("e1dvblockhash"), 32), - }} - state.Eth1DepositIndex = 8 - state.Validators = []*ethpbalpha.Validator{{ - PublicKey: bytesutil.PadTo([]byte("publickey"), 48), - WithdrawalCredentials: bytesutil.PadTo([]byte("withdrawalcredentials"), 32), - EffectiveBalance: 9, - Slashed: true, - ActivationEligibilityEpoch: 10, - ActivationEpoch: 11, - ExitEpoch: 12, - WithdrawableEpoch: 13, - }} - state.Balances = []uint64{14} - state.RandaoMixes = [][]byte{bytesutil.PadTo([]byte("randaomixes"), 32)} - state.Slashings = []uint64{15} - state.JustificationBits = bitfield.Bitvector4{1} - state.PreviousJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 30, - Root: bytesutil.PadTo([]byte("pjcroot"), 32), - } - state.CurrentJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 31, - Root: bytesutil.PadTo([]byte("cjcroot"), 32), - } - state.FinalizedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 32, - Root: bytesutil.PadTo([]byte("fcroot"), 32), - } - state.PreviousEpochParticipation = []byte("previousepochparticipation") - state.CurrentEpochParticipation = []byte("currentepochparticipation") - state.InactivityScores = []uint64{1, 2, 3} - state.CurrentSyncCommittee = ðpbalpha.SyncCommittee{ - Pubkeys: [][]byte{bytesutil.PadTo([]byte("cscpubkeys"), 48)}, - AggregatePubkey: bytesutil.PadTo([]byte("cscaggregatepubkey"), 48), - } - state.NextSyncCommittee = ðpbalpha.SyncCommittee{ - Pubkeys: [][]byte{bytesutil.PadTo([]byte("nscpubkeys"), 48)}, - AggregatePubkey: bytesutil.PadTo([]byte("nscaggregatepubkey"), 48), - } - state.LatestExecutionPayloadHeader = &enginev1.ExecutionPayloadHeaderCapella{ - ParentHash: bytesutil.PadTo([]byte("parenthash"), 32), - FeeRecipient: bytesutil.PadTo([]byte("feerecipient"), 20), - StateRoot: bytesutil.PadTo([]byte("stateroot"), 32), - ReceiptsRoot: bytesutil.PadTo([]byte("receiptroot"), 32), - LogsBloom: bytesutil.PadTo([]byte("logsbloom"), 256), - PrevRandao: bytesutil.PadTo([]byte("prevrandao"), 32), - BlockNumber: 123, - GasLimit: 456, - GasUsed: 789, - Timestamp: 012, - ExtraData: []byte("extradata"), - BaseFeePerGas: bytesutil.PadTo([]byte("basefeepergas"), 32), - BlockHash: bytesutil.PadTo([]byte("blockhash"), 32), - TransactionsRoot: bytesutil.PadTo([]byte("transactionsroot"), 32), - WithdrawalsRoot: bytesutil.PadTo([]byte("withdrawalsroot"), 32), - } - state.NextWithdrawalIndex = 123 - state.NextWithdrawalValidatorIndex = 123 - state.HistoricalSummaries = []*ethpbalpha.HistoricalSummary{ - { - BlockSummaryRoot: bytesutil.PadTo([]byte("blocksummaryroot"), 32), - StateSummaryRoot: bytesutil.PadTo([]byte("statesummaryroot"), 32), - }, - { - BlockSummaryRoot: bytesutil.PadTo([]byte("blocksummaryroot2"), 32), - StateSummaryRoot: bytesutil.PadTo([]byte("statesummaryroot2"), 32), - }} - return nil - }) - require.NoError(t, err) - - result, err := BeaconStateCapellaToProto(source) - require.NoError(t, err) - require.NotNil(t, result) - assert.Equal(t, uint64(1), result.GenesisTime) - assert.DeepEqual(t, bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32), result.GenesisValidatorsRoot) - assert.Equal(t, primitives.Slot(2), result.Slot) - resultFork := result.Fork - require.NotNil(t, resultFork) - assert.DeepEqual(t, bytesutil.PadTo([]byte("123"), 4), resultFork.PreviousVersion) - assert.DeepEqual(t, bytesutil.PadTo([]byte("456"), 4), resultFork.CurrentVersion) - assert.Equal(t, primitives.Epoch(3), resultFork.Epoch) - resultLatestBlockHeader := result.LatestBlockHeader - require.NotNil(t, resultLatestBlockHeader) - assert.Equal(t, primitives.Slot(4), resultLatestBlockHeader.Slot) - assert.Equal(t, primitives.ValidatorIndex(5), resultLatestBlockHeader.ProposerIndex) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhparentroot"), 32), resultLatestBlockHeader.ParentRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhstateroot"), 32), resultLatestBlockHeader.StateRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhbodyroot"), 32), resultLatestBlockHeader.BodyRoot) - assert.Equal(t, 8192, len(result.BlockRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blockroots"), 32), result.BlockRoots[0]) - assert.Equal(t, 8192, len(result.StateRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("stateroots"), 32), result.StateRoots[0]) - assert.Equal(t, 1, len(result.HistoricalRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("historicalroots"), 32), result.HistoricalRoots[0]) - resultEth1Data := result.Eth1Data - require.NotNil(t, resultEth1Data) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1ddepositroot"), 32), resultEth1Data.DepositRoot) - assert.Equal(t, uint64(6), resultEth1Data.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dblockhash"), 32), resultEth1Data.BlockHash) - require.Equal(t, 1, len(result.Eth1DataVotes)) - resultEth1DataVote := result.Eth1DataVotes[0] - require.NotNil(t, resultEth1DataVote) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvdepositroot"), 32), resultEth1DataVote.DepositRoot) - assert.Equal(t, uint64(7), resultEth1DataVote.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvblockhash"), 32), resultEth1DataVote.BlockHash) - assert.Equal(t, uint64(8), result.Eth1DepositIndex) - require.Equal(t, 1, len(result.Validators)) - resultValidator := result.Validators[0] - require.NotNil(t, resultValidator) - assert.DeepEqual(t, bytesutil.PadTo([]byte("publickey"), 48), resultValidator.Pubkey) - assert.DeepEqual(t, bytesutil.PadTo([]byte("withdrawalcredentials"), 32), resultValidator.WithdrawalCredentials) - assert.Equal(t, uint64(9), resultValidator.EffectiveBalance) - assert.Equal(t, true, resultValidator.Slashed) - assert.Equal(t, primitives.Epoch(10), resultValidator.ActivationEligibilityEpoch) - assert.Equal(t, primitives.Epoch(11), resultValidator.ActivationEpoch) - assert.Equal(t, primitives.Epoch(12), resultValidator.ExitEpoch) - assert.Equal(t, primitives.Epoch(13), resultValidator.WithdrawableEpoch) - assert.DeepEqual(t, []uint64{14}, result.Balances) - assert.Equal(t, 65536, len(result.RandaoMixes)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("randaomixes"), 32), result.RandaoMixes[0]) - assert.DeepEqual(t, []uint64{15}, result.Slashings) - assert.DeepEqual(t, bitfield.Bitvector4{1}, result.JustificationBits) - resultPrevJustifiedCheckpoint := result.PreviousJustifiedCheckpoint - require.NotNil(t, resultPrevJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(30), resultPrevJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("pjcroot"), 32), resultPrevJustifiedCheckpoint.Root) - resultCurrJustifiedCheckpoint := result.CurrentJustifiedCheckpoint - require.NotNil(t, resultCurrJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(31), resultCurrJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cjcroot"), 32), resultCurrJustifiedCheckpoint.Root) - resultFinalizedCheckpoint := result.FinalizedCheckpoint - require.NotNil(t, resultFinalizedCheckpoint) - assert.Equal(t, primitives.Epoch(32), resultFinalizedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("fcroot"), 32), resultFinalizedCheckpoint.Root) - assert.DeepEqual(t, []byte("previousepochparticipation"), result.PreviousEpochParticipation) - assert.DeepEqual(t, []byte("currentepochparticipation"), result.CurrentEpochParticipation) - assert.DeepEqual(t, []uint64{1, 2, 3}, result.InactivityScores) - require.NotNil(t, result.CurrentSyncCommittee) - assert.DeepEqual(t, [][]byte{bytesutil.PadTo([]byte("cscpubkeys"), 48)}, result.CurrentSyncCommittee.Pubkeys) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cscaggregatepubkey"), 48), result.CurrentSyncCommittee.AggregatePubkey) - require.NotNil(t, result.NextSyncCommittee) - assert.DeepEqual(t, [][]byte{bytesutil.PadTo([]byte("nscpubkeys"), 48)}, result.NextSyncCommittee.Pubkeys) - assert.DeepEqual(t, bytesutil.PadTo([]byte("nscaggregatepubkey"), 48), result.NextSyncCommittee.AggregatePubkey) - resultLatestExecutionPayloadHeader := result.LatestExecutionPayloadHeader - require.NotNil(t, resultLatestExecutionPayloadHeader) - assert.DeepEqual(t, bytesutil.PadTo([]byte("parenthash"), 32), resultLatestExecutionPayloadHeader.ParentHash) - assert.DeepEqual(t, bytesutil.PadTo([]byte("feerecipient"), 20), resultLatestExecutionPayloadHeader.FeeRecipient) - assert.DeepEqual(t, bytesutil.PadTo([]byte("stateroot"), 32), resultLatestExecutionPayloadHeader.StateRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("receiptroot"), 32), resultLatestExecutionPayloadHeader.ReceiptsRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("logsbloom"), 256), resultLatestExecutionPayloadHeader.LogsBloom) - assert.DeepEqual(t, bytesutil.PadTo([]byte("prevrandao"), 32), resultLatestExecutionPayloadHeader.PrevRandao) - assert.Equal(t, uint64(123), resultLatestExecutionPayloadHeader.BlockNumber) - assert.Equal(t, uint64(456), resultLatestExecutionPayloadHeader.GasLimit) - assert.Equal(t, uint64(789), resultLatestExecutionPayloadHeader.GasUsed) - assert.Equal(t, uint64(012), resultLatestExecutionPayloadHeader.Timestamp) - assert.DeepEqual(t, []byte("extradata"), resultLatestExecutionPayloadHeader.ExtraData) - assert.DeepEqual(t, bytesutil.PadTo([]byte("basefeepergas"), 32), resultLatestExecutionPayloadHeader.BaseFeePerGas) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blockhash"), 32), resultLatestExecutionPayloadHeader.BlockHash) - assert.DeepEqual(t, bytesutil.PadTo([]byte("transactionsroot"), 32), resultLatestExecutionPayloadHeader.TransactionsRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("withdrawalsroot"), 32), resultLatestExecutionPayloadHeader.WithdrawalsRoot) - assert.Equal(t, uint64(123), result.NextWithdrawalIndex) - assert.Equal(t, primitives.ValidatorIndex(123), result.NextWithdrawalValidatorIndex) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blocksummaryroot"), 32), result.HistoricalSummaries[0].BlockSummaryRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("statesummaryroot"), 32), result.HistoricalSummaries[0].StateSummaryRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blocksummaryroot2"), 32), result.HistoricalSummaries[1].BlockSummaryRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("statesummaryroot2"), 32), result.HistoricalSummaries[1].StateSummaryRoot) -} - -func TestBeaconStateDenebToProto(t *testing.T) { - source, err := util.NewBeaconStateDeneb(util.FillRootsNaturalOptDeneb, func(state *ethpbalpha.BeaconStateDeneb) error { - state.GenesisTime = 1 - state.GenesisValidatorsRoot = bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32) - state.Slot = 2 - state.Fork = ðpbalpha.Fork{ - PreviousVersion: bytesutil.PadTo([]byte("123"), 4), - CurrentVersion: bytesutil.PadTo([]byte("456"), 4), - Epoch: 3, - } - state.LatestBlockHeader = ðpbalpha.BeaconBlockHeader{ - Slot: 4, - ProposerIndex: 5, - ParentRoot: bytesutil.PadTo([]byte("lbhparentroot"), 32), - StateRoot: bytesutil.PadTo([]byte("lbhstateroot"), 32), - BodyRoot: bytesutil.PadTo([]byte("lbhbodyroot"), 32), - } - state.BlockRoots = [][]byte{bytesutil.PadTo([]byte("blockroots"), 32)} - state.StateRoots = [][]byte{bytesutil.PadTo([]byte("stateroots"), 32)} - state.HistoricalRoots = [][]byte{bytesutil.PadTo([]byte("historicalroots"), 32)} - state.Eth1Data = ðpbalpha.Eth1Data{ - DepositRoot: bytesutil.PadTo([]byte("e1ddepositroot"), 32), - DepositCount: 6, - BlockHash: bytesutil.PadTo([]byte("e1dblockhash"), 32), - } - state.Eth1DataVotes = []*ethpbalpha.Eth1Data{{ - DepositRoot: bytesutil.PadTo([]byte("e1dvdepositroot"), 32), - DepositCount: 7, - BlockHash: bytesutil.PadTo([]byte("e1dvblockhash"), 32), - }} - state.Eth1DepositIndex = 8 - state.Validators = []*ethpbalpha.Validator{{ - PublicKey: bytesutil.PadTo([]byte("publickey"), 48), - WithdrawalCredentials: bytesutil.PadTo([]byte("withdrawalcredentials"), 32), - EffectiveBalance: 9, - Slashed: true, - ActivationEligibilityEpoch: 10, - ActivationEpoch: 11, - ExitEpoch: 12, - WithdrawableEpoch: 13, - }} - state.Balances = []uint64{14} - state.RandaoMixes = [][]byte{bytesutil.PadTo([]byte("randaomixes"), 32)} - state.Slashings = []uint64{15} - state.JustificationBits = bitfield.Bitvector4{1} - state.PreviousJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 30, - Root: bytesutil.PadTo([]byte("pjcroot"), 32), - } - state.CurrentJustifiedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 31, - Root: bytesutil.PadTo([]byte("cjcroot"), 32), - } - state.FinalizedCheckpoint = ðpbalpha.Checkpoint{ - Epoch: 32, - Root: bytesutil.PadTo([]byte("fcroot"), 32), - } - state.PreviousEpochParticipation = []byte("previousepochparticipation") - state.CurrentEpochParticipation = []byte("currentepochparticipation") - state.InactivityScores = []uint64{1, 2, 3} - state.CurrentSyncCommittee = ðpbalpha.SyncCommittee{ - Pubkeys: [][]byte{bytesutil.PadTo([]byte("cscpubkeys"), 48)}, - AggregatePubkey: bytesutil.PadTo([]byte("cscaggregatepubkey"), 48), - } - state.NextSyncCommittee = ðpbalpha.SyncCommittee{ - Pubkeys: [][]byte{bytesutil.PadTo([]byte("nscpubkeys"), 48)}, - AggregatePubkey: bytesutil.PadTo([]byte("nscaggregatepubkey"), 48), - } - state.LatestExecutionPayloadHeader = &enginev1.ExecutionPayloadHeaderDeneb{ - ParentHash: bytesutil.PadTo([]byte("parenthash"), 32), - FeeRecipient: bytesutil.PadTo([]byte("feerecipient"), 20), - StateRoot: bytesutil.PadTo([]byte("stateroot"), 32), - ReceiptsRoot: bytesutil.PadTo([]byte("receiptroot"), 32), - LogsBloom: bytesutil.PadTo([]byte("logsbloom"), 256), - PrevRandao: bytesutil.PadTo([]byte("prevrandao"), 32), - BlockNumber: 123, - GasLimit: 456, - GasUsed: 789, - Timestamp: 012, - ExtraData: []byte("extradata"), - BaseFeePerGas: bytesutil.PadTo([]byte("basefeepergas"), 32), - BlockHash: bytesutil.PadTo([]byte("blockhash"), 32), - TransactionsRoot: bytesutil.PadTo([]byte("transactionsroot"), 32), - WithdrawalsRoot: bytesutil.PadTo([]byte("withdrawalsroot"), 32), - BlobGasUsed: 343, - ExcessBlobGas: 676, - } - state.NextWithdrawalIndex = 123 - state.NextWithdrawalValidatorIndex = 123 - state.HistoricalSummaries = []*ethpbalpha.HistoricalSummary{ - { - BlockSummaryRoot: bytesutil.PadTo([]byte("blocksummaryroot"), 32), - StateSummaryRoot: bytesutil.PadTo([]byte("statesummaryroot"), 32), - }, - { - BlockSummaryRoot: bytesutil.PadTo([]byte("blocksummaryroot2"), 32), - StateSummaryRoot: bytesutil.PadTo([]byte("statesummaryroot2"), 32), - }} - return nil - }) - require.NoError(t, err) - - result, err := BeaconStateDenebToProto(source) - require.NoError(t, err) - require.NotNil(t, result) - assert.Equal(t, uint64(1), result.GenesisTime) - assert.DeepEqual(t, bytesutil.PadTo([]byte("genesisvalidatorsroot"), 32), result.GenesisValidatorsRoot) - assert.Equal(t, primitives.Slot(2), result.Slot) - resultFork := result.Fork - require.NotNil(t, resultFork) - assert.DeepEqual(t, bytesutil.PadTo([]byte("123"), 4), resultFork.PreviousVersion) - assert.DeepEqual(t, bytesutil.PadTo([]byte("456"), 4), resultFork.CurrentVersion) - assert.Equal(t, primitives.Epoch(3), resultFork.Epoch) - resultLatestBlockHeader := result.LatestBlockHeader - require.NotNil(t, resultLatestBlockHeader) - assert.Equal(t, primitives.Slot(4), resultLatestBlockHeader.Slot) - assert.Equal(t, primitives.ValidatorIndex(5), resultLatestBlockHeader.ProposerIndex) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhparentroot"), 32), resultLatestBlockHeader.ParentRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhstateroot"), 32), resultLatestBlockHeader.StateRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("lbhbodyroot"), 32), resultLatestBlockHeader.BodyRoot) - assert.Equal(t, 8192, len(result.BlockRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blockroots"), 32), result.BlockRoots[0]) - assert.Equal(t, 8192, len(result.StateRoots)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("stateroots"), 32), result.StateRoots[0]) - resultEth1Data := result.Eth1Data - require.NotNil(t, resultEth1Data) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1ddepositroot"), 32), resultEth1Data.DepositRoot) - assert.Equal(t, uint64(6), resultEth1Data.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dblockhash"), 32), resultEth1Data.BlockHash) - require.Equal(t, 1, len(result.Eth1DataVotes)) - resultEth1DataVote := result.Eth1DataVotes[0] - require.NotNil(t, resultEth1DataVote) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvdepositroot"), 32), resultEth1DataVote.DepositRoot) - assert.Equal(t, uint64(7), resultEth1DataVote.DepositCount) - assert.DeepEqual(t, bytesutil.PadTo([]byte("e1dvblockhash"), 32), resultEth1DataVote.BlockHash) - assert.Equal(t, uint64(8), result.Eth1DepositIndex) - require.Equal(t, 1, len(result.Validators)) - resultValidator := result.Validators[0] - require.NotNil(t, resultValidator) - assert.DeepEqual(t, bytesutil.PadTo([]byte("publickey"), 48), resultValidator.Pubkey) - assert.DeepEqual(t, bytesutil.PadTo([]byte("withdrawalcredentials"), 32), resultValidator.WithdrawalCredentials) - assert.Equal(t, uint64(9), resultValidator.EffectiveBalance) - assert.Equal(t, true, resultValidator.Slashed) - assert.Equal(t, primitives.Epoch(10), resultValidator.ActivationEligibilityEpoch) - assert.Equal(t, primitives.Epoch(11), resultValidator.ActivationEpoch) - assert.Equal(t, primitives.Epoch(12), resultValidator.ExitEpoch) - assert.Equal(t, primitives.Epoch(13), resultValidator.WithdrawableEpoch) - assert.DeepEqual(t, []uint64{14}, result.Balances) - assert.Equal(t, 65536, len(result.RandaoMixes)) - assert.DeepEqual(t, bytesutil.PadTo([]byte("randaomixes"), 32), result.RandaoMixes[0]) - assert.DeepEqual(t, []uint64{15}, result.Slashings) - assert.DeepEqual(t, bitfield.Bitvector4{1}, result.JustificationBits) - resultPrevJustifiedCheckpoint := result.PreviousJustifiedCheckpoint - require.NotNil(t, resultPrevJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(30), resultPrevJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("pjcroot"), 32), resultPrevJustifiedCheckpoint.Root) - resultCurrJustifiedCheckpoint := result.CurrentJustifiedCheckpoint - require.NotNil(t, resultCurrJustifiedCheckpoint) - assert.Equal(t, primitives.Epoch(31), resultCurrJustifiedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cjcroot"), 32), resultCurrJustifiedCheckpoint.Root) - resultFinalizedCheckpoint := result.FinalizedCheckpoint - require.NotNil(t, resultFinalizedCheckpoint) - assert.Equal(t, primitives.Epoch(32), resultFinalizedCheckpoint.Epoch) - assert.DeepEqual(t, bytesutil.PadTo([]byte("fcroot"), 32), resultFinalizedCheckpoint.Root) - assert.DeepEqual(t, []byte("previousepochparticipation"), result.PreviousEpochParticipation) - assert.DeepEqual(t, []byte("currentepochparticipation"), result.CurrentEpochParticipation) - assert.DeepEqual(t, []uint64{1, 2, 3}, result.InactivityScores) - require.NotNil(t, result.CurrentSyncCommittee) - assert.DeepEqual(t, [][]byte{bytesutil.PadTo([]byte("cscpubkeys"), 48)}, result.CurrentSyncCommittee.Pubkeys) - assert.DeepEqual(t, bytesutil.PadTo([]byte("cscaggregatepubkey"), 48), result.CurrentSyncCommittee.AggregatePubkey) - require.NotNil(t, result.NextSyncCommittee) - assert.DeepEqual(t, [][]byte{bytesutil.PadTo([]byte("nscpubkeys"), 48)}, result.NextSyncCommittee.Pubkeys) - assert.DeepEqual(t, bytesutil.PadTo([]byte("nscaggregatepubkey"), 48), result.NextSyncCommittee.AggregatePubkey) - resultLatestExecutionPayloadHeader := result.LatestExecutionPayloadHeader - require.NotNil(t, resultLatestExecutionPayloadHeader) - assert.DeepEqual(t, bytesutil.PadTo([]byte("parenthash"), 32), resultLatestExecutionPayloadHeader.ParentHash) - assert.DeepEqual(t, bytesutil.PadTo([]byte("feerecipient"), 20), resultLatestExecutionPayloadHeader.FeeRecipient) - assert.DeepEqual(t, bytesutil.PadTo([]byte("stateroot"), 32), resultLatestExecutionPayloadHeader.StateRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("receiptroot"), 32), resultLatestExecutionPayloadHeader.ReceiptsRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("logsbloom"), 256), resultLatestExecutionPayloadHeader.LogsBloom) - assert.DeepEqual(t, bytesutil.PadTo([]byte("prevrandao"), 32), resultLatestExecutionPayloadHeader.PrevRandao) - assert.Equal(t, uint64(123), resultLatestExecutionPayloadHeader.BlockNumber) - assert.Equal(t, uint64(456), resultLatestExecutionPayloadHeader.GasLimit) - assert.Equal(t, uint64(789), resultLatestExecutionPayloadHeader.GasUsed) - assert.Equal(t, uint64(012), resultLatestExecutionPayloadHeader.Timestamp) - assert.DeepEqual(t, []byte("extradata"), resultLatestExecutionPayloadHeader.ExtraData) - assert.DeepEqual(t, bytesutil.PadTo([]byte("basefeepergas"), 32), resultLatestExecutionPayloadHeader.BaseFeePerGas) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blockhash"), 32), resultLatestExecutionPayloadHeader.BlockHash) - assert.DeepEqual(t, bytesutil.PadTo([]byte("transactionsroot"), 32), resultLatestExecutionPayloadHeader.TransactionsRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("withdrawalsroot"), 32), resultLatestExecutionPayloadHeader.WithdrawalsRoot) - assert.DeepEqual(t, uint64(343), resultLatestExecutionPayloadHeader.BlobGasUsed) - assert.DeepEqual(t, uint64(676), resultLatestExecutionPayloadHeader.ExcessBlobGas) - assert.Equal(t, uint64(123), result.NextWithdrawalIndex) - assert.Equal(t, primitives.ValidatorIndex(123), result.NextWithdrawalValidatorIndex) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blocksummaryroot"), 32), result.HistoricalSummaries[0].BlockSummaryRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("statesummaryroot"), 32), result.HistoricalSummaries[0].StateSummaryRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("blocksummaryroot2"), 32), result.HistoricalSummaries[1].BlockSummaryRoot) - assert.DeepEqual(t, bytesutil.PadTo([]byte("statesummaryroot2"), 32), result.HistoricalSummaries[1].StateSummaryRoot) -} - -func TestV1Alpha1SignedBLSToExecChangeToV2(t *testing.T) { - alphaChange := ðpbalpha.SignedBLSToExecutionChange{ - Message: ðpbalpha.BLSToExecutionChange{ - ValidatorIndex: validatorIndex, - FromBlsPubkey: bytesutil.PadTo([]byte("fromblspubkey"), 48), - ToExecutionAddress: bytesutil.PadTo([]byte("toexecutionaddress"), 20), - }, - Signature: signature, - } - change := V1Alpha1SignedBLSToExecChangeToV2(alphaChange) - require.NotNil(t, change) - require.NotNil(t, change.Message) - assert.DeepEqual(t, signature, change.Signature) - assert.Equal(t, validatorIndex, change.Message.ValidatorIndex) - assert.DeepEqual(t, bytesutil.PadTo([]byte("fromblspubkey"), 48), change.Message.FromBlsPubkey) - assert.DeepEqual(t, bytesutil.PadTo([]byte("toexecutionaddress"), 20), change.Message.ToExecutionAddress) -} diff --git a/proto/migration/v2_to_v1alpha1.go b/proto/migration/v2_to_v1alpha1.go deleted file mode 100644 index e8392f1fe..000000000 --- a/proto/migration/v2_to_v1alpha1.go +++ /dev/null @@ -1,113 +0,0 @@ -package migration - -import ( - "github.com/pkg/errors" - ethpbv2 "github.com/prysmaticlabs/prysm/v5/proto/eth/v2" - ethpbalpha "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1" - "google.golang.org/protobuf/proto" -) - -// AltairToV1Alpha1SignedBlock converts a v2 SignedBeaconBlockAltair proto to a v1alpha1 proto. -func AltairToV1Alpha1SignedBlock(altairBlk *ethpbv2.SignedBeaconBlockAltair) (*ethpbalpha.SignedBeaconBlockAltair, error) { - marshaledBlk, err := proto.Marshal(altairBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1Block := ðpbalpha.SignedBeaconBlockAltair{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1Block, nil -} - -// BellatrixToV1Alpha1SignedBlock converts a v2 SignedBeaconBlockBellatrix proto to a v1alpha1 proto. -func BellatrixToV1Alpha1SignedBlock(bellatrixBlk *ethpbv2.SignedBeaconBlockBellatrix) (*ethpbalpha.SignedBeaconBlockBellatrix, error) { - marshaledBlk, err := proto.Marshal(bellatrixBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1Block := ðpbalpha.SignedBeaconBlockBellatrix{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1Block, nil -} - -// CapellaToV1Alpha1SignedBlock converts a v2 SignedBeaconBlockCapella proto to a v1alpha1 proto. -func CapellaToV1Alpha1SignedBlock(capellaBlk *ethpbv2.SignedBeaconBlockCapella) (*ethpbalpha.SignedBeaconBlockCapella, error) { - marshaledBlk, err := proto.Marshal(capellaBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1Block := ðpbalpha.SignedBeaconBlockCapella{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1Block, nil -} - -// DenebToV1Alpha1SignedBlock converts a v2 SignedBeaconBlockDeneb proto to a v1alpha1 proto. -func DenebToV1Alpha1SignedBlock(denebBlk *ethpbv2.SignedBeaconBlockDeneb) (*ethpbalpha.SignedBeaconBlockDeneb, error) { - marshaledBlk, err := proto.Marshal(denebBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1Block := ðpbalpha.SignedBeaconBlockDeneb{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1Block, nil -} - -// V2BeaconBlockDenebToV1Alpha1 converts a v2 Deneb beacon block to a v1alpha1 -// Deneb block. -func V2BeaconBlockDenebToV1Alpha1(v2block *ethpbv2.BeaconBlockDeneb) (*ethpbalpha.BeaconBlockDeneb, error) { - marshaledBlk, err := proto.Marshal(v2block) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1block := ðpbalpha.BeaconBlockDeneb{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1block, nil -} - -// BlindedBellatrixToV1Alpha1SignedBlock converts a v2 SignedBlindedBeaconBlockBellatrix proto to a v1alpha1 proto. -func BlindedBellatrixToV1Alpha1SignedBlock(bellatrixBlk *ethpbv2.SignedBlindedBeaconBlockBellatrix) (*ethpbalpha.SignedBlindedBeaconBlockBellatrix, error) { - marshaledBlk, err := proto.Marshal(bellatrixBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1Block := ðpbalpha.SignedBlindedBeaconBlockBellatrix{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1Block, nil -} - -// BlindedCapellaToV1Alpha1SignedBlock converts a v2 SignedBlindedBeaconBlockCapella proto to a v1alpha1 proto. -func BlindedCapellaToV1Alpha1SignedBlock(capellaBlk *ethpbv2.SignedBlindedBeaconBlockCapella) (*ethpbalpha.SignedBlindedBeaconBlockCapella, error) { - marshaledBlk, err := proto.Marshal(capellaBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1Block := ðpbalpha.SignedBlindedBeaconBlockCapella{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1Block, nil -} - -// BlindedDenebToV1Alpha1SignedBlock converts a v2 SignedBlindedBeaconBlockDeneb proto to a v1alpha1 proto. -func BlindedDenebToV1Alpha1SignedBlock(denebBlk *ethpbv2.SignedBlindedBeaconBlockDeneb) (*ethpbalpha.SignedBlindedBeaconBlockDeneb, error) { - marshaledBlk, err := proto.Marshal(denebBlk) - if err != nil { - return nil, errors.Wrap(err, "could not marshal block") - } - v1alpha1Block := ðpbalpha.SignedBlindedBeaconBlockDeneb{} - if err := proto.Unmarshal(marshaledBlk, v1alpha1Block); err != nil { - return nil, errors.Wrap(err, "could not unmarshal block") - } - return v1alpha1Block, nil -} diff --git a/proto/migration/v2_to_v1alpha1_test.go b/proto/migration/v2_to_v1alpha1_test.go deleted file mode 100644 index 01c656e4e..000000000 --- a/proto/migration/v2_to_v1alpha1_test.go +++ /dev/null @@ -1,132 +0,0 @@ -package migration - -import ( - "testing" - - "github.com/prysmaticlabs/go-bitfield" - enginev1 "github.com/prysmaticlabs/prysm/v5/proto/engine/v1" - ethpbv1 "github.com/prysmaticlabs/prysm/v5/proto/eth/v1" - ethpbv2 "github.com/prysmaticlabs/prysm/v5/proto/eth/v2" - "github.com/prysmaticlabs/prysm/v5/testing/assert" - "github.com/prysmaticlabs/prysm/v5/testing/require" - "github.com/prysmaticlabs/prysm/v5/testing/util" -) - -func Test_AltairToV1Alpha1SignedBlock(t *testing.T) { - v2Block := util.HydrateV2AltairSignedBeaconBlock(ðpbv2.SignedBeaconBlockAltair{}) - v2Block.Message.Slot = slot - v2Block.Message.ProposerIndex = validatorIndex - v2Block.Message.ParentRoot = parentRoot - v2Block.Message.StateRoot = stateRoot - v2Block.Message.Body.RandaoReveal = randaoReveal - v2Block.Message.Body.Eth1Data = ðpbv1.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - syncCommitteeBits := bitfield.NewBitvector512() - syncCommitteeBits.SetBitAt(100, true) - v2Block.Message.Body.SyncAggregate = ðpbv1.SyncAggregate{ - SyncCommitteeBits: syncCommitteeBits, - SyncCommitteeSignature: signature, - } - v2Block.Signature = signature - - alphaBlock, err := AltairToV1Alpha1SignedBlock(v2Block) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v2Root, err := v2Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v2Root, alphaRoot) -} - -func Test_BellatrixToV1Alpha1SignedBlock(t *testing.T) { - v2Block := util.HydrateV2BellatrixSignedBeaconBlock(ðpbv2.SignedBeaconBlockBellatrix{}) - v2Block.Message.Slot = slot - v2Block.Message.ProposerIndex = validatorIndex - v2Block.Message.ParentRoot = parentRoot - v2Block.Message.StateRoot = stateRoot - v2Block.Message.Body.RandaoReveal = randaoReveal - v2Block.Message.Body.Eth1Data = ðpbv1.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - syncCommitteeBits := bitfield.NewBitvector512() - syncCommitteeBits.SetBitAt(100, true) - v2Block.Message.Body.SyncAggregate = ðpbv1.SyncAggregate{ - SyncCommitteeBits: syncCommitteeBits, - SyncCommitteeSignature: signature, - } - v2Block.Message.Body.ExecutionPayload = &enginev1.ExecutionPayload{ - ParentHash: parentHash, - FeeRecipient: feeRecipient, - StateRoot: stateRoot, - ReceiptsRoot: receiptsRoot, - LogsBloom: logsBloom, - PrevRandao: prevRandao, - BlockNumber: blockNumber, - GasLimit: gasLimit, - GasUsed: gasUsed, - Timestamp: timestamp, - ExtraData: extraData, - BaseFeePerGas: baseFeePerGas, - BlockHash: blockHash, - Transactions: [][]byte{[]byte("transaction1"), []byte("transaction2")}, - } - v2Block.Signature = signature - - alphaBlock, err := BellatrixToV1Alpha1SignedBlock(v2Block) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v2Root, err := v2Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v2Root, alphaRoot) -} - -func Test_BlindedBellatrixToV1Alpha1SignedBlock(t *testing.T) { - v2Block := util.HydrateV2SignedBlindedBeaconBlockBellatrix(ðpbv2.SignedBlindedBeaconBlockBellatrix{}) - v2Block.Message.Slot = slot - v2Block.Message.ProposerIndex = validatorIndex - v2Block.Message.ParentRoot = parentRoot - v2Block.Message.StateRoot = stateRoot - v2Block.Message.Body.RandaoReveal = randaoReveal - v2Block.Message.Body.Eth1Data = ðpbv1.Eth1Data{ - DepositRoot: depositRoot, - DepositCount: depositCount, - BlockHash: blockHash, - } - syncCommitteeBits := bitfield.NewBitvector512() - syncCommitteeBits.SetBitAt(100, true) - v2Block.Message.Body.SyncAggregate = ðpbv1.SyncAggregate{ - SyncCommitteeBits: syncCommitteeBits, - SyncCommitteeSignature: signature, - } - v2Block.Message.Body.ExecutionPayloadHeader = &enginev1.ExecutionPayloadHeader{ - ParentHash: parentHash, - FeeRecipient: feeRecipient, - StateRoot: stateRoot, - ReceiptsRoot: receiptsRoot, - LogsBloom: logsBloom, - PrevRandao: prevRandao, - BlockNumber: blockNumber, - GasLimit: gasLimit, - GasUsed: gasUsed, - Timestamp: timestamp, - ExtraData: extraData, - BaseFeePerGas: baseFeePerGas, - BlockHash: blockHash, - TransactionsRoot: transactionsRoot, - } - v2Block.Signature = signature - - alphaBlock, err := BlindedBellatrixToV1Alpha1SignedBlock(v2Block) - require.NoError(t, err) - alphaRoot, err := alphaBlock.HashTreeRoot() - require.NoError(t, err) - v2Root, err := v2Block.HashTreeRoot() - require.NoError(t, err) - assert.DeepEqual(t, v2Root, alphaRoot) -} diff --git a/proto/testing/test.pb.go b/proto/testing/test.pb.go index 74d61e8d7..6d3e0aa6a 100755 --- a/proto/testing/test.pb.go +++ b/proto/testing/test.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.3 +// protoc v4.25.1 // source: proto/testing/test.proto package testing