diff --git a/go.mod b/go.mod index ad890169..65fa66ee 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 github.com/creasty/defaults v1.7.0 github.com/ethereum/go-ethereum v1.11.6 - github.com/ethpandaops/beacon v0.23.0 + github.com/ethpandaops/beacon v0.26.0 github.com/ethpandaops/ethcore v0.0.0-20230619033127-81a2acd3124c github.com/ethpandaops/ethwallclock v0.3.0 github.com/go-co-op/gocron v1.27.1 diff --git a/go.sum b/go.sum index 0047e3b9..62ca3e28 100644 --- a/go.sum +++ b/go.sum @@ -125,8 +125,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/ethereum/go-ethereum v1.11.6 h1:2VF8Mf7XiSUfmoNOy3D+ocfl9Qu8baQBrCNbo2CXQ8E= github.com/ethereum/go-ethereum v1.11.6/go.mod h1:+a8pUj1tOyJ2RinsNQD4326YS+leSoKGiG/uVVb0x6Y= -github.com/ethpandaops/beacon v0.23.0 h1:S+xqgAyo78t2vfKOxaBxA95oxS0Y+QJ4D7R7uq49K0A= -github.com/ethpandaops/beacon v0.23.0/go.mod h1:p+PMyAYXro2hgNEMNbCtzLOvzHund9Q9BTPATvf8/SA= +github.com/ethpandaops/beacon v0.26.0 h1:faGD1E2u6LKHDTl/T0ofuxj1lN05nmkkLxz6+lwdqsg= +github.com/ethpandaops/beacon v0.26.0/go.mod h1:p+PMyAYXro2hgNEMNbCtzLOvzHund9Q9BTPATvf8/SA= github.com/ethpandaops/ethcore v0.0.0-20230619033127-81a2acd3124c h1:z4Jb53km3UEmiWkgCrp7zOvxUZhQlSMoOwyzeacBWfA= github.com/ethpandaops/ethcore v0.0.0-20230619033127-81a2acd3124c/go.mod h1:c+7nsMcK/MOhr0gZCi78w7SyVg2zYDQBLo/d7mD/xJA= github.com/ethpandaops/ethwallclock v0.3.0 h1:xF5fwtBf+bHFHZKBnwiPFEuelW3sMM7SD3ZNFq1lJY4= diff --git a/pkg/proto/eth/v1/attestation.pb.go b/pkg/proto/eth/v1/attestation.pb.go index 1555f816..fa6e166d 100644 --- a/pkg/proto/eth/v1/attestation.pb.go +++ b/pkg/proto/eth/v1/attestation.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v1/attestation.proto // Note: largely inspired by https://github.com/prysmaticlabs/prysm/tree/develop/proto/eth/v1 diff --git a/pkg/proto/eth/v1/beacon_block.pb.go b/pkg/proto/eth/v1/beacon_block.pb.go index 24ec2e41..b573475f 100644 --- a/pkg/proto/eth/v1/beacon_block.pb.go +++ b/pkg/proto/eth/v1/beacon_block.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v1/beacon_block.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/checkpoint.pb.go b/pkg/proto/eth/v1/checkpoint.pb.go index f4aa02c3..bedc105a 100644 --- a/pkg/proto/eth/v1/checkpoint.pb.go +++ b/pkg/proto/eth/v1/checkpoint.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v1/checkpoint.proto // Note: largely inspired by https://github.com/prysmaticlabs/prysm/tree/develop/proto/eth/v1 diff --git a/pkg/proto/eth/v1/events.pb.go b/pkg/proto/eth/v1/events.pb.go index 95d39db5..e51100ca 100644 --- a/pkg/proto/eth/v1/events.pb.go +++ b/pkg/proto/eth/v1/events.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v1/events.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/execution_engine.pb.go b/pkg/proto/eth/v1/execution_engine.pb.go index de4196b0..02db0b61 100644 --- a/pkg/proto/eth/v1/execution_engine.pb.go +++ b/pkg/proto/eth/v1/execution_engine.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v1/execution_engine.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/fork_choice.pb.go b/pkg/proto/eth/v1/fork_choice.pb.go index d90a83c4..0071d068 100644 --- a/pkg/proto/eth/v1/fork_choice.pb.go +++ b/pkg/proto/eth/v1/fork_choice.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v1/fork_choice.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/sync_committee.pb.go b/pkg/proto/eth/v1/sync_committee.pb.go index 8997bd01..8ffe0332 100644 --- a/pkg/proto/eth/v1/sync_committee.pb.go +++ b/pkg/proto/eth/v1/sync_committee.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v1/sync_committee.proto // Note: largely inspired by https://github.com/prysmaticlabs/prysm/tree/develop/proto/eth/v1 diff --git a/pkg/proto/eth/v2/beacon_block.pb.go b/pkg/proto/eth/v2/beacon_block.pb.go index eeae6b6a..e727b69b 100644 --- a/pkg/proto/eth/v2/beacon_block.pb.go +++ b/pkg/proto/eth/v2/beacon_block.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v2/beacon_block.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v2/events.pb.go b/pkg/proto/eth/v2/events.pb.go index 35e9017d..3286a81e 100644 --- a/pkg/proto/eth/v2/events.pb.go +++ b/pkg/proto/eth/v2/events.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v2/events.proto package v2 diff --git a/pkg/proto/eth/v2/withdrawals.pb.go b/pkg/proto/eth/v2/withdrawals.pb.go index 449891e8..10d18a2c 100644 --- a/pkg/proto/eth/v2/withdrawals.pb.go +++ b/pkg/proto/eth/v2/withdrawals.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/eth/v2/withdrawals.proto // Note: largely inspired by diff --git a/pkg/proto/xatu/coordinator.pb.go b/pkg/proto/xatu/coordinator.pb.go index ecb1dbe3..d4227265 100644 --- a/pkg/proto/xatu/coordinator.pb.go +++ b/pkg/proto/xatu/coordinator.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/xatu/coordinator.proto package xatu diff --git a/pkg/proto/xatu/coordinator_grpc.pb.go b/pkg/proto/xatu/coordinator_grpc.pb.go index dc56727d..b65a1f85 100644 --- a/pkg/proto/xatu/coordinator_grpc.pb.go +++ b/pkg/proto/xatu/coordinator_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v3.21.9 // source: pkg/proto/xatu/coordinator.proto package xatu @@ -18,6 +18,14 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + Coordinator_CreateNodeRecords_FullMethodName = "/xatu.Coordinator/CreateNodeRecords" + Coordinator_ListStalledExecutionNodeRecords_FullMethodName = "/xatu.Coordinator/ListStalledExecutionNodeRecords" + Coordinator_CreateExecutionNodeRecordStatus_FullMethodName = "/xatu.Coordinator/CreateExecutionNodeRecordStatus" + Coordinator_CoordinateExecutionNodeRecords_FullMethodName = "/xatu.Coordinator/CoordinateExecutionNodeRecords" + Coordinator_GetDiscoveryNodeRecord_FullMethodName = "/xatu.Coordinator/GetDiscoveryNodeRecord" +) + // CoordinatorClient is the client API for Coordinator service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -39,7 +47,7 @@ func NewCoordinatorClient(cc grpc.ClientConnInterface) CoordinatorClient { func (c *coordinatorClient) CreateNodeRecords(ctx context.Context, in *CreateNodeRecordsRequest, opts ...grpc.CallOption) (*CreateNodeRecordsResponse, error) { out := new(CreateNodeRecordsResponse) - err := c.cc.Invoke(ctx, "/xatu.Coordinator/CreateNodeRecords", in, out, opts...) + err := c.cc.Invoke(ctx, Coordinator_CreateNodeRecords_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -48,7 +56,7 @@ func (c *coordinatorClient) CreateNodeRecords(ctx context.Context, in *CreateNod func (c *coordinatorClient) ListStalledExecutionNodeRecords(ctx context.Context, in *ListStalledExecutionNodeRecordsRequest, opts ...grpc.CallOption) (*ListStalledExecutionNodeRecordsResponse, error) { out := new(ListStalledExecutionNodeRecordsResponse) - err := c.cc.Invoke(ctx, "/xatu.Coordinator/ListStalledExecutionNodeRecords", in, out, opts...) + err := c.cc.Invoke(ctx, Coordinator_ListStalledExecutionNodeRecords_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -57,7 +65,7 @@ func (c *coordinatorClient) ListStalledExecutionNodeRecords(ctx context.Context, func (c *coordinatorClient) CreateExecutionNodeRecordStatus(ctx context.Context, in *CreateExecutionNodeRecordStatusRequest, opts ...grpc.CallOption) (*CreateExecutionNodeRecordStatusResponse, error) { out := new(CreateExecutionNodeRecordStatusResponse) - err := c.cc.Invoke(ctx, "/xatu.Coordinator/CreateExecutionNodeRecordStatus", in, out, opts...) + err := c.cc.Invoke(ctx, Coordinator_CreateExecutionNodeRecordStatus_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -66,7 +74,7 @@ func (c *coordinatorClient) CreateExecutionNodeRecordStatus(ctx context.Context, func (c *coordinatorClient) CoordinateExecutionNodeRecords(ctx context.Context, in *CoordinateExecutionNodeRecordsRequest, opts ...grpc.CallOption) (*CoordinateExecutionNodeRecordsResponse, error) { out := new(CoordinateExecutionNodeRecordsResponse) - err := c.cc.Invoke(ctx, "/xatu.Coordinator/CoordinateExecutionNodeRecords", in, out, opts...) + err := c.cc.Invoke(ctx, Coordinator_CoordinateExecutionNodeRecords_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -75,7 +83,7 @@ func (c *coordinatorClient) CoordinateExecutionNodeRecords(ctx context.Context, func (c *coordinatorClient) GetDiscoveryNodeRecord(ctx context.Context, in *GetDiscoveryNodeRecordRequest, opts ...grpc.CallOption) (*GetDiscoveryNodeRecordResponse, error) { out := new(GetDiscoveryNodeRecordResponse) - err := c.cc.Invoke(ctx, "/xatu.Coordinator/GetDiscoveryNodeRecord", in, out, opts...) + err := c.cc.Invoke(ctx, Coordinator_GetDiscoveryNodeRecord_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -136,7 +144,7 @@ func _Coordinator_CreateNodeRecords_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/xatu.Coordinator/CreateNodeRecords", + FullMethod: Coordinator_CreateNodeRecords_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CoordinatorServer).CreateNodeRecords(ctx, req.(*CreateNodeRecordsRequest)) @@ -154,7 +162,7 @@ func _Coordinator_ListStalledExecutionNodeRecords_Handler(srv interface{}, ctx c } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/xatu.Coordinator/ListStalledExecutionNodeRecords", + FullMethod: Coordinator_ListStalledExecutionNodeRecords_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CoordinatorServer).ListStalledExecutionNodeRecords(ctx, req.(*ListStalledExecutionNodeRecordsRequest)) @@ -172,7 +180,7 @@ func _Coordinator_CreateExecutionNodeRecordStatus_Handler(srv interface{}, ctx c } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/xatu.Coordinator/CreateExecutionNodeRecordStatus", + FullMethod: Coordinator_CreateExecutionNodeRecordStatus_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CoordinatorServer).CreateExecutionNodeRecordStatus(ctx, req.(*CreateExecutionNodeRecordStatusRequest)) @@ -190,7 +198,7 @@ func _Coordinator_CoordinateExecutionNodeRecords_Handler(srv interface{}, ctx co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/xatu.Coordinator/CoordinateExecutionNodeRecords", + FullMethod: Coordinator_CoordinateExecutionNodeRecords_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CoordinatorServer).CoordinateExecutionNodeRecords(ctx, req.(*CoordinateExecutionNodeRecordsRequest)) @@ -208,7 +216,7 @@ func _Coordinator_GetDiscoveryNodeRecord_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/xatu.Coordinator/GetDiscoveryNodeRecord", + FullMethod: Coordinator_GetDiscoveryNodeRecord_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CoordinatorServer).GetDiscoveryNodeRecord(ctx, req.(*GetDiscoveryNodeRecordRequest)) diff --git a/pkg/proto/xatu/event_ingester.pb.go b/pkg/proto/xatu/event_ingester.pb.go index 39ac8174..2b9545db 100644 --- a/pkg/proto/xatu/event_ingester.pb.go +++ b/pkg/proto/xatu/event_ingester.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v3.21.9 // source: pkg/proto/xatu/event_ingester.proto package xatu @@ -96,7 +96,7 @@ func (x Event_Name) Number() protoreflect.EnumNumber { // Deprecated: Use Event_Name.Descriptor instead. func (Event_Name) EnumDescriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{10, 0} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{11, 0} } type CreateEventsRequest struct { @@ -402,6 +402,63 @@ func (x *Propagation) GetSlotStartDiff() uint64 { return 0 } +type AttestingValidator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // CommiteeIndex is the position of the validator within the committee. + CommiteeIndex uint64 `protobuf:"varint,1,opt,name=commitee_index,proto3" json:"commitee_index,omitempty"` + // Index is the index of the validator in the beacon chain. + Index uint64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` +} + +func (x *AttestingValidator) Reset() { + *x = AttestingValidator{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AttestingValidator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AttestingValidator) ProtoMessage() {} + +func (x *AttestingValidator) ProtoReflect() protoreflect.Message { + mi := &file_pkg_proto_xatu_event_ingester_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 AttestingValidator.ProtoReflect.Descriptor instead. +func (*AttestingValidator) Descriptor() ([]byte, []int) { + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{6} +} + +func (x *AttestingValidator) GetCommiteeIndex() uint64 { + if x != nil { + return x.CommiteeIndex + } + return 0 +} + +func (x *AttestingValidator) GetIndex() uint64 { + if x != nil { + return x.Index + } + return 0 +} + type DebugForkChoiceReorg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -415,7 +472,7 @@ type DebugForkChoiceReorg struct { func (x *DebugForkChoiceReorg) Reset() { *x = DebugForkChoiceReorg{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[6] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -428,7 +485,7 @@ func (x *DebugForkChoiceReorg) String() string { func (*DebugForkChoiceReorg) ProtoMessage() {} func (x *DebugForkChoiceReorg) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[6] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -441,7 +498,7 @@ func (x *DebugForkChoiceReorg) ProtoReflect() protoreflect.Message { // Deprecated: Use DebugForkChoiceReorg.ProtoReflect.Descriptor instead. func (*DebugForkChoiceReorg) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{6} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7} } func (x *DebugForkChoiceReorg) GetBefore() *v1.ForkChoice { @@ -508,7 +565,7 @@ type ClientMeta struct { func (x *ClientMeta) Reset() { *x = ClientMeta{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[7] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -521,7 +578,7 @@ func (x *ClientMeta) String() string { func (*ClientMeta) ProtoMessage() {} func (x *ClientMeta) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[7] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -534,7 +591,7 @@ func (x *ClientMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientMeta.ProtoReflect.Descriptor instead. func (*ClientMeta) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8} } func (x *ClientMeta) GetName() string { @@ -785,7 +842,7 @@ type ServerMeta struct { func (x *ServerMeta) Reset() { *x = ServerMeta{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[8] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -798,7 +855,7 @@ func (x *ServerMeta) String() string { func (*ServerMeta) ProtoMessage() {} func (x *ServerMeta) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[8] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -811,7 +868,7 @@ func (x *ServerMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use ServerMeta.ProtoReflect.Descriptor instead. func (*ServerMeta) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{9} } func (x *ServerMeta) GetEvent() *ServerMeta_Event { @@ -849,7 +906,7 @@ type Meta struct { func (x *Meta) Reset() { *x = Meta{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[9] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -862,7 +919,7 @@ func (x *Meta) String() string { func (*Meta) ProtoMessage() {} func (x *Meta) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[9] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -875,7 +932,7 @@ func (x *Meta) ProtoReflect() protoreflect.Message { // Deprecated: Use Meta.ProtoReflect.Descriptor instead. func (*Meta) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{9} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{10} } func (x *Meta) GetClient() *ClientMeta { @@ -908,7 +965,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[10] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -921,7 +978,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[10] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -934,7 +991,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{10} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{11} } func (x *Event) GetName() Event_Name { @@ -986,7 +1043,7 @@ type DecoratedEvent struct { func (x *DecoratedEvent) Reset() { *x = DecoratedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[11] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -999,7 +1056,7 @@ func (x *DecoratedEvent) String() string { func (*DecoratedEvent) ProtoMessage() {} func (x *DecoratedEvent) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[11] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1012,7 +1069,7 @@ func (x *DecoratedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use DecoratedEvent.ProtoReflect.Descriptor instead. func (*DecoratedEvent) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{11} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{12} } func (x *DecoratedEvent) GetEvent() *Event { @@ -1199,7 +1256,7 @@ type ClientMeta_Ethereum struct { func (x *ClientMeta_Ethereum) Reset() { *x = ClientMeta_Ethereum{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[12] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1212,7 +1269,7 @@ func (x *ClientMeta_Ethereum) String() string { func (*ClientMeta_Ethereum) ProtoMessage() {} func (x *ClientMeta_Ethereum) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[12] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1225,7 +1282,7 @@ func (x *ClientMeta_Ethereum) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientMeta_Ethereum.ProtoReflect.Descriptor instead. func (*ClientMeta_Ethereum) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 0} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 0} } func (x *ClientMeta_Ethereum) GetNetwork() *ClientMeta_Ethereum_Network { @@ -1261,7 +1318,7 @@ type ClientMeta_AdditionalEthV1AttestationSourceData struct { func (x *ClientMeta_AdditionalEthV1AttestationSourceData) Reset() { *x = ClientMeta_AdditionalEthV1AttestationSourceData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[14] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1274,7 +1331,7 @@ func (x *ClientMeta_AdditionalEthV1AttestationSourceData) String() string { func (*ClientMeta_AdditionalEthV1AttestationSourceData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1AttestationSourceData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[14] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1287,7 +1344,7 @@ func (x *ClientMeta_AdditionalEthV1AttestationSourceData) ProtoReflect() protore // Deprecated: Use ClientMeta_AdditionalEthV1AttestationSourceData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1AttestationSourceData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 2} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 2} } func (x *ClientMeta_AdditionalEthV1AttestationSourceData) GetEpoch() *Epoch { @@ -1309,7 +1366,7 @@ type ClientMeta_AdditionalEthV1AttestationTargetData struct { func (x *ClientMeta_AdditionalEthV1AttestationTargetData) Reset() { *x = ClientMeta_AdditionalEthV1AttestationTargetData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[15] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1322,7 +1379,7 @@ func (x *ClientMeta_AdditionalEthV1AttestationTargetData) String() string { func (*ClientMeta_AdditionalEthV1AttestationTargetData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1AttestationTargetData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[15] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1335,7 +1392,7 @@ func (x *ClientMeta_AdditionalEthV1AttestationTargetData) ProtoReflect() protore // Deprecated: Use ClientMeta_AdditionalEthV1AttestationTargetData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1AttestationTargetData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 3} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 3} } func (x *ClientMeta_AdditionalEthV1AttestationTargetData) GetEpoch() *Epoch { @@ -1362,12 +1419,15 @@ type ClientMeta_AdditionalEthV1EventsAttestationData struct { // Propagation contains information about the propagation of the // attestation. Propagation *Propagation `protobuf:"bytes,5,opt,name=propagation,proto3" json:"propagation,omitempty"` + // AttestingValidator contains data about the validator that created the attestation. + // Note: only available for unaggregated attestations. + AttestingValidator *AttestingValidator `protobuf:"bytes,6,opt,name=attesting_validator,proto3" json:"attesting_validator,omitempty"` } func (x *ClientMeta_AdditionalEthV1EventsAttestationData) Reset() { *x = ClientMeta_AdditionalEthV1EventsAttestationData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[16] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1380,7 +1440,7 @@ func (x *ClientMeta_AdditionalEthV1EventsAttestationData) String() string { func (*ClientMeta_AdditionalEthV1EventsAttestationData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsAttestationData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[16] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1393,7 +1453,7 @@ func (x *ClientMeta_AdditionalEthV1EventsAttestationData) ProtoReflect() protore // Deprecated: Use ClientMeta_AdditionalEthV1EventsAttestationData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsAttestationData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 4} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 4} } func (x *ClientMeta_AdditionalEthV1EventsAttestationData) GetSource() *ClientMeta_AdditionalEthV1AttestationSourceData { @@ -1431,6 +1491,13 @@ func (x *ClientMeta_AdditionalEthV1EventsAttestationData) GetPropagation() *Prop return nil } +func (x *ClientMeta_AdditionalEthV1EventsAttestationData) GetAttestingValidator() *AttestingValidator { + if x != nil { + return x.AttestingValidator + } + return nil +} + type ClientMeta_AdditionalEthV1EventsHeadData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1447,7 +1514,7 @@ type ClientMeta_AdditionalEthV1EventsHeadData struct { func (x *ClientMeta_AdditionalEthV1EventsHeadData) Reset() { *x = ClientMeta_AdditionalEthV1EventsHeadData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[17] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1460,7 +1527,7 @@ func (x *ClientMeta_AdditionalEthV1EventsHeadData) String() string { func (*ClientMeta_AdditionalEthV1EventsHeadData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsHeadData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[17] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1473,7 +1540,7 @@ func (x *ClientMeta_AdditionalEthV1EventsHeadData) ProtoReflect() protoreflect.M // Deprecated: Use ClientMeta_AdditionalEthV1EventsHeadData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsHeadData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 5} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 5} } func (x *ClientMeta_AdditionalEthV1EventsHeadData) GetEpoch() *Epoch { @@ -1513,7 +1580,7 @@ type ClientMeta_AdditionalEthV1EventsBlockData struct { func (x *ClientMeta_AdditionalEthV1EventsBlockData) Reset() { *x = ClientMeta_AdditionalEthV1EventsBlockData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[18] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1526,7 +1593,7 @@ func (x *ClientMeta_AdditionalEthV1EventsBlockData) String() string { func (*ClientMeta_AdditionalEthV1EventsBlockData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsBlockData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[18] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1539,7 +1606,7 @@ func (x *ClientMeta_AdditionalEthV1EventsBlockData) ProtoReflect() protoreflect. // Deprecated: Use ClientMeta_AdditionalEthV1EventsBlockData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsBlockData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 6} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 6} } func (x *ClientMeta_AdditionalEthV1EventsBlockData) GetEpoch() *Epoch { @@ -1575,7 +1642,7 @@ type ClientMeta_AdditionalEthV1EventsVoluntaryExitData struct { func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitData) Reset() { *x = ClientMeta_AdditionalEthV1EventsVoluntaryExitData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[19] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1588,7 +1655,7 @@ func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitData) String() string { func (*ClientMeta_AdditionalEthV1EventsVoluntaryExitData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[19] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1601,7 +1668,7 @@ func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitData) ProtoReflect() proto // Deprecated: Use ClientMeta_AdditionalEthV1EventsVoluntaryExitData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsVoluntaryExitData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 7} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 7} } func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitData) GetEpoch() *Epoch { @@ -1623,7 +1690,7 @@ type ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData struct { func (x *ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData) Reset() { *x = ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[20] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1636,7 +1703,7 @@ func (x *ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData) String() strin func (*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[20] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1649,7 +1716,7 @@ func (x *ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData) ProtoReflect() // Deprecated: Use ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 8} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 8} } func (x *ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData) GetEpoch() *Epoch { @@ -1676,7 +1743,7 @@ type ClientMeta_AdditionalEthV1EventsChainReorgData struct { func (x *ClientMeta_AdditionalEthV1EventsChainReorgData) Reset() { *x = ClientMeta_AdditionalEthV1EventsChainReorgData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[21] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1689,7 +1756,7 @@ func (x *ClientMeta_AdditionalEthV1EventsChainReorgData) String() string { func (*ClientMeta_AdditionalEthV1EventsChainReorgData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsChainReorgData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[21] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1702,7 +1769,7 @@ func (x *ClientMeta_AdditionalEthV1EventsChainReorgData) ProtoReflect() protoref // Deprecated: Use ClientMeta_AdditionalEthV1EventsChainReorgData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsChainReorgData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 9} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 9} } func (x *ClientMeta_AdditionalEthV1EventsChainReorgData) GetEpoch() *Epoch { @@ -1743,7 +1810,7 @@ type ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData struct func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData) Reset() { *x = ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[22] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1756,7 +1823,7 @@ func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData) S func (*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[22] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1769,7 +1836,7 @@ func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData) P // Deprecated: Use ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 10} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 10} } func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData) GetEpoch() *Epoch { @@ -1804,7 +1871,7 @@ type ClientMeta_AdditionalEthV1EventsContributionAndProofData struct { func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofData) Reset() { *x = ClientMeta_AdditionalEthV1EventsContributionAndProofData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[23] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1817,7 +1884,7 @@ func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofData) String() stri func (*ClientMeta_AdditionalEthV1EventsContributionAndProofData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[23] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1830,7 +1897,7 @@ func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofData) ProtoReflect( // Deprecated: Use ClientMeta_AdditionalEthV1EventsContributionAndProofData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1EventsContributionAndProofData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 11} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 11} } func (x *ClientMeta_AdditionalEthV1EventsContributionAndProofData) GetContribution() *ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData { @@ -1864,7 +1931,7 @@ type ClientMeta_ForkChoiceSnapshot struct { func (x *ClientMeta_ForkChoiceSnapshot) Reset() { *x = ClientMeta_ForkChoiceSnapshot{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[24] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1877,7 +1944,7 @@ func (x *ClientMeta_ForkChoiceSnapshot) String() string { func (*ClientMeta_ForkChoiceSnapshot) ProtoMessage() {} func (x *ClientMeta_ForkChoiceSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[24] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1890,7 +1957,7 @@ func (x *ClientMeta_ForkChoiceSnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientMeta_ForkChoiceSnapshot.ProtoReflect.Descriptor instead. func (*ClientMeta_ForkChoiceSnapshot) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 12} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 12} } func (x *ClientMeta_ForkChoiceSnapshot) GetRequestEpoch() *Epoch { @@ -1939,7 +2006,7 @@ type ClientMeta_AdditionalEthV1DebugForkChoiceData struct { func (x *ClientMeta_AdditionalEthV1DebugForkChoiceData) Reset() { *x = ClientMeta_AdditionalEthV1DebugForkChoiceData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[25] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1952,7 +2019,7 @@ func (x *ClientMeta_AdditionalEthV1DebugForkChoiceData) String() string { func (*ClientMeta_AdditionalEthV1DebugForkChoiceData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1DebugForkChoiceData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[25] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1965,7 +2032,7 @@ func (x *ClientMeta_AdditionalEthV1DebugForkChoiceData) ProtoReflect() protorefl // Deprecated: Use ClientMeta_AdditionalEthV1DebugForkChoiceData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1DebugForkChoiceData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 13} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 13} } func (x *ClientMeta_AdditionalEthV1DebugForkChoiceData) GetSnapshot() *ClientMeta_ForkChoiceSnapshot { @@ -1987,7 +2054,7 @@ type ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData struct { func (x *ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData) Reset() { *x = ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[26] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2000,7 +2067,7 @@ func (x *ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData) String() string { func (*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[26] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2013,7 +2080,7 @@ func (x *ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData) ProtoReflect() prot // Deprecated: Use ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 14} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 14} } func (x *ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData) GetBefore() *ClientMeta_ForkChoiceSnapshot { @@ -2058,7 +2125,7 @@ type ClientMeta_AdditionalMempoolTransactionData struct { func (x *ClientMeta_AdditionalMempoolTransactionData) Reset() { *x = ClientMeta_AdditionalMempoolTransactionData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[27] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2071,7 +2138,7 @@ func (x *ClientMeta_AdditionalMempoolTransactionData) String() string { func (*ClientMeta_AdditionalMempoolTransactionData) ProtoMessage() {} func (x *ClientMeta_AdditionalMempoolTransactionData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[27] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2084,7 +2151,7 @@ func (x *ClientMeta_AdditionalMempoolTransactionData) ProtoReflect() protoreflec // Deprecated: Use ClientMeta_AdditionalMempoolTransactionData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalMempoolTransactionData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 15} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 15} } func (x *ClientMeta_AdditionalMempoolTransactionData) GetHash() string { @@ -2168,7 +2235,7 @@ type ClientMeta_AdditionalEthV2BeaconBlockData struct { func (x *ClientMeta_AdditionalEthV2BeaconBlockData) Reset() { *x = ClientMeta_AdditionalEthV2BeaconBlockData{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[28] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2181,7 +2248,7 @@ func (x *ClientMeta_AdditionalEthV2BeaconBlockData) String() string { func (*ClientMeta_AdditionalEthV2BeaconBlockData) ProtoMessage() {} func (x *ClientMeta_AdditionalEthV2BeaconBlockData) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[28] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2194,7 +2261,7 @@ func (x *ClientMeta_AdditionalEthV2BeaconBlockData) ProtoReflect() protoreflect. // Deprecated: Use ClientMeta_AdditionalEthV2BeaconBlockData.ProtoReflect.Descriptor instead. func (*ClientMeta_AdditionalEthV2BeaconBlockData) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 16} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 16} } func (x *ClientMeta_AdditionalEthV2BeaconBlockData) GetEpoch() *Epoch { @@ -2239,7 +2306,7 @@ type ClientMeta_Ethereum_Network struct { func (x *ClientMeta_Ethereum_Network) Reset() { *x = ClientMeta_Ethereum_Network{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[29] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2252,7 +2319,7 @@ func (x *ClientMeta_Ethereum_Network) String() string { func (*ClientMeta_Ethereum_Network) ProtoMessage() {} func (x *ClientMeta_Ethereum_Network) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[29] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2265,7 +2332,7 @@ func (x *ClientMeta_Ethereum_Network) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientMeta_Ethereum_Network.ProtoReflect.Descriptor instead. func (*ClientMeta_Ethereum_Network) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 0, 0} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 0, 0} } func (x *ClientMeta_Ethereum_Network) GetName() string { @@ -2294,7 +2361,7 @@ type ClientMeta_Ethereum_Execution struct { func (x *ClientMeta_Ethereum_Execution) Reset() { *x = ClientMeta_Ethereum_Execution{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[30] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2307,7 +2374,7 @@ func (x *ClientMeta_Ethereum_Execution) String() string { func (*ClientMeta_Ethereum_Execution) ProtoMessage() {} func (x *ClientMeta_Ethereum_Execution) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[30] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2320,7 +2387,7 @@ func (x *ClientMeta_Ethereum_Execution) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientMeta_Ethereum_Execution.ProtoReflect.Descriptor instead. func (*ClientMeta_Ethereum_Execution) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 0, 1} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 0, 1} } func (x *ClientMeta_Ethereum_Execution) GetForkId() *ForkID { @@ -2344,7 +2411,7 @@ type ClientMeta_Ethereum_Consensus struct { func (x *ClientMeta_Ethereum_Consensus) Reset() { *x = ClientMeta_Ethereum_Consensus{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[31] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2357,7 +2424,7 @@ func (x *ClientMeta_Ethereum_Consensus) String() string { func (*ClientMeta_Ethereum_Consensus) ProtoMessage() {} func (x *ClientMeta_Ethereum_Consensus) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[31] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2370,7 +2437,7 @@ func (x *ClientMeta_Ethereum_Consensus) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientMeta_Ethereum_Consensus.ProtoReflect.Descriptor instead. func (*ClientMeta_Ethereum_Consensus) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{7, 0, 2} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 0, 2} } func (x *ClientMeta_Ethereum_Consensus) GetImplementation() string { @@ -2399,7 +2466,7 @@ type ServerMeta_Event struct { func (x *ServerMeta_Event) Reset() { *x = ServerMeta_Event{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[32] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2412,7 +2479,7 @@ func (x *ServerMeta_Event) String() string { func (*ServerMeta_Event) ProtoMessage() {} func (x *ServerMeta_Event) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[32] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2425,7 +2492,7 @@ func (x *ServerMeta_Event) ProtoReflect() protoreflect.Message { // Deprecated: Use ServerMeta_Event.ProtoReflect.Descriptor instead. func (*ServerMeta_Event) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 0} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{9, 0} } func (x *ServerMeta_Event) GetReceivedDateTime() *timestamppb.Timestamp { @@ -2450,7 +2517,7 @@ type ServerMeta_Client struct { func (x *ServerMeta_Client) Reset() { *x = ServerMeta_Client{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[33] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2463,7 +2530,7 @@ func (x *ServerMeta_Client) String() string { func (*ServerMeta_Client) ProtoMessage() {} func (x *ServerMeta_Client) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[33] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2476,7 +2543,7 @@ func (x *ServerMeta_Client) ProtoReflect() protoreflect.Message { // Deprecated: Use ServerMeta_Client.ProtoReflect.Descriptor instead. func (*ServerMeta_Client) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 1} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{9, 1} } func (x *ServerMeta_Client) GetIP() string { @@ -2525,7 +2592,7 @@ type ServerMeta_Client_Geo struct { func (x *ServerMeta_Client_Geo) Reset() { *x = ServerMeta_Client_Geo{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[35] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2538,7 +2605,7 @@ func (x *ServerMeta_Client_Geo) String() string { func (*ServerMeta_Client_Geo) ProtoMessage() {} func (x *ServerMeta_Client_Geo) ProtoReflect() protoreflect.Message { - mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[35] + mi := &file_pkg_proto_xatu_event_ingester_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2551,7 +2618,7 @@ func (x *ServerMeta_Client_Geo) ProtoReflect() protoreflect.Message { // Deprecated: Use ServerMeta_Client_Geo.ProtoReflect.Descriptor instead. func (*ServerMeta_Client_Geo) Descriptor() ([]byte, []int) { - return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{8, 1, 0} + return file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP(), []int{9, 1, 0} } func (x *ServerMeta_Client_Geo) GetCity() string { @@ -2651,167 +2718,177 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6f, 0x72, 0x67, - 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x12, 0x32, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x52, 0x05, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x22, 0x80, 0x22, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x75, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x6b, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, - 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5d, 0x0a, 0x12, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x70, 0x0a, 0x1c, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, - 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x7c, 0x0a, 0x22, 0x65, 0x74, 0x68, 0x5f, 0x76, - 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, - 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6a, 0x0a, 0x19, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x6f, - 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x7f, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x74, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0x52, 0x0a, 0x12, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x26, 0x0a, + 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x65, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xaa, 0x01, 0x0a, 0x14, + 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x6f, 0x72, 0x67, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x06, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x05, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x65, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, + 0x67, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xcc, 0x22, 0x0a, 0x0a, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x12, + 0x35, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x52, 0x08, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x6b, 0x0a, 0x19, + 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x61, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x70, - 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5d, 0x0a, 0x12, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, + 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x70, 0x0a, 0x1c, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6e, + 0x74, 0x61, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, + 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x7c, 0x0a, 0x22, 0x65, + 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, + 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6a, 0x0a, 0x19, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x31, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x6f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x32, 0x5f, - 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x7f, 0x0a, 0x24, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x68, 0x0a, 0x18, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, - 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x73, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, - 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6f, - 0x72, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, 0x62, 0x75, 0x67, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, 0x72, 0x67, 0x44, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x80, 0x03, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, - 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, - 0x41, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, - 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x1a, 0x2d, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x02, 0x69, 0x64, 0x1a, 0x33, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x26, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x49, 0x44, - 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x1a, 0x4d, 0x0a, 0x09, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x49, + 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x13, 0x6d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x4d, 0x65, 0x6d, 0x70, 0x6f, 0x6f, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x13, 0x65, 0x74, 0x68, + 0x5f, 0x76, 0x32, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x68, 0x0a, 0x18, 0x65, 0x74, + 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x73, 0x0a, 0x1e, 0x65, 0x74, 0x68, 0x5f, 0x76, 0x31, 0x5f, 0x64, + 0x65, 0x62, 0x75, 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x44, 0x65, + 0x62, 0x75, 0x67, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x4f, + 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x80, 0x03, 0x0a, 0x08, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, + 0x75, 0x6d, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, + 0x6d, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x52, 0x09, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x1a, 0x2d, 0x0a, 0x07, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x33, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x46, 0x6f, + 0x72, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x1a, 0x4d, 0x0a, + 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x1a, 0x49, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x88, 0x03, 0x0a, 0x24, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, - 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xbc, 0x02, 0x0a, 0x24, 0x41, 0x64, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, - 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, - 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, - 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, + 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x04, + 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x13, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, + 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x13, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x97, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, @@ -3102,7 +3179,7 @@ func file_pkg_proto_xatu_event_ingester_proto_rawDescGZIP() []byte { } var file_pkg_proto_xatu_event_ingester_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_pkg_proto_xatu_event_ingester_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_pkg_proto_xatu_event_ingester_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_pkg_proto_xatu_event_ingester_proto_goTypes = []interface{}{ (Event_Name)(0), // 0: xatu.Event.Name (*CreateEventsRequest)(nil), // 1: xatu.CreateEventsRequest @@ -3111,129 +3188,131 @@ var file_pkg_proto_xatu_event_ingester_proto_goTypes = []interface{}{ (*Slot)(nil), // 4: xatu.Slot (*ForkID)(nil), // 5: xatu.ForkID (*Propagation)(nil), // 6: xatu.Propagation - (*DebugForkChoiceReorg)(nil), // 7: xatu.DebugForkChoiceReorg - (*ClientMeta)(nil), // 8: xatu.ClientMeta - (*ServerMeta)(nil), // 9: xatu.ServerMeta - (*Meta)(nil), // 10: xatu.Meta - (*Event)(nil), // 11: xatu.Event - (*DecoratedEvent)(nil), // 12: xatu.DecoratedEvent - (*ClientMeta_Ethereum)(nil), // 13: xatu.ClientMeta.Ethereum - nil, // 14: xatu.ClientMeta.LabelsEntry - (*ClientMeta_AdditionalEthV1AttestationSourceData)(nil), // 15: xatu.ClientMeta.AdditionalEthV1AttestationSourceData - (*ClientMeta_AdditionalEthV1AttestationTargetData)(nil), // 16: xatu.ClientMeta.AdditionalEthV1AttestationTargetData - (*ClientMeta_AdditionalEthV1EventsAttestationData)(nil), // 17: xatu.ClientMeta.AdditionalEthV1EventsAttestationData - (*ClientMeta_AdditionalEthV1EventsHeadData)(nil), // 18: xatu.ClientMeta.AdditionalEthV1EventsHeadData - (*ClientMeta_AdditionalEthV1EventsBlockData)(nil), // 19: xatu.ClientMeta.AdditionalEthV1EventsBlockData - (*ClientMeta_AdditionalEthV1EventsVoluntaryExitData)(nil), // 20: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData - (*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData)(nil), // 21: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData - (*ClientMeta_AdditionalEthV1EventsChainReorgData)(nil), // 22: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData - (*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData)(nil), // 23: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData - (*ClientMeta_AdditionalEthV1EventsContributionAndProofData)(nil), // 24: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData - (*ClientMeta_ForkChoiceSnapshot)(nil), // 25: xatu.ClientMeta.ForkChoiceSnapshot - (*ClientMeta_AdditionalEthV1DebugForkChoiceData)(nil), // 26: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData - (*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData)(nil), // 27: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData - (*ClientMeta_AdditionalMempoolTransactionData)(nil), // 28: xatu.ClientMeta.AdditionalMempoolTransactionData - (*ClientMeta_AdditionalEthV2BeaconBlockData)(nil), // 29: xatu.ClientMeta.AdditionalEthV2BeaconBlockData - (*ClientMeta_Ethereum_Network)(nil), // 30: xatu.ClientMeta.Ethereum.Network - (*ClientMeta_Ethereum_Execution)(nil), // 31: xatu.ClientMeta.Ethereum.Execution - (*ClientMeta_Ethereum_Consensus)(nil), // 32: xatu.ClientMeta.Ethereum.Consensus - (*ServerMeta_Event)(nil), // 33: xatu.ServerMeta.Event - (*ServerMeta_Client)(nil), // 34: xatu.ServerMeta.Client - nil, // 35: xatu.ServerMeta.AdditionalDataEntry - (*ServerMeta_Client_Geo)(nil), // 36: xatu.ServerMeta.Client.Geo - (*timestamppb.Timestamp)(nil), // 37: google.protobuf.Timestamp - (*v1.ForkChoice)(nil), // 38: xatu.eth.v1.ForkChoice - (*v1.EventChainReorg)(nil), // 39: xatu.eth.v1.EventChainReorg - (*v1.Attestation)(nil), // 40: xatu.eth.v1.Attestation - (*v1.EventBlock)(nil), // 41: xatu.eth.v1.EventBlock - (*v1.EventFinalizedCheckpoint)(nil), // 42: xatu.eth.v1.EventFinalizedCheckpoint - (*v1.EventHead)(nil), // 43: xatu.eth.v1.EventHead - (*v1.EventVoluntaryExit)(nil), // 44: xatu.eth.v1.EventVoluntaryExit - (*v1.EventContributionAndProof)(nil), // 45: xatu.eth.v1.EventContributionAndProof - (*v2.EventBlock)(nil), // 46: xatu.eth.v2.EventBlock + (*AttestingValidator)(nil), // 7: xatu.AttestingValidator + (*DebugForkChoiceReorg)(nil), // 8: xatu.DebugForkChoiceReorg + (*ClientMeta)(nil), // 9: xatu.ClientMeta + (*ServerMeta)(nil), // 10: xatu.ServerMeta + (*Meta)(nil), // 11: xatu.Meta + (*Event)(nil), // 12: xatu.Event + (*DecoratedEvent)(nil), // 13: xatu.DecoratedEvent + (*ClientMeta_Ethereum)(nil), // 14: xatu.ClientMeta.Ethereum + nil, // 15: xatu.ClientMeta.LabelsEntry + (*ClientMeta_AdditionalEthV1AttestationSourceData)(nil), // 16: xatu.ClientMeta.AdditionalEthV1AttestationSourceData + (*ClientMeta_AdditionalEthV1AttestationTargetData)(nil), // 17: xatu.ClientMeta.AdditionalEthV1AttestationTargetData + (*ClientMeta_AdditionalEthV1EventsAttestationData)(nil), // 18: xatu.ClientMeta.AdditionalEthV1EventsAttestationData + (*ClientMeta_AdditionalEthV1EventsHeadData)(nil), // 19: xatu.ClientMeta.AdditionalEthV1EventsHeadData + (*ClientMeta_AdditionalEthV1EventsBlockData)(nil), // 20: xatu.ClientMeta.AdditionalEthV1EventsBlockData + (*ClientMeta_AdditionalEthV1EventsVoluntaryExitData)(nil), // 21: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData + (*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData)(nil), // 22: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData + (*ClientMeta_AdditionalEthV1EventsChainReorgData)(nil), // 23: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData + (*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData)(nil), // 24: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData + (*ClientMeta_AdditionalEthV1EventsContributionAndProofData)(nil), // 25: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData + (*ClientMeta_ForkChoiceSnapshot)(nil), // 26: xatu.ClientMeta.ForkChoiceSnapshot + (*ClientMeta_AdditionalEthV1DebugForkChoiceData)(nil), // 27: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData + (*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData)(nil), // 28: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData + (*ClientMeta_AdditionalMempoolTransactionData)(nil), // 29: xatu.ClientMeta.AdditionalMempoolTransactionData + (*ClientMeta_AdditionalEthV2BeaconBlockData)(nil), // 30: xatu.ClientMeta.AdditionalEthV2BeaconBlockData + (*ClientMeta_Ethereum_Network)(nil), // 31: xatu.ClientMeta.Ethereum.Network + (*ClientMeta_Ethereum_Execution)(nil), // 32: xatu.ClientMeta.Ethereum.Execution + (*ClientMeta_Ethereum_Consensus)(nil), // 33: xatu.ClientMeta.Ethereum.Consensus + (*ServerMeta_Event)(nil), // 34: xatu.ServerMeta.Event + (*ServerMeta_Client)(nil), // 35: xatu.ServerMeta.Client + nil, // 36: xatu.ServerMeta.AdditionalDataEntry + (*ServerMeta_Client_Geo)(nil), // 37: xatu.ServerMeta.Client.Geo + (*timestamppb.Timestamp)(nil), // 38: google.protobuf.Timestamp + (*v1.ForkChoice)(nil), // 39: xatu.eth.v1.ForkChoice + (*v1.EventChainReorg)(nil), // 40: xatu.eth.v1.EventChainReorg + (*v1.Attestation)(nil), // 41: xatu.eth.v1.Attestation + (*v1.EventBlock)(nil), // 42: xatu.eth.v1.EventBlock + (*v1.EventFinalizedCheckpoint)(nil), // 43: xatu.eth.v1.EventFinalizedCheckpoint + (*v1.EventHead)(nil), // 44: xatu.eth.v1.EventHead + (*v1.EventVoluntaryExit)(nil), // 45: xatu.eth.v1.EventVoluntaryExit + (*v1.EventContributionAndProof)(nil), // 46: xatu.eth.v1.EventContributionAndProof + (*v2.EventBlock)(nil), // 47: xatu.eth.v2.EventBlock } var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ - 12, // 0: xatu.CreateEventsRequest.events:type_name -> xatu.DecoratedEvent - 37, // 1: xatu.Epoch.start_date_time:type_name -> google.protobuf.Timestamp - 37, // 2: xatu.Slot.start_date_time:type_name -> google.protobuf.Timestamp - 38, // 3: xatu.DebugForkChoiceReorg.before:type_name -> xatu.eth.v1.ForkChoice - 38, // 4: xatu.DebugForkChoiceReorg.after:type_name -> xatu.eth.v1.ForkChoice - 39, // 5: xatu.DebugForkChoiceReorg.event:type_name -> xatu.eth.v1.EventChainReorg - 13, // 6: xatu.ClientMeta.ethereum:type_name -> xatu.ClientMeta.Ethereum - 14, // 7: xatu.ClientMeta.labels:type_name -> xatu.ClientMeta.LabelsEntry - 17, // 8: xatu.ClientMeta.eth_v1_events_attestation:type_name -> xatu.ClientMeta.AdditionalEthV1EventsAttestationData - 18, // 9: xatu.ClientMeta.eth_v1_events_head:type_name -> xatu.ClientMeta.AdditionalEthV1EventsHeadData - 19, // 10: xatu.ClientMeta.eth_v1_events_block:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlockData - 20, // 11: xatu.ClientMeta.eth_v1_events_voluntary_exit:type_name -> xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData - 21, // 12: xatu.ClientMeta.eth_v1_events_finalized_checkpoint:type_name -> xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData - 22, // 13: xatu.ClientMeta.eth_v1_events_chain_reorg:type_name -> xatu.ClientMeta.AdditionalEthV1EventsChainReorgData - 24, // 14: xatu.ClientMeta.eth_v1_events_contribution_and_proof:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData - 28, // 15: xatu.ClientMeta.mempool_transaction:type_name -> xatu.ClientMeta.AdditionalMempoolTransactionData - 29, // 16: xatu.ClientMeta.eth_v2_beacon_block:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockData - 26, // 17: xatu.ClientMeta.eth_v1_debug_fork_choice:type_name -> xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData - 27, // 18: xatu.ClientMeta.eth_v1_debug_fork_choice_reorg:type_name -> xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData - 33, // 19: xatu.ServerMeta.event:type_name -> xatu.ServerMeta.Event - 34, // 20: xatu.ServerMeta.client:type_name -> xatu.ServerMeta.Client - 35, // 21: xatu.ServerMeta.additional_data:type_name -> xatu.ServerMeta.AdditionalDataEntry - 8, // 22: xatu.Meta.client:type_name -> xatu.ClientMeta - 9, // 23: xatu.Meta.server:type_name -> xatu.ServerMeta + 13, // 0: xatu.CreateEventsRequest.events:type_name -> xatu.DecoratedEvent + 38, // 1: xatu.Epoch.start_date_time:type_name -> google.protobuf.Timestamp + 38, // 2: xatu.Slot.start_date_time:type_name -> google.protobuf.Timestamp + 39, // 3: xatu.DebugForkChoiceReorg.before:type_name -> xatu.eth.v1.ForkChoice + 39, // 4: xatu.DebugForkChoiceReorg.after:type_name -> xatu.eth.v1.ForkChoice + 40, // 5: xatu.DebugForkChoiceReorg.event:type_name -> xatu.eth.v1.EventChainReorg + 14, // 6: xatu.ClientMeta.ethereum:type_name -> xatu.ClientMeta.Ethereum + 15, // 7: xatu.ClientMeta.labels:type_name -> xatu.ClientMeta.LabelsEntry + 18, // 8: xatu.ClientMeta.eth_v1_events_attestation:type_name -> xatu.ClientMeta.AdditionalEthV1EventsAttestationData + 19, // 9: xatu.ClientMeta.eth_v1_events_head:type_name -> xatu.ClientMeta.AdditionalEthV1EventsHeadData + 20, // 10: xatu.ClientMeta.eth_v1_events_block:type_name -> xatu.ClientMeta.AdditionalEthV1EventsBlockData + 21, // 11: xatu.ClientMeta.eth_v1_events_voluntary_exit:type_name -> xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData + 22, // 12: xatu.ClientMeta.eth_v1_events_finalized_checkpoint:type_name -> xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData + 23, // 13: xatu.ClientMeta.eth_v1_events_chain_reorg:type_name -> xatu.ClientMeta.AdditionalEthV1EventsChainReorgData + 25, // 14: xatu.ClientMeta.eth_v1_events_contribution_and_proof:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData + 29, // 15: xatu.ClientMeta.mempool_transaction:type_name -> xatu.ClientMeta.AdditionalMempoolTransactionData + 30, // 16: xatu.ClientMeta.eth_v2_beacon_block:type_name -> xatu.ClientMeta.AdditionalEthV2BeaconBlockData + 27, // 17: xatu.ClientMeta.eth_v1_debug_fork_choice:type_name -> xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData + 28, // 18: xatu.ClientMeta.eth_v1_debug_fork_choice_reorg:type_name -> xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData + 34, // 19: xatu.ServerMeta.event:type_name -> xatu.ServerMeta.Event + 35, // 20: xatu.ServerMeta.client:type_name -> xatu.ServerMeta.Client + 36, // 21: xatu.ServerMeta.additional_data:type_name -> xatu.ServerMeta.AdditionalDataEntry + 9, // 22: xatu.Meta.client:type_name -> xatu.ClientMeta + 10, // 23: xatu.Meta.server:type_name -> xatu.ServerMeta 0, // 24: xatu.Event.name:type_name -> xatu.Event.Name - 37, // 25: xatu.Event.date_time:type_name -> google.protobuf.Timestamp - 11, // 26: xatu.DecoratedEvent.event:type_name -> xatu.Event - 10, // 27: xatu.DecoratedEvent.meta:type_name -> xatu.Meta - 40, // 28: xatu.DecoratedEvent.eth_v1_events_attestation:type_name -> xatu.eth.v1.Attestation - 41, // 29: xatu.DecoratedEvent.eth_v1_events_block:type_name -> xatu.eth.v1.EventBlock - 39, // 30: xatu.DecoratedEvent.eth_v1_events_chain_reorg:type_name -> xatu.eth.v1.EventChainReorg - 42, // 31: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint:type_name -> xatu.eth.v1.EventFinalizedCheckpoint - 43, // 32: xatu.DecoratedEvent.eth_v1_events_head:type_name -> xatu.eth.v1.EventHead - 44, // 33: xatu.DecoratedEvent.eth_v1_events_voluntary_exit:type_name -> xatu.eth.v1.EventVoluntaryExit - 45, // 34: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof:type_name -> xatu.eth.v1.EventContributionAndProof - 46, // 35: xatu.DecoratedEvent.eth_v2_beacon_block:type_name -> xatu.eth.v2.EventBlock - 38, // 36: xatu.DecoratedEvent.eth_v1_fork_choice:type_name -> xatu.eth.v1.ForkChoice - 7, // 37: xatu.DecoratedEvent.eth_v1_fork_choice_reorg:type_name -> xatu.DebugForkChoiceReorg - 30, // 38: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network - 31, // 39: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution - 32, // 40: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus + 38, // 25: xatu.Event.date_time:type_name -> google.protobuf.Timestamp + 12, // 26: xatu.DecoratedEvent.event:type_name -> xatu.Event + 11, // 27: xatu.DecoratedEvent.meta:type_name -> xatu.Meta + 41, // 28: xatu.DecoratedEvent.eth_v1_events_attestation:type_name -> xatu.eth.v1.Attestation + 42, // 29: xatu.DecoratedEvent.eth_v1_events_block:type_name -> xatu.eth.v1.EventBlock + 40, // 30: xatu.DecoratedEvent.eth_v1_events_chain_reorg:type_name -> xatu.eth.v1.EventChainReorg + 43, // 31: xatu.DecoratedEvent.eth_v1_events_finalized_checkpoint:type_name -> xatu.eth.v1.EventFinalizedCheckpoint + 44, // 32: xatu.DecoratedEvent.eth_v1_events_head:type_name -> xatu.eth.v1.EventHead + 45, // 33: xatu.DecoratedEvent.eth_v1_events_voluntary_exit:type_name -> xatu.eth.v1.EventVoluntaryExit + 46, // 34: xatu.DecoratedEvent.eth_v1_events_contribution_and_proof:type_name -> xatu.eth.v1.EventContributionAndProof + 47, // 35: xatu.DecoratedEvent.eth_v2_beacon_block:type_name -> xatu.eth.v2.EventBlock + 39, // 36: xatu.DecoratedEvent.eth_v1_fork_choice:type_name -> xatu.eth.v1.ForkChoice + 8, // 37: xatu.DecoratedEvent.eth_v1_fork_choice_reorg:type_name -> xatu.DebugForkChoiceReorg + 31, // 38: xatu.ClientMeta.Ethereum.network:type_name -> xatu.ClientMeta.Ethereum.Network + 32, // 39: xatu.ClientMeta.Ethereum.execution:type_name -> xatu.ClientMeta.Ethereum.Execution + 33, // 40: xatu.ClientMeta.Ethereum.consensus:type_name -> xatu.ClientMeta.Ethereum.Consensus 3, // 41: xatu.ClientMeta.AdditionalEthV1AttestationSourceData.epoch:type_name -> xatu.Epoch 3, // 42: xatu.ClientMeta.AdditionalEthV1AttestationTargetData.epoch:type_name -> xatu.Epoch - 15, // 43: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData - 16, // 44: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData + 16, // 43: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceData + 17, // 44: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetData 4, // 45: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.slot:type_name -> xatu.Slot 3, // 46: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.epoch:type_name -> xatu.Epoch 6, // 47: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.propagation:type_name -> xatu.Propagation - 3, // 48: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch - 4, // 49: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot - 6, // 50: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation - 3, // 51: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch - 4, // 52: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot - 6, // 53: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation - 3, // 54: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch - 3, // 55: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch - 3, // 56: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch - 4, // 57: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot - 6, // 58: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation - 3, // 59: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch - 4, // 60: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot - 6, // 61: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation - 23, // 62: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData - 3, // 63: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch - 4, // 64: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot - 37, // 65: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 25, // 66: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 25, // 67: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 25, // 68: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 3, // 69: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch - 4, // 70: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot - 5, // 71: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID - 37, // 72: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp - 36, // 73: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Client.Geo - 1, // 74: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest - 2, // 75: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse - 75, // [75:76] is the sub-list for method output_type - 74, // [74:75] is the sub-list for method input_type - 74, // [74:74] is the sub-list for extension type_name - 74, // [74:74] is the sub-list for extension extendee - 0, // [0:74] is the sub-list for field type_name + 7, // 48: xatu.ClientMeta.AdditionalEthV1EventsAttestationData.attesting_validator:type_name -> xatu.AttestingValidator + 3, // 49: xatu.ClientMeta.AdditionalEthV1EventsHeadData.epoch:type_name -> xatu.Epoch + 4, // 50: xatu.ClientMeta.AdditionalEthV1EventsHeadData.slot:type_name -> xatu.Slot + 6, // 51: xatu.ClientMeta.AdditionalEthV1EventsHeadData.propagation:type_name -> xatu.Propagation + 3, // 52: xatu.ClientMeta.AdditionalEthV1EventsBlockData.epoch:type_name -> xatu.Epoch + 4, // 53: xatu.ClientMeta.AdditionalEthV1EventsBlockData.slot:type_name -> xatu.Slot + 6, // 54: xatu.ClientMeta.AdditionalEthV1EventsBlockData.propagation:type_name -> xatu.Propagation + 3, // 55: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch + 3, // 56: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch + 3, // 57: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch + 4, // 58: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot + 6, // 59: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation + 3, // 60: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch + 4, // 61: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot + 6, // 62: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation + 24, // 63: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData + 3, // 64: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch + 4, // 65: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot + 38, // 66: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 26, // 67: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 26, // 68: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 26, // 69: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 3, // 70: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch + 4, // 71: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot + 5, // 72: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID + 38, // 73: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp + 37, // 74: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Client.Geo + 1, // 75: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest + 2, // 76: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse + 76, // [76:77] is the sub-list for method output_type + 75, // [75:76] is the sub-list for method input_type + 75, // [75:75] is the sub-list for extension type_name + 75, // [75:75] is the sub-list for extension extendee + 0, // [0:75] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_event_ingester_proto_init() } @@ -3315,7 +3394,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DebugForkChoiceReorg); i { + switch v := v.(*AttestingValidator); i { case 0: return &v.state case 1: @@ -3327,7 +3406,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClientMeta); i { + switch v := v.(*DebugForkChoiceReorg); i { case 0: return &v.state case 1: @@ -3339,7 +3418,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerMeta); i { + switch v := v.(*ClientMeta); i { case 0: return &v.state case 1: @@ -3351,7 +3430,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Meta); i { + switch v := v.(*ServerMeta); i { case 0: return &v.state case 1: @@ -3363,7 +3442,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Event); i { + switch v := v.(*Meta); i { case 0: return &v.state case 1: @@ -3375,7 +3454,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DecoratedEvent); i { + switch v := v.(*Event); i { case 0: return &v.state case 1: @@ -3387,6 +3466,18 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } file_pkg_proto_xatu_event_ingester_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecoratedEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_proto_xatu_event_ingester_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_Ethereum); i { case 0: return &v.state @@ -3398,7 +3489,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1AttestationSourceData); i { case 0: return &v.state @@ -3410,7 +3501,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1AttestationTargetData); i { case 0: return &v.state @@ -3422,7 +3513,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1EventsAttestationData); i { case 0: return &v.state @@ -3434,7 +3525,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1EventsHeadData); i { case 0: return &v.state @@ -3446,7 +3537,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1EventsBlockData); i { case 0: return &v.state @@ -3458,7 +3549,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1EventsVoluntaryExitData); i { case 0: return &v.state @@ -3470,7 +3561,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData); i { case 0: return &v.state @@ -3482,7 +3573,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1EventsChainReorgData); i { case 0: return &v.state @@ -3494,7 +3585,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1EventsContributionAndProofContributionData); i { case 0: return &v.state @@ -3506,7 +3597,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1EventsContributionAndProofData); i { case 0: return &v.state @@ -3518,7 +3609,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_ForkChoiceSnapshot); i { case 0: return &v.state @@ -3530,7 +3621,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1DebugForkChoiceData); i { case 0: return &v.state @@ -3542,7 +3633,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV1DebugForkChoiceReOrgData); i { case 0: return &v.state @@ -3554,7 +3645,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalMempoolTransactionData); i { case 0: return &v.state @@ -3566,7 +3657,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_AdditionalEthV2BeaconBlockData); i { case 0: return &v.state @@ -3578,7 +3669,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_Ethereum_Network); i { case 0: return &v.state @@ -3590,7 +3681,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_Ethereum_Execution); i { case 0: return &v.state @@ -3602,7 +3693,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientMeta_Ethereum_Consensus); i { case 0: return &v.state @@ -3614,7 +3705,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerMeta_Event); i { case 0: return &v.state @@ -3626,7 +3717,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerMeta_Client); i { case 0: return &v.state @@ -3638,7 +3729,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { return nil } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_pkg_proto_xatu_event_ingester_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerMeta_Client_Geo); i { case 0: return &v.state @@ -3651,7 +3742,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { } } } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[7].OneofWrappers = []interface{}{ + file_pkg_proto_xatu_event_ingester_proto_msgTypes[8].OneofWrappers = []interface{}{ (*ClientMeta_EthV1EventsAttestation)(nil), (*ClientMeta_EthV1EventsHead)(nil), (*ClientMeta_EthV1EventsBlock)(nil), @@ -3664,7 +3755,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { (*ClientMeta_EthV1DebugForkChoice)(nil), (*ClientMeta_EthV1DebugForkChoiceReorg)(nil), } - file_pkg_proto_xatu_event_ingester_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_pkg_proto_xatu_event_ingester_proto_msgTypes[12].OneofWrappers = []interface{}{ (*DecoratedEvent_EthV1EventsAttestation)(nil), (*DecoratedEvent_EthV1EventsBlock)(nil), (*DecoratedEvent_EthV1EventsChainReorg)(nil), @@ -3683,7 +3774,7 @@ func file_pkg_proto_xatu_event_ingester_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_proto_xatu_event_ingester_proto_rawDesc, NumEnums: 1, - NumMessages: 36, + NumMessages: 37, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index 0f55a3ee..a5c87175 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -45,6 +45,13 @@ message Propagation { uint64 slot_start_diff = 3 [ json_name = "slot_start_diff" ]; } +message AttestingValidator { + // CommiteeIndex is the position of the validator within the committee. + uint64 commitee_index = 1 [ json_name = "commitee_index" ]; + // Index is the index of the validator in the beacon chain. + uint64 index = 2; +} + message DebugForkChoiceReorg { xatu.eth.v1.ForkChoice before = 1 [ json_name = "before" ]; xatu.eth.v1.ForkChoice after = 2 [ json_name = "after" ]; @@ -124,6 +131,10 @@ message ClientMeta { // Propagation contains information about the propagation of the // attestation. Propagation propagation = 5; + + // AttestingValidator contains data about the validator that created the attestation. + // Note: only available for unaggregated attestations. + AttestingValidator attesting_validator = 6 [ json_name = "attesting_validator" ]; } message AdditionalEthV1EventsHeadData { diff --git a/pkg/proto/xatu/event_ingester_grpc.pb.go b/pkg/proto/xatu/event_ingester_grpc.pb.go index 83401f53..b9aaf67a 100644 --- a/pkg/proto/xatu/event_ingester_grpc.pb.go +++ b/pkg/proto/xatu/event_ingester_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v3.21.9 // source: pkg/proto/xatu/event_ingester.proto package xatu @@ -18,6 +18,10 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + EventIngester_CreateEvents_FullMethodName = "/xatu.EventIngester/CreateEvents" +) + // EventIngesterClient is the client API for EventIngester service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -35,7 +39,7 @@ func NewEventIngesterClient(cc grpc.ClientConnInterface) EventIngesterClient { func (c *eventIngesterClient) CreateEvents(ctx context.Context, in *CreateEventsRequest, opts ...grpc.CallOption) (*CreateEventsResponse, error) { out := new(CreateEventsResponse) - err := c.cc.Invoke(ctx, "/xatu.EventIngester/CreateEvents", in, out, opts...) + err := c.cc.Invoke(ctx, EventIngester_CreateEvents_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -80,7 +84,7 @@ func _EventIngester_CreateEvents_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/xatu.EventIngester/CreateEvents", + FullMethod: EventIngester_CreateEvents_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EventIngesterServer).CreateEvents(ctx, req.(*CreateEventsRequest)) diff --git a/pkg/sentry/ethereum/beacon.go b/pkg/sentry/ethereum/beacon.go index 0b5c3d13..ae7b4b48 100644 --- a/pkg/sentry/ethereum/beacon.go +++ b/pkg/sentry/ethereum/beacon.go @@ -17,6 +17,7 @@ type BeaconNode struct { beacon beacon.Node metadata *MetadataService + duties *DutiesService onReadyCallbacks []func(ctx context.Context) error readyPublished bool @@ -41,11 +42,18 @@ func NewBeaconNode(ctx context.Context, name string, config *Config, log logrus. return nil, errors.Wrap(err, "failed to start metadata service") } + duties := NewDutiesService(log, node, &metadata) + + if err := duties.Start(ctx); err != nil { + return nil, errors.Wrap(err, "failed to start duties service") + } + return &BeaconNode{ config: config, log: log.WithField("module", "sentry/ethereum/beacon"), beacon: node, metadata: &metadata, + duties: &duties, }, nil } @@ -74,6 +82,10 @@ func (b *BeaconNode) Metadata() *MetadataService { return b.metadata } +func (b *BeaconNode) Duties() *DutiesService { + return b.duties +} + func (b *BeaconNode) OnReady(_ context.Context, callback func(ctx context.Context) error) { b.onReadyCallbacks = append(b.onReadyCallbacks, callback) } @@ -120,6 +132,10 @@ func (b *BeaconNode) checkForReadyPublish(ctx context.Context) error { return errors.Wrap(err, "metadata service is not ready") } + if err := b.duties.Ready(); err != nil { + return errors.Wrap(err, "duties service is not ready") + } + status := b.beacon.Status() if status == nil { return errors.New("failed to get beacon node status") diff --git a/pkg/sentry/ethereum/duties.go b/pkg/sentry/ethereum/duties.go new file mode 100644 index 00000000..e4b5ae8a --- /dev/null +++ b/pkg/sentry/ethereum/duties.go @@ -0,0 +1,183 @@ +package ethereum + +import ( + "context" + "fmt" + "sync" + "time" + + v1 "github.com/attestantio/go-eth2-client/api/v1" + "github.com/attestantio/go-eth2-client/spec/phase0" + backoff "github.com/cenkalti/backoff/v4" + "github.com/ethpandaops/beacon/pkg/beacon" + "github.com/go-co-op/gocron" + "github.com/savid/ttlcache/v3" + "github.com/sirupsen/logrus" +) + +type DutiesService struct { + beacon beacon.Node + log logrus.FieldLogger + + attestationDuties *ttlcache.Cache[phase0.Epoch, []*v1.BeaconCommittee] + + mu sync.Mutex + + metadata *MetadataService + + bootstrapped bool +} + +func NewDutiesService(log logrus.FieldLogger, sbeacon beacon.Node, metadata *MetadataService) DutiesService { + return DutiesService{ + beacon: sbeacon, + log: log.WithField("module", "sentry/ethereum/duties"), + attestationDuties: ttlcache.New( + ttlcache.WithTTL[phase0.Epoch, []*v1.BeaconCommittee](60 * time.Minute), + ), + mu: sync.Mutex{}, + + metadata: metadata, + + bootstrapped: false, + } +} + +func (m *DutiesService) Start(ctx context.Context) error { + m.beacon.OnReady(ctx, func(ctx context.Context, event *beacon.ReadyEvent) error { + m.bootstrapped = true + m.log.Info("Beacon node is ready") + + operation := func() error { + return m.backFillEpochDuties(ctx) + } + + if err := backoff.Retry(operation, backoff.NewExponentialBackOff()); err != nil { + m.log.WithError(err).Warn("Failed to fetch epoch duties") + + return err + } + + return nil + }) + + s := gocron.NewScheduler(time.Local) + + if _, err := s.Every("1m").Do(func() { + _ = m.backFillEpochDuties(ctx) + }); err != nil { + return err + } + + s.StartAsync() + + return nil +} + +func (m *DutiesService) RequiredEpochDuties() []phase0.Epoch { + now := m.beacon.Wallclock().Epochs().Current() + + epochNumber := now.Number() + + epochs := []phase0.Epoch{ + phase0.Epoch(epochNumber - 3), + phase0.Epoch(epochNumber - 2), + phase0.Epoch(epochNumber - 1), + phase0.Epoch(epochNumber), + phase0.Epoch(epochNumber + 1), + } + + final := map[phase0.Epoch]struct{}{} + + // Deduplicate in case the current epoch is below epoch 3. + for _, epoch := range epochs { + final[epoch] = struct{}{} + } + + epochs = make([]phase0.Epoch, 0, len(final)) + for epoch := range final { + epochs = append(epochs, epoch) + } + + return epochs +} + +func (m *DutiesService) Ready() error { + if !m.bootstrapped { + return fmt.Errorf("beacon node is not ready") + } + + if err := m.metadata.Ready(); err != nil { + return fmt.Errorf("metadata service is not ready") + } + + for _, epoch := range m.RequiredEpochDuties() { + if duties := m.attestationDuties.Get(epoch); duties == nil { + return fmt.Errorf("duties for epoch %d are not ready", epoch) + } + } + + return nil +} + +func (m *DutiesService) backFillEpochDuties(ctx context.Context) error { + if m.metadata.Wallclock() == nil { + return fmt.Errorf("metadata service is not ready") + } + + for _, epoch := range m.RequiredEpochDuties() { + if duties := m.attestationDuties.Get(epoch); duties == nil { + if err := m.fetchBeaconCommittee(ctx, epoch); err != nil { + return err + } + } + } + + return nil +} + +func (m *DutiesService) fetchBeaconCommittee(ctx context.Context, epoch phase0.Epoch) error { + if duties := m.attestationDuties.Get(epoch); duties != nil { + return nil + } + + m.mu.Lock() + defer m.mu.Unlock() + + committees, err := m.beacon.FetchBeaconCommittees(ctx, "head", epoch) + if err != nil { + m.log.WithError(err).Error("Failed to fetch beacon committees") + + return err + } + + m.attestationDuties.Set(epoch, committees, time.Minute*60) + + return nil +} + +func (m *DutiesService) GetAttestationDuties(epoch phase0.Epoch) ([]*v1.BeaconCommittee, error) { + duties := m.attestationDuties.Get(epoch) + if duties == nil { + return nil, fmt.Errorf("duties for epoch %d are not known", epoch) + } + + return duties.Value(), nil +} + +func (m *DutiesService) GetValidatorIndex(epoch phase0.Epoch, slot phase0.Slot, committeeIndex phase0.CommitteeIndex, position uint64) (phase0.ValidatorIndex, error) { + duties := m.attestationDuties.Get(epoch) + if duties == nil { + return 0, fmt.Errorf("duties for epoch %d are not known", epoch) + } + + for _, committee := range duties.Value() { + if committee.Slot != slot || committee.Index != committeeIndex { + continue + } + + return committee.Validators[position], nil + } + + return 0, fmt.Errorf("validator index not found") +} diff --git a/pkg/sentry/event/beacon/eth/v1/events_attestation.go b/pkg/sentry/event/beacon/eth/v1/events_attestation.go index 364bd47c..60a84400 100644 --- a/pkg/sentry/event/beacon/eth/v1/events_attestation.go +++ b/pkg/sentry/event/beacon/eth/v1/events_attestation.go @@ -145,5 +145,31 @@ func (e *EventsAttestation) getAdditionalData(_ context.Context) (*xatu.ClientMe }, } + // If the attestation is unaggreated, we can append the validator position within the committee + if e.event.AggregationBits.Count() == 1 { + position := uint64(e.event.AggregationBits.BitIndices()[0]) + + validatorIndex, err := e.beacon.Duties().GetValidatorIndex( + phase0.Epoch(epoch.Number()), + e.event.Data.Slot, + e.event.Data.Index, + position, + ) + if err == nil { + extra.AttestingValidator = &xatu.AttestingValidator{ + CommiteeIndex: position, + Index: uint64(validatorIndex), + } + + e.log. + WithField("position", position). + WithField("validator_index", validatorIndex). + WithField("slot", e.event.Data.Slot). + WithField("committee_index", e.event.Data.Index). + WithField("epoch", epoch.Number()). + Debug("Got unaagregated attestation") + } + } + return extra, nil }