diff --git a/go/common/enclave.go b/go/common/enclave.go index 743259f615..b03108dc9c 100644 --- a/go/common/enclave.go +++ b/go/common/enclave.go @@ -135,6 +135,9 @@ type EnclaveClientRPC interface { // GetTotalContractCount returns the total number of contracts that have been deployed GetTotalContractCount(context.Context) (*big.Int, SystemError) + // GetContracts returns contracts created after the specified contract ID + GetContracts(ctx context.Context, fromContractID uint64, limit uint) ([]EnclaveContractData, SystemError) + // EnclavePublicConfig returns network data that is known to the enclave but can be shared publicly EnclavePublicConfig(context.Context) (*EnclavePublicConfig, SystemError) @@ -171,3 +174,14 @@ type EnclavePublicConfig struct { SystemContractsUpgrader gethcommon.Address PublicSystemContracts map[string]gethcommon.Address } + +type EnclaveContractData struct { + ID uint64 + Address gethcommon.Address + Creator gethcommon.Address + AutoVisibility bool + Transparent *bool + BatchSeq uint64 + BatchHeight uint64 + BatchTimestamp uint64 +} diff --git a/go/common/query_types.go b/go/common/query_types.go index 0d0ccf46eb..29b76797ac 100644 --- a/go/common/query_types.go +++ b/go/common/query_types.go @@ -47,6 +47,22 @@ type RollupListingResponse struct { Total uint64 } +type ContractListingResponse struct { + Contracts []PublicContract + Total uint64 +} + +type PublicContract struct { + ID uint64 `json:"id"` + Address common.Address `json:"address"` + Creator common.Address `json:"creator"` + IsTransparent bool `json:"isTransparent"` + HasCustomConfig bool `json:"hasCustomConfig"` + BatchSeq uint64 `json:"deployedBatchSeq"` + Height uint64 `json:"deployedHeight"` + Time uint64 `json:"deployedTime"` +} + type PublicTransaction struct { TransactionHash TxHash BatchHeight *big.Int diff --git a/go/common/rpc/generated/enclave.pb.go b/go/common/rpc/generated/enclave.pb.go index 2609af8891..a0fc17d530 100644 --- a/go/common/rpc/generated/enclave.pb.go +++ b/go/common/rpc/generated/enclave.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v5.28.3 +// protoc-gen-go v1.36.11 +// protoc v6.33.4 // source: enclave.proto package generated @@ -11,6 +11,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -21,18 +22,16 @@ const ( ) type EnclavePublicConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EnclavePublicConfigRequest) Reset() { *x = EnclavePublicConfigRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EnclavePublicConfigRequest) String() string { @@ -43,7 +42,7 @@ func (*EnclavePublicConfigRequest) ProtoMessage() {} func (x *EnclavePublicConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_enclave_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -59,24 +58,21 @@ func (*EnclavePublicConfigRequest) Descriptor() ([]byte, []int) { } type EnclavePublicConfigResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - L2MessageBusAddress []byte `protobuf:"bytes,1,opt,name=l2MessageBusAddress,proto3" json:"l2MessageBusAddress,omitempty"` - TransactionPostProcessorAddress []byte `protobuf:"bytes,2,opt,name=transactionPostProcessorAddress,proto3" json:"transactionPostProcessorAddress,omitempty"` - SystemContractsUpgraderAddress []byte `protobuf:"bytes,3,opt,name=systemContractsUpgraderAddress,proto3" json:"systemContractsUpgraderAddress,omitempty"` - PublicSystemContracts map[string][]byte `protobuf:"bytes,4,rep,name=publicSystemContracts,proto3" json:"publicSystemContracts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - SystemError *SystemError `protobuf:"bytes,5,opt,name=systemError,proto3" json:"systemError,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + L2MessageBusAddress []byte `protobuf:"bytes,1,opt,name=l2MessageBusAddress,proto3" json:"l2MessageBusAddress,omitempty"` + TransactionPostProcessorAddress []byte `protobuf:"bytes,2,opt,name=transactionPostProcessorAddress,proto3" json:"transactionPostProcessorAddress,omitempty"` + SystemContractsUpgraderAddress []byte `protobuf:"bytes,3,opt,name=systemContractsUpgraderAddress,proto3" json:"systemContractsUpgraderAddress,omitempty"` + PublicSystemContracts map[string][]byte `protobuf:"bytes,4,rep,name=publicSystemContracts,proto3" json:"publicSystemContracts,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + SystemError *SystemError `protobuf:"bytes,5,opt,name=systemError,proto3" json:"systemError,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EnclavePublicConfigResponse) Reset() { *x = EnclavePublicConfigResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EnclavePublicConfigResponse) String() string { @@ -87,7 +83,7 @@ func (*EnclavePublicConfigResponse) ProtoMessage() {} func (x *EnclavePublicConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_enclave_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -138,18 +134,16 @@ func (x *EnclavePublicConfigResponse) GetSystemError() *SystemError { } type SequencerAttestationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SequencerAttestationRequest) Reset() { *x = SequencerAttestationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SequencerAttestationRequest) String() string { @@ -160,7 +154,7 @@ func (*SequencerAttestationRequest) ProtoMessage() {} func (x *SequencerAttestationRequest) ProtoReflect() protoreflect.Message { mi := &file_enclave_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -175,23 +169,224 @@ func (*SequencerAttestationRequest) Descriptor() ([]byte, []int) { return file_enclave_proto_rawDescGZIP(), []int{2} } -type PublicAttestationReportMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache +type ContractsSinceRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + FromContractID uint64 `protobuf:"varint,1,opt,name=fromContractID,proto3" json:"fromContractID,omitempty"` + Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ContractsSinceRequest) Reset() { + *x = ContractsSinceRequest{} + mi := &file_enclave_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ContractsSinceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContractsSinceRequest) ProtoMessage() {} + +func (x *ContractsSinceRequest) ProtoReflect() protoreflect.Message { + mi := &file_enclave_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContractsSinceRequest.ProtoReflect.Descriptor instead. +func (*ContractsSinceRequest) Descriptor() ([]byte, []int) { + return file_enclave_proto_rawDescGZIP(), []int{3} +} + +func (x *ContractsSinceRequest) GetFromContractID() uint64 { + if x != nil { + return x.FromContractID + } + return 0 +} + +func (x *ContractsSinceRequest) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +type ContractCreationDataMsg struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Address []byte `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + Creator []byte `protobuf:"bytes,3,opt,name=creator,proto3" json:"creator,omitempty"` + AutoVisibility bool `protobuf:"varint,4,opt,name=autoVisibility,proto3" json:"autoVisibility,omitempty"` + Transparent *bool `protobuf:"varint,5,opt,name=transparent,proto3,oneof" json:"transparent,omitempty"` + BatchSeq uint64 `protobuf:"varint,6,opt,name=batchSeq,proto3" json:"batchSeq,omitempty"` + BatchHeight uint64 `protobuf:"varint,7,opt,name=batchHeight,proto3" json:"batchHeight,omitempty"` + BatchTimestamp uint64 `protobuf:"varint,8,opt,name=batchTimestamp,proto3" json:"batchTimestamp,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ContractCreationDataMsg) Reset() { + *x = ContractCreationDataMsg{} + mi := &file_enclave_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ContractCreationDataMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContractCreationDataMsg) ProtoMessage() {} + +func (x *ContractCreationDataMsg) ProtoReflect() protoreflect.Message { + mi := &file_enclave_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContractCreationDataMsg.ProtoReflect.Descriptor instead. +func (*ContractCreationDataMsg) Descriptor() ([]byte, []int) { + return file_enclave_proto_rawDescGZIP(), []int{4} +} + +func (x *ContractCreationDataMsg) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ContractCreationDataMsg) GetAddress() []byte { + if x != nil { + return x.Address + } + return nil +} + +func (x *ContractCreationDataMsg) GetCreator() []byte { + if x != nil { + return x.Creator + } + return nil +} + +func (x *ContractCreationDataMsg) GetAutoVisibility() bool { + if x != nil { + return x.AutoVisibility + } + return false +} + +func (x *ContractCreationDataMsg) GetTransparent() bool { + if x != nil && x.Transparent != nil { + return *x.Transparent + } + return false +} + +func (x *ContractCreationDataMsg) GetBatchSeq() uint64 { + if x != nil { + return x.BatchSeq + } + return 0 +} + +func (x *ContractCreationDataMsg) GetBatchHeight() uint64 { + if x != nil { + return x.BatchHeight + } + return 0 +} + +func (x *ContractCreationDataMsg) GetBatchTimestamp() uint64 { + if x != nil { + return x.BatchTimestamp + } + return 0 +} + +type ContractsSinceResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Contracts []*ContractCreationDataMsg `protobuf:"bytes,1,rep,name=contracts,proto3" json:"contracts,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} - EnclaveID []byte `protobuf:"bytes,1,opt,name=enclaveID,proto3" json:"enclaveID,omitempty"` - PublicKey []byte `protobuf:"bytes,2,opt,name=publicKey,proto3" json:"publicKey,omitempty"` - Report []byte `protobuf:"bytes,3,opt,name=report,proto3" json:"report,omitempty"` +func (x *ContractsSinceResponse) Reset() { + *x = ContractsSinceResponse{} + mi := &file_enclave_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } -func (x *PublicAttestationReportMsg) Reset() { - *x = PublicAttestationReportMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[3] +func (x *ContractsSinceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContractsSinceResponse) ProtoMessage() {} + +func (x *ContractsSinceResponse) ProtoReflect() protoreflect.Message { + mi := &file_enclave_proto_msgTypes[5] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ContractsSinceResponse.ProtoReflect.Descriptor instead. +func (*ContractsSinceResponse) Descriptor() ([]byte, []int) { + return file_enclave_proto_rawDescGZIP(), []int{5} +} + +func (x *ContractsSinceResponse) GetContracts() []*ContractCreationDataMsg { + if x != nil { + return x.Contracts + } + return nil +} + +func (x *ContractsSinceResponse) GetSystemError() *SystemError { + if x != nil { + return x.SystemError } + return nil +} + +type PublicAttestationReportMsg struct { + state protoimpl.MessageState `protogen:"open.v1"` + EnclaveID []byte `protobuf:"bytes,1,opt,name=enclaveID,proto3" json:"enclaveID,omitempty"` + PublicKey []byte `protobuf:"bytes,2,opt,name=publicKey,proto3" json:"publicKey,omitempty"` + Report []byte `protobuf:"bytes,3,opt,name=report,proto3" json:"report,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PublicAttestationReportMsg) Reset() { + *x = PublicAttestationReportMsg{} + mi := &file_enclave_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PublicAttestationReportMsg) String() string { @@ -201,8 +396,8 @@ func (x *PublicAttestationReportMsg) String() string { func (*PublicAttestationReportMsg) ProtoMessage() {} func (x *PublicAttestationReportMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[6] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -214,7 +409,7 @@ func (x *PublicAttestationReportMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use PublicAttestationReportMsg.ProtoReflect.Descriptor instead. func (*PublicAttestationReportMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{3} + return file_enclave_proto_rawDescGZIP(), []int{6} } func (x *PublicAttestationReportMsg) GetEnclaveID() []byte { @@ -239,21 +434,18 @@ func (x *PublicAttestationReportMsg) GetReport() []byte { } type SequencerAttestationResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Reports []*PublicAttestationReportMsg `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Reports []*PublicAttestationReportMsg `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SequencerAttestationResponse) Reset() { *x = SequencerAttestationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SequencerAttestationResponse) String() string { @@ -263,8 +455,8 @@ func (x *SequencerAttestationResponse) String() string { func (*SequencerAttestationResponse) ProtoMessage() {} func (x *SequencerAttestationResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[7] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -276,7 +468,7 @@ func (x *SequencerAttestationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SequencerAttestationResponse.ProtoReflect.Descriptor instead. func (*SequencerAttestationResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{4} + return file_enclave_proto_rawDescGZIP(), []int{7} } func (x *SequencerAttestationResponse) GetReports() []*PublicAttestationReportMsg { @@ -294,20 +486,17 @@ func (x *SequencerAttestationResponse) GetSystemError() *SystemError { } type GetBatchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + KnownHead []byte `protobuf:"bytes,1,opt,name=knownHead,proto3" json:"knownHead,omitempty"` unknownFields protoimpl.UnknownFields - - KnownHead []byte `protobuf:"bytes,1,opt,name=knownHead,proto3" json:"knownHead,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetBatchRequest) Reset() { *x = GetBatchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBatchRequest) String() string { @@ -317,8 +506,8 @@ func (x *GetBatchRequest) String() string { func (*GetBatchRequest) ProtoMessage() {} func (x *GetBatchRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[8] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -330,7 +519,7 @@ func (x *GetBatchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBatchRequest.ProtoReflect.Descriptor instead. func (*GetBatchRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{5} + return file_enclave_proto_rawDescGZIP(), []int{8} } func (x *GetBatchRequest) GetKnownHead() []byte { @@ -341,20 +530,17 @@ func (x *GetBatchRequest) GetKnownHead() []byte { } type GetBatchBySeqNoRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SeqNo uint64 `protobuf:"varint,1,opt,name=seqNo,proto3" json:"seqNo,omitempty"` unknownFields protoimpl.UnknownFields - - SeqNo uint64 `protobuf:"varint,1,opt,name=seqNo,proto3" json:"seqNo,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetBatchBySeqNoRequest) Reset() { *x = GetBatchBySeqNoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBatchBySeqNoRequest) String() string { @@ -364,8 +550,8 @@ func (x *GetBatchBySeqNoRequest) String() string { func (*GetBatchBySeqNoRequest) ProtoMessage() {} func (x *GetBatchBySeqNoRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[9] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -377,7 +563,7 @@ func (x *GetBatchBySeqNoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBatchBySeqNoRequest.ProtoReflect.Descriptor instead. func (*GetBatchBySeqNoRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{6} + return file_enclave_proto_rawDescGZIP(), []int{9} } func (x *GetBatchBySeqNoRequest) GetSeqNo() uint64 { @@ -388,21 +574,18 @@ func (x *GetBatchBySeqNoRequest) GetSeqNo() uint64 { } type GetBatchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Batch []byte `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Batch []byte `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetBatchResponse) Reset() { *x = GetBatchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBatchResponse) String() string { @@ -412,8 +595,8 @@ func (x *GetBatchResponse) String() string { func (*GetBatchResponse) ProtoMessage() {} func (x *GetBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[10] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -425,7 +608,7 @@ func (x *GetBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBatchResponse.ProtoReflect.Descriptor instead. func (*GetBatchResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{7} + return file_enclave_proto_rawDescGZIP(), []int{10} } func (x *GetBatchResponse) GetBatch() []byte { @@ -443,20 +626,17 @@ func (x *GetBatchResponse) GetSystemError() *SystemError { } type GetRollupDataRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` unknownFields protoimpl.UnknownFields - - Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetRollupDataRequest) Reset() { *x = GetRollupDataRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetRollupDataRequest) String() string { @@ -466,8 +646,8 @@ func (x *GetRollupDataRequest) String() string { func (*GetRollupDataRequest) ProtoMessage() {} func (x *GetRollupDataRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[11] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -479,7 +659,7 @@ func (x *GetRollupDataRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRollupDataRequest.ProtoReflect.Descriptor instead. func (*GetRollupDataRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{8} + return file_enclave_proto_rawDescGZIP(), []int{11} } func (x *GetRollupDataRequest) GetHash() []byte { @@ -490,21 +670,18 @@ func (x *GetRollupDataRequest) GetHash() []byte { } type GetRollupDataResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Msg *PublicRollupDataMsg `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Msg *PublicRollupDataMsg `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetRollupDataResponse) Reset() { *x = GetRollupDataResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetRollupDataResponse) String() string { @@ -514,8 +691,8 @@ func (x *GetRollupDataResponse) String() string { func (*GetRollupDataResponse) ProtoMessage() {} func (x *GetRollupDataResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[12] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -527,7 +704,7 @@ func (x *GetRollupDataResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRollupDataResponse.ProtoReflect.Descriptor instead. func (*GetRollupDataResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{9} + return file_enclave_proto_rawDescGZIP(), []int{12} } func (x *GetRollupDataResponse) GetMsg() *PublicRollupDataMsg { @@ -545,21 +722,18 @@ func (x *GetRollupDataResponse) GetSystemError() *SystemError { } type PublicRollupDataMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + StartSeq uint64 `protobuf:"varint,1,opt,name=startSeq,proto3" json:"startSeq,omitempty"` + Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` unknownFields protoimpl.UnknownFields - - StartSeq uint64 `protobuf:"varint,1,opt,name=startSeq,proto3" json:"startSeq,omitempty"` - Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + sizeCache protoimpl.SizeCache } func (x *PublicRollupDataMsg) Reset() { *x = PublicRollupDataMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PublicRollupDataMsg) String() string { @@ -569,8 +743,8 @@ func (x *PublicRollupDataMsg) String() string { func (*PublicRollupDataMsg) ProtoMessage() {} func (x *PublicRollupDataMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[13] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -582,7 +756,7 @@ func (x *PublicRollupDataMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use PublicRollupDataMsg.ProtoReflect.Descriptor instead. func (*PublicRollupDataMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{10} + return file_enclave_proto_rawDescGZIP(), []int{13} } func (x *PublicRollupDataMsg) GetStartSeq() uint64 { @@ -600,18 +774,16 @@ func (x *PublicRollupDataMsg) GetTimestamp() uint64 { } type StreamL2UpdatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *StreamL2UpdatesRequest) Reset() { *x = StreamL2UpdatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamL2UpdatesRequest) String() string { @@ -621,8 +793,8 @@ func (x *StreamL2UpdatesRequest) String() string { func (*StreamL2UpdatesRequest) ProtoMessage() {} func (x *StreamL2UpdatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[14] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -634,24 +806,21 @@ func (x *StreamL2UpdatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamL2UpdatesRequest.ProtoReflect.Descriptor instead. func (*StreamL2UpdatesRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{11} + return file_enclave_proto_rawDescGZIP(), []int{14} } type EncodedUpdateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Batch []byte `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"` unknownFields protoimpl.UnknownFields - - Batch []byte `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EncodedUpdateResponse) Reset() { *x = EncodedUpdateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EncodedUpdateResponse) String() string { @@ -661,8 +830,8 @@ func (x *EncodedUpdateResponse) String() string { func (*EncodedUpdateResponse) ProtoMessage() {} func (x *EncodedUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[15] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -674,7 +843,7 @@ func (x *EncodedUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EncodedUpdateResponse.ProtoReflect.Descriptor instead. func (*EncodedUpdateResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{12} + return file_enclave_proto_rawDescGZIP(), []int{15} } func (x *EncodedUpdateResponse) GetBatch() []byte { @@ -685,21 +854,18 @@ func (x *EncodedUpdateResponse) GetBatch() []byte { } type Pagination struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Offset int32 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + Size int32 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` unknownFields protoimpl.UnknownFields - - Offset int32 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` - Size int32 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Pagination) Reset() { *x = Pagination{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Pagination) String() string { @@ -709,8 +875,8 @@ func (x *Pagination) String() string { func (*Pagination) ProtoMessage() {} func (x *Pagination) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[16] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -722,7 +888,7 @@ func (x *Pagination) ProtoReflect() protoreflect.Message { // Deprecated: Use Pagination.ProtoReflect.Descriptor instead. func (*Pagination) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{13} + return file_enclave_proto_rawDescGZIP(), []int{16} } func (x *Pagination) GetOffset() int32 { @@ -740,21 +906,18 @@ func (x *Pagination) GetSize() int32 { } type SystemError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorString string `protobuf:"bytes,2,opt,name=errorString,proto3" json:"errorString,omitempty"` unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorString string `protobuf:"bytes,2,opt,name=errorString,proto3" json:"errorString,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SystemError) Reset() { *x = SystemError{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SystemError) String() string { @@ -764,8 +927,8 @@ func (x *SystemError) String() string { func (*SystemError) ProtoMessage() {} func (x *SystemError) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[17] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -777,7 +940,7 @@ func (x *SystemError) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemError.ProtoReflect.Descriptor instead. func (*SystemError) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{14} + return file_enclave_proto_rawDescGZIP(), []int{17} } func (x *SystemError) GetErrorCode() int32 { @@ -795,18 +958,16 @@ func (x *SystemError) GetErrorString() string { } type GetTotalContractCountRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetTotalContractCountRequest) Reset() { *x = GetTotalContractCountRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTotalContractCountRequest) String() string { @@ -816,8 +977,8 @@ func (x *GetTotalContractCountRequest) String() string { func (*GetTotalContractCountRequest) ProtoMessage() {} func (x *GetTotalContractCountRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[18] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -829,25 +990,22 @@ func (x *GetTotalContractCountRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTotalContractCountRequest.ProtoReflect.Descriptor instead. func (*GetTotalContractCountRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{15} + return file_enclave_proto_rawDescGZIP(), []int{18} } type GetTotalContractCountResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetTotalContractCountResponse) Reset() { *x = GetTotalContractCountResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTotalContractCountResponse) String() string { @@ -857,8 +1015,8 @@ func (x *GetTotalContractCountResponse) String() string { func (*GetTotalContractCountResponse) ProtoMessage() {} func (x *GetTotalContractCountResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[19] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -870,7 +1028,7 @@ func (x *GetTotalContractCountResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTotalContractCountResponse.ProtoReflect.Descriptor instead. func (*GetTotalContractCountResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{16} + return file_enclave_proto_rawDescGZIP(), []int{19} } func (x *GetTotalContractCountResponse) GetCount() int64 { @@ -888,21 +1046,18 @@ func (x *GetTotalContractCountResponse) GetSystemError() *SystemError { } type DebugTraceTransactionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TxHash []byte `protobuf:"bytes,1,opt,name=txHash,proto3" json:"txHash,omitempty"` + Config []byte `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` unknownFields protoimpl.UnknownFields - - TxHash []byte `protobuf:"bytes,1,opt,name=txHash,proto3" json:"txHash,omitempty"` - Config []byte `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DebugTraceTransactionRequest) Reset() { *x = DebugTraceTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DebugTraceTransactionRequest) String() string { @@ -912,8 +1067,8 @@ func (x *DebugTraceTransactionRequest) String() string { func (*DebugTraceTransactionRequest) ProtoMessage() {} func (x *DebugTraceTransactionRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[20] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -925,7 +1080,7 @@ func (x *DebugTraceTransactionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DebugTraceTransactionRequest.ProtoReflect.Descriptor instead. func (*DebugTraceTransactionRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{17} + return file_enclave_proto_rawDescGZIP(), []int{20} } func (x *DebugTraceTransactionRequest) GetTxHash() []byte { @@ -943,21 +1098,18 @@ func (x *DebugTraceTransactionRequest) GetConfig() []byte { } type DebugTraceTransactionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DebugTraceTransactionResponse) Reset() { *x = DebugTraceTransactionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DebugTraceTransactionResponse) String() string { @@ -967,8 +1119,8 @@ func (x *DebugTraceTransactionResponse) String() string { func (*DebugTraceTransactionResponse) ProtoMessage() {} func (x *DebugTraceTransactionResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[21] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -980,7 +1132,7 @@ func (x *DebugTraceTransactionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DebugTraceTransactionResponse.ProtoReflect.Descriptor instead. func (*DebugTraceTransactionResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{18} + return file_enclave_proto_rawDescGZIP(), []int{21} } func (x *DebugTraceTransactionResponse) GetMsg() string { @@ -998,20 +1150,17 @@ func (x *DebugTraceTransactionResponse) GetSystemError() *SystemError { } type CreateBatchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SkipIfEmpty bool `protobuf:"varint,1,opt,name=skipIfEmpty,proto3" json:"skipIfEmpty,omitempty"` unknownFields protoimpl.UnknownFields - - SkipIfEmpty bool `protobuf:"varint,1,opt,name=skipIfEmpty,proto3" json:"skipIfEmpty,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateBatchRequest) Reset() { *x = CreateBatchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateBatchRequest) String() string { @@ -1021,8 +1170,8 @@ func (x *CreateBatchRequest) String() string { func (*CreateBatchRequest) ProtoMessage() {} func (x *CreateBatchRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[22] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1034,7 +1183,7 @@ func (x *CreateBatchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateBatchRequest.ProtoReflect.Descriptor instead. func (*CreateBatchRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{19} + return file_enclave_proto_rawDescGZIP(), []int{22} } func (x *CreateBatchRequest) GetSkipIfEmpty() bool { @@ -1045,20 +1194,17 @@ func (x *CreateBatchRequest) GetSkipIfEmpty() bool { } type CreateBatchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` unknownFields protoimpl.UnknownFields - - Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateBatchResponse) Reset() { *x = CreateBatchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateBatchResponse) String() string { @@ -1068,8 +1214,8 @@ func (x *CreateBatchResponse) String() string { func (*CreateBatchResponse) ProtoMessage() {} func (x *CreateBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[23] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1081,7 +1227,7 @@ func (x *CreateBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateBatchResponse.ProtoReflect.Descriptor instead. func (*CreateBatchResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{20} + return file_enclave_proto_rawDescGZIP(), []int{23} } func (x *CreateBatchResponse) GetError() string { @@ -1092,20 +1238,17 @@ func (x *CreateBatchResponse) GetError() string { } type CreateRollupRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromSequenceNumber *uint64 `protobuf:"varint,1,opt,name=fromSequenceNumber,proto3,oneof" json:"fromSequenceNumber,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + FromSequenceNumber *uint64 `protobuf:"varint,1,opt,name=fromSequenceNumber,proto3,oneof" json:"fromSequenceNumber,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateRollupRequest) Reset() { *x = CreateRollupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateRollupRequest) String() string { @@ -1115,8 +1258,8 @@ func (x *CreateRollupRequest) String() string { func (*CreateRollupRequest) ProtoMessage() {} func (x *CreateRollupRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[24] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1128,7 +1271,7 @@ func (x *CreateRollupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRollupRequest.ProtoReflect.Descriptor instead. func (*CreateRollupRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{21} + return file_enclave_proto_rawDescGZIP(), []int{24} } func (x *CreateRollupRequest) GetFromSequenceNumber() uint64 { @@ -1139,22 +1282,19 @@ func (x *CreateRollupRequest) GetFromSequenceNumber() uint64 { } type CreateRollupResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` + Blobs []*BlobMsg `protobuf:"bytes,2,rep,name=blobs,proto3" json:"blobs,omitempty"` + SystemError *SystemError `protobuf:"bytes,3,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` - Blobs []*BlobMsg `protobuf:"bytes,2,rep,name=blobs,proto3" json:"blobs,omitempty"` - SystemError *SystemError `protobuf:"bytes,3,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CreateRollupResponse) Reset() { *x = CreateRollupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateRollupResponse) String() string { @@ -1164,8 +1304,8 @@ func (x *CreateRollupResponse) String() string { func (*CreateRollupResponse) ProtoMessage() {} func (x *CreateRollupResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[25] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1177,7 +1317,7 @@ func (x *CreateRollupResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRollupResponse.ProtoReflect.Descriptor instead. func (*CreateRollupResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{22} + return file_enclave_proto_rawDescGZIP(), []int{25} } func (x *CreateRollupResponse) GetSignature() []byte { @@ -1202,21 +1342,18 @@ func (x *CreateRollupResponse) GetSystemError() *SystemError { } type ExportCrossChainDataRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + FromSeqNo uint64 `protobuf:"varint,1,opt,name=fromSeqNo,proto3" json:"fromSeqNo,omitempty"` + ToSeqNo uint64 `protobuf:"varint,2,opt,name=toSeqNo,proto3" json:"toSeqNo,omitempty"` unknownFields protoimpl.UnknownFields - - FromSeqNo uint64 `protobuf:"varint,1,opt,name=fromSeqNo,proto3" json:"fromSeqNo,omitempty"` - ToSeqNo uint64 `protobuf:"varint,2,opt,name=toSeqNo,proto3" json:"toSeqNo,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ExportCrossChainDataRequest) Reset() { *x = ExportCrossChainDataRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExportCrossChainDataRequest) String() string { @@ -1226,8 +1363,8 @@ func (x *ExportCrossChainDataRequest) String() string { func (*ExportCrossChainDataRequest) ProtoMessage() {} func (x *ExportCrossChainDataRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[26] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1239,7 +1376,7 @@ func (x *ExportCrossChainDataRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ExportCrossChainDataRequest.ProtoReflect.Descriptor instead. func (*ExportCrossChainDataRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{23} + return file_enclave_proto_rawDescGZIP(), []int{26} } func (x *ExportCrossChainDataRequest) GetFromSeqNo() uint64 { @@ -1257,20 +1394,17 @@ func (x *ExportCrossChainDataRequest) GetToSeqNo() uint64 { } type ExportCrossChainDataResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` unknownFields protoimpl.UnknownFields - - Msg []byte `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ExportCrossChainDataResponse) Reset() { *x = ExportCrossChainDataResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExportCrossChainDataResponse) String() string { @@ -1280,8 +1414,8 @@ func (x *ExportCrossChainDataResponse) String() string { func (*ExportCrossChainDataResponse) ProtoMessage() {} func (x *ExportCrossChainDataResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[27] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1293,7 +1427,7 @@ func (x *ExportCrossChainDataResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ExportCrossChainDataResponse.ProtoReflect.Descriptor instead. func (*ExportCrossChainDataResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{24} + return file_enclave_proto_rawDescGZIP(), []int{27} } func (x *ExportCrossChainDataResponse) GetMsg() []byte { @@ -1304,18 +1438,16 @@ func (x *ExportCrossChainDataResponse) GetMsg() []byte { } type StatusRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *StatusRequest) Reset() { *x = StatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StatusRequest) String() string { @@ -1325,8 +1457,8 @@ func (x *StatusRequest) String() string { func (*StatusRequest) ProtoMessage() {} func (x *StatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[28] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1338,30 +1470,27 @@ func (x *StatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. func (*StatusRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{25} + return file_enclave_proto_rawDescGZIP(), []int{28} } type StatusResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatusCode int32 `protobuf:"varint,1,opt,name=statusCode,proto3" json:"statusCode,omitempty"` - L1Head []byte `protobuf:"bytes,2,opt,name=l1Head,proto3" json:"l1Head,omitempty"` // hash for the L1 head block in enclave's view of the canonical chain - L2Head []byte `protobuf:"bytes,3,opt,name=l2Head,proto3" json:"l2Head,omitempty"` // seq number (big.Int) for the L2 head batch that the enclave has seen - L2HeadHash []byte `protobuf:"bytes,4,opt,name=l2HeadHash,proto3" json:"l2HeadHash,omitempty"` - EnclaveID []byte `protobuf:"bytes,5,opt,name=enclaveID,proto3" json:"enclaveID,omitempty"` // enclave ID derived from the public key - IsActiveSequencer bool `protobuf:"varint,6,opt,name=isActiveSequencer,proto3" json:"isActiveSequencer,omitempty"` - SystemError *SystemError `protobuf:"bytes,7,opt,name=systemError,proto3" json:"systemError,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + StatusCode int32 `protobuf:"varint,1,opt,name=statusCode,proto3" json:"statusCode,omitempty"` + L1Head []byte `protobuf:"bytes,2,opt,name=l1Head,proto3" json:"l1Head,omitempty"` // hash for the L1 head block in enclave's view of the canonical chain + L2Head []byte `protobuf:"bytes,3,opt,name=l2Head,proto3" json:"l2Head,omitempty"` // seq number (big.Int) for the L2 head batch that the enclave has seen + L2HeadHash []byte `protobuf:"bytes,4,opt,name=l2HeadHash,proto3" json:"l2HeadHash,omitempty"` + EnclaveID []byte `protobuf:"bytes,5,opt,name=enclaveID,proto3" json:"enclaveID,omitempty"` // enclave ID derived from the public key + IsActiveSequencer bool `protobuf:"varint,6,opt,name=isActiveSequencer,proto3" json:"isActiveSequencer,omitempty"` + SystemError *SystemError `protobuf:"bytes,7,opt,name=systemError,proto3" json:"systemError,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *StatusResponse) Reset() { *x = StatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StatusResponse) String() string { @@ -1371,8 +1500,8 @@ func (x *StatusResponse) String() string { func (*StatusResponse) ProtoMessage() {} func (x *StatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[29] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1384,7 +1513,7 @@ func (x *StatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead. func (*StatusResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{26} + return file_enclave_proto_rawDescGZIP(), []int{29} } func (x *StatusResponse) GetStatusCode() int32 { @@ -1437,18 +1566,16 @@ func (x *StatusResponse) GetSystemError() *SystemError { } type MakeActiveRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MakeActiveRequest) Reset() { *x = MakeActiveRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MakeActiveRequest) String() string { @@ -1458,8 +1585,8 @@ func (x *MakeActiveRequest) String() string { func (*MakeActiveRequest) ProtoMessage() {} func (x *MakeActiveRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[30] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1471,24 +1598,21 @@ func (x *MakeActiveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MakeActiveRequest.ProtoReflect.Descriptor instead. func (*MakeActiveRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{27} + return file_enclave_proto_rawDescGZIP(), []int{30} } type MakeActiveResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MakeActiveResponse) Reset() { *x = MakeActiveResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MakeActiveResponse) String() string { @@ -1498,8 +1622,8 @@ func (x *MakeActiveResponse) String() string { func (*MakeActiveResponse) ProtoMessage() {} func (x *MakeActiveResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[31] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1511,7 +1635,7 @@ func (x *MakeActiveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MakeActiveResponse.ProtoReflect.Descriptor instead. func (*MakeActiveResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{28} + return file_enclave_proto_rawDescGZIP(), []int{31} } func (x *MakeActiveResponse) GetSystemError() *SystemError { @@ -1522,18 +1646,16 @@ func (x *MakeActiveResponse) GetSystemError() *SystemError { } type AttestationRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AttestationRequest) Reset() { *x = AttestationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AttestationRequest) String() string { @@ -1543,8 +1665,8 @@ func (x *AttestationRequest) String() string { func (*AttestationRequest) ProtoMessage() {} func (x *AttestationRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[32] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1556,25 +1678,22 @@ func (x *AttestationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AttestationRequest.ProtoReflect.Descriptor instead. func (*AttestationRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{29} + return file_enclave_proto_rawDescGZIP(), []int{32} } type AttestationResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AttestationReportMsg *AttestationReportMsg `protobuf:"bytes,1,opt,name=attestationReportMsg,proto3" json:"attestationReportMsg,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + AttestationReportMsg *AttestationReportMsg `protobuf:"bytes,1,opt,name=attestationReportMsg,proto3" json:"attestationReportMsg,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AttestationResponse) Reset() { *x = AttestationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AttestationResponse) String() string { @@ -1584,8 +1703,8 @@ func (x *AttestationResponse) String() string { func (*AttestationResponse) ProtoMessage() {} func (x *AttestationResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[33] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1597,7 +1716,7 @@ func (x *AttestationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AttestationResponse.ProtoReflect.Descriptor instead. func (*AttestationResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{30} + return file_enclave_proto_rawDescGZIP(), []int{33} } func (x *AttestationResponse) GetAttestationReportMsg() *AttestationReportMsg { @@ -1615,18 +1734,16 @@ func (x *AttestationResponse) GetSystemError() *SystemError { } type GenerateSecretRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GenerateSecretRequest) Reset() { *x = GenerateSecretRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GenerateSecretRequest) String() string { @@ -1636,8 +1753,8 @@ func (x *GenerateSecretRequest) String() string { func (*GenerateSecretRequest) ProtoMessage() {} func (x *GenerateSecretRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[34] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1649,25 +1766,22 @@ func (x *GenerateSecretRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateSecretRequest.ProtoReflect.Descriptor instead. func (*GenerateSecretRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{31} + return file_enclave_proto_rawDescGZIP(), []int{34} } type GenerateSecretResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EncryptedSharedEnclaveSecret []byte `protobuf:"bytes,1,opt,name=encryptedSharedEnclaveSecret,proto3" json:"encryptedSharedEnclaveSecret,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + EncryptedSharedEnclaveSecret []byte `protobuf:"bytes,1,opt,name=encryptedSharedEnclaveSecret,proto3" json:"encryptedSharedEnclaveSecret,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GenerateSecretResponse) Reset() { *x = GenerateSecretResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GenerateSecretResponse) String() string { @@ -1677,8 +1791,8 @@ func (x *GenerateSecretResponse) String() string { func (*GenerateSecretResponse) ProtoMessage() {} func (x *GenerateSecretResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[35] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1690,7 +1804,7 @@ func (x *GenerateSecretResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateSecretResponse.ProtoReflect.Descriptor instead. func (*GenerateSecretResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{32} + return file_enclave_proto_rawDescGZIP(), []int{35} } func (x *GenerateSecretResponse) GetEncryptedSharedEnclaveSecret() []byte { @@ -1708,20 +1822,17 @@ func (x *GenerateSecretResponse) GetSystemError() *SystemError { } type InitEnclaveRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EncryptedSharedEnclaveSecret []byte `protobuf:"bytes,1,opt,name=encryptedSharedEnclaveSecret,proto3" json:"encryptedSharedEnclaveSecret,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + EncryptedSharedEnclaveSecret []byte `protobuf:"bytes,1,opt,name=encryptedSharedEnclaveSecret,proto3" json:"encryptedSharedEnclaveSecret,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *InitEnclaveRequest) Reset() { *x = InitEnclaveRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitEnclaveRequest) String() string { @@ -1731,8 +1842,8 @@ func (x *InitEnclaveRequest) String() string { func (*InitEnclaveRequest) ProtoMessage() {} func (x *InitEnclaveRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[36] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1744,7 +1855,7 @@ func (x *InitEnclaveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InitEnclaveRequest.ProtoReflect.Descriptor instead. func (*InitEnclaveRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{33} + return file_enclave_proto_rawDescGZIP(), []int{36} } func (x *InitEnclaveRequest) GetEncryptedSharedEnclaveSecret() []byte { @@ -1755,20 +1866,17 @@ func (x *InitEnclaveRequest) GetEncryptedSharedEnclaveSecret() []byte { } type InitEnclaveResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *InitEnclaveResponse) Reset() { *x = InitEnclaveResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitEnclaveResponse) String() string { @@ -1778,8 +1886,8 @@ func (x *InitEnclaveResponse) String() string { func (*InitEnclaveResponse) ProtoMessage() {} func (x *InitEnclaveResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[37] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1791,7 +1899,7 @@ func (x *InitEnclaveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InitEnclaveResponse.ProtoReflect.Descriptor instead. func (*InitEnclaveResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{34} + return file_enclave_proto_rawDescGZIP(), []int{37} } func (x *InitEnclaveResponse) GetSystemError() *SystemError { @@ -1802,18 +1910,16 @@ func (x *InitEnclaveResponse) GetSystemError() *SystemError { } type EnclaveIDRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EnclaveIDRequest) Reset() { *x = EnclaveIDRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EnclaveIDRequest) String() string { @@ -1823,8 +1929,8 @@ func (x *EnclaveIDRequest) String() string { func (*EnclaveIDRequest) ProtoMessage() {} func (x *EnclaveIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[38] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1836,25 +1942,22 @@ func (x *EnclaveIDRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EnclaveIDRequest.ProtoReflect.Descriptor instead. func (*EnclaveIDRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{35} + return file_enclave_proto_rawDescGZIP(), []int{38} } type EnclaveIDResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + EnclaveID []byte `protobuf:"bytes,1,opt,name=enclaveID,proto3" json:"enclaveID,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - EnclaveID []byte `protobuf:"bytes,1,opt,name=enclaveID,proto3" json:"enclaveID,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EnclaveIDResponse) Reset() { *x = EnclaveIDResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EnclaveIDResponse) String() string { @@ -1864,8 +1967,8 @@ func (x *EnclaveIDResponse) String() string { func (*EnclaveIDResponse) ProtoMessage() {} func (x *EnclaveIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[39] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1877,7 +1980,7 @@ func (x *EnclaveIDResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EnclaveIDResponse.ProtoReflect.Descriptor instead. func (*EnclaveIDResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{36} + return file_enclave_proto_rawDescGZIP(), []int{39} } func (x *EnclaveIDResponse) GetEnclaveID() []byte { @@ -1895,18 +1998,16 @@ func (x *EnclaveIDResponse) GetSystemError() *SystemError { } type RPCEncryptionKeyRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RPCEncryptionKeyRequest) Reset() { *x = RPCEncryptionKeyRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RPCEncryptionKeyRequest) String() string { @@ -1916,8 +2017,8 @@ func (x *RPCEncryptionKeyRequest) String() string { func (*RPCEncryptionKeyRequest) ProtoMessage() {} func (x *RPCEncryptionKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[40] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1929,25 +2030,22 @@ func (x *RPCEncryptionKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCEncryptionKeyRequest.ProtoReflect.Descriptor instead. func (*RPCEncryptionKeyRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{37} + return file_enclave_proto_rawDescGZIP(), []int{40} } type RPCEncryptionKeyResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + RpcPubKey []byte `protobuf:"bytes,1,opt,name=rpcPubKey,proto3" json:"rpcPubKey,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - RpcPubKey []byte `protobuf:"bytes,1,opt,name=rpcPubKey,proto3" json:"rpcPubKey,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RPCEncryptionKeyResponse) Reset() { *x = RPCEncryptionKeyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RPCEncryptionKeyResponse) String() string { @@ -1957,8 +2055,8 @@ func (x *RPCEncryptionKeyResponse) String() string { func (*RPCEncryptionKeyResponse) ProtoMessage() {} func (x *RPCEncryptionKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[41] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1970,7 +2068,7 @@ func (x *RPCEncryptionKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RPCEncryptionKeyResponse.ProtoReflect.Descriptor instead. func (*RPCEncryptionKeyResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{38} + return file_enclave_proto_rawDescGZIP(), []int{41} } func (x *RPCEncryptionKeyResponse) GetRpcPubKey() []byte { @@ -1988,20 +2086,17 @@ func (x *RPCEncryptionKeyResponse) GetSystemError() *SystemError { } type StartRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + EncodedBlock []byte `protobuf:"bytes,1,opt,name=encodedBlock,proto3" json:"encodedBlock,omitempty"` unknownFields protoimpl.UnknownFields - - EncodedBlock []byte `protobuf:"bytes,1,opt,name=encodedBlock,proto3" json:"encodedBlock,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StartRequest) Reset() { *x = StartRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartRequest) String() string { @@ -2011,8 +2106,8 @@ func (x *StartRequest) String() string { func (*StartRequest) ProtoMessage() {} func (x *StartRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[42] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2024,7 +2119,7 @@ func (x *StartRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartRequest.ProtoReflect.Descriptor instead. func (*StartRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{39} + return file_enclave_proto_rawDescGZIP(), []int{42} } func (x *StartRequest) GetEncodedBlock() []byte { @@ -2035,20 +2130,17 @@ func (x *StartRequest) GetEncodedBlock() []byte { } type StartResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StartResponse) Reset() { *x = StartResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartResponse) String() string { @@ -2058,8 +2150,8 @@ func (x *StartResponse) String() string { func (*StartResponse) ProtoMessage() {} func (x *StartResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[43] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2071,7 +2163,7 @@ func (x *StartResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StartResponse.ProtoReflect.Descriptor instead. func (*StartResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{40} + return file_enclave_proto_rawDescGZIP(), []int{43} } func (x *StartResponse) GetSystemError() *SystemError { @@ -2082,21 +2174,18 @@ func (x *StartResponse) GetSystemError() *SystemError { } type SubmitBlockRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EncodedBlock []byte `protobuf:"bytes,1,opt,name=encodedBlock,proto3" json:"encodedBlock,omitempty"` - EncodedProcessedData []byte `protobuf:"bytes,2,opt,name=encodedProcessedData,proto3" json:"encodedProcessedData,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + EncodedBlock []byte `protobuf:"bytes,1,opt,name=encodedBlock,proto3" json:"encodedBlock,omitempty"` + EncodedProcessedData []byte `protobuf:"bytes,2,opt,name=encodedProcessedData,proto3" json:"encodedProcessedData,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SubmitBlockRequest) Reset() { *x = SubmitBlockRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SubmitBlockRequest) String() string { @@ -2106,8 +2195,8 @@ func (x *SubmitBlockRequest) String() string { func (*SubmitBlockRequest) ProtoMessage() {} func (x *SubmitBlockRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[44] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2119,7 +2208,7 @@ func (x *SubmitBlockRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitBlockRequest.ProtoReflect.Descriptor instead. func (*SubmitBlockRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{41} + return file_enclave_proto_rawDescGZIP(), []int{44} } func (x *SubmitBlockRequest) GetEncodedBlock() []byte { @@ -2137,21 +2226,18 @@ func (x *SubmitBlockRequest) GetEncodedProcessedData() []byte { } type SubmitBlockResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` BlockSubmissionResponse *BlockSubmissionResponseMsg `protobuf:"bytes,1,opt,name=blockSubmissionResponse,proto3" json:"blockSubmissionResponse,omitempty"` SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SubmitBlockResponse) Reset() { *x = SubmitBlockResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SubmitBlockResponse) String() string { @@ -2161,8 +2247,8 @@ func (x *SubmitBlockResponse) String() string { func (*SubmitBlockResponse) ProtoMessage() {} func (x *SubmitBlockResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[45] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2174,7 +2260,7 @@ func (x *SubmitBlockResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitBlockResponse.ProtoReflect.Descriptor instead. func (*SubmitBlockResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{42} + return file_enclave_proto_rawDescGZIP(), []int{45} } func (x *SubmitBlockResponse) GetBlockSubmissionResponse() *BlockSubmissionResponseMsg { @@ -2192,20 +2278,17 @@ func (x *SubmitBlockResponse) GetSystemError() *SystemError { } type EncCallRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EncryptedParams []byte `protobuf:"bytes,1,opt,name=encryptedParams,proto3" json:"encryptedParams,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + EncryptedParams []byte `protobuf:"bytes,1,opt,name=encryptedParams,proto3" json:"encryptedParams,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EncCallRequest) Reset() { *x = EncCallRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EncCallRequest) String() string { @@ -2215,8 +2298,8 @@ func (x *EncCallRequest) String() string { func (*EncCallRequest) ProtoMessage() {} func (x *EncCallRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[46] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2228,7 +2311,7 @@ func (x *EncCallRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EncCallRequest.ProtoReflect.Descriptor instead. func (*EncCallRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{43} + return file_enclave_proto_rawDescGZIP(), []int{46} } func (x *EncCallRequest) GetEncryptedParams() []byte { @@ -2239,21 +2322,18 @@ func (x *EncCallRequest) GetEncryptedParams() []byte { } type EncCallResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EncodedEnclaveResponse []byte `protobuf:"bytes,1,opt,name=encodedEnclaveResponse,proto3" json:"encodedEnclaveResponse,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + EncodedEnclaveResponse []byte `protobuf:"bytes,1,opt,name=encodedEnclaveResponse,proto3" json:"encodedEnclaveResponse,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EncCallResponse) Reset() { *x = EncCallResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EncCallResponse) String() string { @@ -2263,8 +2343,8 @@ func (x *EncCallResponse) String() string { func (*EncCallResponse) ProtoMessage() {} func (x *EncCallResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[47] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2276,7 +2356,7 @@ func (x *EncCallResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EncCallResponse.ProtoReflect.Descriptor instead. func (*EncCallResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{44} + return file_enclave_proto_rawDescGZIP(), []int{47} } func (x *EncCallResponse) GetEncodedEnclaveResponse() []byte { @@ -2294,20 +2374,17 @@ func (x *EncCallResponse) GetSystemError() *SystemError { } type SubmitBatchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Batch *ExtBatchMsg `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"` unknownFields protoimpl.UnknownFields - - Batch *ExtBatchMsg `protobuf:"bytes,1,opt,name=batch,proto3" json:"batch,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SubmitBatchRequest) Reset() { *x = SubmitBatchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SubmitBatchRequest) String() string { @@ -2317,8 +2394,8 @@ func (x *SubmitBatchRequest) String() string { func (*SubmitBatchRequest) ProtoMessage() {} func (x *SubmitBatchRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[48] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2330,7 +2407,7 @@ func (x *SubmitBatchRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitBatchRequest.ProtoReflect.Descriptor instead. func (*SubmitBatchRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{45} + return file_enclave_proto_rawDescGZIP(), []int{48} } func (x *SubmitBatchRequest) GetBatch() *ExtBatchMsg { @@ -2341,20 +2418,17 @@ func (x *SubmitBatchRequest) GetBatch() *ExtBatchMsg { } type SubmitBatchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SubmitBatchResponse) Reset() { *x = SubmitBatchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SubmitBatchResponse) String() string { @@ -2364,8 +2438,8 @@ func (x *SubmitBatchResponse) String() string { func (*SubmitBatchResponse) ProtoMessage() {} func (x *SubmitBatchResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[49] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2377,7 +2451,7 @@ func (x *SubmitBatchResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitBatchResponse.ProtoReflect.Descriptor instead. func (*SubmitBatchResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{46} + return file_enclave_proto_rawDescGZIP(), []int{49} } func (x *SubmitBatchResponse) GetSystemError() *SystemError { @@ -2388,18 +2462,16 @@ func (x *SubmitBatchResponse) GetSystemError() *SystemError { } type StopRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *StopRequest) Reset() { *x = StopRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopRequest) String() string { @@ -2409,8 +2481,8 @@ func (x *StopRequest) String() string { func (*StopRequest) ProtoMessage() {} func (x *StopRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[50] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2422,24 +2494,21 @@ func (x *StopRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StopRequest.ProtoReflect.Descriptor instead. func (*StopRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{47} + return file_enclave_proto_rawDescGZIP(), []int{50} } type StopResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - SystemError *SystemError `protobuf:"bytes,1,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *StopResponse) Reset() { *x = StopResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopResponse) String() string { @@ -2449,8 +2518,8 @@ func (x *StopResponse) String() string { func (*StopResponse) ProtoMessage() {} func (x *StopResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[51] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2462,7 +2531,7 @@ func (x *StopResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StopResponse.ProtoReflect.Descriptor instead. func (*StopResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{48} + return file_enclave_proto_rawDescGZIP(), []int{51} } func (x *StopResponse) GetSystemError() *SystemError { @@ -2473,21 +2542,18 @@ func (x *StopResponse) GetSystemError() *SystemError { } type GetCodeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + BlockNrOrHash []byte `protobuf:"bytes,2,opt,name=blockNrOrHash,proto3" json:"blockNrOrHash,omitempty"` unknownFields protoimpl.UnknownFields - - Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - BlockNrOrHash []byte `protobuf:"bytes,2,opt,name=blockNrOrHash,proto3" json:"blockNrOrHash,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetCodeRequest) Reset() { *x = GetCodeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCodeRequest) String() string { @@ -2497,8 +2563,8 @@ func (x *GetCodeRequest) String() string { func (*GetCodeRequest) ProtoMessage() {} func (x *GetCodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[52] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2510,7 +2576,7 @@ func (x *GetCodeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCodeRequest.ProtoReflect.Descriptor instead. func (*GetCodeRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{49} + return file_enclave_proto_rawDescGZIP(), []int{52} } func (x *GetCodeRequest) GetAddress() []byte { @@ -2528,21 +2594,18 @@ func (x *GetCodeRequest) GetBlockNrOrHash() []byte { } type GetCodeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Code []byte `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Code []byte `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GetCodeResponse) Reset() { *x = GetCodeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCodeResponse) String() string { @@ -2552,8 +2615,8 @@ func (x *GetCodeResponse) String() string { func (*GetCodeResponse) ProtoMessage() {} func (x *GetCodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[53] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2565,7 +2628,7 @@ func (x *GetCodeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCodeResponse.ProtoReflect.Descriptor instead. func (*GetCodeResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{50} + return file_enclave_proto_rawDescGZIP(), []int{53} } func (x *GetCodeResponse) GetCode() []byte { @@ -2583,21 +2646,18 @@ func (x *GetCodeResponse) GetSystemError() *SystemError { } type SubscribeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - EncryptedSubscription []byte `protobuf:"bytes,2,opt,name=encryptedSubscription,proto3" json:"encryptedSubscription,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + EncryptedSubscription []byte `protobuf:"bytes,2,opt,name=encryptedSubscription,proto3" json:"encryptedSubscription,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SubscribeRequest) Reset() { *x = SubscribeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SubscribeRequest) String() string { @@ -2607,8 +2667,8 @@ func (x *SubscribeRequest) String() string { func (*SubscribeRequest) ProtoMessage() {} func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[54] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2620,7 +2680,7 @@ func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. func (*SubscribeRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{51} + return file_enclave_proto_rawDescGZIP(), []int{54} } func (x *SubscribeRequest) GetId() []byte { @@ -2638,20 +2698,17 @@ func (x *SubscribeRequest) GetEncryptedSubscription() []byte { } type SubscribeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SubscribeResponse) Reset() { *x = SubscribeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SubscribeResponse) String() string { @@ -2661,8 +2718,8 @@ func (x *SubscribeResponse) String() string { func (*SubscribeResponse) ProtoMessage() {} func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[55] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2674,7 +2731,7 @@ func (x *SubscribeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead. func (*SubscribeResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{52} + return file_enclave_proto_rawDescGZIP(), []int{55} } func (x *SubscribeResponse) GetSystemError() *SystemError { @@ -2685,20 +2742,17 @@ func (x *SubscribeResponse) GetSystemError() *SystemError { } type UnsubscribeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UnsubscribeRequest) Reset() { - *x = UnsubscribeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + *x = UnsubscribeRequest{} + mi := &file_enclave_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UnsubscribeRequest) String() string { @@ -2708,8 +2762,8 @@ func (x *UnsubscribeRequest) String() string { func (*UnsubscribeRequest) ProtoMessage() {} func (x *UnsubscribeRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[56] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2721,7 +2775,7 @@ func (x *UnsubscribeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeRequest.ProtoReflect.Descriptor instead. func (*UnsubscribeRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{53} + return file_enclave_proto_rawDescGZIP(), []int{56} } func (x *UnsubscribeRequest) GetId() []byte { @@ -2732,20 +2786,17 @@ func (x *UnsubscribeRequest) GetId() []byte { } type UnsubscribeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UnsubscribeResponse) Reset() { *x = UnsubscribeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UnsubscribeResponse) String() string { @@ -2755,8 +2806,8 @@ func (x *UnsubscribeResponse) String() string { func (*UnsubscribeResponse) ProtoMessage() {} func (x *UnsubscribeResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[57] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2768,7 +2819,7 @@ func (x *UnsubscribeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeResponse.ProtoReflect.Descriptor instead. func (*UnsubscribeResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{54} + return file_enclave_proto_rawDescGZIP(), []int{57} } func (x *UnsubscribeResponse) GetSystemError() *SystemError { @@ -2779,21 +2830,18 @@ func (x *UnsubscribeResponse) GetSystemError() *SystemError { } type HealthCheckResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status bool `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Status bool `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HealthCheckResponse) Reset() { *x = HealthCheckResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HealthCheckResponse) String() string { @@ -2803,8 +2851,8 @@ func (x *HealthCheckResponse) String() string { func (*HealthCheckResponse) ProtoMessage() {} func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[58] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2816,7 +2864,7 @@ func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HealthCheckResponse.ProtoReflect.Descriptor instead. func (*HealthCheckResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{55} + return file_enclave_proto_rawDescGZIP(), []int{58} } func (x *HealthCheckResponse) GetStatus() bool { @@ -2834,18 +2882,16 @@ func (x *HealthCheckResponse) GetSystemError() *SystemError { } type EmptyArgs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *EmptyArgs) Reset() { *x = EmptyArgs{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EmptyArgs) String() string { @@ -2855,8 +2901,8 @@ func (x *EmptyArgs) String() string { func (*EmptyArgs) ProtoMessage() {} func (x *EmptyArgs) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[59] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2868,28 +2914,25 @@ func (x *EmptyArgs) ProtoReflect() protoreflect.Message { // Deprecated: Use EmptyArgs.ProtoReflect.Descriptor instead. func (*EmptyArgs) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{56} + return file_enclave_proto_rawDescGZIP(), []int{59} } type AttestationReportMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Report []byte `protobuf:"bytes,1,opt,name=Report,proto3" json:"Report,omitempty"` // The actual report bytes so it can be shared and verified by other nodes + PubKey []byte `protobuf:"bytes,2,opt,name=PubKey,proto3" json:"PubKey,omitempty"` // Public key to encrypt traffic back to this enclave + EnclaveID []byte `protobuf:"bytes,3,opt,name=EnclaveID,proto3" json:"EnclaveID,omitempty"` + HostAddress string `protobuf:"bytes,4,opt,name=HostAddress,proto3" json:"HostAddress,omitempty"` // The IP address on which the host can be contacted by other Obscuro hosts for peer-to-peer communication + SystemError *SystemError `protobuf:"bytes,5,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Report []byte `protobuf:"bytes,1,opt,name=Report,proto3" json:"Report,omitempty"` // The actual report bytes so it can be shared and verified by other nodes - PubKey []byte `protobuf:"bytes,2,opt,name=PubKey,proto3" json:"PubKey,omitempty"` // Public key to encrypt traffic back to this enclave - EnclaveID []byte `protobuf:"bytes,3,opt,name=EnclaveID,proto3" json:"EnclaveID,omitempty"` - HostAddress string `protobuf:"bytes,4,opt,name=HostAddress,proto3" json:"HostAddress,omitempty"` // The IP address on which the host can be contacted by other Obscuro hosts for peer-to-peer communication - SystemError *SystemError `protobuf:"bytes,5,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AttestationReportMsg) Reset() { *x = AttestationReportMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AttestationReportMsg) String() string { @@ -2899,8 +2942,8 @@ func (x *AttestationReportMsg) String() string { func (*AttestationReportMsg) ProtoMessage() {} func (x *AttestationReportMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[60] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2912,7 +2955,7 @@ func (x *AttestationReportMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use AttestationReportMsg.ProtoReflect.Descriptor instead. func (*AttestationReportMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{57} + return file_enclave_proto_rawDescGZIP(), []int{60} } func (x *AttestationReportMsg) GetReport() []byte { @@ -2951,20 +2994,17 @@ func (x *AttestationReportMsg) GetSystemError() *SystemError { } type ExtRollupMetadataResponseMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CrossChainTree []byte `protobuf:"bytes,1,opt,name=CrossChainTree,proto3" json:"CrossChainTree,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + CrossChainTree []byte `protobuf:"bytes,1,opt,name=CrossChainTree,proto3" json:"CrossChainTree,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExtRollupMetadataResponseMsg) Reset() { *x = ExtRollupMetadataResponseMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExtRollupMetadataResponseMsg) String() string { @@ -2974,8 +3014,8 @@ func (x *ExtRollupMetadataResponseMsg) String() string { func (*ExtRollupMetadataResponseMsg) ProtoMessage() {} func (x *ExtRollupMetadataResponseMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[61] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2987,7 +3027,7 @@ func (x *ExtRollupMetadataResponseMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtRollupMetadataResponseMsg.ProtoReflect.Descriptor instead. func (*ExtRollupMetadataResponseMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{58} + return file_enclave_proto_rawDescGZIP(), []int{61} } func (x *ExtRollupMetadataResponseMsg) GetCrossChainTree() []byte { @@ -2998,22 +3038,19 @@ func (x *ExtRollupMetadataResponseMsg) GetCrossChainTree() []byte { } type BlockSubmissionResponseMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ProducedSecretResponses []*SecretResponseMsg `protobuf:"bytes,1,rep,name=producedSecretResponses,proto3" json:"producedSecretResponses,omitempty"` Error *BlockSubmissionErrorMsg `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` // todo (@matt) - remove this BlockSubmissionError field once we are using the Status() to update host view of enclave state RollupMetadata []*ExtRollupMetadataResponseMsg `protobuf:"bytes,3,rep,name=rollupMetadata,proto3" json:"rollupMetadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BlockSubmissionResponseMsg) Reset() { *x = BlockSubmissionResponseMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BlockSubmissionResponseMsg) String() string { @@ -3023,8 +3060,8 @@ func (x *BlockSubmissionResponseMsg) String() string { func (*BlockSubmissionResponseMsg) ProtoMessage() {} func (x *BlockSubmissionResponseMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[62] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3036,7 +3073,7 @@ func (x *BlockSubmissionResponseMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockSubmissionResponseMsg.ProtoReflect.Descriptor instead. func (*BlockSubmissionResponseMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{59} + return file_enclave_proto_rawDescGZIP(), []int{62} } func (x *BlockSubmissionResponseMsg) GetProducedSecretResponses() []*SecretResponseMsg { @@ -3061,21 +3098,18 @@ func (x *BlockSubmissionResponseMsg) GetRollupMetadata() []*ExtRollupMetadataRes } type BlockSubmissionErrorMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Cause string `protobuf:"bytes,1,opt,name=cause,proto3" json:"cause,omitempty"` // error cause description + L1Head []byte `protobuf:"bytes,2,opt,name=l1Head,proto3" json:"l1Head,omitempty"` // hash for the L1 head block in enclave's view of the canonical chain unknownFields protoimpl.UnknownFields - - Cause string `protobuf:"bytes,1,opt,name=cause,proto3" json:"cause,omitempty"` // error cause description - L1Head []byte `protobuf:"bytes,2,opt,name=l1Head,proto3" json:"l1Head,omitempty"` // hash for the L1 head block in enclave's view of the canonical chain + sizeCache protoimpl.SizeCache } func (x *BlockSubmissionErrorMsg) Reset() { *x = BlockSubmissionErrorMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BlockSubmissionErrorMsg) String() string { @@ -3085,8 +3119,8 @@ func (x *BlockSubmissionErrorMsg) String() string { func (*BlockSubmissionErrorMsg) ProtoMessage() {} func (x *BlockSubmissionErrorMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[63] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3098,7 +3132,7 @@ func (x *BlockSubmissionErrorMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockSubmissionErrorMsg.ProtoReflect.Descriptor instead. func (*BlockSubmissionErrorMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{60} + return file_enclave_proto_rawDescGZIP(), []int{63} } func (x *BlockSubmissionErrorMsg) GetCause() string { @@ -3116,24 +3150,21 @@ func (x *BlockSubmissionErrorMsg) GetL1Head() []byte { } type CrossChainMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Sender []byte `protobuf:"bytes,1,opt,name=Sender,proto3" json:"Sender,omitempty"` + Sequence uint64 `protobuf:"varint,2,opt,name=Sequence,proto3" json:"Sequence,omitempty"` + Nonce uint64 `protobuf:"varint,3,opt,name=Nonce,proto3" json:"Nonce,omitempty"` + Topic uint32 `protobuf:"varint,4,opt,name=Topic,proto3" json:"Topic,omitempty"` + Payload []byte `protobuf:"bytes,5,opt,name=Payload,proto3" json:"Payload,omitempty"` unknownFields protoimpl.UnknownFields - - Sender []byte `protobuf:"bytes,1,opt,name=Sender,proto3" json:"Sender,omitempty"` - Sequence uint64 `protobuf:"varint,2,opt,name=Sequence,proto3" json:"Sequence,omitempty"` - Nonce uint64 `protobuf:"varint,3,opt,name=Nonce,proto3" json:"Nonce,omitempty"` - Topic uint32 `protobuf:"varint,4,opt,name=Topic,proto3" json:"Topic,omitempty"` - Payload []byte `protobuf:"bytes,5,opt,name=Payload,proto3" json:"Payload,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CrossChainMsg) Reset() { *x = CrossChainMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CrossChainMsg) String() string { @@ -3143,8 +3174,8 @@ func (x *CrossChainMsg) String() string { func (*CrossChainMsg) ProtoMessage() {} func (x *CrossChainMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[64] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3156,7 +3187,7 @@ func (x *CrossChainMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use CrossChainMsg.ProtoReflect.Descriptor instead. func (*CrossChainMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{61} + return file_enclave_proto_rawDescGZIP(), []int{64} } func (x *CrossChainMsg) GetSender() []byte { @@ -3195,22 +3226,19 @@ func (x *CrossChainMsg) GetPayload() []byte { } type ExtBatchMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Header *BatchHeaderMsg `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + TxHashes [][]byte `protobuf:"bytes,2,rep,name=txHashes,proto3" json:"txHashes,omitempty"` + Txs []byte `protobuf:"bytes,3,opt,name=txs,proto3" json:"txs,omitempty"` unknownFields protoimpl.UnknownFields - - Header *BatchHeaderMsg `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` - TxHashes [][]byte `protobuf:"bytes,2,rep,name=txHashes,proto3" json:"txHashes,omitempty"` - Txs []byte `protobuf:"bytes,3,opt,name=txs,proto3" json:"txs,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ExtBatchMsg) Reset() { *x = ExtBatchMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExtBatchMsg) String() string { @@ -3220,8 +3248,8 @@ func (x *ExtBatchMsg) String() string { func (*ExtBatchMsg) ProtoMessage() {} func (x *ExtBatchMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[65] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3233,7 +3261,7 @@ func (x *ExtBatchMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtBatchMsg.ProtoReflect.Descriptor instead. func (*ExtBatchMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{62} + return file_enclave_proto_rawDescGZIP(), []int{65} } func (x *ExtBatchMsg) GetHeader() *BatchHeaderMsg { @@ -3258,36 +3286,33 @@ func (x *ExtBatchMsg) GetTxs() []byte { } type BatchHeaderMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ParentHash []byte `protobuf:"bytes,1,opt,name=ParentHash,proto3" json:"ParentHash,omitempty"` - Proof []byte `protobuf:"bytes,2,opt,name=Proof,proto3" json:"Proof,omitempty"` - Root []byte `protobuf:"bytes,3,opt,name=Root,proto3" json:"Root,omitempty"` - TxHash []byte `protobuf:"bytes,4,opt,name=TxHash,proto3" json:"TxHash,omitempty"` - Number uint64 `protobuf:"varint,5,opt,name=Number,proto3" json:"Number,omitempty"` - SequencerOrderNo uint64 `protobuf:"varint,6,opt,name=SequencerOrderNo,proto3" json:"SequencerOrderNo,omitempty"` - ReceiptHash []byte `protobuf:"bytes,7,opt,name=ReceiptHash,proto3" json:"ReceiptHash,omitempty"` - Extra []byte `protobuf:"bytes,8,opt,name=Extra,proto3" json:"Extra,omitempty"` - Signature []byte `protobuf:"bytes,9,opt,name=Signature,proto3" json:"Signature,omitempty"` - GasLimit uint64 `protobuf:"varint,10,opt,name=GasLimit,proto3" json:"GasLimit,omitempty"` - GasUsed uint64 `protobuf:"varint,11,opt,name=GasUsed,proto3" json:"GasUsed,omitempty"` - Time uint64 `protobuf:"varint,12,opt,name=Time,proto3" json:"Time,omitempty"` - BaseFee uint64 `protobuf:"varint,13,opt,name=BaseFee,proto3" json:"BaseFee,omitempty"` - CrossChainRoot []byte `protobuf:"bytes,17,opt,name=CrossChainRoot,proto3" json:"CrossChainRoot,omitempty"` - Coinbase []byte `protobuf:"bytes,18,opt,name=Coinbase,proto3" json:"Coinbase,omitempty"` - CrossChainTree []byte `protobuf:"bytes,19,opt,name=CrossChainTree,proto3" json:"CrossChainTree,omitempty"` - PayloadHash []byte `protobuf:"bytes,20,opt,name=PayloadHash,proto3" json:"PayloadHash,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ParentHash []byte `protobuf:"bytes,1,opt,name=ParentHash,proto3" json:"ParentHash,omitempty"` + Proof []byte `protobuf:"bytes,2,opt,name=Proof,proto3" json:"Proof,omitempty"` + Root []byte `protobuf:"bytes,3,opt,name=Root,proto3" json:"Root,omitempty"` + TxHash []byte `protobuf:"bytes,4,opt,name=TxHash,proto3" json:"TxHash,omitempty"` + Number uint64 `protobuf:"varint,5,opt,name=Number,proto3" json:"Number,omitempty"` + SequencerOrderNo uint64 `protobuf:"varint,6,opt,name=SequencerOrderNo,proto3" json:"SequencerOrderNo,omitempty"` + ReceiptHash []byte `protobuf:"bytes,7,opt,name=ReceiptHash,proto3" json:"ReceiptHash,omitempty"` + Extra []byte `protobuf:"bytes,8,opt,name=Extra,proto3" json:"Extra,omitempty"` + Signature []byte `protobuf:"bytes,9,opt,name=Signature,proto3" json:"Signature,omitempty"` + GasLimit uint64 `protobuf:"varint,10,opt,name=GasLimit,proto3" json:"GasLimit,omitempty"` + GasUsed uint64 `protobuf:"varint,11,opt,name=GasUsed,proto3" json:"GasUsed,omitempty"` + Time uint64 `protobuf:"varint,12,opt,name=Time,proto3" json:"Time,omitempty"` + BaseFee uint64 `protobuf:"varint,13,opt,name=BaseFee,proto3" json:"BaseFee,omitempty"` + CrossChainRoot []byte `protobuf:"bytes,17,opt,name=CrossChainRoot,proto3" json:"CrossChainRoot,omitempty"` + Coinbase []byte `protobuf:"bytes,18,opt,name=Coinbase,proto3" json:"Coinbase,omitempty"` + CrossChainTree []byte `protobuf:"bytes,19,opt,name=CrossChainTree,proto3" json:"CrossChainTree,omitempty"` + PayloadHash []byte `protobuf:"bytes,20,opt,name=PayloadHash,proto3" json:"PayloadHash,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BatchHeaderMsg) Reset() { *x = BatchHeaderMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BatchHeaderMsg) String() string { @@ -3297,8 +3322,8 @@ func (x *BatchHeaderMsg) String() string { func (*BatchHeaderMsg) ProtoMessage() {} func (x *BatchHeaderMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[66] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3310,7 +3335,7 @@ func (x *BatchHeaderMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchHeaderMsg.ProtoReflect.Descriptor instead. func (*BatchHeaderMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{63} + return file_enclave_proto_rawDescGZIP(), []int{66} } func (x *BatchHeaderMsg) GetParentHash() []byte { @@ -3433,22 +3458,19 @@ func (x *BatchHeaderMsg) GetPayloadHash() []byte { } type ExtRollupMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Header *RollupHeaderMsg `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` - BatchPayloads []byte `protobuf:"bytes,2,opt,name=batchPayloads,proto3" json:"batchPayloads,omitempty"` - CalldataRollupHeader []byte `protobuf:"bytes,3,opt,name=calldataRollupHeader,proto3" json:"calldataRollupHeader,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Header *RollupHeaderMsg `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + BatchPayloads []byte `protobuf:"bytes,2,opt,name=batchPayloads,proto3" json:"batchPayloads,omitempty"` + CalldataRollupHeader []byte `protobuf:"bytes,3,opt,name=calldataRollupHeader,proto3" json:"calldataRollupHeader,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExtRollupMsg) Reset() { *x = ExtRollupMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExtRollupMsg) String() string { @@ -3458,8 +3480,8 @@ func (x *ExtRollupMsg) String() string { func (*ExtRollupMsg) ProtoMessage() {} func (x *ExtRollupMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[67] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3471,7 +3493,7 @@ func (x *ExtRollupMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtRollupMsg.ProtoReflect.Descriptor instead. func (*ExtRollupMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{64} + return file_enclave_proto_rawDescGZIP(), []int{67} } func (x *ExtRollupMsg) GetHeader() *RollupHeaderMsg { @@ -3496,30 +3518,27 @@ func (x *ExtRollupMsg) GetCalldataRollupHeader() []byte { } type RollupHeaderMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ParentHash []byte `protobuf:"bytes,1,opt,name=ParentHash,proto3" json:"ParentHash,omitempty"` - CompressionL1Head []byte `protobuf:"bytes,2,opt,name=CompressionL1Head,proto3" json:"CompressionL1Head,omitempty"` - CompressionL1Number []byte `protobuf:"bytes,3,opt,name=CompressionL1Number,proto3" json:"CompressionL1Number,omitempty"` - ProofNumber uint64 `protobuf:"varint,4,opt,name=ProofNumber,proto3" json:"ProofNumber,omitempty"` - Number uint64 `protobuf:"varint,5,opt,name=Number,proto3" json:"Number,omitempty"` - Time uint64 `protobuf:"varint,6,opt,name=Time,proto3" json:"Time,omitempty"` - EnclaveID []byte `protobuf:"bytes,7,opt,name=EnclaveID,proto3" json:"EnclaveID,omitempty"` - LastBatchHash []byte `protobuf:"bytes,8,opt,name=LastBatchHash,proto3" json:"LastBatchHash,omitempty"` - FirstBatchSeqNo uint64 `protobuf:"varint,9,opt,name=FirstBatchSeqNo,proto3" json:"FirstBatchSeqNo,omitempty"` - LastBatchSeqNo uint64 `protobuf:"varint,10,opt,name=LastBatchSeqNo,proto3" json:"LastBatchSeqNo,omitempty"` - CrossChainRoot []byte `protobuf:"bytes,11,opt,name=CrossChainRoot,proto3" json:"CrossChainRoot,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ParentHash []byte `protobuf:"bytes,1,opt,name=ParentHash,proto3" json:"ParentHash,omitempty"` + CompressionL1Head []byte `protobuf:"bytes,2,opt,name=CompressionL1Head,proto3" json:"CompressionL1Head,omitempty"` + CompressionL1Number []byte `protobuf:"bytes,3,opt,name=CompressionL1Number,proto3" json:"CompressionL1Number,omitempty"` + ProofNumber uint64 `protobuf:"varint,4,opt,name=ProofNumber,proto3" json:"ProofNumber,omitempty"` + Number uint64 `protobuf:"varint,5,opt,name=Number,proto3" json:"Number,omitempty"` + Time uint64 `protobuf:"varint,6,opt,name=Time,proto3" json:"Time,omitempty"` + EnclaveID []byte `protobuf:"bytes,7,opt,name=EnclaveID,proto3" json:"EnclaveID,omitempty"` + LastBatchHash []byte `protobuf:"bytes,8,opt,name=LastBatchHash,proto3" json:"LastBatchHash,omitempty"` + FirstBatchSeqNo uint64 `protobuf:"varint,9,opt,name=FirstBatchSeqNo,proto3" json:"FirstBatchSeqNo,omitempty"` + LastBatchSeqNo uint64 `protobuf:"varint,10,opt,name=LastBatchSeqNo,proto3" json:"LastBatchSeqNo,omitempty"` + CrossChainRoot []byte `protobuf:"bytes,11,opt,name=CrossChainRoot,proto3" json:"CrossChainRoot,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RollupHeaderMsg) Reset() { *x = RollupHeaderMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RollupHeaderMsg) String() string { @@ -3529,8 +3548,8 @@ func (x *RollupHeaderMsg) String() string { func (*RollupHeaderMsg) ProtoMessage() {} func (x *RollupHeaderMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[68] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3542,7 +3561,7 @@ func (x *RollupHeaderMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use RollupHeaderMsg.ProtoReflect.Descriptor instead. func (*RollupHeaderMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{65} + return file_enclave_proto_rawDescGZIP(), []int{68} } func (x *RollupHeaderMsg) GetParentHash() []byte { @@ -3623,25 +3642,22 @@ func (x *RollupHeaderMsg) GetCrossChainRoot() []byte { } type SecretResponseMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Secret []byte `protobuf:"bytes,1,opt,name=Secret,proto3" json:"Secret,omitempty"` + RequesterID []byte `protobuf:"bytes,2,opt,name=RequesterID,proto3" json:"RequesterID,omitempty"` + AttesterID []byte `protobuf:"bytes,3,opt,name=AttesterID,proto3" json:"AttesterID,omitempty"` + HostAddress string `protobuf:"bytes,4,opt,name=HostAddress,proto3" json:"HostAddress,omitempty"` + Signature []byte `protobuf:"bytes,5,opt,name=Signature,proto3" json:"Signature,omitempty"` + SystemError *SystemError `protobuf:"bytes,6,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Secret []byte `protobuf:"bytes,1,opt,name=Secret,proto3" json:"Secret,omitempty"` - RequesterID []byte `protobuf:"bytes,2,opt,name=RequesterID,proto3" json:"RequesterID,omitempty"` - AttesterID []byte `protobuf:"bytes,3,opt,name=AttesterID,proto3" json:"AttesterID,omitempty"` - HostAddress string `protobuf:"bytes,4,opt,name=HostAddress,proto3" json:"HostAddress,omitempty"` - Signature []byte `protobuf:"bytes,5,opt,name=Signature,proto3" json:"Signature,omitempty"` - SystemError *SystemError `protobuf:"bytes,6,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *SecretResponseMsg) Reset() { *x = SecretResponseMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SecretResponseMsg) String() string { @@ -3651,8 +3667,8 @@ func (x *SecretResponseMsg) String() string { func (*SecretResponseMsg) ProtoMessage() {} func (x *SecretResponseMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[66] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[69] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3664,7 +3680,7 @@ func (x *SecretResponseMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use SecretResponseMsg.ProtoReflect.Descriptor instead. func (*SecretResponseMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{66} + return file_enclave_proto_rawDescGZIP(), []int{69} } func (x *SecretResponseMsg) GetSecret() []byte { @@ -3710,22 +3726,19 @@ func (x *SecretResponseMsg) GetSystemError() *SystemError { } type WithdrawalMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Amount []byte `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Recipient []byte `protobuf:"bytes,2,opt,name=recipient,proto3" json:"recipient,omitempty"` + Contract []byte `protobuf:"bytes,3,opt,name=contract,proto3" json:"contract,omitempty"` unknownFields protoimpl.UnknownFields - - Amount []byte `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - Recipient []byte `protobuf:"bytes,2,opt,name=recipient,proto3" json:"recipient,omitempty"` - Contract []byte `protobuf:"bytes,3,opt,name=contract,proto3" json:"contract,omitempty"` + sizeCache protoimpl.SizeCache } func (x *WithdrawalMsg) Reset() { *x = WithdrawalMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WithdrawalMsg) String() string { @@ -3735,8 +3748,8 @@ func (x *WithdrawalMsg) String() string { func (*WithdrawalMsg) ProtoMessage() {} func (x *WithdrawalMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[67] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[70] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3748,7 +3761,7 @@ func (x *WithdrawalMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use WithdrawalMsg.ProtoReflect.Descriptor instead. func (*WithdrawalMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{67} + return file_enclave_proto_rawDescGZIP(), []int{70} } func (x *WithdrawalMsg) GetAmount() []byte { @@ -3773,20 +3786,17 @@ func (x *WithdrawalMsg) GetContract() []byte { } type BlobMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Blob []byte `protobuf:"bytes,1,opt,name=blob,proto3" json:"blob,omitempty"` unknownFields protoimpl.UnknownFields - - Blob []byte `protobuf:"bytes,1,opt,name=blob,proto3" json:"blob,omitempty"` + sizeCache protoimpl.SizeCache } func (x *BlobMsg) Reset() { *x = BlobMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BlobMsg) String() string { @@ -3796,8 +3806,8 @@ func (x *BlobMsg) String() string { func (*BlobMsg) ProtoMessage() {} func (x *BlobMsg) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[68] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[71] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3809,7 +3819,7 @@ func (x *BlobMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use BlobMsg.ProtoReflect.Descriptor instead. func (*BlobMsg) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{68} + return file_enclave_proto_rawDescGZIP(), []int{71} } func (x *BlobMsg) GetBlob() []byte { @@ -3820,18 +3830,16 @@ func (x *BlobMsg) GetBlob() []byte { } type BackupSharedSecretRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BackupSharedSecretRequest) Reset() { *x = BackupSharedSecretRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BackupSharedSecretRequest) String() string { @@ -3841,8 +3849,8 @@ func (x *BackupSharedSecretRequest) String() string { func (*BackupSharedSecretRequest) ProtoMessage() {} func (x *BackupSharedSecretRequest) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[69] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[72] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3854,25 +3862,22 @@ func (x *BackupSharedSecretRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BackupSharedSecretRequest.ProtoReflect.Descriptor instead. func (*BackupSharedSecretRequest) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{69} + return file_enclave_proto_rawDescGZIP(), []int{72} } type BackupSharedSecretResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Secret []byte `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"` + SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` unknownFields protoimpl.UnknownFields - - Secret []byte `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"` - SystemError *SystemError `protobuf:"bytes,2,opt,name=systemError,proto3" json:"systemError,omitempty"` + sizeCache protoimpl.SizeCache } func (x *BackupSharedSecretResponse) Reset() { *x = BackupSharedSecretResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_enclave_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_enclave_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BackupSharedSecretResponse) String() string { @@ -3882,8 +3887,8 @@ func (x *BackupSharedSecretResponse) String() string { func (*BackupSharedSecretResponse) ProtoMessage() {} func (x *BackupSharedSecretResponse) ProtoReflect() protoreflect.Message { - mi := &file_enclave_proto_msgTypes[70] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_enclave_proto_msgTypes[73] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3895,7 +3900,7 @@ func (x *BackupSharedSecretResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BackupSharedSecretResponse.ProtoReflect.Descriptor instead. func (*BackupSharedSecretResponse) Descriptor() ([]byte, []int) { - return file_enclave_proto_rawDescGZIP(), []int{70} + return file_enclave_proto_rawDescGZIP(), []int{73} } func (x *BackupSharedSecretResponse) GetSecret() []byte { @@ -3914,803 +3919,478 @@ func (x *BackupSharedSecretResponse) GetSystemError() *SystemError { var File_enclave_proto protoreflect.FileDescriptor -var file_enclave_proto_rawDesc = []byte{ - 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x45, 0x6e, - 0x63, 0x6c, 0x61, 0x76, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xde, 0x03, 0x0a, 0x1b, 0x45, 0x6e, 0x63, - 0x6c, 0x61, 0x76, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x6c, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x6c, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x42, 0x75, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x48, 0x0a, 0x1f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x1f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x1e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1e, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x55, 0x70, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x77, 0x0a, 0x15, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x1a, - 0x48, 0x0a, 0x1a, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1d, 0x0a, 0x1b, 0x53, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a, 0x1a, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x6c, 0x61, 0x76, - 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x6c, 0x61, - 0x76, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, - 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x1c, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x4d, 0x73, 0x67, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x0b, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x22, 0x2e, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x73, 0x65, 0x71, 0x4e, 0x6f, 0x22, 0x62, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2a, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x83, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, - 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x30, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x73, 0x67, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x4f, 0x0a, - 0x13, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x44, 0x61, 0x74, - 0x61, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x71, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x71, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x18, - 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x32, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x15, 0x45, 0x6e, 0x63, 0x6f, - 0x64, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x22, 0x38, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x22, 0x4d, 0x0a, 0x0b, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x22, 0x1e, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x6f, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x22, 0x4e, 0x0a, 0x1c, 0x44, 0x65, 0x62, 0x75, 0x67, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0x6b, 0x0a, 0x1d, 0x44, 0x65, 0x62, 0x75, 0x67, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x36, - 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x70, 0x49, 0x66, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x6b, 0x69, 0x70, 0x49, - 0x66, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0x61, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, - 0x6c, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x12, 0x66, 0x72, - 0x6f, 0x6d, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x12, 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, - 0x05, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x4d, 0x73, 0x67, - 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x22, 0x55, 0x0a, 0x1b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x74, 0x6f, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x74, 0x6f, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x22, 0x30, 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x86, 0x02, 0x0a, 0x0e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x6c, 0x31, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x6c, 0x31, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x32, 0x48, 0x65, 0x61, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6c, 0x32, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x6c, 0x32, 0x48, 0x65, 0x61, 0x64, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0a, 0x6c, 0x32, 0x48, 0x65, 0x61, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, - 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, - 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x12, 0x4d, 0x61, 0x6b, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x14, 0x0a, 0x12, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0xa4, 0x01, 0x0a, 0x13, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x14, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x73, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x14, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x0b, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x96, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x1c, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x63, - 0x6c, 0x61, 0x76, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x1c, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x38, - 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x58, 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, - 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, - 0x0a, 0x1c, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1c, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x53, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x22, 0x4f, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0x12, 0x0a, 0x10, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x49, 0x44, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6b, 0x0a, 0x11, 0x45, 0x6e, 0x63, 0x6c, 0x61, - 0x76, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x65, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x65, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x72, 0x0a, 0x18, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, - 0x70, 0x63, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x72, 0x70, 0x63, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0x32, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, - 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x49, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x22, 0x6c, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, - 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x14, - 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x22, 0xb0, 0x01, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x17, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, - 0x52, 0x17, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0x3a, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, - 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, - 0x83, 0x01, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x45, 0x6e, - 0x63, 0x6c, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x16, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x6c, - 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4d, - 0x73, 0x67, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x22, 0x4f, 0x0a, 0x13, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x74, - 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x0c, 0x53, 0x74, 0x6f, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0x50, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x24, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x72, 0x4f, 0x72, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x72, 0x4f, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x5f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x0b, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x58, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x4d, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0x24, 0x0a, 0x12, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x67, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0x0b, 0x0a, 0x09, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x41, 0x72, 0x67, 0x73, 0x22, 0xc0, 0x01, 0x0a, - 0x14, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x50, - 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, - 0x65, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0x46, 0x0a, 0x1c, 0x45, 0x78, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x12, - 0x26, 0x0a, 0x0e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x72, 0x65, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x54, 0x72, 0x65, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x1a, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x56, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x17, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x38, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, - 0x67, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4f, 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x6c, - 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x78, 0x74, - 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x0e, 0x72, 0x6f, 0x6c, 0x6c, 0x75, - 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x17, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x31, - 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6c, 0x31, 0x48, 0x65, - 0x61, 0x64, 0x22, 0x89, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x6e, - 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, - 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x74, 0x78, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x74, 0x78, 0x73, 0x22, 0xfe, - 0x03, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x54, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x54, 0x78, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x72, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x70, 0x74, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x70, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x74, - 0x72, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, - 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x73, - 0x55, 0x73, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x47, 0x61, 0x73, 0x55, - 0x73, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x73, 0x65, 0x46, - 0x65, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x42, 0x61, 0x73, 0x65, 0x46, 0x65, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, - 0x6f, 0x6f, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x43, 0x72, 0x6f, 0x73, 0x73, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x69, - 0x6e, 0x62, 0x61, 0x73, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x43, 0x6f, 0x69, - 0x6e, 0x62, 0x61, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x54, 0x72, 0x65, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x43, - 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x72, 0x65, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0b, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x61, 0x73, 0x68, 0x22, - 0x9c, 0x01, 0x0a, 0x0c, 0x45, 0x78, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x4d, 0x73, 0x67, - 0x12, 0x32, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x52, 0x6f, 0x6c, - 0x6c, 0x75, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x06, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x63, 0x61, - 0x6c, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x63, 0x61, 0x6c, 0x6c, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x9d, - 0x03, 0x0a, 0x0f, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x4c, 0x31, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x43, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x31, 0x48, 0x65, 0x61, 0x64, - 0x12, 0x30, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, - 0x31, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x43, - 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x31, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x49, 0x44, 0x12, 0x24, - 0x0a, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x48, 0x61, 0x73, 0x68, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x46, - 0x69, 0x72, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x12, 0x26, - 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x71, 0x4e, 0x6f, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, - 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x6f, 0x6f, 0x74, 0x22, 0xe7, - 0x01, 0x0a, 0x11, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x38, - 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x61, 0x0a, 0x0d, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0x1d, 0x0a, 0x07, 0x42, - 0x6c, 0x6f, 0x62, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x22, 0x1b, 0x0a, 0x19, 0x42, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6e, 0x0a, 0x1a, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x38, 0x0a, - 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x32, 0xff, 0x11, 0x0a, 0x0c, 0x45, 0x6e, 0x63, 0x6c, - 0x61, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x3f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x20, 0x2e, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, - 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x49, 0x6e, - 0x69, 0x74, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x49, 0x6e, 0x69, - 0x74, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x49, 0x44, 0x12, - 0x1b, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x6c, - 0x61, 0x76, 0x65, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, - 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x10, - 0x52, 0x50, 0x43, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, - 0x12, 0x22, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x52, 0x50, 0x43, - 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x52, 0x50, 0x43, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0d, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4c, 0x31, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, - 0x0c, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x52, 0x50, 0x43, 0x12, 0x19, 0x2e, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x43, 0x61, 0x6c, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1d, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x16, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x42, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x12, 0x1b, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x4e, 0x0a, 0x0b, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x1d, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x45, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x14, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x41, 0x72, 0x67, 0x73, 0x1a, 0x1e, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x12, 0x1a, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, - 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4e, 0x6f, - 0x12, 0x21, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4e, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x1f, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1d, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x75, 0x70, 0x12, 0x1e, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x14, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x26, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x72, - 0x6f, 0x73, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x15, 0x44, 0x65, 0x62, 0x75, 0x67, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x27, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x32, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x32, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, - 0x12, 0x6c, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, - 0x0a, 0x13, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x63, 0x6c, 0x61, 0x76, 0x65, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x4d, - 0x61, 0x6b, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x1a, 0x46, 0x65, 0x74, 0x63, 0x68, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x26, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x72, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x68, - 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x24, 0x2e, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x42, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x17, 0x5a, 0x15, 0x65, 0x6e, 0x63, - 0x6c, 0x61, 0x76, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_enclave_proto_rawDesc = "" + + "\n" + + "\renclave.proto\x12\tgenerated\"\x1c\n" + + "\x1aEnclavePublicConfigRequest\"\xde\x03\n" + + "\x1bEnclavePublicConfigResponse\x120\n" + + "\x13l2MessageBusAddress\x18\x01 \x01(\fR\x13l2MessageBusAddress\x12H\n" + + "\x1ftransactionPostProcessorAddress\x18\x02 \x01(\fR\x1ftransactionPostProcessorAddress\x12F\n" + + "\x1esystemContractsUpgraderAddress\x18\x03 \x01(\fR\x1esystemContractsUpgraderAddress\x12w\n" + + "\x15publicSystemContracts\x18\x04 \x03(\v2A.generated.EnclavePublicConfigResponse.PublicSystemContractsEntryR\x15publicSystemContracts\x128\n" + + "\vsystemError\x18\x05 \x01(\v2\x16.generated.SystemErrorR\vsystemError\x1aH\n" + + "\x1aPublicSystemContractsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\fR\x05value:\x028\x01\"\x1d\n" + + "\x1bSequencerAttestationRequest\"U\n" + + "\x15ContractsSinceRequest\x12&\n" + + "\x0efromContractID\x18\x01 \x01(\x04R\x0efromContractID\x12\x14\n" + + "\x05limit\x18\x02 \x01(\x05R\x05limit\"\xa2\x02\n" + + "\x17ContractCreationDataMsg\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x04R\x02id\x12\x18\n" + + "\aaddress\x18\x02 \x01(\fR\aaddress\x12\x18\n" + + "\acreator\x18\x03 \x01(\fR\acreator\x12&\n" + + "\x0eautoVisibility\x18\x04 \x01(\bR\x0eautoVisibility\x12%\n" + + "\vtransparent\x18\x05 \x01(\bH\x00R\vtransparent\x88\x01\x01\x12\x1a\n" + + "\bbatchSeq\x18\x06 \x01(\x04R\bbatchSeq\x12 \n" + + "\vbatchHeight\x18\a \x01(\x04R\vbatchHeight\x12&\n" + + "\x0ebatchTimestamp\x18\b \x01(\x04R\x0ebatchTimestampB\x0e\n" + + "\f_transparent\"\x94\x01\n" + + "\x16ContractsSinceResponse\x12@\n" + + "\tcontracts\x18\x01 \x03(\v2\".generated.ContractCreationDataMsgR\tcontracts\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"p\n" + + "\x1aPublicAttestationReportMsg\x12\x1c\n" + + "\tenclaveID\x18\x01 \x01(\fR\tenclaveID\x12\x1c\n" + + "\tpublicKey\x18\x02 \x01(\fR\tpublicKey\x12\x16\n" + + "\x06report\x18\x03 \x01(\fR\x06report\"\x99\x01\n" + + "\x1cSequencerAttestationResponse\x12?\n" + + "\areports\x18\x01 \x03(\v2%.generated.PublicAttestationReportMsgR\areports\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"/\n" + + "\x0fGetBatchRequest\x12\x1c\n" + + "\tknownHead\x18\x01 \x01(\fR\tknownHead\".\n" + + "\x16GetBatchBySeqNoRequest\x12\x14\n" + + "\x05seqNo\x18\x01 \x01(\x04R\x05seqNo\"b\n" + + "\x10GetBatchResponse\x12\x14\n" + + "\x05batch\x18\x01 \x01(\fR\x05batch\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"*\n" + + "\x14GetRollupDataRequest\x12\x12\n" + + "\x04hash\x18\x01 \x01(\fR\x04hash\"\x83\x01\n" + + "\x15GetRollupDataResponse\x120\n" + + "\x03msg\x18\x01 \x01(\v2\x1e.generated.PublicRollupDataMsgR\x03msg\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"O\n" + + "\x13PublicRollupDataMsg\x12\x1a\n" + + "\bstartSeq\x18\x01 \x01(\x04R\bstartSeq\x12\x1c\n" + + "\ttimestamp\x18\x02 \x01(\x04R\ttimestamp\"\x18\n" + + "\x16StreamL2UpdatesRequest\"-\n" + + "\x15EncodedUpdateResponse\x12\x14\n" + + "\x05batch\x18\x01 \x01(\fR\x05batch\"8\n" + + "\n" + + "Pagination\x12\x16\n" + + "\x06offset\x18\x01 \x01(\x05R\x06offset\x12\x12\n" + + "\x04size\x18\x02 \x01(\x05R\x04size\"M\n" + + "\vSystemError\x12\x1c\n" + + "\terrorCode\x18\x01 \x01(\x05R\terrorCode\x12 \n" + + "\verrorString\x18\x02 \x01(\tR\verrorString\"\x1e\n" + + "\x1cGetTotalContractCountRequest\"o\n" + + "\x1dGetTotalContractCountResponse\x12\x14\n" + + "\x05count\x18\x01 \x01(\x03R\x05count\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"N\n" + + "\x1cDebugTraceTransactionRequest\x12\x16\n" + + "\x06txHash\x18\x01 \x01(\fR\x06txHash\x12\x16\n" + + "\x06config\x18\x02 \x01(\fR\x06config\"k\n" + + "\x1dDebugTraceTransactionResponse\x12\x10\n" + + "\x03msg\x18\x01 \x01(\tR\x03msg\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"6\n" + + "\x12CreateBatchRequest\x12 \n" + + "\vskipIfEmpty\x18\x01 \x01(\bR\vskipIfEmpty\"+\n" + + "\x13CreateBatchResponse\x12\x14\n" + + "\x05error\x18\x02 \x01(\tR\x05error\"a\n" + + "\x13CreateRollupRequest\x123\n" + + "\x12fromSequenceNumber\x18\x01 \x01(\x04H\x00R\x12fromSequenceNumber\x88\x01\x01B\x15\n" + + "\x13_fromSequenceNumber\"\x98\x01\n" + + "\x14CreateRollupResponse\x12\x1c\n" + + "\tsignature\x18\x01 \x01(\fR\tsignature\x12(\n" + + "\x05blobs\x18\x02 \x03(\v2\x12.generated.BlobMsgR\x05blobs\x128\n" + + "\vsystemError\x18\x03 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"U\n" + + "\x1bExportCrossChainDataRequest\x12\x1c\n" + + "\tfromSeqNo\x18\x01 \x01(\x04R\tfromSeqNo\x12\x18\n" + + "\atoSeqNo\x18\x02 \x01(\x04R\atoSeqNo\"0\n" + + "\x1cExportCrossChainDataResponse\x12\x10\n" + + "\x03msg\x18\x01 \x01(\fR\x03msg\"\x0f\n" + + "\rStatusRequest\"\x86\x02\n" + + "\x0eStatusResponse\x12\x1e\n" + + "\n" + + "statusCode\x18\x01 \x01(\x05R\n" + + "statusCode\x12\x16\n" + + "\x06l1Head\x18\x02 \x01(\fR\x06l1Head\x12\x16\n" + + "\x06l2Head\x18\x03 \x01(\fR\x06l2Head\x12\x1e\n" + + "\n" + + "l2HeadHash\x18\x04 \x01(\fR\n" + + "l2HeadHash\x12\x1c\n" + + "\tenclaveID\x18\x05 \x01(\fR\tenclaveID\x12,\n" + + "\x11isActiveSequencer\x18\x06 \x01(\bR\x11isActiveSequencer\x128\n" + + "\vsystemError\x18\a \x01(\v2\x16.generated.SystemErrorR\vsystemError\"\x13\n" + + "\x11MakeActiveRequest\"N\n" + + "\x12MakeActiveResponse\x128\n" + + "\vsystemError\x18\x01 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"\x14\n" + + "\x12AttestationRequest\"\xa4\x01\n" + + "\x13AttestationResponse\x12S\n" + + "\x14attestationReportMsg\x18\x01 \x01(\v2\x1f.generated.AttestationReportMsgR\x14attestationReportMsg\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"\x17\n" + + "\x15GenerateSecretRequest\"\x96\x01\n" + + "\x16GenerateSecretResponse\x12B\n" + + "\x1cencryptedSharedEnclaveSecret\x18\x01 \x01(\fR\x1cencryptedSharedEnclaveSecret\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"X\n" + + "\x12InitEnclaveRequest\x12B\n" + + "\x1cencryptedSharedEnclaveSecret\x18\x01 \x01(\fR\x1cencryptedSharedEnclaveSecret\"O\n" + + "\x13InitEnclaveResponse\x128\n" + + "\vsystemError\x18\x01 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"\x12\n" + + "\x10EnclaveIDRequest\"k\n" + + "\x11EnclaveIDResponse\x12\x1c\n" + + "\tenclaveID\x18\x01 \x01(\fR\tenclaveID\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"\x19\n" + + "\x17RPCEncryptionKeyRequest\"r\n" + + "\x18RPCEncryptionKeyResponse\x12\x1c\n" + + "\trpcPubKey\x18\x01 \x01(\fR\trpcPubKey\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"2\n" + + "\fStartRequest\x12\"\n" + + "\fencodedBlock\x18\x01 \x01(\fR\fencodedBlock\"I\n" + + "\rStartResponse\x128\n" + + "\vsystemError\x18\x01 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"l\n" + + "\x12SubmitBlockRequest\x12\"\n" + + "\fencodedBlock\x18\x01 \x01(\fR\fencodedBlock\x122\n" + + "\x14encodedProcessedData\x18\x02 \x01(\fR\x14encodedProcessedData\"\xb0\x01\n" + + "\x13SubmitBlockResponse\x12_\n" + + "\x17blockSubmissionResponse\x18\x01 \x01(\v2%.generated.BlockSubmissionResponseMsgR\x17blockSubmissionResponse\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\":\n" + + "\x0eEncCallRequest\x12(\n" + + "\x0fencryptedParams\x18\x01 \x01(\fR\x0fencryptedParams\"\x83\x01\n" + + "\x0fEncCallResponse\x126\n" + + "\x16encodedEnclaveResponse\x18\x01 \x01(\fR\x16encodedEnclaveResponse\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"B\n" + + "\x12SubmitBatchRequest\x12,\n" + + "\x05batch\x18\x01 \x01(\v2\x16.generated.ExtBatchMsgR\x05batch\"O\n" + + "\x13SubmitBatchResponse\x128\n" + + "\vsystemError\x18\x01 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"\r\n" + + "\vStopRequest\"H\n" + + "\fStopResponse\x128\n" + + "\vsystemError\x18\x01 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"P\n" + + "\x0eGetCodeRequest\x12\x18\n" + + "\aaddress\x18\x01 \x01(\fR\aaddress\x12$\n" + + "\rblockNrOrHash\x18\x02 \x01(\fR\rblockNrOrHash\"_\n" + + "\x0fGetCodeResponse\x12\x12\n" + + "\x04code\x18\x01 \x01(\fR\x04code\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"X\n" + + "\x10SubscribeRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\fR\x02id\x124\n" + + "\x15encryptedSubscription\x18\x02 \x01(\fR\x15encryptedSubscription\"M\n" + + "\x11SubscribeResponse\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"$\n" + + "\x12UnsubscribeRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\fR\x02id\"O\n" + + "\x13UnsubscribeResponse\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"g\n" + + "\x13HealthCheckResponse\x12\x16\n" + + "\x06status\x18\x01 \x01(\bR\x06status\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"\v\n" + + "\tEmptyArgs\"\xc0\x01\n" + + "\x14AttestationReportMsg\x12\x16\n" + + "\x06Report\x18\x01 \x01(\fR\x06Report\x12\x16\n" + + "\x06PubKey\x18\x02 \x01(\fR\x06PubKey\x12\x1c\n" + + "\tEnclaveID\x18\x03 \x01(\fR\tEnclaveID\x12 \n" + + "\vHostAddress\x18\x04 \x01(\tR\vHostAddress\x128\n" + + "\vsystemError\x18\x05 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"F\n" + + "\x1cExtRollupMetadataResponseMsg\x12&\n" + + "\x0eCrossChainTree\x18\x01 \x01(\fR\x0eCrossChainTree\"\xff\x01\n" + + "\x1aBlockSubmissionResponseMsg\x12V\n" + + "\x17producedSecretResponses\x18\x01 \x03(\v2\x1c.generated.SecretResponseMsgR\x17producedSecretResponses\x128\n" + + "\x05error\x18\x02 \x01(\v2\".generated.BlockSubmissionErrorMsgR\x05error\x12O\n" + + "\x0erollupMetadata\x18\x03 \x03(\v2'.generated.ExtRollupMetadataResponseMsgR\x0erollupMetadata\"G\n" + + "\x17BlockSubmissionErrorMsg\x12\x14\n" + + "\x05cause\x18\x01 \x01(\tR\x05cause\x12\x16\n" + + "\x06l1Head\x18\x02 \x01(\fR\x06l1Head\"\x89\x01\n" + + "\rCrossChainMsg\x12\x16\n" + + "\x06Sender\x18\x01 \x01(\fR\x06Sender\x12\x1a\n" + + "\bSequence\x18\x02 \x01(\x04R\bSequence\x12\x14\n" + + "\x05Nonce\x18\x03 \x01(\x04R\x05Nonce\x12\x14\n" + + "\x05Topic\x18\x04 \x01(\rR\x05Topic\x12\x18\n" + + "\aPayload\x18\x05 \x01(\fR\aPayload\"n\n" + + "\vExtBatchMsg\x121\n" + + "\x06header\x18\x01 \x01(\v2\x19.generated.BatchHeaderMsgR\x06header\x12\x1a\n" + + "\btxHashes\x18\x02 \x03(\fR\btxHashes\x12\x10\n" + + "\x03txs\x18\x03 \x01(\fR\x03txs\"\xfe\x03\n" + + "\x0eBatchHeaderMsg\x12\x1e\n" + + "\n" + + "ParentHash\x18\x01 \x01(\fR\n" + + "ParentHash\x12\x14\n" + + "\x05Proof\x18\x02 \x01(\fR\x05Proof\x12\x12\n" + + "\x04Root\x18\x03 \x01(\fR\x04Root\x12\x16\n" + + "\x06TxHash\x18\x04 \x01(\fR\x06TxHash\x12\x16\n" + + "\x06Number\x18\x05 \x01(\x04R\x06Number\x12*\n" + + "\x10SequencerOrderNo\x18\x06 \x01(\x04R\x10SequencerOrderNo\x12 \n" + + "\vReceiptHash\x18\a \x01(\fR\vReceiptHash\x12\x14\n" + + "\x05Extra\x18\b \x01(\fR\x05Extra\x12\x1c\n" + + "\tSignature\x18\t \x01(\fR\tSignature\x12\x1a\n" + + "\bGasLimit\x18\n" + + " \x01(\x04R\bGasLimit\x12\x18\n" + + "\aGasUsed\x18\v \x01(\x04R\aGasUsed\x12\x12\n" + + "\x04Time\x18\f \x01(\x04R\x04Time\x12\x18\n" + + "\aBaseFee\x18\r \x01(\x04R\aBaseFee\x12&\n" + + "\x0eCrossChainRoot\x18\x11 \x01(\fR\x0eCrossChainRoot\x12\x1a\n" + + "\bCoinbase\x18\x12 \x01(\fR\bCoinbase\x12&\n" + + "\x0eCrossChainTree\x18\x13 \x01(\fR\x0eCrossChainTree\x12 \n" + + "\vPayloadHash\x18\x14 \x01(\fR\vPayloadHash\"\x9c\x01\n" + + "\fExtRollupMsg\x122\n" + + "\x06header\x18\x01 \x01(\v2\x1a.generated.RollupHeaderMsgR\x06header\x12$\n" + + "\rbatchPayloads\x18\x02 \x01(\fR\rbatchPayloads\x122\n" + + "\x14calldataRollupHeader\x18\x03 \x01(\fR\x14calldataRollupHeader\"\x9d\x03\n" + + "\x0fRollupHeaderMsg\x12\x1e\n" + + "\n" + + "ParentHash\x18\x01 \x01(\fR\n" + + "ParentHash\x12,\n" + + "\x11CompressionL1Head\x18\x02 \x01(\fR\x11CompressionL1Head\x120\n" + + "\x13CompressionL1Number\x18\x03 \x01(\fR\x13CompressionL1Number\x12 \n" + + "\vProofNumber\x18\x04 \x01(\x04R\vProofNumber\x12\x16\n" + + "\x06Number\x18\x05 \x01(\x04R\x06Number\x12\x12\n" + + "\x04Time\x18\x06 \x01(\x04R\x04Time\x12\x1c\n" + + "\tEnclaveID\x18\a \x01(\fR\tEnclaveID\x12$\n" + + "\rLastBatchHash\x18\b \x01(\fR\rLastBatchHash\x12(\n" + + "\x0fFirstBatchSeqNo\x18\t \x01(\x04R\x0fFirstBatchSeqNo\x12&\n" + + "\x0eLastBatchSeqNo\x18\n" + + " \x01(\x04R\x0eLastBatchSeqNo\x12&\n" + + "\x0eCrossChainRoot\x18\v \x01(\fR\x0eCrossChainRoot\"\xe7\x01\n" + + "\x11SecretResponseMsg\x12\x16\n" + + "\x06Secret\x18\x01 \x01(\fR\x06Secret\x12 \n" + + "\vRequesterID\x18\x02 \x01(\fR\vRequesterID\x12\x1e\n" + + "\n" + + "AttesterID\x18\x03 \x01(\fR\n" + + "AttesterID\x12 \n" + + "\vHostAddress\x18\x04 \x01(\tR\vHostAddress\x12\x1c\n" + + "\tSignature\x18\x05 \x01(\fR\tSignature\x128\n" + + "\vsystemError\x18\x06 \x01(\v2\x16.generated.SystemErrorR\vsystemError\"a\n" + + "\rWithdrawalMsg\x12\x16\n" + + "\x06amount\x18\x01 \x01(\fR\x06amount\x12\x1c\n" + + "\trecipient\x18\x02 \x01(\fR\trecipient\x12\x1a\n" + + "\bcontract\x18\x03 \x01(\fR\bcontract\"\x1d\n" + + "\aBlobMsg\x12\x12\n" + + "\x04blob\x18\x01 \x01(\fR\x04blob\"\x1b\n" + + "\x19BackupSharedSecretRequest\"n\n" + + "\x1aBackupSharedSecretResponse\x12\x16\n" + + "\x06secret\x18\x01 \x01(\fR\x06secret\x128\n" + + "\vsystemError\x18\x02 \x01(\v2\x16.generated.SystemErrorR\vsystemError2\xd6\x12\n" + + "\fEnclaveProto\x12?\n" + + "\x06Status\x12\x18.generated.StatusRequest\x1a\x19.generated.StatusResponse\"\x00\x12N\n" + + "\vAttestation\x12\x1d.generated.AttestationRequest\x1a\x1e.generated.AttestationResponse\"\x00\x12W\n" + + "\x0eGenerateSecret\x12 .generated.GenerateSecretRequest\x1a!.generated.GenerateSecretResponse\"\x00\x12N\n" + + "\vInitEnclave\x12\x1d.generated.InitEnclaveRequest\x1a\x1e.generated.InitEnclaveResponse\"\x00\x12H\n" + + "\tEnclaveID\x12\x1b.generated.EnclaveIDRequest\x1a\x1c.generated.EnclaveIDResponse\"\x00\x12]\n" + + "\x10RPCEncryptionKey\x12\".generated.RPCEncryptionKeyRequest\x1a#.generated.RPCEncryptionKeyResponse\"\x00\x12P\n" + + "\rSubmitL1Block\x12\x1d.generated.SubmitBlockRequest\x1a\x1e.generated.SubmitBlockResponse\"\x00\x12G\n" + + "\fEncryptedRPC\x12\x19.generated.EncCallRequest\x1a\x1a.generated.EncCallResponse\"\x00\x12N\n" + + "\vSubmitBatch\x12\x1d.generated.SubmitBatchRequest\x1a\x1e.generated.SubmitBatchResponse\"\x00\x129\n" + + "\x04Stop\x12\x16.generated.StopRequest\x1a\x17.generated.StopResponse\"\x00\x12B\n" + + "\aGetCode\x12\x19.generated.GetCodeRequest\x1a\x1a.generated.GetCodeResponse\"\x00\x12H\n" + + "\tSubscribe\x12\x1b.generated.SubscribeRequest\x1a\x1c.generated.SubscribeResponse\"\x00\x12N\n" + + "\vUnsubscribe\x12\x1d.generated.UnsubscribeRequest\x1a\x1e.generated.UnsubscribeResponse\"\x00\x12E\n" + + "\vHealthCheck\x12\x14.generated.EmptyArgs\x1a\x1e.generated.HealthCheckResponse\"\x00\x12E\n" + + "\bGetBatch\x12\x1a.generated.GetBatchRequest\x1a\x1b.generated.GetBatchResponse\"\x00\x12S\n" + + "\x0fGetBatchBySeqNo\x12!.generated.GetBatchBySeqNoRequest\x1a\x1b.generated.GetBatchResponse\"\x00\x12T\n" + + "\rGetRollupData\x12\x1f.generated.GetRollupDataRequest\x1a .generated.GetRollupDataResponse\"\x00\x12N\n" + + "\vCreateBatch\x12\x1d.generated.CreateBatchRequest\x1a\x1e.generated.CreateBatchResponse\"\x00\x12Q\n" + + "\fCreateRollup\x12\x1e.generated.CreateRollupRequest\x1a\x1f.generated.CreateRollupResponse\"\x00\x12i\n" + + "\x14ExportCrossChainData\x12&.generated.ExportCrossChainDataRequest\x1a'.generated.ExportCrossChainDataResponse\"\x00\x12l\n" + + "\x15DebugTraceTransaction\x12'.generated.DebugTraceTransactionRequest\x1a(.generated.DebugTraceTransactionResponse\"\x00\x12Z\n" + + "\x0fStreamL2Updates\x12!.generated.StreamL2UpdatesRequest\x1a .generated.EncodedUpdateResponse\"\x000\x01\x12l\n" + + "\x15GetTotalContractCount\x12'.generated.GetTotalContractCountRequest\x1a(.generated.GetTotalContractCountResponse\"\x00\x12f\n" + + "\x13EnclavePublicConfig\x12%.generated.EnclavePublicConfigRequest\x1a&.generated.EnclavePublicConfigResponse\"\x00\x12K\n" + + "\n" + + "MakeActive\x12\x1c.generated.MakeActiveRequest\x1a\x1d.generated.MakeActiveResponse\"\x00\x12o\n" + + "\x1aFetchSequencerAttestations\x12&.generated.SequencerAttestationRequest\x1a'.generated.SequencerAttestationResponse\"\x00\x12U\n" + + "\fGetContracts\x12 .generated.ContractsSinceRequest\x1a!.generated.ContractsSinceResponse\"\x00\x12c\n" + + "\x12BackupSharedSecret\x12$.generated.BackupSharedSecretRequest\x1a%.generated.BackupSharedSecretResponse\"\x00B\x17Z\x15enclave/rpc/generatedb\x06proto3" var ( file_enclave_proto_rawDescOnce sync.Once - file_enclave_proto_rawDescData = file_enclave_proto_rawDesc + file_enclave_proto_rawDescData []byte ) func file_enclave_proto_rawDescGZIP() []byte { file_enclave_proto_rawDescOnce.Do(func() { - file_enclave_proto_rawDescData = protoimpl.X.CompressGZIP(file_enclave_proto_rawDescData) + file_enclave_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_enclave_proto_rawDesc), len(file_enclave_proto_rawDesc))) }) return file_enclave_proto_rawDescData } -var file_enclave_proto_msgTypes = make([]protoimpl.MessageInfo, 72) +var file_enclave_proto_msgTypes = make([]protoimpl.MessageInfo, 75) var file_enclave_proto_goTypes = []any{ (*EnclavePublicConfigRequest)(nil), // 0: generated.EnclavePublicConfigRequest (*EnclavePublicConfigResponse)(nil), // 1: generated.EnclavePublicConfigResponse (*SequencerAttestationRequest)(nil), // 2: generated.SequencerAttestationRequest - (*PublicAttestationReportMsg)(nil), // 3: generated.PublicAttestationReportMsg - (*SequencerAttestationResponse)(nil), // 4: generated.SequencerAttestationResponse - (*GetBatchRequest)(nil), // 5: generated.GetBatchRequest - (*GetBatchBySeqNoRequest)(nil), // 6: generated.GetBatchBySeqNoRequest - (*GetBatchResponse)(nil), // 7: generated.GetBatchResponse - (*GetRollupDataRequest)(nil), // 8: generated.GetRollupDataRequest - (*GetRollupDataResponse)(nil), // 9: generated.GetRollupDataResponse - (*PublicRollupDataMsg)(nil), // 10: generated.PublicRollupDataMsg - (*StreamL2UpdatesRequest)(nil), // 11: generated.StreamL2UpdatesRequest - (*EncodedUpdateResponse)(nil), // 12: generated.EncodedUpdateResponse - (*Pagination)(nil), // 13: generated.Pagination - (*SystemError)(nil), // 14: generated.SystemError - (*GetTotalContractCountRequest)(nil), // 15: generated.GetTotalContractCountRequest - (*GetTotalContractCountResponse)(nil), // 16: generated.GetTotalContractCountResponse - (*DebugTraceTransactionRequest)(nil), // 17: generated.DebugTraceTransactionRequest - (*DebugTraceTransactionResponse)(nil), // 18: generated.DebugTraceTransactionResponse - (*CreateBatchRequest)(nil), // 19: generated.CreateBatchRequest - (*CreateBatchResponse)(nil), // 20: generated.CreateBatchResponse - (*CreateRollupRequest)(nil), // 21: generated.CreateRollupRequest - (*CreateRollupResponse)(nil), // 22: generated.CreateRollupResponse - (*ExportCrossChainDataRequest)(nil), // 23: generated.ExportCrossChainDataRequest - (*ExportCrossChainDataResponse)(nil), // 24: generated.ExportCrossChainDataResponse - (*StatusRequest)(nil), // 25: generated.StatusRequest - (*StatusResponse)(nil), // 26: generated.StatusResponse - (*MakeActiveRequest)(nil), // 27: generated.MakeActiveRequest - (*MakeActiveResponse)(nil), // 28: generated.MakeActiveResponse - (*AttestationRequest)(nil), // 29: generated.AttestationRequest - (*AttestationResponse)(nil), // 30: generated.AttestationResponse - (*GenerateSecretRequest)(nil), // 31: generated.GenerateSecretRequest - (*GenerateSecretResponse)(nil), // 32: generated.GenerateSecretResponse - (*InitEnclaveRequest)(nil), // 33: generated.InitEnclaveRequest - (*InitEnclaveResponse)(nil), // 34: generated.InitEnclaveResponse - (*EnclaveIDRequest)(nil), // 35: generated.EnclaveIDRequest - (*EnclaveIDResponse)(nil), // 36: generated.EnclaveIDResponse - (*RPCEncryptionKeyRequest)(nil), // 37: generated.RPCEncryptionKeyRequest - (*RPCEncryptionKeyResponse)(nil), // 38: generated.RPCEncryptionKeyResponse - (*StartRequest)(nil), // 39: generated.StartRequest - (*StartResponse)(nil), // 40: generated.StartResponse - (*SubmitBlockRequest)(nil), // 41: generated.SubmitBlockRequest - (*SubmitBlockResponse)(nil), // 42: generated.SubmitBlockResponse - (*EncCallRequest)(nil), // 43: generated.EncCallRequest - (*EncCallResponse)(nil), // 44: generated.EncCallResponse - (*SubmitBatchRequest)(nil), // 45: generated.SubmitBatchRequest - (*SubmitBatchResponse)(nil), // 46: generated.SubmitBatchResponse - (*StopRequest)(nil), // 47: generated.StopRequest - (*StopResponse)(nil), // 48: generated.StopResponse - (*GetCodeRequest)(nil), // 49: generated.GetCodeRequest - (*GetCodeResponse)(nil), // 50: generated.GetCodeResponse - (*SubscribeRequest)(nil), // 51: generated.SubscribeRequest - (*SubscribeResponse)(nil), // 52: generated.SubscribeResponse - (*UnsubscribeRequest)(nil), // 53: generated.UnsubscribeRequest - (*UnsubscribeResponse)(nil), // 54: generated.UnsubscribeResponse - (*HealthCheckResponse)(nil), // 55: generated.HealthCheckResponse - (*EmptyArgs)(nil), // 56: generated.EmptyArgs - (*AttestationReportMsg)(nil), // 57: generated.AttestationReportMsg - (*ExtRollupMetadataResponseMsg)(nil), // 58: generated.ExtRollupMetadataResponseMsg - (*BlockSubmissionResponseMsg)(nil), // 59: generated.BlockSubmissionResponseMsg - (*BlockSubmissionErrorMsg)(nil), // 60: generated.BlockSubmissionErrorMsg - (*CrossChainMsg)(nil), // 61: generated.CrossChainMsg - (*ExtBatchMsg)(nil), // 62: generated.ExtBatchMsg - (*BatchHeaderMsg)(nil), // 63: generated.BatchHeaderMsg - (*ExtRollupMsg)(nil), // 64: generated.ExtRollupMsg - (*RollupHeaderMsg)(nil), // 65: generated.RollupHeaderMsg - (*SecretResponseMsg)(nil), // 66: generated.SecretResponseMsg - (*WithdrawalMsg)(nil), // 67: generated.WithdrawalMsg - (*BlobMsg)(nil), // 68: generated.BlobMsg - (*BackupSharedSecretRequest)(nil), // 69: generated.BackupSharedSecretRequest - (*BackupSharedSecretResponse)(nil), // 70: generated.BackupSharedSecretResponse - nil, // 71: generated.EnclavePublicConfigResponse.PublicSystemContractsEntry + (*ContractsSinceRequest)(nil), // 3: generated.ContractsSinceRequest + (*ContractCreationDataMsg)(nil), // 4: generated.ContractCreationDataMsg + (*ContractsSinceResponse)(nil), // 5: generated.ContractsSinceResponse + (*PublicAttestationReportMsg)(nil), // 6: generated.PublicAttestationReportMsg + (*SequencerAttestationResponse)(nil), // 7: generated.SequencerAttestationResponse + (*GetBatchRequest)(nil), // 8: generated.GetBatchRequest + (*GetBatchBySeqNoRequest)(nil), // 9: generated.GetBatchBySeqNoRequest + (*GetBatchResponse)(nil), // 10: generated.GetBatchResponse + (*GetRollupDataRequest)(nil), // 11: generated.GetRollupDataRequest + (*GetRollupDataResponse)(nil), // 12: generated.GetRollupDataResponse + (*PublicRollupDataMsg)(nil), // 13: generated.PublicRollupDataMsg + (*StreamL2UpdatesRequest)(nil), // 14: generated.StreamL2UpdatesRequest + (*EncodedUpdateResponse)(nil), // 15: generated.EncodedUpdateResponse + (*Pagination)(nil), // 16: generated.Pagination + (*SystemError)(nil), // 17: generated.SystemError + (*GetTotalContractCountRequest)(nil), // 18: generated.GetTotalContractCountRequest + (*GetTotalContractCountResponse)(nil), // 19: generated.GetTotalContractCountResponse + (*DebugTraceTransactionRequest)(nil), // 20: generated.DebugTraceTransactionRequest + (*DebugTraceTransactionResponse)(nil), // 21: generated.DebugTraceTransactionResponse + (*CreateBatchRequest)(nil), // 22: generated.CreateBatchRequest + (*CreateBatchResponse)(nil), // 23: generated.CreateBatchResponse + (*CreateRollupRequest)(nil), // 24: generated.CreateRollupRequest + (*CreateRollupResponse)(nil), // 25: generated.CreateRollupResponse + (*ExportCrossChainDataRequest)(nil), // 26: generated.ExportCrossChainDataRequest + (*ExportCrossChainDataResponse)(nil), // 27: generated.ExportCrossChainDataResponse + (*StatusRequest)(nil), // 28: generated.StatusRequest + (*StatusResponse)(nil), // 29: generated.StatusResponse + (*MakeActiveRequest)(nil), // 30: generated.MakeActiveRequest + (*MakeActiveResponse)(nil), // 31: generated.MakeActiveResponse + (*AttestationRequest)(nil), // 32: generated.AttestationRequest + (*AttestationResponse)(nil), // 33: generated.AttestationResponse + (*GenerateSecretRequest)(nil), // 34: generated.GenerateSecretRequest + (*GenerateSecretResponse)(nil), // 35: generated.GenerateSecretResponse + (*InitEnclaveRequest)(nil), // 36: generated.InitEnclaveRequest + (*InitEnclaveResponse)(nil), // 37: generated.InitEnclaveResponse + (*EnclaveIDRequest)(nil), // 38: generated.EnclaveIDRequest + (*EnclaveIDResponse)(nil), // 39: generated.EnclaveIDResponse + (*RPCEncryptionKeyRequest)(nil), // 40: generated.RPCEncryptionKeyRequest + (*RPCEncryptionKeyResponse)(nil), // 41: generated.RPCEncryptionKeyResponse + (*StartRequest)(nil), // 42: generated.StartRequest + (*StartResponse)(nil), // 43: generated.StartResponse + (*SubmitBlockRequest)(nil), // 44: generated.SubmitBlockRequest + (*SubmitBlockResponse)(nil), // 45: generated.SubmitBlockResponse + (*EncCallRequest)(nil), // 46: generated.EncCallRequest + (*EncCallResponse)(nil), // 47: generated.EncCallResponse + (*SubmitBatchRequest)(nil), // 48: generated.SubmitBatchRequest + (*SubmitBatchResponse)(nil), // 49: generated.SubmitBatchResponse + (*StopRequest)(nil), // 50: generated.StopRequest + (*StopResponse)(nil), // 51: generated.StopResponse + (*GetCodeRequest)(nil), // 52: generated.GetCodeRequest + (*GetCodeResponse)(nil), // 53: generated.GetCodeResponse + (*SubscribeRequest)(nil), // 54: generated.SubscribeRequest + (*SubscribeResponse)(nil), // 55: generated.SubscribeResponse + (*UnsubscribeRequest)(nil), // 56: generated.UnsubscribeRequest + (*UnsubscribeResponse)(nil), // 57: generated.UnsubscribeResponse + (*HealthCheckResponse)(nil), // 58: generated.HealthCheckResponse + (*EmptyArgs)(nil), // 59: generated.EmptyArgs + (*AttestationReportMsg)(nil), // 60: generated.AttestationReportMsg + (*ExtRollupMetadataResponseMsg)(nil), // 61: generated.ExtRollupMetadataResponseMsg + (*BlockSubmissionResponseMsg)(nil), // 62: generated.BlockSubmissionResponseMsg + (*BlockSubmissionErrorMsg)(nil), // 63: generated.BlockSubmissionErrorMsg + (*CrossChainMsg)(nil), // 64: generated.CrossChainMsg + (*ExtBatchMsg)(nil), // 65: generated.ExtBatchMsg + (*BatchHeaderMsg)(nil), // 66: generated.BatchHeaderMsg + (*ExtRollupMsg)(nil), // 67: generated.ExtRollupMsg + (*RollupHeaderMsg)(nil), // 68: generated.RollupHeaderMsg + (*SecretResponseMsg)(nil), // 69: generated.SecretResponseMsg + (*WithdrawalMsg)(nil), // 70: generated.WithdrawalMsg + (*BlobMsg)(nil), // 71: generated.BlobMsg + (*BackupSharedSecretRequest)(nil), // 72: generated.BackupSharedSecretRequest + (*BackupSharedSecretResponse)(nil), // 73: generated.BackupSharedSecretResponse + nil, // 74: generated.EnclavePublicConfigResponse.PublicSystemContractsEntry } var file_enclave_proto_depIdxs = []int32{ - 71, // 0: generated.EnclavePublicConfigResponse.publicSystemContracts:type_name -> generated.EnclavePublicConfigResponse.PublicSystemContractsEntry - 14, // 1: generated.EnclavePublicConfigResponse.systemError:type_name -> generated.SystemError - 3, // 2: generated.SequencerAttestationResponse.reports:type_name -> generated.PublicAttestationReportMsg - 14, // 3: generated.SequencerAttestationResponse.systemError:type_name -> generated.SystemError - 14, // 4: generated.GetBatchResponse.systemError:type_name -> generated.SystemError - 10, // 5: generated.GetRollupDataResponse.msg:type_name -> generated.PublicRollupDataMsg - 14, // 6: generated.GetRollupDataResponse.systemError:type_name -> generated.SystemError - 14, // 7: generated.GetTotalContractCountResponse.systemError:type_name -> generated.SystemError - 14, // 8: generated.DebugTraceTransactionResponse.systemError:type_name -> generated.SystemError - 68, // 9: generated.CreateRollupResponse.blobs:type_name -> generated.BlobMsg - 14, // 10: generated.CreateRollupResponse.systemError:type_name -> generated.SystemError - 14, // 11: generated.StatusResponse.systemError:type_name -> generated.SystemError - 14, // 12: generated.MakeActiveResponse.systemError:type_name -> generated.SystemError - 57, // 13: generated.AttestationResponse.attestationReportMsg:type_name -> generated.AttestationReportMsg - 14, // 14: generated.AttestationResponse.systemError:type_name -> generated.SystemError - 14, // 15: generated.GenerateSecretResponse.systemError:type_name -> generated.SystemError - 14, // 16: generated.InitEnclaveResponse.systemError:type_name -> generated.SystemError - 14, // 17: generated.EnclaveIDResponse.systemError:type_name -> generated.SystemError - 14, // 18: generated.RPCEncryptionKeyResponse.systemError:type_name -> generated.SystemError - 14, // 19: generated.StartResponse.systemError:type_name -> generated.SystemError - 59, // 20: generated.SubmitBlockResponse.blockSubmissionResponse:type_name -> generated.BlockSubmissionResponseMsg - 14, // 21: generated.SubmitBlockResponse.systemError:type_name -> generated.SystemError - 14, // 22: generated.EncCallResponse.systemError:type_name -> generated.SystemError - 62, // 23: generated.SubmitBatchRequest.batch:type_name -> generated.ExtBatchMsg - 14, // 24: generated.SubmitBatchResponse.systemError:type_name -> generated.SystemError - 14, // 25: generated.StopResponse.systemError:type_name -> generated.SystemError - 14, // 26: generated.GetCodeResponse.systemError:type_name -> generated.SystemError - 14, // 27: generated.SubscribeResponse.systemError:type_name -> generated.SystemError - 14, // 28: generated.UnsubscribeResponse.systemError:type_name -> generated.SystemError - 14, // 29: generated.HealthCheckResponse.systemError:type_name -> generated.SystemError - 14, // 30: generated.AttestationReportMsg.systemError:type_name -> generated.SystemError - 66, // 31: generated.BlockSubmissionResponseMsg.producedSecretResponses:type_name -> generated.SecretResponseMsg - 60, // 32: generated.BlockSubmissionResponseMsg.error:type_name -> generated.BlockSubmissionErrorMsg - 58, // 33: generated.BlockSubmissionResponseMsg.rollupMetadata:type_name -> generated.ExtRollupMetadataResponseMsg - 63, // 34: generated.ExtBatchMsg.header:type_name -> generated.BatchHeaderMsg - 65, // 35: generated.ExtRollupMsg.header:type_name -> generated.RollupHeaderMsg - 14, // 36: generated.SecretResponseMsg.systemError:type_name -> generated.SystemError - 14, // 37: generated.BackupSharedSecretResponse.systemError:type_name -> generated.SystemError - 25, // 38: generated.EnclaveProto.Status:input_type -> generated.StatusRequest - 29, // 39: generated.EnclaveProto.Attestation:input_type -> generated.AttestationRequest - 31, // 40: generated.EnclaveProto.GenerateSecret:input_type -> generated.GenerateSecretRequest - 33, // 41: generated.EnclaveProto.InitEnclave:input_type -> generated.InitEnclaveRequest - 35, // 42: generated.EnclaveProto.EnclaveID:input_type -> generated.EnclaveIDRequest - 37, // 43: generated.EnclaveProto.RPCEncryptionKey:input_type -> generated.RPCEncryptionKeyRequest - 41, // 44: generated.EnclaveProto.SubmitL1Block:input_type -> generated.SubmitBlockRequest - 43, // 45: generated.EnclaveProto.EncryptedRPC:input_type -> generated.EncCallRequest - 45, // 46: generated.EnclaveProto.SubmitBatch:input_type -> generated.SubmitBatchRequest - 47, // 47: generated.EnclaveProto.Stop:input_type -> generated.StopRequest - 49, // 48: generated.EnclaveProto.GetCode:input_type -> generated.GetCodeRequest - 51, // 49: generated.EnclaveProto.Subscribe:input_type -> generated.SubscribeRequest - 53, // 50: generated.EnclaveProto.Unsubscribe:input_type -> generated.UnsubscribeRequest - 56, // 51: generated.EnclaveProto.HealthCheck:input_type -> generated.EmptyArgs - 5, // 52: generated.EnclaveProto.GetBatch:input_type -> generated.GetBatchRequest - 6, // 53: generated.EnclaveProto.GetBatchBySeqNo:input_type -> generated.GetBatchBySeqNoRequest - 8, // 54: generated.EnclaveProto.GetRollupData:input_type -> generated.GetRollupDataRequest - 19, // 55: generated.EnclaveProto.CreateBatch:input_type -> generated.CreateBatchRequest - 21, // 56: generated.EnclaveProto.CreateRollup:input_type -> generated.CreateRollupRequest - 23, // 57: generated.EnclaveProto.ExportCrossChainData:input_type -> generated.ExportCrossChainDataRequest - 17, // 58: generated.EnclaveProto.DebugTraceTransaction:input_type -> generated.DebugTraceTransactionRequest - 11, // 59: generated.EnclaveProto.StreamL2Updates:input_type -> generated.StreamL2UpdatesRequest - 15, // 60: generated.EnclaveProto.GetTotalContractCount:input_type -> generated.GetTotalContractCountRequest - 0, // 61: generated.EnclaveProto.EnclavePublicConfig:input_type -> generated.EnclavePublicConfigRequest - 27, // 62: generated.EnclaveProto.MakeActive:input_type -> generated.MakeActiveRequest - 2, // 63: generated.EnclaveProto.FetchSequencerAttestations:input_type -> generated.SequencerAttestationRequest - 69, // 64: generated.EnclaveProto.BackupSharedSecret:input_type -> generated.BackupSharedSecretRequest - 26, // 65: generated.EnclaveProto.Status:output_type -> generated.StatusResponse - 30, // 66: generated.EnclaveProto.Attestation:output_type -> generated.AttestationResponse - 32, // 67: generated.EnclaveProto.GenerateSecret:output_type -> generated.GenerateSecretResponse - 34, // 68: generated.EnclaveProto.InitEnclave:output_type -> generated.InitEnclaveResponse - 36, // 69: generated.EnclaveProto.EnclaveID:output_type -> generated.EnclaveIDResponse - 38, // 70: generated.EnclaveProto.RPCEncryptionKey:output_type -> generated.RPCEncryptionKeyResponse - 42, // 71: generated.EnclaveProto.SubmitL1Block:output_type -> generated.SubmitBlockResponse - 44, // 72: generated.EnclaveProto.EncryptedRPC:output_type -> generated.EncCallResponse - 46, // 73: generated.EnclaveProto.SubmitBatch:output_type -> generated.SubmitBatchResponse - 48, // 74: generated.EnclaveProto.Stop:output_type -> generated.StopResponse - 50, // 75: generated.EnclaveProto.GetCode:output_type -> generated.GetCodeResponse - 52, // 76: generated.EnclaveProto.Subscribe:output_type -> generated.SubscribeResponse - 54, // 77: generated.EnclaveProto.Unsubscribe:output_type -> generated.UnsubscribeResponse - 55, // 78: generated.EnclaveProto.HealthCheck:output_type -> generated.HealthCheckResponse - 7, // 79: generated.EnclaveProto.GetBatch:output_type -> generated.GetBatchResponse - 7, // 80: generated.EnclaveProto.GetBatchBySeqNo:output_type -> generated.GetBatchResponse - 9, // 81: generated.EnclaveProto.GetRollupData:output_type -> generated.GetRollupDataResponse - 20, // 82: generated.EnclaveProto.CreateBatch:output_type -> generated.CreateBatchResponse - 22, // 83: generated.EnclaveProto.CreateRollup:output_type -> generated.CreateRollupResponse - 24, // 84: generated.EnclaveProto.ExportCrossChainData:output_type -> generated.ExportCrossChainDataResponse - 18, // 85: generated.EnclaveProto.DebugTraceTransaction:output_type -> generated.DebugTraceTransactionResponse - 12, // 86: generated.EnclaveProto.StreamL2Updates:output_type -> generated.EncodedUpdateResponse - 16, // 87: generated.EnclaveProto.GetTotalContractCount:output_type -> generated.GetTotalContractCountResponse - 1, // 88: generated.EnclaveProto.EnclavePublicConfig:output_type -> generated.EnclavePublicConfigResponse - 28, // 89: generated.EnclaveProto.MakeActive:output_type -> generated.MakeActiveResponse - 4, // 90: generated.EnclaveProto.FetchSequencerAttestations:output_type -> generated.SequencerAttestationResponse - 70, // 91: generated.EnclaveProto.BackupSharedSecret:output_type -> generated.BackupSharedSecretResponse - 65, // [65:92] is the sub-list for method output_type - 38, // [38:65] is the sub-list for method input_type - 38, // [38:38] is the sub-list for extension type_name - 38, // [38:38] is the sub-list for extension extendee - 0, // [0:38] is the sub-list for field type_name + 74, // 0: generated.EnclavePublicConfigResponse.publicSystemContracts:type_name -> generated.EnclavePublicConfigResponse.PublicSystemContractsEntry + 17, // 1: generated.EnclavePublicConfigResponse.systemError:type_name -> generated.SystemError + 4, // 2: generated.ContractsSinceResponse.contracts:type_name -> generated.ContractCreationDataMsg + 17, // 3: generated.ContractsSinceResponse.systemError:type_name -> generated.SystemError + 6, // 4: generated.SequencerAttestationResponse.reports:type_name -> generated.PublicAttestationReportMsg + 17, // 5: generated.SequencerAttestationResponse.systemError:type_name -> generated.SystemError + 17, // 6: generated.GetBatchResponse.systemError:type_name -> generated.SystemError + 13, // 7: generated.GetRollupDataResponse.msg:type_name -> generated.PublicRollupDataMsg + 17, // 8: generated.GetRollupDataResponse.systemError:type_name -> generated.SystemError + 17, // 9: generated.GetTotalContractCountResponse.systemError:type_name -> generated.SystemError + 17, // 10: generated.DebugTraceTransactionResponse.systemError:type_name -> generated.SystemError + 71, // 11: generated.CreateRollupResponse.blobs:type_name -> generated.BlobMsg + 17, // 12: generated.CreateRollupResponse.systemError:type_name -> generated.SystemError + 17, // 13: generated.StatusResponse.systemError:type_name -> generated.SystemError + 17, // 14: generated.MakeActiveResponse.systemError:type_name -> generated.SystemError + 60, // 15: generated.AttestationResponse.attestationReportMsg:type_name -> generated.AttestationReportMsg + 17, // 16: generated.AttestationResponse.systemError:type_name -> generated.SystemError + 17, // 17: generated.GenerateSecretResponse.systemError:type_name -> generated.SystemError + 17, // 18: generated.InitEnclaveResponse.systemError:type_name -> generated.SystemError + 17, // 19: generated.EnclaveIDResponse.systemError:type_name -> generated.SystemError + 17, // 20: generated.RPCEncryptionKeyResponse.systemError:type_name -> generated.SystemError + 17, // 21: generated.StartResponse.systemError:type_name -> generated.SystemError + 62, // 22: generated.SubmitBlockResponse.blockSubmissionResponse:type_name -> generated.BlockSubmissionResponseMsg + 17, // 23: generated.SubmitBlockResponse.systemError:type_name -> generated.SystemError + 17, // 24: generated.EncCallResponse.systemError:type_name -> generated.SystemError + 65, // 25: generated.SubmitBatchRequest.batch:type_name -> generated.ExtBatchMsg + 17, // 26: generated.SubmitBatchResponse.systemError:type_name -> generated.SystemError + 17, // 27: generated.StopResponse.systemError:type_name -> generated.SystemError + 17, // 28: generated.GetCodeResponse.systemError:type_name -> generated.SystemError + 17, // 29: generated.SubscribeResponse.systemError:type_name -> generated.SystemError + 17, // 30: generated.UnsubscribeResponse.systemError:type_name -> generated.SystemError + 17, // 31: generated.HealthCheckResponse.systemError:type_name -> generated.SystemError + 17, // 32: generated.AttestationReportMsg.systemError:type_name -> generated.SystemError + 69, // 33: generated.BlockSubmissionResponseMsg.producedSecretResponses:type_name -> generated.SecretResponseMsg + 63, // 34: generated.BlockSubmissionResponseMsg.error:type_name -> generated.BlockSubmissionErrorMsg + 61, // 35: generated.BlockSubmissionResponseMsg.rollupMetadata:type_name -> generated.ExtRollupMetadataResponseMsg + 66, // 36: generated.ExtBatchMsg.header:type_name -> generated.BatchHeaderMsg + 68, // 37: generated.ExtRollupMsg.header:type_name -> generated.RollupHeaderMsg + 17, // 38: generated.SecretResponseMsg.systemError:type_name -> generated.SystemError + 17, // 39: generated.BackupSharedSecretResponse.systemError:type_name -> generated.SystemError + 28, // 40: generated.EnclaveProto.Status:input_type -> generated.StatusRequest + 32, // 41: generated.EnclaveProto.Attestation:input_type -> generated.AttestationRequest + 34, // 42: generated.EnclaveProto.GenerateSecret:input_type -> generated.GenerateSecretRequest + 36, // 43: generated.EnclaveProto.InitEnclave:input_type -> generated.InitEnclaveRequest + 38, // 44: generated.EnclaveProto.EnclaveID:input_type -> generated.EnclaveIDRequest + 40, // 45: generated.EnclaveProto.RPCEncryptionKey:input_type -> generated.RPCEncryptionKeyRequest + 44, // 46: generated.EnclaveProto.SubmitL1Block:input_type -> generated.SubmitBlockRequest + 46, // 47: generated.EnclaveProto.EncryptedRPC:input_type -> generated.EncCallRequest + 48, // 48: generated.EnclaveProto.SubmitBatch:input_type -> generated.SubmitBatchRequest + 50, // 49: generated.EnclaveProto.Stop:input_type -> generated.StopRequest + 52, // 50: generated.EnclaveProto.GetCode:input_type -> generated.GetCodeRequest + 54, // 51: generated.EnclaveProto.Subscribe:input_type -> generated.SubscribeRequest + 56, // 52: generated.EnclaveProto.Unsubscribe:input_type -> generated.UnsubscribeRequest + 59, // 53: generated.EnclaveProto.HealthCheck:input_type -> generated.EmptyArgs + 8, // 54: generated.EnclaveProto.GetBatch:input_type -> generated.GetBatchRequest + 9, // 55: generated.EnclaveProto.GetBatchBySeqNo:input_type -> generated.GetBatchBySeqNoRequest + 11, // 56: generated.EnclaveProto.GetRollupData:input_type -> generated.GetRollupDataRequest + 22, // 57: generated.EnclaveProto.CreateBatch:input_type -> generated.CreateBatchRequest + 24, // 58: generated.EnclaveProto.CreateRollup:input_type -> generated.CreateRollupRequest + 26, // 59: generated.EnclaveProto.ExportCrossChainData:input_type -> generated.ExportCrossChainDataRequest + 20, // 60: generated.EnclaveProto.DebugTraceTransaction:input_type -> generated.DebugTraceTransactionRequest + 14, // 61: generated.EnclaveProto.StreamL2Updates:input_type -> generated.StreamL2UpdatesRequest + 18, // 62: generated.EnclaveProto.GetTotalContractCount:input_type -> generated.GetTotalContractCountRequest + 0, // 63: generated.EnclaveProto.EnclavePublicConfig:input_type -> generated.EnclavePublicConfigRequest + 30, // 64: generated.EnclaveProto.MakeActive:input_type -> generated.MakeActiveRequest + 2, // 65: generated.EnclaveProto.FetchSequencerAttestations:input_type -> generated.SequencerAttestationRequest + 3, // 66: generated.EnclaveProto.GetContracts:input_type -> generated.ContractsSinceRequest + 72, // 67: generated.EnclaveProto.BackupSharedSecret:input_type -> generated.BackupSharedSecretRequest + 29, // 68: generated.EnclaveProto.Status:output_type -> generated.StatusResponse + 33, // 69: generated.EnclaveProto.Attestation:output_type -> generated.AttestationResponse + 35, // 70: generated.EnclaveProto.GenerateSecret:output_type -> generated.GenerateSecretResponse + 37, // 71: generated.EnclaveProto.InitEnclave:output_type -> generated.InitEnclaveResponse + 39, // 72: generated.EnclaveProto.EnclaveID:output_type -> generated.EnclaveIDResponse + 41, // 73: generated.EnclaveProto.RPCEncryptionKey:output_type -> generated.RPCEncryptionKeyResponse + 45, // 74: generated.EnclaveProto.SubmitL1Block:output_type -> generated.SubmitBlockResponse + 47, // 75: generated.EnclaveProto.EncryptedRPC:output_type -> generated.EncCallResponse + 49, // 76: generated.EnclaveProto.SubmitBatch:output_type -> generated.SubmitBatchResponse + 51, // 77: generated.EnclaveProto.Stop:output_type -> generated.StopResponse + 53, // 78: generated.EnclaveProto.GetCode:output_type -> generated.GetCodeResponse + 55, // 79: generated.EnclaveProto.Subscribe:output_type -> generated.SubscribeResponse + 57, // 80: generated.EnclaveProto.Unsubscribe:output_type -> generated.UnsubscribeResponse + 58, // 81: generated.EnclaveProto.HealthCheck:output_type -> generated.HealthCheckResponse + 10, // 82: generated.EnclaveProto.GetBatch:output_type -> generated.GetBatchResponse + 10, // 83: generated.EnclaveProto.GetBatchBySeqNo:output_type -> generated.GetBatchResponse + 12, // 84: generated.EnclaveProto.GetRollupData:output_type -> generated.GetRollupDataResponse + 23, // 85: generated.EnclaveProto.CreateBatch:output_type -> generated.CreateBatchResponse + 25, // 86: generated.EnclaveProto.CreateRollup:output_type -> generated.CreateRollupResponse + 27, // 87: generated.EnclaveProto.ExportCrossChainData:output_type -> generated.ExportCrossChainDataResponse + 21, // 88: generated.EnclaveProto.DebugTraceTransaction:output_type -> generated.DebugTraceTransactionResponse + 15, // 89: generated.EnclaveProto.StreamL2Updates:output_type -> generated.EncodedUpdateResponse + 19, // 90: generated.EnclaveProto.GetTotalContractCount:output_type -> generated.GetTotalContractCountResponse + 1, // 91: generated.EnclaveProto.EnclavePublicConfig:output_type -> generated.EnclavePublicConfigResponse + 31, // 92: generated.EnclaveProto.MakeActive:output_type -> generated.MakeActiveResponse + 7, // 93: generated.EnclaveProto.FetchSequencerAttestations:output_type -> generated.SequencerAttestationResponse + 5, // 94: generated.EnclaveProto.GetContracts:output_type -> generated.ContractsSinceResponse + 73, // 95: generated.EnclaveProto.BackupSharedSecret:output_type -> generated.BackupSharedSecretResponse + 68, // [68:96] is the sub-list for method output_type + 40, // [40:68] is the sub-list for method input_type + 40, // [40:40] is the sub-list for extension type_name + 40, // [40:40] is the sub-list for extension extendee + 0, // [0:40] is the sub-list for field type_name } func init() { file_enclave_proto_init() } @@ -4718,868 +4398,15 @@ func file_enclave_proto_init() { if File_enclave_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_enclave_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*EnclavePublicConfigRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*EnclavePublicConfigResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*SequencerAttestationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*PublicAttestationReportMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*SequencerAttestationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*GetBatchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*GetBatchBySeqNoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*GetBatchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*GetRollupDataRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*GetRollupDataResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*PublicRollupDataMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*StreamL2UpdatesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*EncodedUpdateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*Pagination); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*SystemError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*GetTotalContractCountRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*GetTotalContractCountResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*DebugTraceTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*DebugTraceTransactionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*CreateBatchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*CreateBatchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*CreateRollupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*CreateRollupResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*ExportCrossChainDataRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*ExportCrossChainDataResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*StatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*StatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*MakeActiveRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*MakeActiveResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*AttestationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*AttestationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*GenerateSecretRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*GenerateSecretResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*InitEnclaveRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*InitEnclaveResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*EnclaveIDRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*EnclaveIDResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*RPCEncryptionKeyRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*RPCEncryptionKeyResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*StartRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*StartResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*SubmitBlockRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*SubmitBlockResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*EncCallRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*EncCallResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*SubmitBatchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*SubmitBatchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*StopRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*StopResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*GetCodeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*GetCodeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*SubscribeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*SubscribeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*UnsubscribeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*UnsubscribeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[55].Exporter = func(v any, i int) any { - switch v := v.(*HealthCheckResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[56].Exporter = func(v any, i int) any { - switch v := v.(*EmptyArgs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[57].Exporter = func(v any, i int) any { - switch v := v.(*AttestationReportMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[58].Exporter = func(v any, i int) any { - switch v := v.(*ExtRollupMetadataResponseMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[59].Exporter = func(v any, i int) any { - switch v := v.(*BlockSubmissionResponseMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[60].Exporter = func(v any, i int) any { - switch v := v.(*BlockSubmissionErrorMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[61].Exporter = func(v any, i int) any { - switch v := v.(*CrossChainMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[62].Exporter = func(v any, i int) any { - switch v := v.(*ExtBatchMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[63].Exporter = func(v any, i int) any { - switch v := v.(*BatchHeaderMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[64].Exporter = func(v any, i int) any { - switch v := v.(*ExtRollupMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[65].Exporter = func(v any, i int) any { - switch v := v.(*RollupHeaderMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[66].Exporter = func(v any, i int) any { - switch v := v.(*SecretResponseMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[67].Exporter = func(v any, i int) any { - switch v := v.(*WithdrawalMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[68].Exporter = func(v any, i int) any { - switch v := v.(*BlobMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[69].Exporter = func(v any, i int) any { - switch v := v.(*BackupSharedSecretRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_enclave_proto_msgTypes[70].Exporter = func(v any, i int) any { - switch v := v.(*BackupSharedSecretResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_enclave_proto_msgTypes[21].OneofWrappers = []any{} + file_enclave_proto_msgTypes[4].OneofWrappers = []any{} + file_enclave_proto_msgTypes[24].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_enclave_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_enclave_proto_rawDesc), len(file_enclave_proto_rawDesc)), NumEnums: 0, - NumMessages: 72, + NumMessages: 75, NumExtensions: 0, NumServices: 1, }, @@ -5588,7 +4415,6 @@ func file_enclave_proto_init() { MessageInfos: file_enclave_proto_msgTypes, }.Build() File_enclave_proto = out.File - file_enclave_proto_rawDesc = nil file_enclave_proto_goTypes = nil file_enclave_proto_depIdxs = nil } diff --git a/go/common/rpc/generated/enclave.proto b/go/common/rpc/generated/enclave.proto index fcbf67144a..39f566a7f1 100644 --- a/go/common/rpc/generated/enclave.proto +++ b/go/common/rpc/generated/enclave.proto @@ -31,6 +31,7 @@ service EnclaveProto { rpc EnclavePublicConfig(EnclavePublicConfigRequest) returns (EnclavePublicConfigResponse) {} rpc MakeActive(MakeActiveRequest) returns (MakeActiveResponse) {} rpc FetchSequencerAttestations(SequencerAttestationRequest) returns (SequencerAttestationResponse) {} + rpc GetContracts(ContractsSinceRequest) returns (ContractsSinceResponse) {} rpc BackupSharedSecret(BackupSharedSecretRequest) returns (BackupSharedSecretResponse) {} } @@ -46,6 +47,27 @@ message EnclavePublicConfigResponse{ message SequencerAttestationRequest {} +message ContractsSinceRequest { + uint64 fromContractID = 1; + int32 limit = 2; +} + +message ContractCreationDataMsg { + uint64 id = 1; + bytes address = 2; + bytes creator = 3; + bool autoVisibility = 4; + optional bool transparent = 5; + uint64 batchSeq = 6; + uint64 batchHeight = 7; + uint64 batchTimestamp = 8; +} + +message ContractsSinceResponse { + repeated ContractCreationDataMsg contracts = 1; + SystemError systemError = 2; +} + message PublicAttestationReportMsg { bytes enclaveID = 1; bytes publicKey = 2; diff --git a/go/common/rpc/generated/enclave_grpc.pb.go b/go/common/rpc/generated/enclave_grpc.pb.go index 00c4d41557..8fca81ce62 100644 --- a/go/common/rpc/generated/enclave_grpc.pb.go +++ b/go/common/rpc/generated/enclave_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v5.28.3 +// - protoc-gen-go-grpc v1.6.0 +// - protoc v6.33.4 // source: enclave.proto package generated @@ -45,6 +45,7 @@ const ( EnclaveProto_EnclavePublicConfig_FullMethodName = "/generated.EnclaveProto/EnclavePublicConfig" EnclaveProto_MakeActive_FullMethodName = "/generated.EnclaveProto/MakeActive" EnclaveProto_FetchSequencerAttestations_FullMethodName = "/generated.EnclaveProto/FetchSequencerAttestations" + EnclaveProto_GetContracts_FullMethodName = "/generated.EnclaveProto/GetContracts" EnclaveProto_BackupSharedSecret_FullMethodName = "/generated.EnclaveProto/BackupSharedSecret" ) @@ -78,6 +79,7 @@ type EnclaveProtoClient interface { EnclavePublicConfig(ctx context.Context, in *EnclavePublicConfigRequest, opts ...grpc.CallOption) (*EnclavePublicConfigResponse, error) MakeActive(ctx context.Context, in *MakeActiveRequest, opts ...grpc.CallOption) (*MakeActiveResponse, error) FetchSequencerAttestations(ctx context.Context, in *SequencerAttestationRequest, opts ...grpc.CallOption) (*SequencerAttestationResponse, error) + GetContracts(ctx context.Context, in *ContractsSinceRequest, opts ...grpc.CallOption) (*ContractsSinceResponse, error) BackupSharedSecret(ctx context.Context, in *BackupSharedSecretRequest, opts ...grpc.CallOption) (*BackupSharedSecretResponse, error) } @@ -358,6 +360,16 @@ func (c *enclaveProtoClient) FetchSequencerAttestations(ctx context.Context, in return out, nil } +func (c *enclaveProtoClient) GetContracts(ctx context.Context, in *ContractsSinceRequest, opts ...grpc.CallOption) (*ContractsSinceResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ContractsSinceResponse) + err := c.cc.Invoke(ctx, EnclaveProto_GetContracts_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *enclaveProtoClient) BackupSharedSecret(ctx context.Context, in *BackupSharedSecretRequest, opts ...grpc.CallOption) (*BackupSharedSecretResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(BackupSharedSecretResponse) @@ -398,6 +410,7 @@ type EnclaveProtoServer interface { EnclavePublicConfig(context.Context, *EnclavePublicConfigRequest) (*EnclavePublicConfigResponse, error) MakeActive(context.Context, *MakeActiveRequest) (*MakeActiveResponse, error) FetchSequencerAttestations(context.Context, *SequencerAttestationRequest) (*SequencerAttestationResponse, error) + GetContracts(context.Context, *ContractsSinceRequest) (*ContractsSinceResponse, error) BackupSharedSecret(context.Context, *BackupSharedSecretRequest) (*BackupSharedSecretResponse, error) mustEmbedUnimplementedEnclaveProtoServer() } @@ -410,85 +423,88 @@ type EnclaveProtoServer interface { type UnimplementedEnclaveProtoServer struct{} func (UnimplementedEnclaveProtoServer) Status(context.Context, *StatusRequest) (*StatusResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Status not implemented") + return nil, status.Error(codes.Unimplemented, "method Status not implemented") } func (UnimplementedEnclaveProtoServer) Attestation(context.Context, *AttestationRequest) (*AttestationResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Attestation not implemented") + return nil, status.Error(codes.Unimplemented, "method Attestation not implemented") } func (UnimplementedEnclaveProtoServer) GenerateSecret(context.Context, *GenerateSecretRequest) (*GenerateSecretResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GenerateSecret not implemented") + return nil, status.Error(codes.Unimplemented, "method GenerateSecret not implemented") } func (UnimplementedEnclaveProtoServer) InitEnclave(context.Context, *InitEnclaveRequest) (*InitEnclaveResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method InitEnclave not implemented") + return nil, status.Error(codes.Unimplemented, "method InitEnclave not implemented") } func (UnimplementedEnclaveProtoServer) EnclaveID(context.Context, *EnclaveIDRequest) (*EnclaveIDResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method EnclaveID not implemented") + return nil, status.Error(codes.Unimplemented, "method EnclaveID not implemented") } func (UnimplementedEnclaveProtoServer) RPCEncryptionKey(context.Context, *RPCEncryptionKeyRequest) (*RPCEncryptionKeyResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RPCEncryptionKey not implemented") + return nil, status.Error(codes.Unimplemented, "method RPCEncryptionKey not implemented") } func (UnimplementedEnclaveProtoServer) SubmitL1Block(context.Context, *SubmitBlockRequest) (*SubmitBlockResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubmitL1Block not implemented") + return nil, status.Error(codes.Unimplemented, "method SubmitL1Block not implemented") } func (UnimplementedEnclaveProtoServer) EncryptedRPC(context.Context, *EncCallRequest) (*EncCallResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method EncryptedRPC not implemented") + return nil, status.Error(codes.Unimplemented, "method EncryptedRPC not implemented") } func (UnimplementedEnclaveProtoServer) SubmitBatch(context.Context, *SubmitBatchRequest) (*SubmitBatchResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubmitBatch not implemented") + return nil, status.Error(codes.Unimplemented, "method SubmitBatch not implemented") } func (UnimplementedEnclaveProtoServer) Stop(context.Context, *StopRequest) (*StopResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Stop not implemented") + return nil, status.Error(codes.Unimplemented, "method Stop not implemented") } func (UnimplementedEnclaveProtoServer) GetCode(context.Context, *GetCodeRequest) (*GetCodeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetCode not implemented") + return nil, status.Error(codes.Unimplemented, "method GetCode not implemented") } func (UnimplementedEnclaveProtoServer) Subscribe(context.Context, *SubscribeRequest) (*SubscribeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Subscribe not implemented") + return nil, status.Error(codes.Unimplemented, "method Subscribe not implemented") } func (UnimplementedEnclaveProtoServer) Unsubscribe(context.Context, *UnsubscribeRequest) (*UnsubscribeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Unsubscribe not implemented") + return nil, status.Error(codes.Unimplemented, "method Unsubscribe not implemented") } func (UnimplementedEnclaveProtoServer) HealthCheck(context.Context, *EmptyArgs) (*HealthCheckResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method HealthCheck not implemented") + return nil, status.Error(codes.Unimplemented, "method HealthCheck not implemented") } func (UnimplementedEnclaveProtoServer) GetBatch(context.Context, *GetBatchRequest) (*GetBatchResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBatch not implemented") + return nil, status.Error(codes.Unimplemented, "method GetBatch not implemented") } func (UnimplementedEnclaveProtoServer) GetBatchBySeqNo(context.Context, *GetBatchBySeqNoRequest) (*GetBatchResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBatchBySeqNo not implemented") + return nil, status.Error(codes.Unimplemented, "method GetBatchBySeqNo not implemented") } func (UnimplementedEnclaveProtoServer) GetRollupData(context.Context, *GetRollupDataRequest) (*GetRollupDataResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetRollupData not implemented") + return nil, status.Error(codes.Unimplemented, "method GetRollupData not implemented") } func (UnimplementedEnclaveProtoServer) CreateBatch(context.Context, *CreateBatchRequest) (*CreateBatchResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateBatch not implemented") + return nil, status.Error(codes.Unimplemented, "method CreateBatch not implemented") } func (UnimplementedEnclaveProtoServer) CreateRollup(context.Context, *CreateRollupRequest) (*CreateRollupResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateRollup not implemented") + return nil, status.Error(codes.Unimplemented, "method CreateRollup not implemented") } func (UnimplementedEnclaveProtoServer) ExportCrossChainData(context.Context, *ExportCrossChainDataRequest) (*ExportCrossChainDataResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ExportCrossChainData not implemented") + return nil, status.Error(codes.Unimplemented, "method ExportCrossChainData not implemented") } func (UnimplementedEnclaveProtoServer) DebugTraceTransaction(context.Context, *DebugTraceTransactionRequest) (*DebugTraceTransactionResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DebugTraceTransaction not implemented") + return nil, status.Error(codes.Unimplemented, "method DebugTraceTransaction not implemented") } func (UnimplementedEnclaveProtoServer) StreamL2Updates(*StreamL2UpdatesRequest, grpc.ServerStreamingServer[EncodedUpdateResponse]) error { - return status.Errorf(codes.Unimplemented, "method StreamL2Updates not implemented") + return status.Error(codes.Unimplemented, "method StreamL2Updates not implemented") } func (UnimplementedEnclaveProtoServer) GetTotalContractCount(context.Context, *GetTotalContractCountRequest) (*GetTotalContractCountResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetTotalContractCount not implemented") + return nil, status.Error(codes.Unimplemented, "method GetTotalContractCount not implemented") } func (UnimplementedEnclaveProtoServer) EnclavePublicConfig(context.Context, *EnclavePublicConfigRequest) (*EnclavePublicConfigResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method EnclavePublicConfig not implemented") + return nil, status.Error(codes.Unimplemented, "method EnclavePublicConfig not implemented") } func (UnimplementedEnclaveProtoServer) MakeActive(context.Context, *MakeActiveRequest) (*MakeActiveResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MakeActive not implemented") + return nil, status.Error(codes.Unimplemented, "method MakeActive not implemented") } func (UnimplementedEnclaveProtoServer) FetchSequencerAttestations(context.Context, *SequencerAttestationRequest) (*SequencerAttestationResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FetchSequencerAttestations not implemented") + return nil, status.Error(codes.Unimplemented, "method FetchSequencerAttestations not implemented") +} +func (UnimplementedEnclaveProtoServer) GetContracts(context.Context, *ContractsSinceRequest) (*ContractsSinceResponse, error) { + return nil, status.Error(codes.Unimplemented, "method GetContracts not implemented") } func (UnimplementedEnclaveProtoServer) BackupSharedSecret(context.Context, *BackupSharedSecretRequest) (*BackupSharedSecretResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method BackupSharedSecret not implemented") + return nil, status.Error(codes.Unimplemented, "method BackupSharedSecret not implemented") } func (UnimplementedEnclaveProtoServer) mustEmbedUnimplementedEnclaveProtoServer() {} func (UnimplementedEnclaveProtoServer) testEmbeddedByValue() {} @@ -501,7 +517,7 @@ type UnsafeEnclaveProtoServer interface { } func RegisterEnclaveProtoServer(s grpc.ServiceRegistrar, srv EnclaveProtoServer) { - // If the following call pancis, it indicates UnimplementedEnclaveProtoServer was + // If the following call panics, it indicates UnimplementedEnclaveProtoServer was // embedded by pointer and is nil. This will cause panics if an // unimplemented method is ever invoked, so we test this at initialization // time to prevent it from happening at runtime later due to I/O. @@ -972,6 +988,24 @@ func _EnclaveProto_FetchSequencerAttestations_Handler(srv interface{}, ctx conte return interceptor(ctx, in, info, handler) } +func _EnclaveProto_GetContracts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ContractsSinceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EnclaveProtoServer).GetContracts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EnclaveProto_GetContracts_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EnclaveProtoServer).GetContracts(ctx, req.(*ContractsSinceRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _EnclaveProto_BackupSharedSecret_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(BackupSharedSecretRequest) if err := dec(in); err != nil { @@ -1097,6 +1131,10 @@ var EnclaveProto_ServiceDesc = grpc.ServiceDesc{ MethodName: "FetchSequencerAttestations", Handler: _EnclaveProto_FetchSequencerAttestations_Handler, }, + { + MethodName: "GetContracts", + Handler: _EnclaveProto_GetContracts_Handler, + }, { MethodName: "BackupSharedSecret", Handler: _EnclaveProto_BackupSharedSecret_Handler, diff --git a/go/config/defaults/0-base-config.yaml b/go/config/defaults/0-base-config.yaml index 78391e451a..cfcd5231bb 100644 --- a/go/config/defaults/0-base-config.yaml +++ b/go/config/defaults/0-base-config.yaml @@ -66,6 +66,8 @@ host: enclave: rpcAddresses: [ "127.0.0.1:11000" ] # list of enclave rpc addresses rpcTimeout: 10s + contractSyncInterval: 2s # short for local testing, sepolia/ mainnet would be ~5min + contractFetchLimit: 100 l1: wsURL: ws://localhost:8546 # websocket URL for L1 RPC service beaconURL: eth2network:12600 # websocket URL for L1 beacon service diff --git a/go/config/host.go b/go/config/host.go index 9616f2ec45..465a05d716 100644 --- a/go/config/host.go +++ b/go/config/host.go @@ -83,6 +83,10 @@ type HostEnclave struct { // RPCAddresses is a list of managed enclave RPC addresses. RPCAddresses []string `mapstructure:"rpcAddresses"` RPCTimeout time.Duration `mapstructure:"rpcTimeout"` + // ContractSyncInterval is how often we fetch the contract data from the enclave + ContractSyncInterval time.Duration `mapstructure:"contractSyncInterval"` + // ContractFetchLimit the maximum number of contracts that can be fetched at once + ContractFetchLimit uint `mapstructure:"contractFetchLimit"` } // HostDebug contains the configuration for the host's debug settings. diff --git a/go/enclave/enclave.go b/go/enclave/enclave.go index 148babf4e1..4de638a28c 100644 --- a/go/enclave/enclave.go +++ b/go/enclave/enclave.go @@ -226,6 +226,13 @@ func (e *enclaveImpl) GetTotalContractCount(ctx context.Context) (*big.Int, comm return e.rpcAPI.GetTotalContractCount(ctx) } +func (e *enclaveImpl) GetContracts(ctx context.Context, fromContractID uint64, limit uint) ([]common.EnclaveContractData, common.SystemError) { + if systemError := checkStopping(e.stopControl); systemError != nil { + return nil, systemError + } + return e.rpcAPI.GetContracts(ctx, fromContractID, limit) +} + func (e *enclaveImpl) EnclavePublicConfig(ctx context.Context) (*common.EnclavePublicConfig, common.SystemError) { if systemError := checkStopping(e.stopControl); systemError != nil { return nil, systemError diff --git a/go/enclave/enclave_rpc_service.go b/go/enclave/enclave_rpc_service.go index 05bc2563cf..129c3c4029 100644 --- a/go/enclave/enclave_rpc_service.go +++ b/go/enclave/enclave_rpc_service.go @@ -116,6 +116,10 @@ func (e *enclaveRPCService) GetTotalContractCount(ctx context.Context) (*big.Int return e.storage.GetContractCount(ctx) } +func (e *enclaveRPCService) GetContracts(ctx context.Context, fromContractID uint64, limit uint) ([]common.EnclaveContractData, common.SystemError) { + return e.storage.GetContracts(ctx, fromContractID, limit) +} + func (e *enclaveRPCService) EnclavePublicConfig(context.Context) (*common.EnclavePublicConfig, common.SystemError) { if e.crossChainProcessors == nil { e.logger.Error("cross chain processors not initialized") diff --git a/go/enclave/rpc_server.go b/go/enclave/rpc_server.go index ef6e13602e..858ca56aa5 100644 --- a/go/enclave/rpc_server.go +++ b/go/enclave/rpc_server.go @@ -396,6 +396,36 @@ func (s *RPCServer) GetTotalContractCount(ctx context.Context, _ *generated.GetT }, nil } +func (s *RPCServer) GetContracts(ctx context.Context, req *generated.ContractsSinceRequest) (*generated.ContractsSinceResponse, error) { + contracts, sysError := s.enclave.GetContracts(ctx, req.FromContractID, uint(req.Limit)) + if sysError != nil { + s.logger.Error("Error GetContracts", log.ErrKey, sysError) + return &generated.ContractsSinceResponse{SystemError: toRPCError(sysError)}, nil + } + + protoContracts := make([]*generated.ContractCreationDataMsg, len(contracts)) + for i, contract := range contracts { + protoContracts[i] = &generated.ContractCreationDataMsg{ + Id: contract.ID, + Address: contract.Address.Bytes(), + Creator: contract.Creator.Bytes(), + AutoVisibility: contract.AutoVisibility, + BatchSeq: contract.BatchSeq, + BatchHeight: contract.BatchHeight, + BatchTimestamp: contract.BatchTimestamp, + } + + if contract.Transparent != nil { + protoContracts[i].Transparent = contract.Transparent + } + } + + return &generated.ContractsSinceResponse{ + Contracts: protoContracts, + SystemError: toRPCError(sysError), + }, nil +} + func (s *RPCServer) EncryptedRPC(ctx context.Context, req *generated.EncCallRequest) (*generated.EncCallResponse, error) { enclaveResp, sysError := s.enclave.EncryptedRPC(ctx, req.EncryptedParams) if sysError != nil { diff --git a/go/enclave/storage/enclavedb/batch.go b/go/enclave/storage/enclavedb/batch.go index 29cada7b1a..c1576e8d65 100644 --- a/go/enclave/storage/enclavedb/batch.go +++ b/go/enclave/storage/enclavedb/batch.go @@ -395,6 +395,80 @@ func ReadContractCreationCount(ctx context.Context, db *sqlx.DB) (*big.Int, erro return big.NewInt(count), nil } +// ReadContracts returns all contracts created after the given contract ID +// This is used by the host to sync contract data from the enclave periodically +// The query uses the contract ID as a simple cursor for pagination +func ReadContracts(ctx context.Context, db *sqlx.DB, fromContractID uint64, limit uint) ([]common.EnclaveContractData, error) { + query := ` + SELECT + c.id, + c.address, + eoa.address as creator, + c.auto_visibility, + c.transparent, + b.sequence as batch_seq, + b.height as batch_height, + b.header as batch_header + FROM contract c + JOIN externally_owned_account eoa ON c.creator = eoa.id + JOIN tx ON c.tx = tx.id + JOIN receipt rec ON rec.tx = tx.id + JOIN batch b ON rec.batch = b.sequence + WHERE c.id > ? AND b.is_canonical = true + ORDER BY c.id ASC + LIMIT ? + ` + + rows, err := db.QueryContext(ctx, query, fromContractID, limit) + if err != nil { + return nil, fmt.Errorf("failed to query contracts since contract ID %d: %w", fromContractID, err) + } + defer rows.Close() + + var contracts []common.EnclaveContractData + rowCount := 0 + for rows.Next() { + rowCount++ + var contract common.EnclaveContractData + var contractID uint64 + var addressBytes, creatorBytes []byte + var headerBytes []byte + + err = rows.Scan( + &contractID, + &addressBytes, + &creatorBytes, + &contract.AutoVisibility, + &contract.Transparent, + &contract.BatchSeq, + &contract.BatchHeight, + &headerBytes, + ) + if err != nil { + return nil, fmt.Errorf("failed to scan contract row: %w", err) + } + + contract.ID = contractID + contract.Address = gethcommon.BytesToAddress(addressBytes) + contract.Creator = gethcommon.BytesToAddress(creatorBytes) + + // extract the timestamp + h := new(common.BatchHeader) + if err := rlp.DecodeBytes(headerBytes, h); err != nil { + return nil, fmt.Errorf("could not decode batch header for seq %d: %w", contract.BatchSeq, err) + } + contract.BatchTimestamp = h.Time + + contracts = append(contracts, contract) + } + + if err = rows.Err(); err != nil { + return nil, fmt.Errorf("error iterating contract rows: %w", err) + } + + return contracts, nil +} + func ReadUnexecutedBatches(ctx context.Context, db *sqlx.DB, from *big.Int) ([]*common.BatchHeader, error) { return fetchBatches(ctx, db, "where is_executed=false and is_canonical=true and sequence >= ? order by b.sequence", from.Uint64()) } diff --git a/go/enclave/storage/interfaces.go b/go/enclave/storage/interfaces.go index 220ec3c052..78ea1abd45 100644 --- a/go/enclave/storage/interfaces.go +++ b/go/enclave/storage/interfaces.go @@ -163,4 +163,5 @@ type ScanStorage interface { GetContractCount(ctx context.Context) (*big.Int, error) CountTransactionsPerAddress(ctx context.Context, addr *gethcommon.Address, showPublic bool, showSynthetic bool) (uint64, error) GetTransactionsPerAddress(ctx context.Context, address *gethcommon.Address, pagination *common.QueryPagination, showPublic bool, showSynthetic bool) ([]common.PersonalTxReceipt, error) + GetContracts(ctx context.Context, fromContractID uint64, limit uint) ([]common.EnclaveContractData, error) } diff --git a/go/enclave/storage/storage.go b/go/enclave/storage/storage.go index 144add9bf3..67ba933990 100644 --- a/go/enclave/storage/storage.go +++ b/go/enclave/storage/storage.go @@ -1068,6 +1068,11 @@ func (s *storageImpl) GetContractCount(ctx context.Context) (*big.Int, error) { return enclavedb.ReadContractCreationCount(ctx, s.db.GetSQLDB()) } +func (s *storageImpl) GetContracts(ctx context.Context, fromContractID uint64, limit uint) ([]common.EnclaveContractData, error) { + defer s.logDuration("GetContracts", measure.NewStopwatch()) + return enclavedb.ReadContracts(ctx, s.db.GetSQLDB(), fromContractID, limit) +} + func (s *storageImpl) FetchCanonicalUnexecutedBatches(ctx context.Context, from *big.Int) ([]*common.BatchHeader, error) { defer s.logDuration("FetchCanonicalUnexecutedBatches", measure.NewStopwatch()) return enclavedb.ReadUnexecutedBatches(ctx, s.db.GetSQLDB(), from) diff --git a/go/host/config/config.go b/go/host/config/config.go index b39eec38a4..e9a0864486 100644 --- a/go/host/config/config.go +++ b/go/host/config/config.go @@ -12,17 +12,17 @@ import ( // For now, this is the bridge between TenConfig and the config used internally by the host service. -// HostConfig contains the configuration used in the Obscuro host execution. +// HostConfig contains the configuration used in the TEN host execution. type HostConfig struct { ///// - // OBSCURO NETWORK CONFIG (these properties are the same for all obscuro nodes on the network) + // TEN NETWORK CONFIG (these properties are the same for all TEN nodes on the network) ///// // The ID of the L1 chain L1ChainID int64 // The ID of the Ten chain TenChainID int64 - // L1StartHash is the hash of the L1 block we can start streaming from for all Obscuro state (e.g. management contract deployment block) + // L1StartHash is the hash of the L1 block we can start streaming from for all TEN state (e.g. management contract deployment block) L1StartHash gethcommon.Hash // The address of the sequencer node's P2P server SequencerP2PAddress string @@ -51,6 +51,10 @@ type HostConfig struct { MaxBlobRetries int // MaxDynamicRetries the number of retry attempts to publish dynamic fee txs MaxDynamicRetries int + // ContractSyncInterval how often we fetch contract data from the enclave + ContractSyncInterval time.Duration + // ContractFetchLimit number of contracts that can be fetched at once + ContractFetchLimit uint ///// // NODE CONFIG @@ -191,8 +195,10 @@ func HostConfigFromTenConfig(tenCfg *config.TenConfig) *HostConfig { ClientRPCPortWS: tenCfg.Host.RPC.WSPort, ClientRPCHost: tenCfg.Host.RPC.Address, - EnclaveRPCAddresses: tenCfg.Host.Enclave.RPCAddresses, - EnclaveRPCTimeout: tenCfg.Host.Enclave.RPCTimeout, + EnclaveRPCAddresses: tenCfg.Host.Enclave.RPCAddresses, + EnclaveRPCTimeout: tenCfg.Host.Enclave.RPCTimeout, + ContractSyncInterval: tenCfg.Host.Enclave.ContractSyncInterval, + ContractFetchLimit: tenCfg.Host.Enclave.ContractFetchLimit, IsInboundP2PDisabled: tenCfg.Host.P2P.IsDisabled, P2PBindAddress: tenCfg.Host.P2P.BindAddress, diff --git a/go/host/enclave/service.go b/go/host/enclave/service.go index 2c2868294d..78665102fa 100644 --- a/go/host/enclave/service.go +++ b/go/host/enclave/service.go @@ -16,6 +16,7 @@ import ( "github.com/ten-protocol/go-ten/go/common/stopcontrol" "github.com/ten-protocol/go-ten/go/ethadapter" hostconfig "github.com/ten-protocol/go-ten/go/host/config" + "github.com/ten-protocol/go-ten/go/host/storage" "github.com/ten-protocol/go-ten/go/responses" "github.com/ten-protocol/go-ten/lib/gethfork/rpc" ) @@ -38,6 +39,7 @@ type enclaveServiceLocator interface { type Service struct { hostData host.Identity sl enclaveServiceLocator + storage storage.Storage // The service goes via the Guardians to talk to the enclave (because guardian knows if the enclave is healthy etc.) enclaveGuardians []*Guardian @@ -49,22 +51,27 @@ type Service struct { blockTime time.Duration maxRollupSize uint64 batchCompressionFactor float64 + contractSyncInterval time.Duration + contractFetchLimit uint running atomic.Bool hostInterrupter *stopcontrol.StopControl logger gethlog.Logger } -func NewService(config *hostconfig.HostConfig, hostData host.Identity, serviceLocator enclaveServiceLocator, enclaveGuardians []*Guardian, interrupter *stopcontrol.StopControl, logger gethlog.Logger) *Service { +func NewService(config *hostconfig.HostConfig, hostData host.Identity, serviceLocator enclaveServiceLocator, enclaveGuardians []*Guardian, hostStorage storage.Storage, interrupter *stopcontrol.StopControl, logger gethlog.Logger) *Service { return &Service{ hostData: hostData, sl: serviceLocator, + storage: hostStorage, enclaveGuardians: enclaveGuardians, batchInterval: config.BatchInterval, rollupInterval: config.RollupInterval, blockTime: config.L1BlockTime, maxRollupSize: config.MaxRollupSize, batchCompressionFactor: config.BatchCompressionFactor, + contractSyncInterval: config.ContractSyncInterval, + contractFetchLimit: config.ContractFetchLimit, hostInterrupter: interrupter, logger: logger, } @@ -84,6 +91,8 @@ func (e *Service) Start() error { go e.managePeriodicBatches() go e.managePeriodicRollups() } + go e.managePeriodicContractSync() + return nil } @@ -497,3 +506,74 @@ func (e *Service) getActiveSequencerGuardian() (*Guardian, error) { } return nil, errors.New("active sequencer not found in guardians") } + +// managePeriodicContractSync periodically syncs contract data from the enclave to the host DB +// This runs for all nodes (sequencers and validators) to keep the host DB in sync for the block explorer +func (e *Service) managePeriodicContractSync() { + e.logger.Info("Starting periodic contract sync service") + + const lastSyncedContractIDKey = "contract_sync_last_contract_id" + + ticker := time.NewTicker(e.contractSyncInterval) + defer ticker.Stop() + + for e.running.Load() { + select { + case <-ticker.C: + lastSyncedContractID, err := e.storage.GetMetadata(lastSyncedContractIDKey) + if err != nil { + // first time set to 0 + lastSyncedContractID = 0 + } + + // fetch contracts from the enclave since the last synced contract ID + contracts, sysErr := e.GetEnclaveClient().GetContracts(context.Background(), lastSyncedContractID, e.contractFetchLimit) + if sysErr != nil { + e.logger.Warn("Failed to fetch contracts from enclave", log.ErrKey, sysErr) + continue + } + + if len(contracts) == 0 { + continue + } + + publicContracts := make([]common.PublicContract, 0, len(contracts)) + var lastContract common.EnclaveContractData + + for _, contract := range contracts { + hasCustomConfig := !contract.AutoVisibility + + isTransparent := contract.Transparent != nil && *contract.Transparent + + publicContracts = append(publicContracts, common.PublicContract{ + Address: contract.Address, + Creator: contract.Creator, + IsTransparent: isTransparent, + HasCustomConfig: hasCustomConfig, + BatchSeq: contract.BatchSeq, + Height: contract.BatchHeight, + Time: contract.BatchTimestamp, + }) + + lastContract = contract + } + + // store contracts in the host DB + if err := e.storage.AddContracts(publicContracts); err != nil { + e.logger.Error("Failed to store contracts in host DB", log.ErrKey, err, "count", len(publicContracts)) + continue + } + + // update cursor to the last contract ID fetched to enable proper pagination + if err := e.storage.SetMetadata(lastSyncedContractIDKey, lastContract.ID); err != nil { + e.logger.Warn("Failed to update contract ID metadata", log.ErrKey, err) + } else { + e.logger.Info("Synced contracts to host DB", "count", len(publicContracts), "last_contract_id", lastContract.ID) + } + + case <-e.hostInterrupter.Done(): + e.logger.Info("Stopping periodic contract sync service") + return + } + } +} diff --git a/go/host/host.go b/go/host/host.go index bca7472841..19d6de2de0 100644 --- a/go/host/host.go +++ b/go/host/host.go @@ -95,7 +95,7 @@ func NewHost(config *hostconfig.HostConfig, hostServices *ServicesRegistry, p2p enclGuardians = append(enclGuardians, enclGuardian) } - enclService := enclave.NewService(config, hostIdentity, hostServices, enclGuardians, host.stopControl, logger) + enclService := enclave.NewService(config, hostIdentity, hostServices, enclGuardians, hostStorage, host.stopControl, logger) l1Repo := l1.NewL1DataService(ethClient, hostStorage, contractRegistry, blobResolver, config.L1StartHash, config.L1TimeoutBlocks, host.stopControl, logger) l2Repo := l2.NewBatchRepository(config, hostServices, hostStorage, logger) subsService := events.NewLogEventManager(hostServices, logger) diff --git a/go/host/rpc/clientapi/client_api_scan.go b/go/host/rpc/clientapi/client_api_scan.go index 81246abb37..9b4b650e92 100644 --- a/go/host/rpc/clientapi/client_api_scan.go +++ b/go/host/rpc/clientapi/client_api_scan.go @@ -1,7 +1,6 @@ package clientapi import ( - "context" "fmt" "math/big" @@ -25,16 +24,20 @@ func NewScanAPI(host host.Host, logger log.Logger) *ScanAPI { } // GetTotalContractCount returns the number of recorded contracts on the network. -func (s *ScanAPI) GetTotalContractCount(ctx context.Context) (*big.Int, error) { - return s.host.EnclaveClient().GetTotalContractCount(ctx) +func (s *ScanAPI) GetTotalContractCount() (*big.Int, error) { + total, err := s.host.Storage().FetchTotalContractCountHost() + if err != nil { + return nil, fmt.Errorf("unable to get current contract count from host storage. Cause %w", err) + } + return big.NewInt(int64(total)), nil } // GetHistoricalContractCount returns the number of recorded contracts on the network. We store the historical in the host // db to try and keep the enclave lightweight. -func (s *ScanAPI) GetHistoricalContractCount(ctx context.Context) (*big.Int, error) { - currentCount, err := s.GetTotalContractCount(ctx) +func (s *ScanAPI) GetHistoricalContractCount() (*big.Int, error) { + currentCount, err := s.GetTotalContractCount() if err != nil { - return nil, fmt.Errorf("unable to get current contract count from enclave. Cause %w", err) + return nil, fmt.Errorf("unable to get current contract count from host storage. Cause %w", err) } historicalCount, err := s.host.Storage().FetchHistoricalContractCount() if err != nil { @@ -58,6 +61,21 @@ func (s *ScanAPI) GetTotalTransactionsQuery() (*big.Int, error) { return s.host.Storage().FetchTotalTxsQuery() } +// GetPublicTransactionListing returns a paginated list of public transactions +func (s *ScanAPI) GetPublicTransactionListing(pagination *common.QueryPagination) (*common.TransactionListingResponse, error) { + return s.host.Storage().FetchTransactionListing(pagination) +} + +// GetContractListing returns a paginated list of all contracts +func (s *ScanAPI) GetContractListing(pagination *common.QueryPagination) (*common.ContractListingResponse, error) { + return s.host.Storage().FetchContractListing(pagination) +} + +// GetContractByAddress returns contract details for a specific address +func (s *ScanAPI) GetContractByAddress(address gethcommon.Address) (*common.PublicContract, error) { + return s.host.Storage().FetchContractByAddress(address) +} + // GetHistoricalTransactionCount returns the historical transaction count plus current count func (s *ScanAPI) GetHistoricalTransactionCount() (*big.Int, error) { return s.host.Storage().FetchHistoricalTransactionCount() diff --git a/go/host/rpc/enclaverpc/enclave_client.go b/go/host/rpc/enclaverpc/enclave_client.go index 3e74739d28..064f08c331 100644 --- a/go/host/rpc/enclaverpc/enclave_client.go +++ b/go/host/rpc/enclaverpc/enclave_client.go @@ -525,6 +525,40 @@ func (c *Client) FetchSequencerAttestations(ctx context.Context) ([]*common.Atte return reports, nil } +func (c *Client) GetContracts(ctx context.Context, fromContractID uint64, limit uint) ([]common.EnclaveContractData, common.SystemError) { + timeoutCtx, cancel := context.WithTimeout(ctx, c.enclaveRPCTimeout) + defer cancel() + + response, err := c.protoClient.GetContracts(timeoutCtx, &generated.ContractsSinceRequest{ + FromContractID: fromContractID, + Limit: int32(limit), + }) + if err != nil { + return nil, syserr.NewRPCError(err) + } + if response == nil { + return nil, syserr.NewInternalError(fmt.Errorf("nil response from enclave")) + } + if response.SystemError != nil { + return nil, syserr.NewInternalError(fmt.Errorf("%s", response.SystemError.ErrorString)) + } + + contracts := make([]common.EnclaveContractData, 0, len(response.Contracts)) + for _, contract := range response.Contracts { + contracts = append(contracts, common.EnclaveContractData{ + ID: contract.Id, + Address: gethcommon.BytesToAddress(contract.Address), + Creator: gethcommon.BytesToAddress(contract.Creator), + AutoVisibility: contract.AutoVisibility, + Transparent: contract.Transparent, + BatchSeq: contract.BatchSeq, + BatchHeight: contract.BatchHeight, + BatchTimestamp: contract.BatchTimestamp, + }) + } + return contracts, nil +} + func (c *Client) MakeActive() common.SystemError { response, err := c.protoClient.MakeActive(context.Background(), &generated.MakeActiveRequest{}) if err != nil { diff --git a/go/host/storage/hostdb/batch.go b/go/host/storage/hostdb/batch.go index cfeb43c4d1..5addd3d2bd 100644 --- a/go/host/storage/hostdb/batch.go +++ b/go/host/storage/hostdb/batch.go @@ -55,49 +55,12 @@ func AddBatch(dbtx *dbTransaction, db HostDB, batch *common.ExtBatch) error { } if len(batch.TxHashes) > 0 { - valuePlaceholders := make([]string, len(batch.TxHashes)) - args := make([]any, 0) - for i, txHash := range batch.TxHashes { - valuePlaceholders[i] = "(?, ?)" - args = append(args, txHash.Bytes(), batch.SeqNo().Uint64()) - } - - insert := insertTransactions + strings.Join(valuePlaceholders, ", ") - insert = db.GetSQLDB().Rebind(insert) - _, err = dbtx.Tx.Exec(insert, args...) - if err != nil { + if err = addBatchTransactions(dbtx, db, batch); err != nil { return fmt.Errorf("failed to insert transactions. cause: %w", err) } } - - // update current transaction count - var currentTotal int - reboundSelectTxCount := db.GetSQLDB().Rebind("SELECT total FROM transaction_count WHERE id = 1") - err = dbtx.Tx.QueryRow(reboundSelectTxCount).Scan(¤tTotal) - if err != nil { - return fmt.Errorf("failed to query transaction count: %w", err) - } - - newTotal := currentTotal + len(batch.TxHashes) - reboundUpdateTxCount := db.GetSQLDB().Rebind(updateTxCount) - _, err = dbtx.Tx.Exec(reboundUpdateTxCount, newTotal) - if err != nil { - return fmt.Errorf("failed to update transaction count: %w", err) - } - - // update historical transaction count - var currentHistoricalTotal int - reboundSelectHistoricalTxCount := db.GetSQLDB().Rebind("SELECT total FROM historical_transaction_count WHERE id = 1") - err = dbtx.Tx.QueryRow(reboundSelectHistoricalTxCount).Scan(¤tHistoricalTotal) - if err != nil { - return fmt.Errorf("failed to query historical transaction count: %w", err) - } - - newHistoricalTotal := currentHistoricalTotal + len(batch.TxHashes) - reoundHistoricalQuery := db.GetSQLDB().Rebind(updateHistoricalTxCount) - _, err = dbtx.Tx.Exec(reoundHistoricalQuery, newHistoricalTotal) - if err != nil { - return fmt.Errorf("failed to update historical transaction count: %w", err) + if err = updateTransactionCounts(dbtx, db, batch); err != nil { + return fmt.Errorf("failed to update transaction counts. cause: %w", err) } return nil @@ -473,6 +436,55 @@ func fetchTx(db HostDB, seqNo uint64) ([]common.TxHash, error) { return transactions, nil } +func addBatchTransactions(dbtx *dbTransaction, db HostDB, batch *common.ExtBatch) error { + valuePlaceholders := make([]string, len(batch.TxHashes)) + args := make([]any, 0) + for i, txHash := range batch.TxHashes { + valuePlaceholders[i] = "(?, ?)" + args = append(args, txHash.Bytes(), batch.SeqNo().Uint64()) + } + insert := insertTransactions + strings.Join(valuePlaceholders, ", ") + insert = db.GetSQLDB().Rebind(insert) + if _, err := dbtx.Tx.Exec(insert, args...); err != nil { + return err + } + + return nil +} + +func updateTransactionCounts(dbtx *dbTransaction, db HostDB, batch *common.ExtBatch) error { + // update current transaction count + var currentTotal int + reboundSelectTxCount := db.GetSQLDB().Rebind("SELECT total FROM transaction_count WHERE id = 1") + err := dbtx.Tx.QueryRow(reboundSelectTxCount).Scan(¤tTotal) + if err != nil { + return fmt.Errorf("failed to query transaction count: %w", err) + } + + newTotal := currentTotal + len(batch.TxHashes) + reboundUpdateTxCount := db.GetSQLDB().Rebind(updateTxCount) + _, err = dbtx.Tx.Exec(reboundUpdateTxCount, newTotal) + if err != nil { + return fmt.Errorf("failed to update transaction count: %w", err) + } + + // update historical transaction count + var currentHistoricalTotal int + reboundSelectHistoricalTxCount := db.GetSQLDB().Rebind("SELECT total FROM historical_transaction_count WHERE id = 1") + err = dbtx.Tx.QueryRow(reboundSelectHistoricalTxCount).Scan(¤tHistoricalTotal) + if err != nil { + return fmt.Errorf("failed to query historical transaction count: %w", err) + } + + newHistoricalTotal := currentHistoricalTotal + len(batch.TxHashes) + reoundHistoricalQuery := db.GetSQLDB().Rebind(updateHistoricalTxCount) + _, err = dbtx.Tx.Exec(reoundHistoricalQuery, newHistoricalTotal) + if err != nil { + return fmt.Errorf("failed to update historical transaction count: %w", err) + } + return nil +} + func IsRowExistsError(err error) bool { return strings.Contains(strings.ToLower(err.Error()), "unique") || strings.Contains(strings.ToLower(err.Error()), "duplicate key") } diff --git a/go/host/storage/hostdb/contracts.go b/go/host/storage/hostdb/contracts.go new file mode 100644 index 0000000000..8c463b3114 --- /dev/null +++ b/go/host/storage/hostdb/contracts.go @@ -0,0 +1,205 @@ +package hostdb + +import ( + "database/sql" + "errors" + "fmt" + + "github.com/ten-protocol/go-ten/go/common" + "github.com/ten-protocol/go-ten/go/common/errutil" + + gethcommon "github.com/ethereum/go-ethereum/common" +) + +const ( + insertContract = "INSERT INTO contract_host (address, creator, transparent, custom_config, batch_seq, height, time) VALUES (?, ?, ?, ?, ?, ?, ?)" + selectContract = "SELECT id, address, creator, transparent, custom_config, batch_seq, height, time FROM contract_host" + selectContractCount = "SELECT total FROM contract_count WHERE id = 1" + whereContractAddr = " WHERE address = ?" + orderByDeployed = " ORDER BY time DESC" +) + +// AddContracts adds multiple contracts to the host DB in a single transaction +func AddContracts(db HostDB, contracts []common.PublicContract) error { + if len(contracts) == 0 { + return nil + } + + dbtx, err := db.NewDBTransaction() + if err != nil { + return fmt.Errorf("failed to create transaction: %w", err) + } + defer dbtx.Rollback() + + insertedCount := 0 + for _, contract := range contracts { + reboundInsert := db.GetSQLDB().Rebind(insertContract) + _, err := dbtx.Tx.Exec(reboundInsert, + contract.Address.Bytes(), + contract.Creator.Bytes(), + contract.IsTransparent, + contract.HasCustomConfig, + contract.BatchSeq, + contract.Height, + contract.Time, + ) + if err != nil { + if IsRowExistsError(err) { + continue + } + return fmt.Errorf("failed to insert contract %s: %w", contract.Address.Hex(), err) + } + insertedCount++ + } + + // update contract count if we inserted any new contracts + if insertedCount > 0 { + err = updateCountTable(dbtx, db, "contract_count", insertedCount) + if err != nil { + return err + } + + err = updateCountTable(dbtx, db, "historical_contract_count", insertedCount) + if err != nil { + return err + } + } + + if err := dbtx.Write(); err != nil { + return fmt.Errorf("failed to commit transaction: %w", err) + } + + return nil +} + +// GetContractListing returns contracts with pagination, ordered by deployment time +func GetContractListing(db HostDB, pagination *common.QueryPagination) (*common.ContractListingResponse, error) { + query := selectContract + orderByDeployed + paginationQuery + reboundQuery := db.GetSQLDB().Rebind(query) + + rows, err := db.GetSQLDB().Query(reboundQuery, int64(pagination.Size), int64(pagination.Offset)) + if err != nil { + return nil, fmt.Errorf("failed to execute contract listing query: %w", err) + } + defer rows.Close() + + var contracts []common.PublicContract + for rows.Next() { + var contract common.PublicContract + var addressBytes, creatorBytes []byte + + err = rows.Scan( + &contract.ID, + &addressBytes, + &creatorBytes, + &contract.IsTransparent, + &contract.HasCustomConfig, + &contract.BatchSeq, + &contract.Height, + &contract.Time, + ) + if err != nil { + return nil, fmt.Errorf("failed to scan contract row: %w", err) + } + + contract.Address = gethcommon.BytesToAddress(addressBytes) + contract.Creator = gethcommon.BytesToAddress(creatorBytes) + + contracts = append(contracts, common.PublicContract{ + Address: contract.Address, + Creator: contract.Creator, + IsTransparent: contract.IsTransparent, + HasCustomConfig: contract.HasCustomConfig, + BatchSeq: contract.BatchSeq, + Height: contract.Height, + Time: contract.Time, + }) + } + + if err = rows.Err(); err != nil { + return nil, err + } + + var total uint64 + reboundCountQuery := db.GetSQLDB().Rebind(selectContractCount) + err = db.GetSQLDB().QueryRow(reboundCountQuery).Scan(&total) + if err != nil { + return nil, fmt.Errorf("failed to get total contract count: %w", err) + } + + return &common.ContractListingResponse{ + Contracts: contracts, + Total: total, + }, nil +} + +// GetContractByAddress returns a specific contract by address +func GetContractByAddress(db HostDB, address gethcommon.Address) (*common.PublicContract, error) { + query := selectContract + whereContractAddr + reboundQuery := db.GetSQLDB().Rebind(query) + + var contract common.PublicContract + var addressBytes, creatorBytes []byte + + err := db.GetSQLDB().QueryRow(reboundQuery, address.Bytes()).Scan( + &contract.ID, + &addressBytes, + &creatorBytes, + &contract.IsTransparent, + &contract.HasCustomConfig, + &contract.BatchSeq, + &contract.Height, + &contract.Time, + ) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + return nil, errutil.ErrNotFound + } + return nil, fmt.Errorf("failed to fetch contract: %w", err) + } + + contract.Address = gethcommon.BytesToAddress(addressBytes) + contract.Creator = gethcommon.BytesToAddress(creatorBytes) + + return &common.PublicContract{ + Address: contract.Address, + Creator: contract.Creator, + IsTransparent: contract.IsTransparent, + HasCustomConfig: contract.HasCustomConfig, + BatchSeq: contract.BatchSeq, + Height: contract.Height, + Time: contract.Time, + }, nil +} + +// GetTotalContractCount returns the total number of contracts +func GetTotalContractCount(db HostDB) (uint64, error) { + var total uint64 + reboundQuery := db.GetSQLDB().Rebind(selectContractCount) + err := db.GetSQLDB().QueryRow(reboundQuery).Scan(&total) + if err != nil { + return 0, fmt.Errorf("failed to get contract count: %w", err) + } + return total, nil +} + +// updateCountTable updates a contract count table by adding the inserted count to the current total +func updateCountTable(dbtx *dbTransaction, db HostDB, tableName string, insertedCount int) error { + var currentTotal int + selectQuery := fmt.Sprintf("SELECT total FROM %s WHERE id = 1", tableName) + reboundSelectCount := db.GetSQLDB().Rebind(selectQuery) + err := dbtx.Tx.QueryRow(reboundSelectCount).Scan(¤tTotal) + if err != nil { + return fmt.Errorf("failed to query contract count from %s: %w", tableName, err) + } + + newTotal := currentTotal + insertedCount + updateQuery := fmt.Sprintf("UPDATE %s SET total=? WHERE id=1", tableName) + reboundUpdateCount := db.GetSQLDB().Rebind(updateQuery) + _, err = dbtx.Tx.Exec(reboundUpdateCount, newTotal) + if err != nil { + return fmt.Errorf("failed to update contract count in %s: %w", tableName, err) + } + + return nil +} diff --git a/go/host/storage/init/postgres/005_init.sql b/go/host/storage/init/postgres/005_init.sql new file mode 100644 index 0000000000..d70ec2ba48 --- /dev/null +++ b/go/host/storage/init/postgres/005_init.sql @@ -0,0 +1,28 @@ +CREATE TABLE IF NOT EXISTS contract_host +( + id SERIAL PRIMARY KEY, + address BYTEA NOT NULL UNIQUE, + creator BYTEA NOT NULL, + transparent BOOLEAN NOT NULL, + custom_config BOOLEAN NOT NULL, + batch_seq BIGINT NOT NULL, + height BIGINT NOT NULL, + time INT NOT NULL +); + +CREATE INDEX IF NOT EXISTS IDX_CONTRACT_ADDR_HOST ON contract_host USING HASH (address); +CREATE INDEX IF NOT EXISTS IDX_CONTRACT_CREATOR_HOST ON contract_host (creator); +CREATE INDEX IF NOT EXISTS IDX_CONTRACT_DEPLOYED_HOST ON contract_host (time DESC); +CREATE INDEX IF NOT EXISTS IDX_CONTRACT_TRANSPARENT_HOST ON contract_host (transparent, custom_config); + +CREATE TABLE IF NOT EXISTS contract_count +( + id SERIAL PRIMARY KEY, + total INT NOT NULL +); + +INSERT INTO contract_count (id, total) +VALUES (1, 0) + ON CONFLICT (id) +DO NOTHING; + diff --git a/go/host/storage/init/sqlite/005_init.sql b/go/host/storage/init/sqlite/005_init.sql new file mode 100644 index 0000000000..6f6417601d --- /dev/null +++ b/go/host/storage/init/sqlite/005_init.sql @@ -0,0 +1,26 @@ +create table if not exists contract_host +( + id INTEGER PRIMARY KEY AUTOINCREMENT, + address binary(20) NOT NULL UNIQUE, + creator binary(20) NOT NULL, + transparent boolean NOT NULL, + custom_config boolean NOT NULL, + batch_seq int NOT NULL, + height int NOT NULL, + time int NOT NULL +); + +create index IDX_CONTRACT_ADDR_HOST on contract_host (address); +create index IDX_CONTRACT_CREATOR_HOST on contract_host (creator); +create index IDX_CONTRACT_DEPLOYED_HOST on contract_host (time DESC); +create index IDX_CONTRACT_TRANSPARENT_HOST on contract_host (transparent, custom_config); + +create table if not exists contract_count +( + id int NOT NULL PRIMARY KEY, + total int NOT NULL +); + +insert into contract_count (id, total) +values (1, 0) on CONFLICT (id) DO NOTHING; + diff --git a/go/host/storage/interfaces.go b/go/host/storage/interfaces.go index 9e4386d321..02920964cf 100644 --- a/go/host/storage/interfaces.go +++ b/go/host/storage/interfaces.go @@ -51,6 +51,14 @@ type BatchResolver interface { FetchHistoricalTransactionCount() (*big.Int, error) // FetchHistoricalContractCount returns the historical number of contracts deployed on the testnet FetchHistoricalContractCount() (*big.Int, error) + // FetchContractListing returns a paginated list of contracts + FetchContractListing(pagination *common.QueryPagination) (*common.ContractListingResponse, error) + // FetchContractByAddress returns contract info for a specific address + FetchContractByAddress(address gethcommon.Address) (*common.PublicContract, error) + // FetchTotalContractCountHost returns the total contract count from host DB + FetchTotalContractCountHost() (uint64, error) + // AddContracts adds multiple contracts to the host DB (for periodic sync) + AddContracts(contracts []common.PublicContract) error // FetchTransaction returns the transaction given its hash FetchTransaction(hash gethcommon.Hash) (*common.PublicTransaction, error) // FetchBatchTransactions returns a list of public transaction data within a given batch hash diff --git a/go/host/storage/storage.go b/go/host/storage/storage.go index 5a285e3c12..55f3a65847 100644 --- a/go/host/storage/storage.go +++ b/go/host/storage/storage.go @@ -110,6 +110,10 @@ func (s *storageImpl) AddBlock(b *types.Header) error { return nil } +func (s *storageImpl) AddContracts(contracts []common.PublicContract) error { + return hostdb.AddContracts(s.db, contracts) +} + func (s *storageImpl) FetchCrossChainProof(messageType string, crossChainMessage gethcommon.Hash) ([][]byte, gethcommon.Hash, error) { tree, err := hostdb.GetCrossChainMessagesTree(s.db, crossChainMessage) if err != nil { @@ -207,6 +211,18 @@ func (s *storageImpl) FetchHistoricalContractCount() (*big.Int, error) { return hostdb.GetHistoricalContractCount(s.db) } +func (s *storageImpl) FetchContractListing(pagination *common.QueryPagination) (*common.ContractListingResponse, error) { + return hostdb.GetContractListing(s.db, pagination) +} + +func (s *storageImpl) FetchContractByAddress(address gethcommon.Address) (*common.PublicContract, error) { + return hostdb.GetContractByAddress(s.db, address) +} + +func (s *storageImpl) FetchTotalContractCountHost() (uint64, error) { + return hostdb.GetTotalContractCount(s.db) +} + func (s *storageImpl) FetchTransaction(hash gethcommon.Hash) (*common.PublicTransaction, error) { return hostdb.GetTransaction(s.db, hash) } diff --git a/go/obsclient/obsclient.go b/go/obsclient/obsclient.go index a9fe03a327..db8d43d042 100644 --- a/go/obsclient/obsclient.go +++ b/go/obsclient/obsclient.go @@ -250,6 +250,26 @@ func (oc *ObsClient) GetRollupListing(pagination *common.QueryPagination) (*comm return &result, nil } +// GetContractListing returns a list of all contracts +func (oc *ObsClient) GetContractListing(pagination *common.QueryPagination) (*common.ContractListingResponse, error) { + var result common.ContractListingResponse + err := oc.rpcClient.Call(&result, rpc.GetContractListing, pagination) + if err != nil { + return nil, err + } + return &result, nil +} + +// GetContractByAddress returns contract details for a specific address +func (oc *ObsClient) GetContractByAddress(address gethcommon.Address) (*common.PublicContract, error) { + var result common.PublicContract + err := oc.rpcClient.Call(&result, rpc.GetContractByAddress, address) + if err != nil { + return nil, err + } + return &result, nil +} + // GetRollupByHash returns the public rollup data given its hash func (oc *ObsClient) GetRollupByHash(hash gethcommon.Hash) (*common.PublicRollup, error) { var rollup *common.PublicRollup diff --git a/go/rpc/client.go b/go/rpc/client.go index c14e24370f..cbc35b61b8 100644 --- a/go/rpc/client.go +++ b/go/rpc/client.go @@ -49,6 +49,8 @@ const ( GetRollupBySeqNo = "scan_getRollupBySeqNo" GetBatchTransactions = "scan_getBatchTransactions" GetPersonalTransactions = "scan_getPersonalTransactions" + GetContractListing = "scan_getContractListing" + GetContractByAddress = "scan_getContractByAddress" Search = "scan_search" ) diff --git a/integration/simulation/devnetwork/node.go b/integration/simulation/devnetwork/node.go index 15122b3657..3f5602863e 100644 --- a/integration/simulation/devnetwork/node.go +++ b/integration/simulation/devnetwork/node.go @@ -151,6 +151,8 @@ func (n *InMemNodeOperator) createHostContainer() *hostcontainer.HostContainer { TenChainID: integration.TenChainID, L1StartHash: n.l1Data.TenStartBlock, L1TimeoutBlocks: 2, + ContractSyncInterval: 2 * time.Second, + ContractFetchLimit: 5, SequencerP2PAddress: seqP2PAddr, // Can provide the postgres db host if testing against a local DB instance UseInMemoryDB: true, diff --git a/integration/simulation/network/network_utils.go b/integration/simulation/network/network_utils.go index 2401da68e9..bf85d68695 100644 --- a/integration/simulation/network/network_utils.go +++ b/integration/simulation/network/network_utils.go @@ -75,6 +75,8 @@ func createInMemTenNode( P2PPublicAddress: fmt.Sprintf("%d", id), L1StartHash: l1StartBlk, L1TimeoutBlocks: 2, + ContractSyncInterval: 2 * time.Second, + ContractFetchLimit: 5, NetworkConfigAddress: *networkConfigAddr, BatchInterval: batchInterval, CrossChainInterval: 11 * time.Second, // todo @matt fix where this default comes from diff --git a/integration/simulation/network/socket.go b/integration/simulation/network/socket.go index 65efc8fb4b..3f07cb7de1 100644 --- a/integration/simulation/network/socket.go +++ b/integration/simulation/network/socket.go @@ -119,6 +119,7 @@ func (n *networkOfSocketNodes) Create(simParams *params.SimParams, _ *stats.Stat tenCfg.Network.L1.L1Contracts.EnclaveRegistryContract = simParams.L1TenData.EnclaveRegistryAddress tenCfg.Network.L1.L1Contracts.MessageBusContract = simParams.L1TenData.MessageBusAddr tenCfg.Network.L1.L1Contracts.BridgeContract = simParams.L1TenData.BridgeAddress + tenCfg.Host.Enclave.ContractSyncInterval = 10 * time.Second tenCfg.Network.Gas.PaymentAddress = simParams.Wallets.L2FeesWallet.Address() tenCfg.Node.PrivateKeyString = privateKey @@ -131,6 +132,8 @@ func (n *networkOfSocketNodes) Create(simParams *params.SimParams, _ *stats.Stat tenCfg.Host.RPC.HTTPPort = uint64(simParams.StartPort + integration.DefaultHostRPCHTTPOffset + i) tenCfg.Host.RPC.WSPort = uint64(simParams.StartPort + integration.DefaultHostRPCWSOffset + i) tenCfg.Host.Enclave.RPCAddresses = []string{fmt.Sprintf("127.0.0.1:%d", simParams.StartPort+integration.DefaultEnclaveOffset+i)} + tenCfg.Host.Enclave.ContractFetchLimit = 2 + tenCfg.Host.Enclave.ContractSyncInterval = durationOrDefault(simParams.ContractSyncInterval) tenCfg.Host.L1.WebsocketURL = fmt.Sprintf("ws://127.0.0.1:%d", simParams.StartPort+100) tenCfg.Host.DB.HistoricalTxCount = 10 // needed to test historicalTxCount endpoint tenCfg.Host.DB.HistoricalContractCount = 7 // needed to test historicalContractCount endpoint @@ -305,3 +308,10 @@ func checkProcessPort(errPort string) error { return nil } + +func durationOrDefault(v *time.Duration) time.Duration { + if v != nil { + return *v + } + return 10 * time.Second +} diff --git a/integration/simulation/params/params.go b/integration/simulation/params/params.go index f6a00977bd..8bf94abf1a 100644 --- a/integration/simulation/params/params.go +++ b/integration/simulation/params/params.go @@ -38,7 +38,8 @@ type SimParams struct { StartPort int // The port from which to start allocating ports. Must be unique across all simulations. IsInMem bool // Denotes that the sim does not have a full RPC layer. - ReceiptTimeout time.Duration // How long to wait for transactions to be confirmed. + ReceiptTimeout time.Duration // How long to wait for transactions to be confirmed. + ContractSyncInterval *time.Duration StoppingDelay time.Duration // How long to wait between injection and verification NodeWithInboundP2PDisabled int diff --git a/integration/tenscan/tenscan_contracts_test.go b/integration/tenscan/tenscan_contracts_test.go new file mode 100644 index 0000000000..cf93fd06a5 --- /dev/null +++ b/integration/tenscan/tenscan_contracts_test.go @@ -0,0 +1,314 @@ +package tenscan + +import ( + "encoding/json" + "fmt" + "testing" + "time" + + testcommon "github.com/ten-protocol/go-ten/integration/common" + + "github.com/ten-protocol/go-ten/go/common" + + "github.com/ten-protocol/go-ten/tools/tenscan/backend/config" + "github.com/ten-protocol/go-ten/tools/tenscan/backend/container" + + gethcommon "github.com/ethereum/go-ethereum/common" + "github.com/stretchr/testify/require" + "github.com/ten-protocol/go-ten/go/wallet" + "github.com/valyala/fasthttp" + + "github.com/ethereum/go-ethereum/log" + "github.com/stretchr/testify/assert" + "github.com/ten-protocol/go-ten/integration" + "github.com/ten-protocol/go-ten/integration/common/testlog" +) + +func init() { //nolint:gochecknoinits + testlog.Setup(&testlog.Cfg{ + LogDir: testLogs, + TestType: "tenscan", + TestSubtype: "test", + LogLevel: log.LvlInfo, + }) +} + +func TestTenscanContracts(t *testing.T) { + t.Skipf("Used only to test contract listing stuff locally") + startPort := integration.TestPorts.TestTenscanPort + createTenNetwork(t, integration.TestPorts.TestTenscanPort, 30*time.Second) + + tenScanConfig := &config.Config{ + NodeHostAddress: fmt.Sprintf("http://127.0.0.1:%d", startPort+integration.DefaultHostRPCHTTPOffset), + ServerAddress: fmt.Sprintf("127.0.0.1:%d", startPort+integration.DefaultTenscanHTTPPortOffset), + LogPath: "sys_out", + } + + serverAddress := fmt.Sprintf("http://%s", tenScanConfig.ServerAddress) + + tenScanContainer, err := container.NewTenScanContainer(tenScanConfig) + require.NoError(t, err) + + err = tenScanContainer.Start() + require.NoError(t, err) + + // wait for the msg bus contract to be deployed + time.Sleep(30 * time.Second) + + // make sure the server is ready to receive requests + err = waitServerIsReady(serverAddress) + require.NoError(t, err) + + err = waitForFirstRollup(serverAddress) + require.NoError(t, err) + + deployTestContracts( + t, + fmt.Sprintf("ws://127.0.0.1:%d", startPort+integration.DefaultHostRPCWSOffset), + wallet.NewInMemoryWalletFromConfig(testcommon.TestnetPrefundedPK, integration.TenChainID, testlog.Logger()), + 3, // deploy 3 test contracts (just enough to test pagination) + ) + + type contractListingRes struct { + Result common.ContractListingResponse `json:"result"` + } + + // wait for contracts to be synced (sync interval is 30s, so need to wait longer) + // we just need at least 3 contracts to test the basics (contract listing, fetching, pagination) + contractListingObj := contractListingRes{} + contractWaitDeadline := time.Now().Add(time.Minute * 2) // allow multiple sync cycles + for { + statusCode, body, err := fasthttp.Get(nil, fmt.Sprintf("%s/items/contracts/?offset=0&size=30", serverAddress)) + assert.NoError(t, err) + assert.Equal(t, 200, statusCode) + err = json.Unmarshal(body, &contractListingObj) + assert.NoError(t, err) + // just need at least 3 contracts to test pagination and basic functionality + if len(contractListingObj.Result.Contracts) >= 3 { + t.Logf("Contracts synced: total=%d, visible=%d", contractListingObj.Result.Total, len(contractListingObj.Result.Contracts)) + break + } + if time.Now().After(contractWaitDeadline) { + t.Fatalf("Timed out waiting for contracts to be indexed; have total=%d, visible=%d", contractListingObj.Result.Total, len(contractListingObj.Result.Contracts)) + } + time.Sleep(5 * time.Second) + } + + if len(contractListingObj.Result.Contracts) > 0 { + firstContract := contractListingObj.Result.Contracts[0] + assert.NotEqual(t, gethcommon.Address{}, firstContract.Address, "Contract address should not be empty") + assert.NotEqual(t, gethcommon.Address{}, firstContract.Creator, "Contract creator should not be empty") + assert.GreaterOrEqual(t, firstContract.BatchSeq, uint64(0), "Batch sequence should be set") + assert.GreaterOrEqual(t, firstContract.Height, uint64(0), "Height should be set") + assert.GreaterOrEqual(t, firstContract.Time, uint64(0), "Time should be set") + } + + if len(contractListingObj.Result.Contracts) > 0 { + testContractAddr := contractListingObj.Result.Contracts[0].Address + statusCode, body, err := fasthttp.Get(nil, fmt.Sprintf("%s/items/contract/%s", serverAddress, testContractAddr.Hex())) + assert.NoError(t, err) + assert.Equal(t, 200, statusCode) + + type contractItemRes struct { + Item common.PublicContract `json:"item"` + } + + contractItemObj := contractItemRes{} + err = json.Unmarshal(body, &contractItemObj) + assert.NoError(t, err) + assert.Equal(t, testContractAddr, contractItemObj.Item.Address, "Fetched contract should match requested address") + } + + if contractListingObj.Result.Total > 2 { + // first page + statusCode, body, err := fasthttp.Get(nil, fmt.Sprintf("%s/items/contracts/?offset=0&size=1", serverAddress)) + assert.NoError(t, err) + assert.Equal(t, 200, statusCode) + + firstPageContracts := contractListingRes{} + err = json.Unmarshal(body, &firstPageContracts) + assert.NoError(t, err) + assert.Equal(t, 1, len(firstPageContracts.Result.Contracts), "First page should have 1 contract") + + // second page + statusCode, body, err = fasthttp.Get(nil, fmt.Sprintf("%s/items/contracts/?offset=1&size=1", serverAddress)) + assert.NoError(t, err) + assert.Equal(t, 200, statusCode) + + secondPageContracts := contractListingRes{} + err = json.Unmarshal(body, &secondPageContracts) + assert.NoError(t, err) + assert.Equal(t, 1, len(secondPageContracts.Result.Contracts), "Second page should have 1 contract") + + // verify different pages have different contracts + assert.NotEqual(t, firstPageContracts.Result.Contracts[0].Address, + secondPageContracts.Result.Contracts[0].Address, + "Different pages should have different contracts") + } + + // invalid contract address returns appropriate error + statusCode, _, err := fasthttp.Get(nil, fmt.Sprintf("%s/items/contract/0xinvalid", serverAddress)) + assert.NoError(t, err) + // Should handle gracefully (either 400 or 404 or 500 depending on implementation) + assert.True(t, statusCode >= 400, "Invalid address should return error status") + + // non-existent contract address + nonExistentAddr := "0x0000000000000000000000000000000000000001" + statusCode, _, err = fasthttp.Get(nil, fmt.Sprintf("%s/items/contract/%s", serverAddress, nonExistentAddr)) + assert.NoError(t, err) + assert.True(t, statusCode >= 400, "Non-existent contract should return error status") +} + +// TestContractsPagination tests that the contract sync properly handles +// pagination when there are more contracts than the fetch limit. +// This test uses a fetch limit of 2 and sync interval of 30s to verify all contracts +// are eventually synced through multiple sync cycles. +func TestContractsPagination(t *testing.T) { + t.Skipf("Local only test - uncomment to test contract pagination with small fetch limit") + startPort := integration.TestPorts.TestTenscanPort + createTenNetwork(t, integration.TestPorts.TestTenscanPort, 30*time.Second) + + tenScanConfig := &config.Config{ + NodeHostAddress: fmt.Sprintf("http://127.0.0.1:%d", startPort+integration.DefaultHostRPCHTTPOffset), + ServerAddress: fmt.Sprintf("127.0.0.1:%d", startPort+integration.DefaultTenscanHTTPPortOffset), + LogPath: "sys_out", + } + + serverAddress := fmt.Sprintf("http://%s", tenScanConfig.ServerAddress) + + tenScanContainer, err := container.NewTenScanContainer(tenScanConfig) + require.NoError(t, err) + + err = tenScanContainer.Start() + require.NoError(t, err) + + // wait for the initial setup + time.Sleep(30 * time.Second) + + err = waitServerIsReady(serverAddress) + require.NoError(t, err) + + err = waitForFirstRollup(serverAddress) + require.NoError(t, err) + + // more contracts than the fetch limit to force pagination with limit of 2, deploying 7 contracts means we need at + // least 4 sync cycles + numTestContracts := 7 + t.Logf("Deploying %d test contracts (fetch limit is 2, so this will require multiple sync cycles)", numTestContracts) + + deployTestContracts( + t, + fmt.Sprintf("ws://127.0.0.1:%d", startPort+integration.DefaultHostRPCWSOffset), + wallet.NewInMemoryWalletFromConfig(testcommon.TestnetPrefundedPK, integration.TenChainID, testlog.Logger()), + numTestContracts, + ) + + type contractListingRes struct { + Result common.ContractListingResponse `json:"result"` + } + + // system contracts are already deployed, so we need to account for those + systemContractCount := 0 + statusCode, body, err := fasthttp.Get(nil, fmt.Sprintf("%s/items/contracts/?offset=0&size=100", serverAddress)) + require.NoError(t, err) + require.Equal(t, 200, statusCode) + + initialListing := contractListingRes{} + err = json.Unmarshal(body, &initialListing) + require.NoError(t, err) + systemContractCount = int(initialListing.Result.Total) + t.Logf("Initial system contracts: %d", systemContractCount) + + expectedTotalContracts := systemContractCount + numTestContracts + t.Logf("Expecting total contracts: %d (system: %d + test: %d)", expectedTotalContracts, systemContractCount, numTestContracts) + + // With sync interval of 30s and limit of 2, we need: + // 1: +2 contracts (after 30s) + // 2: +2 contracts (after 60s) + // 3: +2 contracts (after 90s) + // 4: +1 contract (after 120s) = 7 total + // Add buffer time for processing + maxWaitTime := 150 * time.Second + pollInterval := 10 * time.Second + + t.Logf("Starting to poll for contracts. Will wait up to %v", maxWaitTime) + deadline := time.Now().Add(maxWaitTime) + + lastSeenCount := systemContractCount + progressCheckpoints := make(map[int]time.Time) + + for { + statusCode, body, err := fasthttp.Get(nil, fmt.Sprintf("%s/items/contracts/?offset=0&size=100", serverAddress)) + require.NoError(t, err) + require.Equal(t, 200, statusCode) + + contractListing := contractListingRes{} + err = json.Unmarshal(body, &contractListing) + require.NoError(t, err) + + currentCount := int(contractListing.Result.Total) + newContractsSynced := currentCount - systemContractCount + + if currentCount > lastSeenCount { + elapsed := time.Since(progressCheckpoints[systemContractCount]) + if len(progressCheckpoints) == 0 { + progressCheckpoints[systemContractCount] = time.Now() + elapsed = 0 + } + progressCheckpoints[currentCount] = time.Now() + + t.Logf("Progress: %d/%d test contracts synced (total: %d) - elapsed: %v", + newContractsSynced, numTestContracts, currentCount, elapsed) + lastSeenCount = currentCount + } + + // all test contracts are synced + if newContractsSynced >= numTestContracts { + totalTime := time.Since(progressCheckpoints[systemContractCount]) + t.Logf("SUCCESS: All %d test contracts synced in %v", numTestContracts, totalTime) + + assert.GreaterOrEqual(t, len(contractListing.Result.Contracts), numTestContracts, + "Should have at least the test contracts visible") + + // verify proper fields + if len(contractListing.Result.Contracts) > 0 { + sampleContract := contractListing.Result.Contracts[0] + assert.NotEmpty(t, sampleContract.Address, "Contract should have address") + assert.NotEmpty(t, sampleContract.Creator, "Contract should have creator") + assert.Greater(t, sampleContract.Time, uint64(0), "Contract should have timestamp") + } + + break + } + + if time.Now().After(deadline) { + t.Fatalf("Timeout: Only synced %d/%d test contracts after %v. "+ + "Expected all contracts to be synced through pagination (limit=2, interval=30s). "+ + "Total contracts: %d, System contracts: %d", + newContractsSynced, numTestContracts, maxWaitTime, + currentCount, systemContractCount) + } + + time.Sleep(pollInterval) + } + + // ensure pagination doesn't cause duplicates + t.Log("Verifying no duplicate contracts were synced...") + statusCode, body, err = fasthttp.Get(nil, fmt.Sprintf("%s/items/contracts/?offset=0&size=100", serverAddress)) + require.NoError(t, err) + require.Equal(t, 200, statusCode) + + finalListing := contractListingRes{} + err = json.Unmarshal(body, &finalListing) + require.NoError(t, err) + + // duplicates by address + seenAddresses := make(map[string]bool) + for _, contract := range finalListing.Result.Contracts { + addrStr := contract.Address.Hex() + assert.False(t, seenAddresses[addrStr], "Found duplicate contract address: %s", addrStr) + seenAddresses[addrStr] = true + } + + t.Logf("Pagination test completed successfully. No duplicates found among %d contracts", len(finalListing.Result.Contracts)) +} diff --git a/integration/tenscan/tenscan_test.go b/integration/tenscan/tenscan_test.go index 753d1fc29f..37b0835bce 100644 --- a/integration/tenscan/tenscan_test.go +++ b/integration/tenscan/tenscan_test.go @@ -51,13 +51,14 @@ const ( func TestTenscan(t *testing.T) { startPort := integration.TestPorts.TestTenscanPort - createTenNetwork(t, integration.TestPorts.TestTenscanPort) + createTenNetwork(t, integration.TestPorts.TestTenscanPort, 1*time.Second) tenScanConfig := &config.Config{ NodeHostAddress: fmt.Sprintf("http://127.0.0.1:%d", startPort+integration.DefaultHostRPCHTTPOffset), ServerAddress: fmt.Sprintf("127.0.0.1:%d", startPort+integration.DefaultTenscanHTTPPortOffset), LogPath: "sys_out", } + serverAddress := fmt.Sprintf("http://%s", tenScanConfig.ServerAddress) tenScanContainer, err := container.NewTenScanContainer(tenScanConfig) @@ -86,7 +87,14 @@ func TestTenscan(t *testing.T) { statusCode, body, err := fasthttp.Get(nil, fmt.Sprintf("%s/count/contracts/", serverAddress)) assert.NoError(t, err) assert.Equal(t, 200, statusCode) - assert.Equal(t, "{\"count\":23}", string(body)) + // 23 system contracts + assert.Contains(t, string(body), "count") + var contractCountRes struct { + Count int `json:"count"` + } + err = json.Unmarshal(body, &contractCountRes) + assert.NoError(t, err) + assert.GreaterOrEqual(t, contractCountRes.Count, 23, "Should have at least 23 system contracts") statusCode, body, err = fasthttp.Get(nil, fmt.Sprintf("%s/count/transactions/", serverAddress)) assert.NoError(t, err) @@ -104,7 +112,7 @@ func TestTenscan(t *testing.T) { err = json.Unmarshal(body, &historicalTxCountObj) assert.NoError(t, err) - // historical count should be config value (10) plus the additional 5 transactions added in the test + // historical count should be config value (10) plus the additional 8 transactions added in the test (5 transfers) assert.GreaterOrEqual(t, historicalTxCountObj.Count, 15, "Historical count should be >= current count") @@ -119,7 +127,7 @@ func TestTenscan(t *testing.T) { err = json.Unmarshal(body, &historicalContractCountObj) assert.NoError(t, err) - // historical count will just be the config value of 7 + 23 contracts deployed + // historical count will be config value of 7 + 23 system contracts assert.GreaterOrEqual(t, historicalContractCountObj.Count, 30, "Historical count should be >= current count") @@ -437,7 +445,6 @@ func TestTenscan(t *testing.T) { type AttestationReportFetch struct { Result []common.PublicAttestationReport `json:"result"` } - attestationObj := AttestationReportFetch{} err = json.Unmarshal(body, &attestationObj) assert.NoError(t, err) @@ -468,18 +475,19 @@ func waitServerIsReady(serverAddr string) error { } // Creates a single-node TEN network for testing. -func createTenNetwork(t *testing.T, startPort int) { +func createTenNetwork(t *testing.T, startPort int, contractSyncInterval time.Duration) { // Create the TEN network. wallets := params.NewSimWallets(1, 1, integration.EthereumChainID, integration.TenChainID) simParams := params.SimParams{ - NumberOfNodes: 1, - AvgBlockDuration: 2 * time.Second, - ContractRegistryLib: ethereummock.NewContractRegistryLibMock(), - ERC20ContractLib: ethereummock.NewERC20ContractLibMock(), - Wallets: wallets, - StartPort: startPort, - WithPrefunding: true, - L1BeaconPort: integration.TestPorts.TestTenscanPort + integration.DefaultPrysmGatewayPortOffset, + NumberOfNodes: 1, + AvgBlockDuration: 2 * time.Second, + ContractRegistryLib: ethereummock.NewContractRegistryLibMock(), + ERC20ContractLib: ethereummock.NewERC20ContractLibMock(), + Wallets: wallets, + StartPort: startPort, + WithPrefunding: true, + L1BeaconPort: integration.TestPorts.TestTenscanPort + integration.DefaultPrysmGatewayPortOffset, + ContractSyncInterval: &contractSyncInterval, } tenNetwork := network.NewNetworkOfSocketNodes(wallets) @@ -557,6 +565,59 @@ func issueTransactions(t *testing.T, hostWSAddr string, issuerWallet wallet.Wall } } +func deployTestContracts(t *testing.T, hostWSAddr string, deployerWallet wallet.Wallet, numContracts int) { + ctx := context.Background() + + vk, err := viewingkey.GenerateViewingKeyForWallet(deployerWallet) + assert.Nil(t, err) + client, err := rpc.NewEncNetworkClient(hostWSAddr, vk, testlog.Logger()) + assert.Nil(t, err) + authClient := obsclient.NewAuthObsClient(client) + + nonce, err := authClient.NonceAt(ctx, nil) + assert.Nil(t, err) + deployerWallet.SetNonce(nonce) + + // simple contract bytecode - deploys a minimal contract with actual runtime code + // ensures OnCodeChange fires because code is actually stored at the contract address + simpleContractBytecode := gethcommon.Hex2Bytes("6112346000556001601260003960016000f300") + for i := 0; i < numContracts; i++ { + estimatedTx := authClient.EstimateGasAndGasPrice(&types.LegacyTx{ + Nonce: deployerWallet.GetNonceAndIncrement(), + To: nil, // nil To address means contract deployment + Value: big.NewInt(0), + Gas: uint64(2_000_000), + GasPrice: gethcommon.Big1, + Data: simpleContractBytecode, + }) + assert.Nil(t, err) + + signedTx, err := deployerWallet.SignTransaction(estimatedTx) + assert.Nil(t, err) + + err = authClient.SendTransaction(ctx, signedTx) + assert.Nil(t, err) + + var receipt *types.Receipt + for start := time.Now(); time.Since(start) < 2*time.Minute; time.Sleep(time.Second) { + receipt, err = authClient.TransactionReceipt(ctx, signedTx.Hash()) + if err == nil && receipt != nil && receipt.Status == 1 { + fmt.Printf("Contract deployed at: %s\n", receipt.ContractAddress.Hex()) + break + } + } + + if receipt == nil || receipt.Status == 0 { + t.Fatalf("Failed to deploy contract %d", i) + } + + // Small delay between deployments + time.Sleep(500 * time.Millisecond) + } + + fmt.Println("Successfully deployed test contracts: ", numContracts) +} + func waitForFirstRollup(serverAddress string) error { for now := time.Now(); time.Since(now) < 4*time.Minute; time.Sleep(5 * time.Second) { statusCode, _, err := fasthttp.Get(nil, fmt.Sprintf("%s/items/rollup/latest/", serverAddress)) diff --git a/tools/tenscan/backend/tenscan_backend.go b/tools/tenscan/backend/tenscan_backend.go index 472e34add6..ae52e798c7 100644 --- a/tools/tenscan/backend/tenscan_backend.go +++ b/tools/tenscan/backend/tenscan_backend.go @@ -180,3 +180,14 @@ func (b *Backend) SequencerAttestations() ([]common.PublicAttestationReport, err func (b *Backend) Search(query string) (*common.SearchResponse, error) { return b.obsClient.Search(query) } + +func (b *Backend) GetContractListing(offset uint64, size uint64) (*common.ContractListingResponse, error) { + return b.obsClient.GetContractListing(&common.QueryPagination{ + Offset: offset, + Size: uint(size), + }) +} + +func (b *Backend) GetContractByAddress(address gethcommon.Address) (*common.PublicContract, error) { + return b.obsClient.GetContractByAddress(address) +} diff --git a/tools/tenscan/backend/webserver/webserver_routes_items.go b/tools/tenscan/backend/webserver/webserver_routes_items.go index a90758a203..d69554cb21 100644 --- a/tools/tenscan/backend/webserver/webserver_routes_items.go +++ b/tools/tenscan/backend/webserver/webserver_routes_items.go @@ -37,6 +37,10 @@ func routeItems(r *gin.Engine, server *WebServer) { r.GET("/items/transactions/count", server.getTotalTxCount) r.GET("/items/blocks/", server.getBlockListing) + // contracts + r.GET("/items/contracts/", server.getContractListing) + r.GET("/items/contract/:address", server.getContractByAddress) + // search r.GET("/items/search/", server.search) } @@ -359,3 +363,45 @@ func (w *WebServer) search(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"result": results}) } + +func (w *WebServer) getContractListing(c *gin.Context) { + offsetStr := c.DefaultQuery("offset", "0") + sizeStr := c.DefaultQuery("size", "20") + + offset, err := strconv.ParseUint(offsetStr, 10, 32) + if err != nil { + errorHandler(c, fmt.Errorf("unable to parse getContractListing offset units %w", err), w.logger) + return + } + + size, err := strconv.ParseUint(sizeStr, 10, 64) + if err != nil { + errorHandler(c, fmt.Errorf("unable to parse getContractListing size units %w", err), w.logger) + return + } + + contracts, err := w.backend.GetContractListing(offset, size) + if err != nil { + errorHandler(c, fmt.Errorf("unable to execute getContractListing request %w", err), w.logger) + return + } + + c.JSON(http.StatusOK, gin.H{"result": contracts}) +} + +func (w *WebServer) getContractByAddress(c *gin.Context) { + addressStr := c.Param("address") + if !gethcommon.IsHexAddress(addressStr) { + errorHandler(c, fmt.Errorf("invalid contract address: %s", addressStr), w.logger) + return + } + + address := gethcommon.HexToAddress(addressStr) + contract, err := w.backend.GetContractByAddress(address) + if err != nil { + errorHandler(c, fmt.Errorf("unable to execute getContractByAddress request %w", err), w.logger) + return + } + + c.JSON(http.StatusOK, gin.H{"item": contract}) +}