diff --git a/release/go/spacemesh/v1/activation_types.pb.go b/release/go/spacemesh/v1/activation_types.pb.go index 6c3ef108..9874ab8f 100644 --- a/release/go/spacemesh/v1/activation_types.pb.go +++ b/release/go/spacemesh/v1/activation_types.pb.go @@ -72,7 +72,8 @@ type GetResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Atx *Activation `protobuf:"bytes,1,opt,name=atx,proto3" json:"atx,omitempty"` + Atx *Activation `protobuf:"bytes,1,opt,name=atx,proto3" json:"atx,omitempty"` + MalfeasanceProof *MalfeasanceProof `protobuf:"bytes,2,opt,name=malfeasance_proof,json=malfeasanceProof,proto3" json:"malfeasance_proof,omitempty"` } func (x *GetResponse) Reset() { @@ -114,6 +115,13 @@ func (x *GetResponse) GetAtx() *Activation { return nil } +func (x *GetResponse) GetMalfeasanceProof() *MalfeasanceProof { + if x != nil { + return x.MalfeasanceProof + } + return nil +} + type HighestResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -170,19 +178,24 @@ var file_spacemesh_v1_activation_types_proto_rawDesc = []byte{ 0x2e, 0x76, 0x31, 0x1a, 0x18, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, 0x39, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x61, 0x74, - 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, - 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x03, 0x61, 0x74, 0x78, 0x22, 0x3d, 0x0a, 0x0f, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x61, 0x74, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, - 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x03, 0x61, 0x74, 0x78, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x6f, 0x73, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x61, + 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x03, 0x61, 0x74, 0x78, 0x12, 0x4b, 0x0a, 0x11, 0x6d, 0x61, 0x6c, 0x66, 0x65, + 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, + 0x6f, 0x66, 0x52, 0x10, 0x6d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x3d, 0x0a, 0x0f, 0x48, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x61, 0x74, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, + 0x61, 0x74, 0x78, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x6f, 0x73, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -199,19 +212,21 @@ func file_spacemesh_v1_activation_types_proto_rawDescGZIP() []byte { var file_spacemesh_v1_activation_types_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_spacemesh_v1_activation_types_proto_goTypes = []interface{}{ - (*GetRequest)(nil), // 0: spacemesh.v1.GetRequest - (*GetResponse)(nil), // 1: spacemesh.v1.GetResponse - (*HighestResponse)(nil), // 2: spacemesh.v1.HighestResponse - (*Activation)(nil), // 3: spacemesh.v1.Activation + (*GetRequest)(nil), // 0: spacemesh.v1.GetRequest + (*GetResponse)(nil), // 1: spacemesh.v1.GetResponse + (*HighestResponse)(nil), // 2: spacemesh.v1.HighestResponse + (*Activation)(nil), // 3: spacemesh.v1.Activation + (*MalfeasanceProof)(nil), // 4: spacemesh.v1.MalfeasanceProof } var file_spacemesh_v1_activation_types_proto_depIdxs = []int32{ 3, // 0: spacemesh.v1.GetResponse.atx:type_name -> spacemesh.v1.Activation - 3, // 1: spacemesh.v1.HighestResponse.atx:type_name -> spacemesh.v1.Activation - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 4, // 1: spacemesh.v1.GetResponse.malfeasance_proof:type_name -> spacemesh.v1.MalfeasanceProof + 3, // 2: spacemesh.v1.HighestResponse.atx:type_name -> spacemesh.v1.Activation + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_spacemesh_v1_activation_types_proto_init() } diff --git a/release/go/spacemesh/v1/admin_types.pb.go b/release/go/spacemesh/v1/admin_types.pb.go index e62a8475..f845b226 100644 --- a/release/go/spacemesh/v1/admin_types.pb.go +++ b/release/go/spacemesh/v1/admin_types.pb.go @@ -203,6 +203,7 @@ type Event struct { // *Event_Eligibilities // *Event_Proposal // *Event_InitFailed + // *Event_Malfeasance Details isEvent_Details `protobuf_oneof:"details"` } @@ -343,6 +344,13 @@ func (x *Event) GetInitFailed() *EventInitFailed { return nil } +func (x *Event) GetMalfeasance() *EventMalfeasance { + if x, ok := x.GetDetails().(*Event_Malfeasance); ok { + return x.Malfeasance + } + return nil +} + type isEvent_Details interface { isEvent_Details() } @@ -391,6 +399,10 @@ type Event_InitFailed struct { InitFailed *EventInitFailed `protobuf:"bytes,14,opt,name=init_failed,json=initFailed,proto3,oneof"` } +type Event_Malfeasance struct { + Malfeasance *EventMalfeasance `protobuf:"bytes,15,opt,name=malfeasance,proto3,oneof"` +} + func (*Event_Beacon) isEvent_Details() {} func (*Event_InitStart) isEvent_Details() {} @@ -413,6 +425,8 @@ func (*Event_Proposal) isEvent_Details() {} func (*Event_InitFailed) isEvent_Details() {} +func (*Event_Malfeasance) isEvent_Details() {} + type EventBeacon struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1105,6 +1119,53 @@ func (x *EventProposal) GetProposal() []byte { return nil } +type EventMalfeasance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Proof *MalfeasanceProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (x *EventMalfeasance) Reset() { + *x = EventMalfeasance{} + if protoimpl.UnsafeEnabled { + mi := &file_spacemesh_v1_admin_types_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventMalfeasance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventMalfeasance) ProtoMessage() {} + +func (x *EventMalfeasance) ProtoReflect() protoreflect.Message { + mi := &file_spacemesh_v1_admin_types_proto_msgTypes[16] + 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 EventMalfeasance.ProtoReflect.Descriptor instead. +func (*EventMalfeasance) Descriptor() ([]byte, []int) { + return file_spacemesh_v1_admin_types_proto_rawDescGZIP(), []int{16} +} + +func (x *EventMalfeasance) GetProof() *MalfeasanceProof { + if x != nil { + return x.Proof + } + return nil +} + type EventStreamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1114,7 +1175,7 @@ type EventStreamRequest struct { func (x *EventStreamRequest) Reset() { *x = EventStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacemesh_v1_admin_types_proto_msgTypes[16] + mi := &file_spacemesh_v1_admin_types_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1127,7 +1188,7 @@ func (x *EventStreamRequest) String() string { func (*EventStreamRequest) ProtoMessage() {} func (x *EventStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacemesh_v1_admin_types_proto_msgTypes[16] + mi := &file_spacemesh_v1_admin_types_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1140,7 +1201,7 @@ func (x *EventStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EventStreamRequest.ProtoReflect.Descriptor instead. func (*EventStreamRequest) Descriptor() ([]byte, []int) { - return file_spacemesh_v1_admin_types_proto_rawDescGZIP(), []int{16} + return file_spacemesh_v1_admin_types_proto_rawDescGZIP(), []int{17} } var File_spacemesh_v1_admin_types_proto protoreflect.FileDescriptor @@ -1152,147 +1213,157 @@ var file_spacemesh_v1_admin_types_proto_rawDesc = []byte{ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x5b, 0x0a, 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4c, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x74, 0x78, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x41, 0x74, 0x78, 0x73, 0x22, 0x2e, 0x0a, 0x18, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x0e, - 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x4c, 0x61, 0x79, 0x65, 0x72, 0x22, 0xe3, 0x06, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, - 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x12, 0x33, 0x0a, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, - 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0a, - 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, - 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x46, 0x0a, 0x0d, 0x69, - 0x6e, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, - 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x46, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x63, + 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x18, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5b, 0x0a, 0x17, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6e, + 0x75, 0x6d, 0x5f, 0x61, 0x74, 0x78, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, + 0x75, 0x6d, 0x41, 0x74, 0x78, 0x73, 0x22, 0x2e, 0x0a, 0x18, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x22, + 0xa7, 0x07, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x68, 0x65, 0x6c, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x65, 0x6c, + 0x70, 0x12, 0x33, 0x0a, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x46, 0x0a, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x63, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x3d, 0x0a, + 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, + 0x00, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x46, 0x0a, 0x0d, + 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x6f, 0x65, 0x74, 0x5f, 0x77, 0x61, 0x69, + 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x50, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x48, + 0x00, 0x52, 0x0d, 0x70, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x6f, 0x65, 0x74, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x6f, - 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x6f, - 0x65, 0x74, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, - 0x74, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x6f, 0x65, 0x74, 0x5f, 0x77, - 0x61, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x12, 0x45, 0x0a, 0x0d, 0x61, 0x74, 0x78, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, - 0x78, 0x50, 0x75, 0x62, 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x74, 0x78, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0d, 0x65, 0x6c, 0x69, - 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x40, - 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3b, 0x0a, 0x0b, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, + 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x48, 0x00, 0x52, 0x0d, 0x70, + 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x45, 0x0a, 0x0d, + 0x61, 0x74, 0x78, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x78, 0x50, 0x75, 0x62, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x74, 0x78, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0d, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x45, + 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0d, + 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, + 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, + 0x69, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x61, + 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3b, 0x0a, 0x0b, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x16, + 0x0a, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6d, 0x65, 0x73, + 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x6d, 0x65, 0x73, 0x68, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x61, 0x0a, 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x72, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, + 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x2e, 0x0a, 0x0e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x31, 0x0a, 0x11, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x77, 0x0a, + 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x22, 0x75, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, + 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2d, + 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x22, 0x83, 0x01, + 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x78, 0x50, 0x75, 0x62, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x77, + 0x61, 0x69, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x45, 0x6c, 0x69, + 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6d, - 0x65, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x6d, 0x65, - 0x73, 0x68, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x61, 0x0a, 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x69, - 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6d, 0x65, 0x73, 0x68, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x65, - 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x49, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x2e, 0x0a, 0x0e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x31, 0x0a, 0x11, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, - 0x77, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x77, 0x61, 0x69, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x22, 0x75, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x50, 0x6f, 0x65, 0x74, 0x57, 0x61, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x2d, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x22, - 0x83, 0x01, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x78, 0x50, 0x75, 0x62, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x04, 0x77, 0x61, 0x69, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x45, - 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x74, - 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x74, 0x78, 0x12, 0x26, 0x0a, 0x0f, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0d, - 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x41, 0x0a, - 0x13, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x41, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x22, 0x14, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, - 0x68, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, - 0x67, 0x6f, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x06, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x74, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x61, 0x74, 0x78, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x65, 0x6c, + 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x13, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x41, + 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x22, 0x48, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, + 0x73, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x14, 0x0a, 0x12, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1307,7 +1378,7 @@ func file_spacemesh_v1_admin_types_proto_rawDescGZIP() []byte { return file_spacemesh_v1_admin_types_proto_rawDescData } -var file_spacemesh_v1_admin_types_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_spacemesh_v1_admin_types_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_spacemesh_v1_admin_types_proto_goTypes = []interface{}{ (*CheckpointStreamRequest)(nil), // 0: spacemesh.v1.CheckpointStreamRequest (*CheckpointStreamResponse)(nil), // 1: spacemesh.v1.CheckpointStreamResponse @@ -1325,12 +1396,14 @@ var file_spacemesh_v1_admin_types_proto_goTypes = []interface{}{ (*EventEligibilities)(nil), // 13: spacemesh.v1.EventEligibilities (*ProposalEligibility)(nil), // 14: spacemesh.v1.ProposalEligibility (*EventProposal)(nil), // 15: spacemesh.v1.EventProposal - (*EventStreamRequest)(nil), // 16: spacemesh.v1.EventStreamRequest - (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp - (*duration.Duration)(nil), // 18: google.protobuf.Duration + (*EventMalfeasance)(nil), // 16: spacemesh.v1.EventMalfeasance + (*EventStreamRequest)(nil), // 17: spacemesh.v1.EventStreamRequest + (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp + (*duration.Duration)(nil), // 19: google.protobuf.Duration + (*MalfeasanceProof)(nil), // 20: spacemesh.v1.MalfeasanceProof } var file_spacemesh_v1_admin_types_proto_depIdxs = []int32{ - 17, // 0: spacemesh.v1.Event.timestamp:type_name -> google.protobuf.Timestamp + 18, // 0: spacemesh.v1.Event.timestamp:type_name -> google.protobuf.Timestamp 4, // 1: spacemesh.v1.Event.beacon:type_name -> spacemesh.v1.EventBeacon 5, // 2: spacemesh.v1.Event.init_start:type_name -> spacemesh.v1.EventInitStart 7, // 3: spacemesh.v1.Event.init_complete:type_name -> spacemesh.v1.EventInitComplete @@ -1342,15 +1415,17 @@ var file_spacemesh_v1_admin_types_proto_depIdxs = []int32{ 13, // 9: spacemesh.v1.Event.eligibilities:type_name -> spacemesh.v1.EventEligibilities 15, // 10: spacemesh.v1.Event.proposal:type_name -> spacemesh.v1.EventProposal 6, // 11: spacemesh.v1.Event.init_failed:type_name -> spacemesh.v1.EventInitFailed - 18, // 12: spacemesh.v1.EventPoetWaitRound.wait:type_name -> google.protobuf.Duration - 18, // 13: spacemesh.v1.EventPoetWaitProof.wait:type_name -> google.protobuf.Duration - 18, // 14: spacemesh.v1.EventAtxPubished.wait:type_name -> google.protobuf.Duration - 14, // 15: spacemesh.v1.EventEligibilities.eligibilities:type_name -> spacemesh.v1.ProposalEligibility - 16, // [16:16] is the sub-list for method output_type - 16, // [16:16] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 16, // 12: spacemesh.v1.Event.malfeasance:type_name -> spacemesh.v1.EventMalfeasance + 19, // 13: spacemesh.v1.EventPoetWaitRound.wait:type_name -> google.protobuf.Duration + 19, // 14: spacemesh.v1.EventPoetWaitProof.wait:type_name -> google.protobuf.Duration + 19, // 15: spacemesh.v1.EventAtxPubished.wait:type_name -> google.protobuf.Duration + 14, // 16: spacemesh.v1.EventEligibilities.eligibilities:type_name -> spacemesh.v1.ProposalEligibility + 20, // 17: spacemesh.v1.EventMalfeasance.proof:type_name -> spacemesh.v1.MalfeasanceProof + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_spacemesh_v1_admin_types_proto_init() } @@ -1358,6 +1433,7 @@ func file_spacemesh_v1_admin_types_proto_init() { if File_spacemesh_v1_admin_types_proto != nil { return } + file_spacemesh_v1_types_proto_init() if !protoimpl.UnsafeEnabled { file_spacemesh_v1_admin_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckpointStreamRequest); i { @@ -1552,6 +1628,18 @@ func file_spacemesh_v1_admin_types_proto_init() { } } file_spacemesh_v1_admin_types_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventMalfeasance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacemesh_v1_admin_types_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventStreamRequest); i { case 0: return &v.state @@ -1576,6 +1664,7 @@ func file_spacemesh_v1_admin_types_proto_init() { (*Event_Eligibilities)(nil), (*Event_Proposal)(nil), (*Event_InitFailed)(nil), + (*Event_Malfeasance)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1583,7 +1672,7 @@ func file_spacemesh_v1_admin_types_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacemesh_v1_admin_types_proto_rawDesc, NumEnums: 0, - NumMessages: 17, + NumMessages: 18, NumExtensions: 0, NumServices: 0, }, diff --git a/release/go/spacemesh/v1/mesh.pb.go b/release/go/spacemesh/v1/mesh.pb.go index 678ff5bc..38abd1e8 100644 --- a/release/go/spacemesh/v1/mesh.pb.go +++ b/release/go/spacemesh/v1/mesh.pb.go @@ -30,7 +30,7 @@ var file_spacemesh_v1_mesh_proto_rawDesc = []byte{ 0x65, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x1d, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xf2, 0x08, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x68, 0x53, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xb3, 0x0a, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x69, 0x6d, 0x65, @@ -101,11 +101,23 @@ var file_spacemesh_v1_mesh_proto_rawDesc = []byte{ 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x34, 0x5a, 0x32, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, - 0x65, 0x73, 0x68, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x57, 0x0a, 0x10, 0x4d, + 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, + 0x20, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x11, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, + 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x26, 0x2e, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, + 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x34, 0x5a, 0x32, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x6d, 0x65, 0x73, 0x68, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, + 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_spacemesh_v1_mesh_proto_goTypes = []interface{}{ @@ -121,18 +133,22 @@ var file_spacemesh_v1_mesh_proto_goTypes = []interface{}{ (*AccountMeshDataStreamRequest)(nil), // 9: spacemesh.v1.AccountMeshDataStreamRequest (*LayerStreamRequest)(nil), // 10: spacemesh.v1.LayerStreamRequest (*EpochStreamRequest)(nil), // 11: spacemesh.v1.EpochStreamRequest - (*GenesisTimeResponse)(nil), // 12: spacemesh.v1.GenesisTimeResponse - (*CurrentLayerResponse)(nil), // 13: spacemesh.v1.CurrentLayerResponse - (*CurrentEpochResponse)(nil), // 14: spacemesh.v1.CurrentEpochResponse - (*GenesisIDResponse)(nil), // 15: spacemesh.v1.GenesisIDResponse - (*EpochNumLayersResponse)(nil), // 16: spacemesh.v1.EpochNumLayersResponse - (*LayerDurationResponse)(nil), // 17: spacemesh.v1.LayerDurationResponse - (*MaxTransactionsPerSecondResponse)(nil), // 18: spacemesh.v1.MaxTransactionsPerSecondResponse - (*AccountMeshDataQueryResponse)(nil), // 19: spacemesh.v1.AccountMeshDataQueryResponse - (*LayersQueryResponse)(nil), // 20: spacemesh.v1.LayersQueryResponse - (*AccountMeshDataStreamResponse)(nil), // 21: spacemesh.v1.AccountMeshDataStreamResponse - (*LayerStreamResponse)(nil), // 22: spacemesh.v1.LayerStreamResponse - (*EpochStreamResponse)(nil), // 23: spacemesh.v1.EpochStreamResponse + (*MalfeasanceRequest)(nil), // 12: spacemesh.v1.MalfeasanceRequest + (*MalfeasanceStreamRequest)(nil), // 13: spacemesh.v1.MalfeasanceStreamRequest + (*GenesisTimeResponse)(nil), // 14: spacemesh.v1.GenesisTimeResponse + (*CurrentLayerResponse)(nil), // 15: spacemesh.v1.CurrentLayerResponse + (*CurrentEpochResponse)(nil), // 16: spacemesh.v1.CurrentEpochResponse + (*GenesisIDResponse)(nil), // 17: spacemesh.v1.GenesisIDResponse + (*EpochNumLayersResponse)(nil), // 18: spacemesh.v1.EpochNumLayersResponse + (*LayerDurationResponse)(nil), // 19: spacemesh.v1.LayerDurationResponse + (*MaxTransactionsPerSecondResponse)(nil), // 20: spacemesh.v1.MaxTransactionsPerSecondResponse + (*AccountMeshDataQueryResponse)(nil), // 21: spacemesh.v1.AccountMeshDataQueryResponse + (*LayersQueryResponse)(nil), // 22: spacemesh.v1.LayersQueryResponse + (*AccountMeshDataStreamResponse)(nil), // 23: spacemesh.v1.AccountMeshDataStreamResponse + (*LayerStreamResponse)(nil), // 24: spacemesh.v1.LayerStreamResponse + (*EpochStreamResponse)(nil), // 25: spacemesh.v1.EpochStreamResponse + (*MalfeasanceResponse)(nil), // 26: spacemesh.v1.MalfeasanceResponse + (*MalfeasanceStreamResponse)(nil), // 27: spacemesh.v1.MalfeasanceStreamResponse } var file_spacemesh_v1_mesh_proto_depIdxs = []int32{ 0, // 0: spacemesh.v1.MeshService.GenesisTime:input_type -> spacemesh.v1.GenesisTimeRequest @@ -147,20 +163,24 @@ var file_spacemesh_v1_mesh_proto_depIdxs = []int32{ 9, // 9: spacemesh.v1.MeshService.AccountMeshDataStream:input_type -> spacemesh.v1.AccountMeshDataStreamRequest 10, // 10: spacemesh.v1.MeshService.LayerStream:input_type -> spacemesh.v1.LayerStreamRequest 11, // 11: spacemesh.v1.MeshService.EpochStream:input_type -> spacemesh.v1.EpochStreamRequest - 12, // 12: spacemesh.v1.MeshService.GenesisTime:output_type -> spacemesh.v1.GenesisTimeResponse - 13, // 13: spacemesh.v1.MeshService.CurrentLayer:output_type -> spacemesh.v1.CurrentLayerResponse - 14, // 14: spacemesh.v1.MeshService.CurrentEpoch:output_type -> spacemesh.v1.CurrentEpochResponse - 15, // 15: spacemesh.v1.MeshService.GenesisID:output_type -> spacemesh.v1.GenesisIDResponse - 16, // 16: spacemesh.v1.MeshService.EpochNumLayers:output_type -> spacemesh.v1.EpochNumLayersResponse - 17, // 17: spacemesh.v1.MeshService.LayerDuration:output_type -> spacemesh.v1.LayerDurationResponse - 18, // 18: spacemesh.v1.MeshService.MaxTransactionsPerSecond:output_type -> spacemesh.v1.MaxTransactionsPerSecondResponse - 19, // 19: spacemesh.v1.MeshService.AccountMeshDataQuery:output_type -> spacemesh.v1.AccountMeshDataQueryResponse - 20, // 20: spacemesh.v1.MeshService.LayersQuery:output_type -> spacemesh.v1.LayersQueryResponse - 21, // 21: spacemesh.v1.MeshService.AccountMeshDataStream:output_type -> spacemesh.v1.AccountMeshDataStreamResponse - 22, // 22: spacemesh.v1.MeshService.LayerStream:output_type -> spacemesh.v1.LayerStreamResponse - 23, // 23: spacemesh.v1.MeshService.EpochStream:output_type -> spacemesh.v1.EpochStreamResponse - 12, // [12:24] is the sub-list for method output_type - 0, // [0:12] is the sub-list for method input_type + 12, // 12: spacemesh.v1.MeshService.MalfeasanceQuery:input_type -> spacemesh.v1.MalfeasanceRequest + 13, // 13: spacemesh.v1.MeshService.MalfeasanceStream:input_type -> spacemesh.v1.MalfeasanceStreamRequest + 14, // 14: spacemesh.v1.MeshService.GenesisTime:output_type -> spacemesh.v1.GenesisTimeResponse + 15, // 15: spacemesh.v1.MeshService.CurrentLayer:output_type -> spacemesh.v1.CurrentLayerResponse + 16, // 16: spacemesh.v1.MeshService.CurrentEpoch:output_type -> spacemesh.v1.CurrentEpochResponse + 17, // 17: spacemesh.v1.MeshService.GenesisID:output_type -> spacemesh.v1.GenesisIDResponse + 18, // 18: spacemesh.v1.MeshService.EpochNumLayers:output_type -> spacemesh.v1.EpochNumLayersResponse + 19, // 19: spacemesh.v1.MeshService.LayerDuration:output_type -> spacemesh.v1.LayerDurationResponse + 20, // 20: spacemesh.v1.MeshService.MaxTransactionsPerSecond:output_type -> spacemesh.v1.MaxTransactionsPerSecondResponse + 21, // 21: spacemesh.v1.MeshService.AccountMeshDataQuery:output_type -> spacemesh.v1.AccountMeshDataQueryResponse + 22, // 22: spacemesh.v1.MeshService.LayersQuery:output_type -> spacemesh.v1.LayersQueryResponse + 23, // 23: spacemesh.v1.MeshService.AccountMeshDataStream:output_type -> spacemesh.v1.AccountMeshDataStreamResponse + 24, // 24: spacemesh.v1.MeshService.LayerStream:output_type -> spacemesh.v1.LayerStreamResponse + 25, // 25: spacemesh.v1.MeshService.EpochStream:output_type -> spacemesh.v1.EpochStreamResponse + 26, // 26: spacemesh.v1.MeshService.MalfeasanceQuery:output_type -> spacemesh.v1.MalfeasanceResponse + 27, // 27: spacemesh.v1.MeshService.MalfeasanceStream:output_type -> spacemesh.v1.MalfeasanceStreamResponse + 14, // [14:28] is the sub-list for method output_type + 0, // [0:14] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -229,6 +249,8 @@ type MeshServiceClient interface { LayerStream(ctx context.Context, in *LayerStreamRequest, opts ...grpc.CallOption) (MeshService_LayerStreamClient, error) // Epoch activation transactions. EpochStream(ctx context.Context, in *EpochStreamRequest, opts ...grpc.CallOption) (MeshService_EpochStreamClient, error) + MalfeasanceQuery(ctx context.Context, in *MalfeasanceRequest, opts ...grpc.CallOption) (*MalfeasanceResponse, error) + MalfeasanceStream(ctx context.Context, in *MalfeasanceStreamRequest, opts ...grpc.CallOption) (MeshService_MalfeasanceStreamClient, error) } type meshServiceClient struct { @@ -416,6 +438,47 @@ func (x *meshServiceEpochStreamClient) Recv() (*EpochStreamResponse, error) { return m, nil } +func (c *meshServiceClient) MalfeasanceQuery(ctx context.Context, in *MalfeasanceRequest, opts ...grpc.CallOption) (*MalfeasanceResponse, error) { + out := new(MalfeasanceResponse) + err := c.cc.Invoke(ctx, "/spacemesh.v1.MeshService/MalfeasanceQuery", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meshServiceClient) MalfeasanceStream(ctx context.Context, in *MalfeasanceStreamRequest, opts ...grpc.CallOption) (MeshService_MalfeasanceStreamClient, error) { + stream, err := c.cc.NewStream(ctx, &_MeshService_serviceDesc.Streams[3], "/spacemesh.v1.MeshService/MalfeasanceStream", opts...) + if err != nil { + return nil, err + } + x := &meshServiceMalfeasanceStreamClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type MeshService_MalfeasanceStreamClient interface { + Recv() (*MalfeasanceStreamResponse, error) + grpc.ClientStream +} + +type meshServiceMalfeasanceStreamClient struct { + grpc.ClientStream +} + +func (x *meshServiceMalfeasanceStreamClient) Recv() (*MalfeasanceStreamResponse, error) { + m := new(MalfeasanceStreamResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // MeshServiceServer is the server API for MeshService service. type MeshServiceServer interface { // Network genesis time as unix epoch time @@ -444,6 +507,8 @@ type MeshServiceServer interface { LayerStream(*LayerStreamRequest, MeshService_LayerStreamServer) error // Epoch activation transactions. EpochStream(*EpochStreamRequest, MeshService_EpochStreamServer) error + MalfeasanceQuery(context.Context, *MalfeasanceRequest) (*MalfeasanceResponse, error) + MalfeasanceStream(*MalfeasanceStreamRequest, MeshService_MalfeasanceStreamServer) error } // UnimplementedMeshServiceServer can be embedded to have forward compatible implementations. @@ -486,6 +551,12 @@ func (*UnimplementedMeshServiceServer) LayerStream(*LayerStreamRequest, MeshServ func (*UnimplementedMeshServiceServer) EpochStream(*EpochStreamRequest, MeshService_EpochStreamServer) error { return status.Errorf(codes.Unimplemented, "method EpochStream not implemented") } +func (*UnimplementedMeshServiceServer) MalfeasanceQuery(context.Context, *MalfeasanceRequest) (*MalfeasanceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MalfeasanceQuery not implemented") +} +func (*UnimplementedMeshServiceServer) MalfeasanceStream(*MalfeasanceStreamRequest, MeshService_MalfeasanceStreamServer) error { + return status.Errorf(codes.Unimplemented, "method MalfeasanceStream not implemented") +} func RegisterMeshServiceServer(s *grpc.Server, srv MeshServiceServer) { s.RegisterService(&_MeshService_serviceDesc, srv) @@ -716,6 +787,45 @@ func (x *meshServiceEpochStreamServer) Send(m *EpochStreamResponse) error { return x.ServerStream.SendMsg(m) } +func _MeshService_MalfeasanceQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MalfeasanceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeshServiceServer).MalfeasanceQuery(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/spacemesh.v1.MeshService/MalfeasanceQuery", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeshServiceServer).MalfeasanceQuery(ctx, req.(*MalfeasanceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeshService_MalfeasanceStream_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(MalfeasanceStreamRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(MeshServiceServer).MalfeasanceStream(m, &meshServiceMalfeasanceStreamServer{stream}) +} + +type MeshService_MalfeasanceStreamServer interface { + Send(*MalfeasanceStreamResponse) error + grpc.ServerStream +} + +type meshServiceMalfeasanceStreamServer struct { + grpc.ServerStream +} + +func (x *meshServiceMalfeasanceStreamServer) Send(m *MalfeasanceStreamResponse) error { + return x.ServerStream.SendMsg(m) +} + var _MeshService_serviceDesc = grpc.ServiceDesc{ ServiceName: "spacemesh.v1.MeshService", HandlerType: (*MeshServiceServer)(nil), @@ -756,6 +866,10 @@ var _MeshService_serviceDesc = grpc.ServiceDesc{ MethodName: "LayersQuery", Handler: _MeshService_LayersQuery_Handler, }, + { + MethodName: "MalfeasanceQuery", + Handler: _MeshService_MalfeasanceQuery_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -773,6 +887,11 @@ var _MeshService_serviceDesc = grpc.ServiceDesc{ Handler: _MeshService_EpochStream_Handler, ServerStreams: true, }, + { + StreamName: "MalfeasanceStream", + Handler: _MeshService_MalfeasanceStream_Handler, + ServerStreams: true, + }, }, Metadata: "spacemesh/v1/mesh.proto", } diff --git a/release/go/spacemesh/v1/mesh_types.pb.go b/release/go/spacemesh/v1/mesh_types.pb.go index 4b39cade..b8d0a7ef 100644 --- a/release/go/spacemesh/v1/mesh_types.pb.go +++ b/release/go/spacemesh/v1/mesh_types.pb.go @@ -1302,6 +1302,202 @@ func (x *EpochStreamResponse) GetId() *ActivationId { return nil } +type MalfeasanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SmesherHex string `protobuf:"bytes,1,opt,name=smesher_hex,json=smesherHex,proto3" json:"smesher_hex,omitempty"` + IncludeProof bool `protobuf:"varint,2,opt,name=include_proof,json=includeProof,proto3" json:"include_proof,omitempty"` +} + +func (x *MalfeasanceRequest) Reset() { + *x = MalfeasanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacemesh_v1_mesh_types_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MalfeasanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MalfeasanceRequest) ProtoMessage() {} + +func (x *MalfeasanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacemesh_v1_mesh_types_proto_msgTypes[26] + 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 MalfeasanceRequest.ProtoReflect.Descriptor instead. +func (*MalfeasanceRequest) Descriptor() ([]byte, []int) { + return file_spacemesh_v1_mesh_types_proto_rawDescGZIP(), []int{26} +} + +func (x *MalfeasanceRequest) GetSmesherHex() string { + if x != nil { + return x.SmesherHex + } + return "" +} + +func (x *MalfeasanceRequest) GetIncludeProof() bool { + if x != nil { + return x.IncludeProof + } + return false +} + +type MalfeasanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Proof *MalfeasanceProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (x *MalfeasanceResponse) Reset() { + *x = MalfeasanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacemesh_v1_mesh_types_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MalfeasanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MalfeasanceResponse) ProtoMessage() {} + +func (x *MalfeasanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacemesh_v1_mesh_types_proto_msgTypes[27] + 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 MalfeasanceResponse.ProtoReflect.Descriptor instead. +func (*MalfeasanceResponse) Descriptor() ([]byte, []int) { + return file_spacemesh_v1_mesh_types_proto_rawDescGZIP(), []int{27} +} + +func (x *MalfeasanceResponse) GetProof() *MalfeasanceProof { + if x != nil { + return x.Proof + } + return nil +} + +type MalfeasanceStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IncludeProof bool `protobuf:"varint,1,opt,name=include_proof,json=includeProof,proto3" json:"include_proof,omitempty"` +} + +func (x *MalfeasanceStreamRequest) Reset() { + *x = MalfeasanceStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacemesh_v1_mesh_types_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MalfeasanceStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MalfeasanceStreamRequest) ProtoMessage() {} + +func (x *MalfeasanceStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacemesh_v1_mesh_types_proto_msgTypes[28] + 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 MalfeasanceStreamRequest.ProtoReflect.Descriptor instead. +func (*MalfeasanceStreamRequest) Descriptor() ([]byte, []int) { + return file_spacemesh_v1_mesh_types_proto_rawDescGZIP(), []int{28} +} + +func (x *MalfeasanceStreamRequest) GetIncludeProof() bool { + if x != nil { + return x.IncludeProof + } + return false +} + +type MalfeasanceStreamResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Proof *MalfeasanceProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (x *MalfeasanceStreamResponse) Reset() { + *x = MalfeasanceStreamResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacemesh_v1_mesh_types_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MalfeasanceStreamResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MalfeasanceStreamResponse) ProtoMessage() {} + +func (x *MalfeasanceStreamResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacemesh_v1_mesh_types_proto_msgTypes[29] + 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 MalfeasanceStreamResponse.ProtoReflect.Descriptor instead. +func (*MalfeasanceStreamResponse) Descriptor() ([]byte, []int) { + return file_spacemesh_v1_mesh_types_proto_rawDescGZIP(), []int{29} +} + +func (x *MalfeasanceStreamResponse) GetProof() *MalfeasanceProof { + if x != nil { + return x.Proof + } + return nil +} + var File_spacemesh_v1_mesh_types_proto protoreflect.FileDescriptor var file_spacemesh_v1_mesh_types_proto_rawDesc = []byte{ @@ -1430,20 +1626,40 @@ var file_spacemesh_v1_mesh_types_proto_rawDesc = []byte{ 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x2a, 0x8e, 0x01, 0x0a, 0x13, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x26, 0x0a, 0x22, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x48, 0x5f, - 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4c, 0x41, - 0x47, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, - 0x12, 0x26, 0x0a, 0x22, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x48, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x02, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, - 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x67, - 0x6f, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x12, 0x4d, 0x61, 0x6c, 0x66, 0x65, + 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, + 0x0b, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x72, 0x48, 0x65, 0x78, 0x12, 0x23, + 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, + 0x6f, 0x6f, 0x66, 0x22, 0x4b, 0x0a, 0x13, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, + 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x22, 0x3f, 0x0a, 0x18, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x6f, + 0x66, 0x22, 0x51, 0x0a, 0x19, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, + 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x6c, + 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x2a, 0x8e, 0x01, 0x0a, 0x13, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x65, 0x73, 0x68, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x22, + 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, + 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12, 0x26, 0x0a, + 0x22, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x53, 0x10, 0x02, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x6f, 0x73, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1459,7 +1675,7 @@ func file_spacemesh_v1_mesh_types_proto_rawDescGZIP() []byte { } var file_spacemesh_v1_mesh_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_spacemesh_v1_mesh_types_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_spacemesh_v1_mesh_types_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_spacemesh_v1_mesh_types_proto_goTypes = []interface{}{ (AccountMeshDataFlag)(0), // 0: spacemesh.v1.AccountMeshDataFlag (*GenesisTimeRequest)(nil), // 1: spacemesh.v1.GenesisTimeRequest @@ -1488,40 +1704,47 @@ var file_spacemesh_v1_mesh_types_proto_goTypes = []interface{}{ (*LayerStreamResponse)(nil), // 24: spacemesh.v1.LayerStreamResponse (*EpochStreamRequest)(nil), // 25: spacemesh.v1.EpochStreamRequest (*EpochStreamResponse)(nil), // 26: spacemesh.v1.EpochStreamResponse - (*SimpleInt)(nil), // 27: spacemesh.v1.SimpleInt - (*LayerNumber)(nil), // 28: spacemesh.v1.LayerNumber - (*EpochNumber)(nil), // 29: spacemesh.v1.EpochNumber - (*AccountId)(nil), // 30: spacemesh.v1.AccountId - (*MeshTransaction)(nil), // 31: spacemesh.v1.MeshTransaction - (*Activation)(nil), // 32: spacemesh.v1.Activation - (*Layer)(nil), // 33: spacemesh.v1.Layer - (*ActivationId)(nil), // 34: spacemesh.v1.ActivationId + (*MalfeasanceRequest)(nil), // 27: spacemesh.v1.MalfeasanceRequest + (*MalfeasanceResponse)(nil), // 28: spacemesh.v1.MalfeasanceResponse + (*MalfeasanceStreamRequest)(nil), // 29: spacemesh.v1.MalfeasanceStreamRequest + (*MalfeasanceStreamResponse)(nil), // 30: spacemesh.v1.MalfeasanceStreamResponse + (*SimpleInt)(nil), // 31: spacemesh.v1.SimpleInt + (*LayerNumber)(nil), // 32: spacemesh.v1.LayerNumber + (*EpochNumber)(nil), // 33: spacemesh.v1.EpochNumber + (*AccountId)(nil), // 34: spacemesh.v1.AccountId + (*MeshTransaction)(nil), // 35: spacemesh.v1.MeshTransaction + (*Activation)(nil), // 36: spacemesh.v1.Activation + (*Layer)(nil), // 37: spacemesh.v1.Layer + (*ActivationId)(nil), // 38: spacemesh.v1.ActivationId + (*MalfeasanceProof)(nil), // 39: spacemesh.v1.MalfeasanceProof } var file_spacemesh_v1_mesh_types_proto_depIdxs = []int32{ - 27, // 0: spacemesh.v1.GenesisTimeResponse.unixtime:type_name -> spacemesh.v1.SimpleInt - 28, // 1: spacemesh.v1.CurrentLayerResponse.layernum:type_name -> spacemesh.v1.LayerNumber - 29, // 2: spacemesh.v1.CurrentEpochResponse.epochnum:type_name -> spacemesh.v1.EpochNumber - 28, // 3: spacemesh.v1.EpochNumLayersResponse.numlayers:type_name -> spacemesh.v1.LayerNumber - 27, // 4: spacemesh.v1.LayerDurationResponse.duration:type_name -> spacemesh.v1.SimpleInt - 27, // 5: spacemesh.v1.MaxTransactionsPerSecondResponse.max_txs_per_second:type_name -> spacemesh.v1.SimpleInt - 30, // 6: spacemesh.v1.AccountMeshDataFilter.account_id:type_name -> spacemesh.v1.AccountId - 31, // 7: spacemesh.v1.AccountMeshData.mesh_transaction:type_name -> spacemesh.v1.MeshTransaction - 32, // 8: spacemesh.v1.AccountMeshData.activation:type_name -> spacemesh.v1.Activation + 31, // 0: spacemesh.v1.GenesisTimeResponse.unixtime:type_name -> spacemesh.v1.SimpleInt + 32, // 1: spacemesh.v1.CurrentLayerResponse.layernum:type_name -> spacemesh.v1.LayerNumber + 33, // 2: spacemesh.v1.CurrentEpochResponse.epochnum:type_name -> spacemesh.v1.EpochNumber + 32, // 3: spacemesh.v1.EpochNumLayersResponse.numlayers:type_name -> spacemesh.v1.LayerNumber + 31, // 4: spacemesh.v1.LayerDurationResponse.duration:type_name -> spacemesh.v1.SimpleInt + 31, // 5: spacemesh.v1.MaxTransactionsPerSecondResponse.max_txs_per_second:type_name -> spacemesh.v1.SimpleInt + 34, // 6: spacemesh.v1.AccountMeshDataFilter.account_id:type_name -> spacemesh.v1.AccountId + 35, // 7: spacemesh.v1.AccountMeshData.mesh_transaction:type_name -> spacemesh.v1.MeshTransaction + 36, // 8: spacemesh.v1.AccountMeshData.activation:type_name -> spacemesh.v1.Activation 15, // 9: spacemesh.v1.AccountMeshDataStreamRequest.filter:type_name -> spacemesh.v1.AccountMeshDataFilter 16, // 10: spacemesh.v1.AccountMeshDataStreamResponse.datum:type_name -> spacemesh.v1.AccountMeshData 15, // 11: spacemesh.v1.AccountMeshDataQueryRequest.filter:type_name -> spacemesh.v1.AccountMeshDataFilter - 28, // 12: spacemesh.v1.AccountMeshDataQueryRequest.min_layer:type_name -> spacemesh.v1.LayerNumber + 32, // 12: spacemesh.v1.AccountMeshDataQueryRequest.min_layer:type_name -> spacemesh.v1.LayerNumber 16, // 13: spacemesh.v1.AccountMeshDataQueryResponse.data:type_name -> spacemesh.v1.AccountMeshData - 28, // 14: spacemesh.v1.LayersQueryRequest.start_layer:type_name -> spacemesh.v1.LayerNumber - 28, // 15: spacemesh.v1.LayersQueryRequest.end_layer:type_name -> spacemesh.v1.LayerNumber - 33, // 16: spacemesh.v1.LayersQueryResponse.layer:type_name -> spacemesh.v1.Layer - 33, // 17: spacemesh.v1.LayerStreamResponse.layer:type_name -> spacemesh.v1.Layer - 34, // 18: spacemesh.v1.EpochStreamResponse.id:type_name -> spacemesh.v1.ActivationId - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 32, // 14: spacemesh.v1.LayersQueryRequest.start_layer:type_name -> spacemesh.v1.LayerNumber + 32, // 15: spacemesh.v1.LayersQueryRequest.end_layer:type_name -> spacemesh.v1.LayerNumber + 37, // 16: spacemesh.v1.LayersQueryResponse.layer:type_name -> spacemesh.v1.Layer + 37, // 17: spacemesh.v1.LayerStreamResponse.layer:type_name -> spacemesh.v1.Layer + 38, // 18: spacemesh.v1.EpochStreamResponse.id:type_name -> spacemesh.v1.ActivationId + 39, // 19: spacemesh.v1.MalfeasanceResponse.proof:type_name -> spacemesh.v1.MalfeasanceProof + 39, // 20: spacemesh.v1.MalfeasanceStreamResponse.proof:type_name -> spacemesh.v1.MalfeasanceProof + 21, // [21:21] is the sub-list for method output_type + 21, // [21:21] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_spacemesh_v1_mesh_types_proto_init() } @@ -1843,6 +2066,54 @@ func file_spacemesh_v1_mesh_types_proto_init() { return nil } } + file_spacemesh_v1_mesh_types_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MalfeasanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacemesh_v1_mesh_types_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MalfeasanceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacemesh_v1_mesh_types_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MalfeasanceStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacemesh_v1_mesh_types_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MalfeasanceStreamResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_spacemesh_v1_mesh_types_proto_msgTypes[15].OneofWrappers = []interface{}{ (*AccountMeshData_MeshTransaction)(nil), @@ -1854,7 +2125,7 @@ func file_spacemesh_v1_mesh_types_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacemesh_v1_mesh_types_proto_rawDesc, NumEnums: 1, - NumMessages: 26, + NumMessages: 30, NumExtensions: 0, NumServices: 0, }, diff --git a/release/go/spacemesh/v1/types.pb.go b/release/go/spacemesh/v1/types.pb.go index 579b8a0d..b2d8ffd5 100644 --- a/release/go/spacemesh/v1/types.pb.go +++ b/release/go/spacemesh/v1/types.pb.go @@ -72,6 +72,58 @@ func (Layer_LayerStatus) EnumDescriptor() ([]byte, []int) { return file_spacemesh_v1_types_proto_rawDescGZIP(), []int{14, 0} } +type MalfeasanceProof_MalfeasanceType int32 + +const ( + MalfeasanceProof_MALFEASANCE_UNSPECIFIED MalfeasanceProof_MalfeasanceType = 0 + MalfeasanceProof_MALFEASANCE_ATX MalfeasanceProof_MalfeasanceType = 1 + MalfeasanceProof_MALFEASANCE_BALLOT MalfeasanceProof_MalfeasanceType = 2 + MalfeasanceProof_MALFEASANCE_HARE MalfeasanceProof_MalfeasanceType = 3 +) + +// Enum value maps for MalfeasanceProof_MalfeasanceType. +var ( + MalfeasanceProof_MalfeasanceType_name = map[int32]string{ + 0: "MALFEASANCE_UNSPECIFIED", + 1: "MALFEASANCE_ATX", + 2: "MALFEASANCE_BALLOT", + 3: "MALFEASANCE_HARE", + } + MalfeasanceProof_MalfeasanceType_value = map[string]int32{ + "MALFEASANCE_UNSPECIFIED": 0, + "MALFEASANCE_ATX": 1, + "MALFEASANCE_BALLOT": 2, + "MALFEASANCE_HARE": 3, + } +) + +func (x MalfeasanceProof_MalfeasanceType) Enum() *MalfeasanceProof_MalfeasanceType { + p := new(MalfeasanceProof_MalfeasanceType) + *p = x + return p +} + +func (x MalfeasanceProof_MalfeasanceType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MalfeasanceProof_MalfeasanceType) Descriptor() protoreflect.EnumDescriptor { + return file_spacemesh_v1_types_proto_enumTypes[1].Descriptor() +} + +func (MalfeasanceProof_MalfeasanceType) Type() protoreflect.EnumType { + return &file_spacemesh_v1_types_proto_enumTypes[1] +} + +func (x MalfeasanceProof_MalfeasanceType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MalfeasanceProof_MalfeasanceType.Descriptor instead. +func (MalfeasanceProof_MalfeasanceType) EnumDescriptor() ([]byte, []int) { + return file_spacemesh_v1_types_proto_rawDescGZIP(), []int{18, 0} +} + type SimpleInt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1179,6 +1231,85 @@ func (x *AppEvent) GetMessage() string { return "" } +type MalfeasanceProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SmesherId *SmesherId `protobuf:"bytes,1,opt,name=smesher_id,json=smesherId,proto3" json:"smesher_id,omitempty"` + Layer *LayerNumber `protobuf:"bytes,2,opt,name=layer,proto3" json:"layer,omitempty"` + Kind MalfeasanceProof_MalfeasanceType `protobuf:"varint,3,opt,name=kind,proto3,enum=spacemesh.v1.MalfeasanceProof_MalfeasanceType" json:"kind,omitempty"` + DebugInfo string `protobuf:"bytes,4,opt,name=debug_info,json=debugInfo,proto3" json:"debug_info,omitempty"` + Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (x *MalfeasanceProof) Reset() { + *x = MalfeasanceProof{} + if protoimpl.UnsafeEnabled { + mi := &file_spacemesh_v1_types_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MalfeasanceProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MalfeasanceProof) ProtoMessage() {} + +func (x *MalfeasanceProof) ProtoReflect() protoreflect.Message { + mi := &file_spacemesh_v1_types_proto_msgTypes[18] + 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 MalfeasanceProof.ProtoReflect.Descriptor instead. +func (*MalfeasanceProof) Descriptor() ([]byte, []int) { + return file_spacemesh_v1_types_proto_rawDescGZIP(), []int{18} +} + +func (x *MalfeasanceProof) GetSmesherId() *SmesherId { + if x != nil { + return x.SmesherId + } + return nil +} + +func (x *MalfeasanceProof) GetLayer() *LayerNumber { + if x != nil { + return x.Layer + } + return nil +} + +func (x *MalfeasanceProof) GetKind() MalfeasanceProof_MalfeasanceType { + if x != nil { + return x.Kind + } + return MalfeasanceProof_MALFEASANCE_UNSPECIFIED +} + +func (x *MalfeasanceProof) GetDebugInfo() string { + if x != nil { + return x.DebugInfo + } + return "" +} + +func (x *MalfeasanceProof) GetProof() []byte { + if x != nil { + return x.Proof + } + return nil +} + var File_spacemesh_v1_types_proto protoreflect.FileDescriptor var file_spacemesh_v1_types_proto_rawDesc = []byte{ @@ -1328,11 +1459,34 @@ var file_spacemesh_v1_types_proto_rawDesc = []byte{ 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x34, 0x5a, - 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x6d, 0x65, 0x73, 0x68, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, - 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xe7, 0x02, + 0x0a, 0x10, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, + 0x6f, 0x66, 0x12, 0x36, 0x0a, 0x0a, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x72, 0x49, 0x64, 0x52, + 0x09, 0x73, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x04, 0x6b, + 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, + 0x61, 0x6e, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x2e, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, + 0x73, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x71, 0x0a, 0x0f, 0x4d, 0x61, 0x6c, 0x66, 0x65, 0x61, 0x73, 0x61, + 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x41, 0x4c, 0x46, 0x45, + 0x41, 0x53, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x41, 0x4c, 0x46, 0x45, 0x41, 0x53, 0x41, + 0x4e, 0x43, 0x45, 0x5f, 0x41, 0x54, 0x58, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x4c, + 0x46, 0x45, 0x41, 0x53, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x42, 0x41, 0x4c, 0x4c, 0x4f, 0x54, 0x10, + 0x02, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x41, 0x4c, 0x46, 0x45, 0x41, 0x53, 0x41, 0x4e, 0x43, 0x45, + 0x5f, 0x48, 0x41, 0x52, 0x45, 0x10, 0x03, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x6f, + 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x67, 0x6f, + 0x2f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1347,60 +1501,65 @@ func file_spacemesh_v1_types_proto_rawDescGZIP() []byte { return file_spacemesh_v1_types_proto_rawDescData } -var file_spacemesh_v1_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_spacemesh_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_spacemesh_v1_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_spacemesh_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_spacemesh_v1_types_proto_goTypes = []interface{}{ - (Layer_LayerStatus)(0), // 0: spacemesh.v1.Layer.LayerStatus - (*SimpleInt)(nil), // 1: spacemesh.v1.SimpleInt - (*SimpleString)(nil), // 2: spacemesh.v1.SimpleString - (*Amount)(nil), // 3: spacemesh.v1.Amount - (*AccountId)(nil), // 4: spacemesh.v1.AccountId - (*TransactionId)(nil), // 5: spacemesh.v1.TransactionId - (*ActivationId)(nil), // 6: spacemesh.v1.ActivationId - (*SmesherId)(nil), // 7: spacemesh.v1.SmesherId - (*Activation)(nil), // 8: spacemesh.v1.Activation - (*Transaction)(nil), // 9: spacemesh.v1.Transaction - (*LayerLimits)(nil), // 10: spacemesh.v1.LayerLimits - (*Nonce)(nil), // 11: spacemesh.v1.Nonce - (*MeshTransaction)(nil), // 12: spacemesh.v1.MeshTransaction - (*Reward)(nil), // 13: spacemesh.v1.Reward - (*Block)(nil), // 14: spacemesh.v1.Block - (*Layer)(nil), // 15: spacemesh.v1.Layer - (*LayerNumber)(nil), // 16: spacemesh.v1.LayerNumber - (*EpochNumber)(nil), // 17: spacemesh.v1.EpochNumber - (*AppEvent)(nil), // 18: spacemesh.v1.AppEvent + (Layer_LayerStatus)(0), // 0: spacemesh.v1.Layer.LayerStatus + (MalfeasanceProof_MalfeasanceType)(0), // 1: spacemesh.v1.MalfeasanceProof.MalfeasanceType + (*SimpleInt)(nil), // 2: spacemesh.v1.SimpleInt + (*SimpleString)(nil), // 3: spacemesh.v1.SimpleString + (*Amount)(nil), // 4: spacemesh.v1.Amount + (*AccountId)(nil), // 5: spacemesh.v1.AccountId + (*TransactionId)(nil), // 6: spacemesh.v1.TransactionId + (*ActivationId)(nil), // 7: spacemesh.v1.ActivationId + (*SmesherId)(nil), // 8: spacemesh.v1.SmesherId + (*Activation)(nil), // 9: spacemesh.v1.Activation + (*Transaction)(nil), // 10: spacemesh.v1.Transaction + (*LayerLimits)(nil), // 11: spacemesh.v1.LayerLimits + (*Nonce)(nil), // 12: spacemesh.v1.Nonce + (*MeshTransaction)(nil), // 13: spacemesh.v1.MeshTransaction + (*Reward)(nil), // 14: spacemesh.v1.Reward + (*Block)(nil), // 15: spacemesh.v1.Block + (*Layer)(nil), // 16: spacemesh.v1.Layer + (*LayerNumber)(nil), // 17: spacemesh.v1.LayerNumber + (*EpochNumber)(nil), // 18: spacemesh.v1.EpochNumber + (*AppEvent)(nil), // 19: spacemesh.v1.AppEvent + (*MalfeasanceProof)(nil), // 20: spacemesh.v1.MalfeasanceProof } var file_spacemesh_v1_types_proto_depIdxs = []int32{ - 6, // 0: spacemesh.v1.Activation.id:type_name -> spacemesh.v1.ActivationId - 16, // 1: spacemesh.v1.Activation.layer:type_name -> spacemesh.v1.LayerNumber - 7, // 2: spacemesh.v1.Activation.smesher_id:type_name -> spacemesh.v1.SmesherId - 4, // 3: spacemesh.v1.Activation.coinbase:type_name -> spacemesh.v1.AccountId - 6, // 4: spacemesh.v1.Activation.prev_atx:type_name -> spacemesh.v1.ActivationId - 4, // 5: spacemesh.v1.Transaction.principal:type_name -> spacemesh.v1.AccountId - 4, // 6: spacemesh.v1.Transaction.template:type_name -> spacemesh.v1.AccountId - 11, // 7: spacemesh.v1.Transaction.nonce:type_name -> spacemesh.v1.Nonce - 10, // 8: spacemesh.v1.Transaction.limits:type_name -> spacemesh.v1.LayerLimits - 9, // 9: spacemesh.v1.MeshTransaction.transaction:type_name -> spacemesh.v1.Transaction - 16, // 10: spacemesh.v1.MeshTransaction.layer_id:type_name -> spacemesh.v1.LayerNumber - 16, // 11: spacemesh.v1.Reward.layer:type_name -> spacemesh.v1.LayerNumber - 3, // 12: spacemesh.v1.Reward.total:type_name -> spacemesh.v1.Amount - 3, // 13: spacemesh.v1.Reward.layer_reward:type_name -> spacemesh.v1.Amount - 16, // 14: spacemesh.v1.Reward.layer_computed:type_name -> spacemesh.v1.LayerNumber - 4, // 15: spacemesh.v1.Reward.coinbase:type_name -> spacemesh.v1.AccountId - 7, // 16: spacemesh.v1.Reward.smesher:type_name -> spacemesh.v1.SmesherId - 9, // 17: spacemesh.v1.Block.transactions:type_name -> spacemesh.v1.Transaction - 6, // 18: spacemesh.v1.Block.activation_id:type_name -> spacemesh.v1.ActivationId - 7, // 19: spacemesh.v1.Block.smesher_id:type_name -> spacemesh.v1.SmesherId - 16, // 20: spacemesh.v1.Layer.number:type_name -> spacemesh.v1.LayerNumber + 7, // 0: spacemesh.v1.Activation.id:type_name -> spacemesh.v1.ActivationId + 17, // 1: spacemesh.v1.Activation.layer:type_name -> spacemesh.v1.LayerNumber + 8, // 2: spacemesh.v1.Activation.smesher_id:type_name -> spacemesh.v1.SmesherId + 5, // 3: spacemesh.v1.Activation.coinbase:type_name -> spacemesh.v1.AccountId + 7, // 4: spacemesh.v1.Activation.prev_atx:type_name -> spacemesh.v1.ActivationId + 5, // 5: spacemesh.v1.Transaction.principal:type_name -> spacemesh.v1.AccountId + 5, // 6: spacemesh.v1.Transaction.template:type_name -> spacemesh.v1.AccountId + 12, // 7: spacemesh.v1.Transaction.nonce:type_name -> spacemesh.v1.Nonce + 11, // 8: spacemesh.v1.Transaction.limits:type_name -> spacemesh.v1.LayerLimits + 10, // 9: spacemesh.v1.MeshTransaction.transaction:type_name -> spacemesh.v1.Transaction + 17, // 10: spacemesh.v1.MeshTransaction.layer_id:type_name -> spacemesh.v1.LayerNumber + 17, // 11: spacemesh.v1.Reward.layer:type_name -> spacemesh.v1.LayerNumber + 4, // 12: spacemesh.v1.Reward.total:type_name -> spacemesh.v1.Amount + 4, // 13: spacemesh.v1.Reward.layer_reward:type_name -> spacemesh.v1.Amount + 17, // 14: spacemesh.v1.Reward.layer_computed:type_name -> spacemesh.v1.LayerNumber + 5, // 15: spacemesh.v1.Reward.coinbase:type_name -> spacemesh.v1.AccountId + 8, // 16: spacemesh.v1.Reward.smesher:type_name -> spacemesh.v1.SmesherId + 10, // 17: spacemesh.v1.Block.transactions:type_name -> spacemesh.v1.Transaction + 7, // 18: spacemesh.v1.Block.activation_id:type_name -> spacemesh.v1.ActivationId + 8, // 19: spacemesh.v1.Block.smesher_id:type_name -> spacemesh.v1.SmesherId + 17, // 20: spacemesh.v1.Layer.number:type_name -> spacemesh.v1.LayerNumber 0, // 21: spacemesh.v1.Layer.status:type_name -> spacemesh.v1.Layer.LayerStatus - 14, // 22: spacemesh.v1.Layer.blocks:type_name -> spacemesh.v1.Block - 8, // 23: spacemesh.v1.Layer.activations:type_name -> spacemesh.v1.Activation - 5, // 24: spacemesh.v1.AppEvent.transaction_id:type_name -> spacemesh.v1.TransactionId - 25, // [25:25] is the sub-list for method output_type - 25, // [25:25] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 15, // 22: spacemesh.v1.Layer.blocks:type_name -> spacemesh.v1.Block + 9, // 23: spacemesh.v1.Layer.activations:type_name -> spacemesh.v1.Activation + 6, // 24: spacemesh.v1.AppEvent.transaction_id:type_name -> spacemesh.v1.TransactionId + 8, // 25: spacemesh.v1.MalfeasanceProof.smesher_id:type_name -> spacemesh.v1.SmesherId + 17, // 26: spacemesh.v1.MalfeasanceProof.layer:type_name -> spacemesh.v1.LayerNumber + 1, // 27: spacemesh.v1.MalfeasanceProof.kind:type_name -> spacemesh.v1.MalfeasanceProof.MalfeasanceType + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_spacemesh_v1_types_proto_init() } @@ -1625,14 +1784,26 @@ func file_spacemesh_v1_types_proto_init() { return nil } } + file_spacemesh_v1_types_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MalfeasanceProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacemesh_v1_types_proto_rawDesc, - NumEnums: 1, - NumMessages: 18, + NumEnums: 2, + NumMessages: 19, NumExtensions: 0, NumServices: 0, }, diff --git a/spacemesh/v1/activation_types.proto b/spacemesh/v1/activation_types.proto index 35303c84..66184f09 100644 --- a/spacemesh/v1/activation_types.proto +++ b/spacemesh/v1/activation_types.proto @@ -10,6 +10,7 @@ message GetRequest { message GetResponse { Activation atx = 1; + MalfeasanceProof malfeasance_proof = 2; } message HighestResponse { diff --git a/spacemesh/v1/admin_types.proto b/spacemesh/v1/admin_types.proto index f9e50edc..f48d050c 100644 --- a/spacemesh/v1/admin_types.proto +++ b/spacemesh/v1/admin_types.proto @@ -3,6 +3,7 @@ package spacemesh.v1; option go_package = "github.com/spacemeshos/api/release/go/spacemesh/v1"; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; +import "spacemesh/v1/types.proto"; message CheckpointStreamRequest { uint32 snapshot_layer = 1; @@ -37,6 +38,7 @@ message Event { EventEligibilities eligibilities = 12; EventProposal proposal = 13; EventInitFailed init_failed = 14; + EventMalfeasance malfeasance = 15; } } @@ -104,4 +106,8 @@ message EventProposal { bytes proposal = 2; } +message EventMalfeasance { + MalfeasanceProof proof = 1; +} + message EventStreamRequest {} \ No newline at end of file diff --git a/spacemesh/v1/mesh.proto b/spacemesh/v1/mesh.proto index 2ae24213..839d8b41 100644 --- a/spacemesh/v1/mesh.proto +++ b/spacemesh/v1/mesh.proto @@ -49,4 +49,7 @@ service MeshService { // Epoch activation transactions. rpc EpochStream(EpochStreamRequest) returns (stream EpochStreamResponse); + + rpc MalfeasanceQuery(MalfeasanceRequest) returns (MalfeasanceResponse); + rpc MalfeasanceStream(MalfeasanceStreamRequest) returns (stream MalfeasanceStreamResponse); } diff --git a/spacemesh/v1/mesh_types.proto b/spacemesh/v1/mesh_types.proto index 3cc7f9dd..591565df 100644 --- a/spacemesh/v1/mesh_types.proto +++ b/spacemesh/v1/mesh_types.proto @@ -107,3 +107,20 @@ message EpochStreamRequest { message EpochStreamResponse { ActivationId id = 1; } + +message MalfeasanceRequest { + string smesher_hex = 1; + bool include_proof = 2; +} + +message MalfeasanceResponse { + MalfeasanceProof proof = 1; +} + +message MalfeasanceStreamRequest { + bool include_proof = 1; +} + +message MalfeasanceStreamResponse { + MalfeasanceProof proof = 1; +} diff --git a/spacemesh/v1/types.proto b/spacemesh/v1/types.proto index 5436736e..546e57e0 100644 --- a/spacemesh/v1/types.proto +++ b/spacemesh/v1/types.proto @@ -117,3 +117,17 @@ message AppEvent { // an event emitted from an app instance TransactionId transaction_id = 1; // the transaction that called the code string message = 2; // the event's string emitted from code } + +message MalfeasanceProof { + SmesherId smesher_id = 1; + LayerNumber layer = 2; + enum MalfeasanceType { + MALFEASANCE_UNSPECIFIED = 0; + MALFEASANCE_ATX = 1; + MALFEASANCE_BALLOT = 2; + MALFEASANCE_HARE = 3; + } + MalfeasanceType kind = 3; + string debug_info = 4; + bytes proof = 5; +} \ No newline at end of file