From 4c7da61d16147d136ab2149df2836910f5ea7fb5 Mon Sep 17 00:00:00 2001 From: Fedor Partanskiy Date: Thu, 6 Feb 2025 23:53:27 +0300 Subject: [PATCH] bump github.com/hyperledger/fabric-protos-go-apiv2 v0.3.6 Signed-off-by: Fedor Partanskiy --- go.mod | 2 +- go.sum | 4 +- .../peer/chaincode.pb.go | 45 +- .../peer/chaincode_shim.pb.go | 605 +++++++++++------- vendor/modules.txt | 4 +- 5 files changed, 414 insertions(+), 246 deletions(-) diff --git a/go.mod b/go.mod index 02c8b4d8c93..b6d6ae5491c 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/hyperledger/fabric-chaincode-go/v2 v2.1.0 github.com/hyperledger/fabric-config v0.3.0 github.com/hyperledger/fabric-lib-go v1.1.3-0.20240523144151-25edd1eaf5f5 - github.com/hyperledger/fabric-protos-go-apiv2 v0.3.5 + github.com/hyperledger/fabric-protos-go-apiv2 v0.3.6 github.com/kr/pretty v0.3.1 github.com/miekg/pkcs11 v1.1.1 github.com/onsi/ginkgo/v2 v2.20.2 diff --git a/go.sum b/go.sum index 9ac8b3bba44..f889a53ed9b 100644 --- a/go.sum +++ b/go.sum @@ -893,8 +893,8 @@ github.com/hyperledger/fabric-config v0.3.0 h1:FS5/dc9GAniljP6RYxQRG92AaiBVoN2vT github.com/hyperledger/fabric-config v0.3.0/go.mod h1:kSevTn78K83Suc++JsEo7Nt1tYIPqDajW+ORz3OhWlg= github.com/hyperledger/fabric-lib-go v1.1.3-0.20240523144151-25edd1eaf5f5 h1:RPWTL5wxAb+xDOrsCU3QYZP65305F8v3PaOyzdbPVMU= github.com/hyperledger/fabric-lib-go v1.1.3-0.20240523144151-25edd1eaf5f5/go.mod h1:SHNCq8AB0VpHAmvJEtdbzabv6NNV1F48JdmDihasBjc= -github.com/hyperledger/fabric-protos-go-apiv2 v0.3.5 h1:1VoshSAb1ZrOgzIT3siU7+4rLAfyoN7jQm2AdVk0k78= -github.com/hyperledger/fabric-protos-go-apiv2 v0.3.5/go.mod h1:bau/6AJhvEcu9GKKYHlDXAxXKzYNfhP6xu2GXuxEcFk= +github.com/hyperledger/fabric-protos-go-apiv2 v0.3.6 h1:IMpCMJCFktzPLWepq/V48vZJ8VY5rY7gX220aBdBbKQ= +github.com/hyperledger/fabric-protos-go-apiv2 v0.3.6/go.mod h1:bJnwzfv03oZQeCc863pdGTDgf5nmCy6Za3RAE7d2XsQ= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= diff --git a/vendor/github.com/hyperledger/fabric-protos-go-apiv2/peer/chaincode.pb.go b/vendor/github.com/hyperledger/fabric-protos-go-apiv2/peer/chaincode.pb.go index 80504403c46..094a54d28e5 100644 --- a/vendor/github.com/hyperledger/fabric-protos-go-apiv2/peer/chaincode.pb.go +++ b/vendor/github.com/hyperledger/fabric-protos-go-apiv2/peer/chaincode.pb.go @@ -629,8 +629,10 @@ type ChaincodeAdditionalParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UseWriteBatch bool `protobuf:"varint,1,opt,name=use_write_batch,json=useWriteBatch,proto3" json:"use_write_batch,omitempty"` // an indication that the peer can handle state write batches - MaxSizeWriteBatch uint32 `protobuf:"varint,2,opt,name=max_size_write_batch,json=maxSizeWriteBatch,proto3" json:"max_size_write_batch,omitempty"` // maximum size of batches with write state + UseWriteBatch bool `protobuf:"varint,1,opt,name=use_write_batch,json=useWriteBatch,proto3" json:"use_write_batch,omitempty"` // an indication that the peer can handle state write batches + MaxSizeWriteBatch uint32 `protobuf:"varint,2,opt,name=max_size_write_batch,json=maxSizeWriteBatch,proto3" json:"max_size_write_batch,omitempty"` // maximum size of batches with write state + UseGetMultipleKeys bool `protobuf:"varint,3,opt,name=use_get_multiple_keys,json=useGetMultipleKeys,proto3" json:"use_get_multiple_keys,omitempty"` // an indication that the peer can handle get multiple keys + MaxSizeGetMultipleKeys uint32 `protobuf:"varint,4,opt,name=max_size_get_multiple_keys,json=maxSizeGetMultipleKeys,proto3" json:"max_size_get_multiple_keys,omitempty"` // maximum size of batches with get multiple keys } func (x *ChaincodeAdditionalParams) Reset() { @@ -679,6 +681,20 @@ func (x *ChaincodeAdditionalParams) GetMaxSizeWriteBatch() uint32 { return 0 } +func (x *ChaincodeAdditionalParams) GetUseGetMultipleKeys() bool { + if x != nil { + return x.UseGetMultipleKeys + } + return false +} + +func (x *ChaincodeAdditionalParams) GetMaxSizeGetMultipleKeys() uint32 { + if x != nil { + return x.MaxSizeGetMultipleKeys + } + return 0 +} + var File_peer_chaincode_proto protoreflect.FileDescriptor var file_peer_chaincode_proto_rawDesc = []byte{ @@ -761,15 +777,22 @@ var file_peer_chaincode_proto_rawDesc = []byte{ 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x74, 0x0a, - 0x19, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, - 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x77, - 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x11, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x42, 0xa0, 0x01, 0x0a, 0x22, 0x6f, 0x72, 0x67, 0x2e, 0x68, 0x79, 0x70, 0x65, + 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xe3, 0x01, + 0x0a, 0x19, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x75, + 0x73, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x6d, 0x61, 0x78, + 0x53, 0x69, 0x7a, 0x65, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4b, + 0x65, 0x79, 0x73, 0x42, 0xa0, 0x01, 0x0a, 0x22, 0x6f, 0x72, 0x67, 0x2e, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x70, 0x65, 0x65, 0x72, 0x42, 0x0e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x69, diff --git a/vendor/github.com/hyperledger/fabric-protos-go-apiv2/peer/chaincode_shim.pb.go b/vendor/github.com/hyperledger/fabric-protos-go-apiv2/peer/chaincode_shim.pb.go index 83bdbe71014..3f7a2443faf 100644 --- a/vendor/github.com/hyperledger/fabric-protos-go-apiv2/peer/chaincode_shim.pb.go +++ b/vendor/github.com/hyperledger/fabric-protos-go-apiv2/peer/chaincode_shim.pb.go @@ -52,6 +52,7 @@ const ( ChaincodeMessage_GET_PRIVATE_DATA_HASH ChaincodeMessage_Type = 22 ChaincodeMessage_PURGE_PRIVATE_DATA ChaincodeMessage_Type = 23 ChaincodeMessage_WRITE_BATCH_STATE ChaincodeMessage_Type = 24 + ChaincodeMessage_GET_STATE_MULTIPLE ChaincodeMessage_Type = 25 ) // Enum value maps for ChaincodeMessage_Type. @@ -81,6 +82,7 @@ var ( 22: "GET_PRIVATE_DATA_HASH", 23: "PURGE_PRIVATE_DATA", 24: "WRITE_BATCH_STATE", + 25: "GET_STATE_MULTIPLE", } ChaincodeMessage_Type_value = map[string]int32{ "UNDEFINED": 0, @@ -107,6 +109,7 @@ var ( "GET_PRIVATE_DATA_HASH": 22, "PURGE_PRIVATE_DATA": 23, "WRITE_BATCH_STATE": 24, + "GET_STATE_MULTIPLE": 25, } ) @@ -189,7 +192,7 @@ func (x WriteRecord_Type) Number() protoreflect.EnumNumber { // Deprecated: Use WriteRecord_Type.Descriptor instead. func (WriteRecord_Type) EnumDescriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{6, 0} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{8, 0} } type ChaincodeMessage struct { @@ -404,6 +407,113 @@ func (x *GetStateMetadata) GetCollection() string { return "" } +// GetStateMultiple is the payload of the ChaincodeMessage. +// It contains the keys to be retrieved from the ledger. +// If a collection is specified, the keys will be retrieved +// from the collection (i.e., the private state). +type GetStateMultiple struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` + Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"` +} + +func (x *GetStateMultiple) Reset() { + *x = GetStateMultiple{} + if protoimpl.UnsafeEnabled { + mi := &file_peer_chaincode_shim_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStateMultiple) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStateMultiple) ProtoMessage() {} + +func (x *GetStateMultiple) ProtoReflect() protoreflect.Message { + mi := &file_peer_chaincode_shim_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStateMultiple.ProtoReflect.Descriptor instead. +func (*GetStateMultiple) Descriptor() ([]byte, []int) { + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{3} +} + +func (x *GetStateMultiple) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +func (x *GetStateMultiple) GetCollection() string { + if x != nil { + return x.Collection + } + return "" +} + +// GetStateMultipleResult is result of executing the GetStateMiltiple request +type GetStateMultipleResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Values [][]byte `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *GetStateMultipleResult) Reset() { + *x = GetStateMultipleResult{} + if protoimpl.UnsafeEnabled { + mi := &file_peer_chaincode_shim_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStateMultipleResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStateMultipleResult) ProtoMessage() {} + +func (x *GetStateMultipleResult) ProtoReflect() protoreflect.Message { + mi := &file_peer_chaincode_shim_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStateMultipleResult.ProtoReflect.Descriptor instead. +func (*GetStateMultipleResult) Descriptor() ([]byte, []int) { + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{4} +} + +func (x *GetStateMultipleResult) GetValues() [][]byte { + if x != nil { + return x.Values + } + return nil +} + // PutState is the payload of a ChaincodeMessage. It contains a key and value // which needs to be written to the transaction's write set. If the collection is // specified, the key and value would be written to the transaction's private @@ -421,7 +531,7 @@ type PutState struct { func (x *PutState) Reset() { *x = PutState{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[3] + mi := &file_peer_chaincode_shim_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -434,7 +544,7 @@ func (x *PutState) String() string { func (*PutState) ProtoMessage() {} func (x *PutState) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[3] + mi := &file_peer_chaincode_shim_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -447,7 +557,7 @@ func (x *PutState) ProtoReflect() protoreflect.Message { // Deprecated: Use PutState.ProtoReflect.Descriptor instead. func (*PutState) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{3} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{5} } func (x *PutState) GetKey() string { @@ -484,7 +594,7 @@ type PutStateMetadata struct { func (x *PutStateMetadata) Reset() { *x = PutStateMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[4] + mi := &file_peer_chaincode_shim_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -497,7 +607,7 @@ func (x *PutStateMetadata) String() string { func (*PutStateMetadata) ProtoMessage() {} func (x *PutStateMetadata) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[4] + mi := &file_peer_chaincode_shim_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -510,7 +620,7 @@ func (x *PutStateMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use PutStateMetadata.ProtoReflect.Descriptor instead. func (*PutStateMetadata) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{4} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{6} } func (x *PutStateMetadata) GetKey() string { @@ -546,7 +656,7 @@ type WriteBatchState struct { func (x *WriteBatchState) Reset() { *x = WriteBatchState{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[5] + mi := &file_peer_chaincode_shim_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -559,7 +669,7 @@ func (x *WriteBatchState) String() string { func (*WriteBatchState) ProtoMessage() {} func (x *WriteBatchState) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[5] + mi := &file_peer_chaincode_shim_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -572,7 +682,7 @@ func (x *WriteBatchState) ProtoReflect() protoreflect.Message { // Deprecated: Use WriteBatchState.ProtoReflect.Descriptor instead. func (*WriteBatchState) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{5} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{7} } func (x *WriteBatchState) GetRec() []*WriteRecord { @@ -599,7 +709,7 @@ type WriteRecord struct { func (x *WriteRecord) Reset() { *x = WriteRecord{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[6] + mi := &file_peer_chaincode_shim_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -612,7 +722,7 @@ func (x *WriteRecord) String() string { func (*WriteRecord) ProtoMessage() {} func (x *WriteRecord) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[6] + mi := &file_peer_chaincode_shim_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -625,7 +735,7 @@ func (x *WriteRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use WriteRecord.ProtoReflect.Descriptor instead. func (*WriteRecord) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{6} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{8} } func (x *WriteRecord) GetKey() string { @@ -679,7 +789,7 @@ type DelState struct { func (x *DelState) Reset() { *x = DelState{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[7] + mi := &file_peer_chaincode_shim_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -692,7 +802,7 @@ func (x *DelState) String() string { func (*DelState) ProtoMessage() {} func (x *DelState) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[7] + mi := &file_peer_chaincode_shim_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -705,7 +815,7 @@ func (x *DelState) ProtoReflect() protoreflect.Message { // Deprecated: Use DelState.ProtoReflect.Descriptor instead. func (*DelState) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{7} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{9} } func (x *DelState) GetKey() string { @@ -734,7 +844,7 @@ type PurgePrivateState struct { func (x *PurgePrivateState) Reset() { *x = PurgePrivateState{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[8] + mi := &file_peer_chaincode_shim_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -747,7 +857,7 @@ func (x *PurgePrivateState) String() string { func (*PurgePrivateState) ProtoMessage() {} func (x *PurgePrivateState) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[8] + mi := &file_peer_chaincode_shim_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -760,7 +870,7 @@ func (x *PurgePrivateState) ProtoReflect() protoreflect.Message { // Deprecated: Use PurgePrivateState.ProtoReflect.Descriptor instead. func (*PurgePrivateState) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{8} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{10} } func (x *PurgePrivateState) GetKey() string { @@ -795,7 +905,7 @@ type GetStateByRange struct { func (x *GetStateByRange) Reset() { *x = GetStateByRange{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[9] + mi := &file_peer_chaincode_shim_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -808,7 +918,7 @@ func (x *GetStateByRange) String() string { func (*GetStateByRange) ProtoMessage() {} func (x *GetStateByRange) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[9] + mi := &file_peer_chaincode_shim_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -821,7 +931,7 @@ func (x *GetStateByRange) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStateByRange.ProtoReflect.Descriptor instead. func (*GetStateByRange) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{9} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{11} } func (x *GetStateByRange) GetStartKey() string { @@ -869,7 +979,7 @@ type GetQueryResult struct { func (x *GetQueryResult) Reset() { *x = GetQueryResult{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[10] + mi := &file_peer_chaincode_shim_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -882,7 +992,7 @@ func (x *GetQueryResult) String() string { func (*GetQueryResult) ProtoMessage() {} func (x *GetQueryResult) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[10] + mi := &file_peer_chaincode_shim_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -895,7 +1005,7 @@ func (x *GetQueryResult) ProtoReflect() protoreflect.Message { // Deprecated: Use GetQueryResult.ProtoReflect.Descriptor instead. func (*GetQueryResult) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{10} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{12} } func (x *GetQueryResult) GetQuery() string { @@ -934,7 +1044,7 @@ type QueryMetadata struct { func (x *QueryMetadata) Reset() { *x = QueryMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[11] + mi := &file_peer_chaincode_shim_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -947,7 +1057,7 @@ func (x *QueryMetadata) String() string { func (*QueryMetadata) ProtoMessage() {} func (x *QueryMetadata) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[11] + mi := &file_peer_chaincode_shim_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -960,7 +1070,7 @@ func (x *QueryMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryMetadata.ProtoReflect.Descriptor instead. func (*QueryMetadata) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{11} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{13} } func (x *QueryMetadata) GetPageSize() int32 { @@ -990,7 +1100,7 @@ type GetHistoryForKey struct { func (x *GetHistoryForKey) Reset() { *x = GetHistoryForKey{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[12] + mi := &file_peer_chaincode_shim_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1003,7 +1113,7 @@ func (x *GetHistoryForKey) String() string { func (*GetHistoryForKey) ProtoMessage() {} func (x *GetHistoryForKey) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[12] + mi := &file_peer_chaincode_shim_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1016,7 +1126,7 @@ func (x *GetHistoryForKey) ProtoReflect() protoreflect.Message { // Deprecated: Use GetHistoryForKey.ProtoReflect.Descriptor instead. func (*GetHistoryForKey) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{12} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{14} } func (x *GetHistoryForKey) GetKey() string { @@ -1037,7 +1147,7 @@ type QueryStateNext struct { func (x *QueryStateNext) Reset() { *x = QueryStateNext{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[13] + mi := &file_peer_chaincode_shim_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1050,7 +1160,7 @@ func (x *QueryStateNext) String() string { func (*QueryStateNext) ProtoMessage() {} func (x *QueryStateNext) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[13] + mi := &file_peer_chaincode_shim_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1063,7 +1173,7 @@ func (x *QueryStateNext) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryStateNext.ProtoReflect.Descriptor instead. func (*QueryStateNext) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{13} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{15} } func (x *QueryStateNext) GetId() string { @@ -1084,7 +1194,7 @@ type QueryStateClose struct { func (x *QueryStateClose) Reset() { *x = QueryStateClose{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[14] + mi := &file_peer_chaincode_shim_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1097,7 +1207,7 @@ func (x *QueryStateClose) String() string { func (*QueryStateClose) ProtoMessage() {} func (x *QueryStateClose) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[14] + mi := &file_peer_chaincode_shim_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1110,7 +1220,7 @@ func (x *QueryStateClose) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryStateClose.ProtoReflect.Descriptor instead. func (*QueryStateClose) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{14} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{16} } func (x *QueryStateClose) GetId() string { @@ -1132,7 +1242,7 @@ type QueryResultBytes struct { func (x *QueryResultBytes) Reset() { *x = QueryResultBytes{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[15] + mi := &file_peer_chaincode_shim_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1145,7 +1255,7 @@ func (x *QueryResultBytes) String() string { func (*QueryResultBytes) ProtoMessage() {} func (x *QueryResultBytes) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[15] + mi := &file_peer_chaincode_shim_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1158,7 +1268,7 @@ func (x *QueryResultBytes) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryResultBytes.ProtoReflect.Descriptor instead. func (*QueryResultBytes) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{15} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{17} } func (x *QueryResultBytes) GetResultBytes() []byte { @@ -1187,7 +1297,7 @@ type QueryResponse struct { func (x *QueryResponse) Reset() { *x = QueryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[16] + mi := &file_peer_chaincode_shim_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1200,7 +1310,7 @@ func (x *QueryResponse) String() string { func (*QueryResponse) ProtoMessage() {} func (x *QueryResponse) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[16] + mi := &file_peer_chaincode_shim_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1213,7 +1323,7 @@ func (x *QueryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryResponse.ProtoReflect.Descriptor instead. func (*QueryResponse) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{16} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{18} } func (x *QueryResponse) GetResults() []*QueryResultBytes { @@ -1258,7 +1368,7 @@ type QueryResponseMetadata struct { func (x *QueryResponseMetadata) Reset() { *x = QueryResponseMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[17] + mi := &file_peer_chaincode_shim_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1271,7 +1381,7 @@ func (x *QueryResponseMetadata) String() string { func (*QueryResponseMetadata) ProtoMessage() {} func (x *QueryResponseMetadata) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[17] + mi := &file_peer_chaincode_shim_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1284,7 +1394,7 @@ func (x *QueryResponseMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryResponseMetadata.ProtoReflect.Descriptor instead. func (*QueryResponseMetadata) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{17} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{19} } func (x *QueryResponseMetadata) GetFetchedRecordsCount() int32 { @@ -1313,7 +1423,7 @@ type StateMetadata struct { func (x *StateMetadata) Reset() { *x = StateMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[18] + mi := &file_peer_chaincode_shim_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1326,7 +1436,7 @@ func (x *StateMetadata) String() string { func (*StateMetadata) ProtoMessage() {} func (x *StateMetadata) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[18] + mi := &file_peer_chaincode_shim_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1339,7 +1449,7 @@ func (x *StateMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use StateMetadata.ProtoReflect.Descriptor instead. func (*StateMetadata) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{18} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{20} } func (x *StateMetadata) GetMetakey() string { @@ -1367,7 +1477,7 @@ type StateMetadataResult struct { func (x *StateMetadataResult) Reset() { *x = StateMetadataResult{} if protoimpl.UnsafeEnabled { - mi := &file_peer_chaincode_shim_proto_msgTypes[19] + mi := &file_peer_chaincode_shim_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1380,7 +1490,7 @@ func (x *StateMetadataResult) String() string { func (*StateMetadataResult) ProtoMessage() {} func (x *StateMetadataResult) ProtoReflect() protoreflect.Message { - mi := &file_peer_chaincode_shim_proto_msgTypes[19] + mi := &file_peer_chaincode_shim_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1393,7 +1503,7 @@ func (x *StateMetadataResult) ProtoReflect() protoreflect.Message { // Deprecated: Use StateMetadataResult.ProtoReflect.Descriptor instead. func (*StateMetadataResult) Descriptor() ([]byte, []int) { - return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{19} + return file_peer_chaincode_shim_proto_rawDescGZIP(), []int{21} } func (x *StateMetadataResult) GetEntries() []*StateMetadata { @@ -1413,7 +1523,7 @@ var file_peer_chaincode_shim_proto_rawDesc = []byte{ 0x13, 0x70, 0x65, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x06, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x06, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, @@ -1433,7 +1543,7 @@ var file_peer_chaincode_shim_proto_rawDesc = []byte{ 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xc1, 0x03, 0x0a, 0x04, 0x54, 0x79, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xd9, 0x03, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, @@ -1461,133 +1571,142 @@ var file_peer_chaincode_shim_proto_rawDesc = []byte{ 0x54, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x16, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x55, 0x52, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x17, 0x12, 0x15, 0x0a, 0x11, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, - 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x18, 0x22, 0x3c, 0x0a, - 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x44, 0x0a, 0x10, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x18, 0x12, 0x16, 0x0a, + 0x12, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, + 0x50, 0x4c, 0x45, 0x10, 0x19, 0x22, 0x3c, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x44, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x52, 0x0a, 0x08, 0x50, 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 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, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x6e, 0x22, 0x30, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x22, 0x52, 0x0a, 0x08, 0x50, 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 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, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x38, 0x0a, 0x0f, 0x57, 0x72, 0x69, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x03, 0x72, 0x65, 0x63, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x03, 0x72, 0x65, 0x63, 0x22, 0x9b, 0x02, 0x0a, 0x0b, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 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, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x55, + 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x55, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x55, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x15, + 0x12, 0x16, 0x0a, 0x12, 0x50, 0x55, 0x52, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, + 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x17, 0x22, 0x3c, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x11, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, + 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x38, - 0x0a, 0x0f, 0x57, 0x72, 0x69, 0x74, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x25, 0x0a, 0x03, 0x72, 0x65, 0x63, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x52, 0x03, 0x72, 0x65, 0x63, 0x22, 0x9b, 0x02, 0x0a, 0x0b, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 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, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x63, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, - 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x55, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x55, 0x54, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, 0x15, 0x12, 0x16, - 0x0a, 0x12, 0x50, 0x55, 0x52, 0x47, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, - 0x44, 0x41, 0x54, 0x41, 0x10, 0x17, 0x22, 0x3c, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x11, 0x50, 0x75, 0x72, 0x67, 0x65, 0x50, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, - 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x62, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x24, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x4b, 0x65, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x22, 0x20, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x4e, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x21, 0x0a, 0x0f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x34, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x8a, 0x01, - 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x32, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x67, 0x0a, 0x15, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x65, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x13, 0x66, 0x65, 0x74, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x22, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x61, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x61, 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, 0x22, 0x46, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2f, 0x0a, 0x07, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x32, 0x56, 0x0a, 0x10, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x42, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x28, 0x01, 0x30, 0x01, 0x32, 0x4e, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x41, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x28, 0x01, 0x30, 0x01, 0x42, 0xa4, 0x01, 0x0a, 0x22, 0x6f, 0x72, 0x67, 0x2e, 0x68, 0x79, 0x70, - 0x65, 0x72, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x70, 0x65, 0x65, 0x72, 0x42, 0x12, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x68, 0x69, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x79, - 0x70, 0x65, 0x72, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, - 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2d, 0x67, 0x6f, 0x2d, 0x61, 0x70, 0x69, 0x76, 0x32, - 0x2f, 0x70, 0x65, 0x65, 0x72, 0xa2, 0x02, 0x03, 0x50, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x73, 0xca, 0x02, 0x06, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0xe2, 0x02, 0x12, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x06, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x62, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x24, + 0x0a, 0x10, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x4b, + 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x22, 0x20, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x21, 0x0a, 0x0f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x34, 0x0a, 0x10, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, + 0x8a, 0x01, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x07, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x67, 0x0a, 0x15, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x65, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x66, 0x65, 0x74, 0x63, 0x68, 0x65, 0x64, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, + 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x6f, + 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x61, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x61, 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, 0x22, 0x46, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2f, 0x0a, + 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x32, 0x56, + 0x0a, 0x10, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, 0x32, 0x4e, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x73, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0xa4, 0x01, 0x0a, 0x22, 0x6f, 0x72, 0x67, 0x2e, 0x68, + 0x79, 0x70, 0x65, 0x72, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x66, 0x61, 0x62, 0x72, 0x69, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2e, 0x70, 0x65, 0x65, 0x72, 0x42, 0x12, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x68, 0x69, 0x6d, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x68, 0x79, 0x70, 0x65, 0x72, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x66, 0x61, 0x62, 0x72, + 0x69, 0x63, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2d, 0x67, 0x6f, 0x2d, 0x61, 0x70, 0x69, + 0x76, 0x32, 0x2f, 0x70, 0x65, 0x65, 0x72, 0xa2, 0x02, 0x03, 0x50, 0x58, 0x58, 0xaa, 0x02, 0x06, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0xca, 0x02, 0x06, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0xe2, + 0x02, 0x12, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1603,45 +1722,47 @@ func file_peer_chaincode_shim_proto_rawDescGZIP() []byte { } var file_peer_chaincode_shim_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_peer_chaincode_shim_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_peer_chaincode_shim_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_peer_chaincode_shim_proto_goTypes = []any{ - (ChaincodeMessage_Type)(0), // 0: protos.ChaincodeMessage.Type - (WriteRecord_Type)(0), // 1: protos.WriteRecord.Type - (*ChaincodeMessage)(nil), // 2: protos.ChaincodeMessage - (*GetState)(nil), // 3: protos.GetState - (*GetStateMetadata)(nil), // 4: protos.GetStateMetadata - (*PutState)(nil), // 5: protos.PutState - (*PutStateMetadata)(nil), // 6: protos.PutStateMetadata - (*WriteBatchState)(nil), // 7: protos.WriteBatchState - (*WriteRecord)(nil), // 8: protos.WriteRecord - (*DelState)(nil), // 9: protos.DelState - (*PurgePrivateState)(nil), // 10: protos.PurgePrivateState - (*GetStateByRange)(nil), // 11: protos.GetStateByRange - (*GetQueryResult)(nil), // 12: protos.GetQueryResult - (*QueryMetadata)(nil), // 13: protos.QueryMetadata - (*GetHistoryForKey)(nil), // 14: protos.GetHistoryForKey - (*QueryStateNext)(nil), // 15: protos.QueryStateNext - (*QueryStateClose)(nil), // 16: protos.QueryStateClose - (*QueryResultBytes)(nil), // 17: protos.QueryResultBytes - (*QueryResponse)(nil), // 18: protos.QueryResponse - (*QueryResponseMetadata)(nil), // 19: protos.QueryResponseMetadata - (*StateMetadata)(nil), // 20: protos.StateMetadata - (*StateMetadataResult)(nil), // 21: protos.StateMetadataResult - (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp - (*SignedProposal)(nil), // 23: protos.SignedProposal - (*ChaincodeEvent)(nil), // 24: protos.ChaincodeEvent + (ChaincodeMessage_Type)(0), // 0: protos.ChaincodeMessage.Type + (WriteRecord_Type)(0), // 1: protos.WriteRecord.Type + (*ChaincodeMessage)(nil), // 2: protos.ChaincodeMessage + (*GetState)(nil), // 3: protos.GetState + (*GetStateMetadata)(nil), // 4: protos.GetStateMetadata + (*GetStateMultiple)(nil), // 5: protos.GetStateMultiple + (*GetStateMultipleResult)(nil), // 6: protos.GetStateMultipleResult + (*PutState)(nil), // 7: protos.PutState + (*PutStateMetadata)(nil), // 8: protos.PutStateMetadata + (*WriteBatchState)(nil), // 9: protos.WriteBatchState + (*WriteRecord)(nil), // 10: protos.WriteRecord + (*DelState)(nil), // 11: protos.DelState + (*PurgePrivateState)(nil), // 12: protos.PurgePrivateState + (*GetStateByRange)(nil), // 13: protos.GetStateByRange + (*GetQueryResult)(nil), // 14: protos.GetQueryResult + (*QueryMetadata)(nil), // 15: protos.QueryMetadata + (*GetHistoryForKey)(nil), // 16: protos.GetHistoryForKey + (*QueryStateNext)(nil), // 17: protos.QueryStateNext + (*QueryStateClose)(nil), // 18: protos.QueryStateClose + (*QueryResultBytes)(nil), // 19: protos.QueryResultBytes + (*QueryResponse)(nil), // 20: protos.QueryResponse + (*QueryResponseMetadata)(nil), // 21: protos.QueryResponseMetadata + (*StateMetadata)(nil), // 22: protos.StateMetadata + (*StateMetadataResult)(nil), // 23: protos.StateMetadataResult + (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp + (*SignedProposal)(nil), // 25: protos.SignedProposal + (*ChaincodeEvent)(nil), // 26: protos.ChaincodeEvent } var file_peer_chaincode_shim_proto_depIdxs = []int32{ 0, // 0: protos.ChaincodeMessage.type:type_name -> protos.ChaincodeMessage.Type - 22, // 1: protos.ChaincodeMessage.timestamp:type_name -> google.protobuf.Timestamp - 23, // 2: protos.ChaincodeMessage.proposal:type_name -> protos.SignedProposal - 24, // 3: protos.ChaincodeMessage.chaincode_event:type_name -> protos.ChaincodeEvent - 20, // 4: protos.PutStateMetadata.metadata:type_name -> protos.StateMetadata - 8, // 5: protos.WriteBatchState.rec:type_name -> protos.WriteRecord - 20, // 6: protos.WriteRecord.metadata:type_name -> protos.StateMetadata + 24, // 1: protos.ChaincodeMessage.timestamp:type_name -> google.protobuf.Timestamp + 25, // 2: protos.ChaincodeMessage.proposal:type_name -> protos.SignedProposal + 26, // 3: protos.ChaincodeMessage.chaincode_event:type_name -> protos.ChaincodeEvent + 22, // 4: protos.PutStateMetadata.metadata:type_name -> protos.StateMetadata + 10, // 5: protos.WriteBatchState.rec:type_name -> protos.WriteRecord + 22, // 6: protos.WriteRecord.metadata:type_name -> protos.StateMetadata 1, // 7: protos.WriteRecord.type:type_name -> protos.WriteRecord.Type - 17, // 8: protos.QueryResponse.results:type_name -> protos.QueryResultBytes - 20, // 9: protos.StateMetadataResult.entries:type_name -> protos.StateMetadata + 19, // 8: protos.QueryResponse.results:type_name -> protos.QueryResultBytes + 22, // 9: protos.StateMetadataResult.entries:type_name -> protos.StateMetadata 2, // 10: protos.ChaincodeSupport.Register:input_type -> protos.ChaincodeMessage 2, // 11: protos.Chaincode.Connect:input_type -> protos.ChaincodeMessage 2, // 12: protos.ChaincodeSupport.Register:output_type -> protos.ChaincodeMessage @@ -1698,7 +1819,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*PutState); i { + switch v := v.(*GetStateMultiple); i { case 0: return &v.state case 1: @@ -1710,7 +1831,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*PutStateMetadata); i { + switch v := v.(*GetStateMultipleResult); i { case 0: return &v.state case 1: @@ -1722,7 +1843,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*WriteBatchState); i { + switch v := v.(*PutState); i { case 0: return &v.state case 1: @@ -1734,7 +1855,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*WriteRecord); i { + switch v := v.(*PutStateMetadata); i { case 0: return &v.state case 1: @@ -1746,7 +1867,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*DelState); i { + switch v := v.(*WriteBatchState); i { case 0: return &v.state case 1: @@ -1758,7 +1879,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*PurgePrivateState); i { + switch v := v.(*WriteRecord); i { case 0: return &v.state case 1: @@ -1770,7 +1891,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*GetStateByRange); i { + switch v := v.(*DelState); i { case 0: return &v.state case 1: @@ -1782,7 +1903,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*GetQueryResult); i { + switch v := v.(*PurgePrivateState); i { case 0: return &v.state case 1: @@ -1794,7 +1915,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*QueryMetadata); i { + switch v := v.(*GetStateByRange); i { case 0: return &v.state case 1: @@ -1806,7 +1927,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*GetHistoryForKey); i { + switch v := v.(*GetQueryResult); i { case 0: return &v.state case 1: @@ -1818,7 +1939,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*QueryStateNext); i { + switch v := v.(*QueryMetadata); i { case 0: return &v.state case 1: @@ -1830,7 +1951,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*QueryStateClose); i { + switch v := v.(*GetHistoryForKey); i { case 0: return &v.state case 1: @@ -1842,7 +1963,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*QueryResultBytes); i { + switch v := v.(*QueryStateNext); i { case 0: return &v.state case 1: @@ -1854,7 +1975,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*QueryResponse); i { + switch v := v.(*QueryStateClose); i { case 0: return &v.state case 1: @@ -1866,7 +1987,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*QueryResponseMetadata); i { + switch v := v.(*QueryResultBytes); i { case 0: return &v.state case 1: @@ -1878,7 +1999,7 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*StateMetadata); i { + switch v := v.(*QueryResponse); i { case 0: return &v.state case 1: @@ -1890,6 +2011,30 @@ func file_peer_chaincode_shim_proto_init() { } } file_peer_chaincode_shim_proto_msgTypes[19].Exporter = func(v any, i int) any { + switch v := v.(*QueryResponseMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_peer_chaincode_shim_proto_msgTypes[20].Exporter = func(v any, i int) any { + switch v := v.(*StateMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_peer_chaincode_shim_proto_msgTypes[21].Exporter = func(v any, i int) any { switch v := v.(*StateMetadataResult); i { case 0: return &v.state @@ -1908,7 +2053,7 @@ func file_peer_chaincode_shim_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_peer_chaincode_shim_proto_rawDesc, NumEnums: 2, - NumMessages: 20, + NumMessages: 22, NumExtensions: 0, NumServices: 2, }, diff --git a/vendor/modules.txt b/vendor/modules.txt index 1da9c298feb..021780d1eef 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -256,8 +256,8 @@ github.com/hyperledger/fabric-lib-go/common/metrics/prometheus github.com/hyperledger/fabric-lib-go/common/metrics/statsd github.com/hyperledger/fabric-lib-go/common/metrics/statsd/goruntime github.com/hyperledger/fabric-lib-go/healthz -# github.com/hyperledger/fabric-protos-go-apiv2 v0.3.5 -## explicit; go 1.21.0 +# github.com/hyperledger/fabric-protos-go-apiv2 v0.3.6 +## explicit; go 1.22.0 github.com/hyperledger/fabric-protos-go-apiv2/common github.com/hyperledger/fabric-protos-go-apiv2/discovery github.com/hyperledger/fabric-protos-go-apiv2/gateway