From a19e9be315a70b0b3287ac5e8d809ca2c5ec922b Mon Sep 17 00:00:00 2001 From: lxgr-linux Date: Tue, 17 Dec 2024 03:07:25 +0100 Subject: [PATCH] feat(#242): Added keepers --- api/cardchain/cardchain/encounter.pulsar.go | 1901 +++++++ api/cardchain/cardchain/genesis.pulsar.go | 276 +- api/cardchain/cardchain/image.pulsar.go | 571 ++ api/cardchain/cardchain/num.pulsar.go | 7 +- api/cardchain/cardchain/params.pulsar.go | 1699 +++++- .../cardchain/product_details.pulsar.go | 774 +++ api/cardchain/cardchain/query.pulsar.go | 2198 +++++++- api/cardchain/cardchain/query_grpc.pb.go | 78 +- .../cardchain/running_average.pulsar.go | 687 +++ api/cardchain/cardchain/sell_offer.pulsar.go | 914 ++++ api/cardchain/cardchain/server.pulsar.go | 686 +++ api/cardchain/cardchain/set.pulsar.go | 3424 ++++++++++++ api/cardchain/cardchain/tx.pulsar.go | 4740 ++++++++++++++--- api/cardchain/cardchain/tx_grpc.pb.go | 111 + docs/static/openapi.yml | 2 +- proto/cardchain/cardchain/encounter.proto | 21 + proto/cardchain/cardchain/genesis.proto | 11 +- .../cardchain/{num.proto => image.proto} | 2 +- proto/cardchain/cardchain/params.proto | 30 +- .../cardchain/cardchain/product_details.proto | 11 + proto/cardchain/cardchain/query.proto | 43 +- .../cardchain/cardchain/running_average.proto | 6 + proto/cardchain/cardchain/sell_offer.proto | 22 + proto/cardchain/cardchain/server.proto | 10 + proto/cardchain/cardchain/set.proto | 40 + proto/cardchain/cardchain/tx.proto | 370 +- .../generic_type_keeper.go | 106 +- .../keyworded_generic_type_keeper.go | 37 +- x/cardchain/keeper/incentives.go | 49 + x/cardchain/keeper/incentives_test.go | 27 + x/cardchain/keeper/keeper.go | 23 + .../keeper/msg_server_product_details.go | 75 + .../keeper/msg_server_product_details_test.go | 104 + x/cardchain/keeper/pools.go | 35 + x/cardchain/keeper/pools_test.go | 36 + x/cardchain/keeper/product_details.go | 111 + x/cardchain/keeper/product_details_test.go | 59 + x/cardchain/keeper/query_product_details.go | 53 + .../keeper/query_product_details_test.go | 115 + x/cardchain/module/autocli.go | 29 + x/cardchain/module/genesis.go | 9 + x/cardchain/module/genesis_test.go | 11 + x/cardchain/module/simulation.go | 80 + x/cardchain/simulation/product_details.go | 131 + x/cardchain/types/codec.go | 5 + x/cardchain/types/encounter.pb.go | 996 ++++ x/cardchain/types/genesis.go | 17 +- x/cardchain/types/genesis.pb.go | 125 +- x/cardchain/types/genesis_test.go | 37 +- x/cardchain/types/image.pb.go | 316 ++ x/cardchain/types/keys.go | 5 + x/cardchain/types/messages_product_details.go | 61 + .../types/messages_product_details_test.go | 102 + x/cardchain/types/num.pb.go | 3 +- x/cardchain/types/params.pb.go | 1112 +++- x/cardchain/types/product_details.pb.go | 457 ++ x/cardchain/types/query.pb.go | 881 ++- x/cardchain/types/query.pb.gw.go | 184 + x/cardchain/types/running_average.pb.go | 376 ++ x/cardchain/types/sell_offer.pb.go | 532 ++ x/cardchain/types/server.pb.go | 386 ++ x/cardchain/types/set.pb.go | 1642 ++++++ x/cardchain/types/tx.pb.go | 1647 +++++- 63 files changed, 27227 insertions(+), 1381 deletions(-) create mode 100644 api/cardchain/cardchain/encounter.pulsar.go create mode 100644 api/cardchain/cardchain/image.pulsar.go create mode 100644 api/cardchain/cardchain/product_details.pulsar.go create mode 100644 api/cardchain/cardchain/running_average.pulsar.go create mode 100644 api/cardchain/cardchain/sell_offer.pulsar.go create mode 100644 api/cardchain/cardchain/server.pulsar.go create mode 100644 api/cardchain/cardchain/set.pulsar.go create mode 100644 proto/cardchain/cardchain/encounter.proto rename proto/cardchain/cardchain/{num.proto => image.proto} (78%) create mode 100644 proto/cardchain/cardchain/product_details.proto create mode 100644 proto/cardchain/cardchain/running_average.proto create mode 100644 proto/cardchain/cardchain/sell_offer.proto create mode 100644 proto/cardchain/cardchain/server.proto create mode 100644 proto/cardchain/cardchain/set.proto create mode 100644 x/cardchain/keeper/incentives.go create mode 100644 x/cardchain/keeper/incentives_test.go create mode 100644 x/cardchain/keeper/msg_server_product_details.go create mode 100644 x/cardchain/keeper/msg_server_product_details_test.go create mode 100644 x/cardchain/keeper/pools.go create mode 100644 x/cardchain/keeper/pools_test.go create mode 100644 x/cardchain/keeper/product_details.go create mode 100644 x/cardchain/keeper/product_details_test.go create mode 100644 x/cardchain/keeper/query_product_details.go create mode 100644 x/cardchain/keeper/query_product_details_test.go create mode 100644 x/cardchain/simulation/product_details.go create mode 100644 x/cardchain/types/encounter.pb.go create mode 100644 x/cardchain/types/image.pb.go create mode 100644 x/cardchain/types/messages_product_details.go create mode 100644 x/cardchain/types/messages_product_details_test.go create mode 100644 x/cardchain/types/product_details.pb.go create mode 100644 x/cardchain/types/running_average.pb.go create mode 100644 x/cardchain/types/sell_offer.pb.go create mode 100644 x/cardchain/types/server.pb.go create mode 100644 x/cardchain/types/set.pb.go diff --git a/api/cardchain/cardchain/encounter.pulsar.go b/api/cardchain/cardchain/encounter.pulsar.go new file mode 100644 index 00000000..f8002c77 --- /dev/null +++ b/api/cardchain/cardchain/encounter.pulsar.go @@ -0,0 +1,1901 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package cardchain + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sort "sort" + sync "sync" +) + +var _ protoreflect.List = (*_Encounter_2_list)(nil) + +type _Encounter_2_list struct { + list *[]uint64 +} + +func (x *_Encounter_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Encounter_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfUint64((*x.list)[i]) +} + +func (x *_Encounter_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Encounter_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Encounter_2_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Encounter at list field Drawlist as it is not of Message kind")) +} + +func (x *_Encounter_2_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Encounter_2_list) NewElement() protoreflect.Value { + v := uint64(0) + return protoreflect.ValueOfUint64(v) +} + +func (x *_Encounter_2_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.Map = (*_Encounter_5_map)(nil) + +type _Encounter_5_map struct { + m *map[string]string +} + +func (x *_Encounter_5_map) Len() int { + if x.m == nil { + return 0 + } + return len(*x.m) +} + +func (x *_Encounter_5_map) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) { + if x.m == nil { + return + } + for k, v := range *x.m { + mapKey := (protoreflect.MapKey)(protoreflect.ValueOfString(k)) + mapValue := protoreflect.ValueOfString(v) + if !f(mapKey, mapValue) { + break + } + } +} + +func (x *_Encounter_5_map) Has(key protoreflect.MapKey) bool { + if x.m == nil { + return false + } + keyUnwrapped := key.String() + concreteValue := keyUnwrapped + _, ok := (*x.m)[concreteValue] + return ok +} + +func (x *_Encounter_5_map) Clear(key protoreflect.MapKey) { + if x.m == nil { + return + } + keyUnwrapped := key.String() + concreteKey := keyUnwrapped + delete(*x.m, concreteKey) +} + +func (x *_Encounter_5_map) Get(key protoreflect.MapKey) protoreflect.Value { + if x.m == nil { + return protoreflect.Value{} + } + keyUnwrapped := key.String() + concreteKey := keyUnwrapped + v, ok := (*x.m)[concreteKey] + if !ok { + return protoreflect.Value{} + } + return protoreflect.ValueOfString(v) +} + +func (x *_Encounter_5_map) Set(key protoreflect.MapKey, value protoreflect.Value) { + if !key.IsValid() || !value.IsValid() { + panic("invalid key or value provided") + } + keyUnwrapped := key.String() + concreteKey := keyUnwrapped + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.m)[concreteKey] = concreteValue +} + +func (x *_Encounter_5_map) Mutable(key protoreflect.MapKey) protoreflect.Value { + panic("should not call Mutable on protoreflect.Map whose value is not of type protoreflect.Message") +} + +func (x *_Encounter_5_map) NewValue() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_Encounter_5_map) IsValid() bool { + return x.m != nil +} + +var ( + md_Encounter protoreflect.MessageDescriptor + fd_Encounter_id protoreflect.FieldDescriptor + fd_Encounter_drawlist protoreflect.FieldDescriptor + fd_Encounter_proven protoreflect.FieldDescriptor + fd_Encounter_owner protoreflect.FieldDescriptor + fd_Encounter_parameters protoreflect.FieldDescriptor + fd_Encounter_imageId protoreflect.FieldDescriptor + fd_Encounter_name protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_encounter_proto_init() + md_Encounter = File_cardchain_cardchain_encounter_proto.Messages().ByName("Encounter") + fd_Encounter_id = md_Encounter.Fields().ByName("id") + fd_Encounter_drawlist = md_Encounter.Fields().ByName("drawlist") + fd_Encounter_proven = md_Encounter.Fields().ByName("proven") + fd_Encounter_owner = md_Encounter.Fields().ByName("owner") + fd_Encounter_parameters = md_Encounter.Fields().ByName("parameters") + fd_Encounter_imageId = md_Encounter.Fields().ByName("imageId") + fd_Encounter_name = md_Encounter.Fields().ByName("name") +} + +var _ protoreflect.Message = (*fastReflection_Encounter)(nil) + +type fastReflection_Encounter Encounter + +func (x *Encounter) ProtoReflect() protoreflect.Message { + return (*fastReflection_Encounter)(x) +} + +func (x *Encounter) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_encounter_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Encounter_messageType fastReflection_Encounter_messageType +var _ protoreflect.MessageType = fastReflection_Encounter_messageType{} + +type fastReflection_Encounter_messageType struct{} + +func (x fastReflection_Encounter_messageType) Zero() protoreflect.Message { + return (*fastReflection_Encounter)(nil) +} +func (x fastReflection_Encounter_messageType) New() protoreflect.Message { + return new(fastReflection_Encounter) +} +func (x fastReflection_Encounter_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Encounter +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Encounter) Descriptor() protoreflect.MessageDescriptor { + return md_Encounter +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Encounter) Type() protoreflect.MessageType { + return _fastReflection_Encounter_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Encounter) New() protoreflect.Message { + return new(fastReflection_Encounter) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Encounter) Interface() protoreflect.ProtoMessage { + return (*Encounter)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Encounter) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Id != uint64(0) { + value := protoreflect.ValueOfUint64(x.Id) + if !f(fd_Encounter_id, value) { + return + } + } + if len(x.Drawlist) != 0 { + value := protoreflect.ValueOfList(&_Encounter_2_list{list: &x.Drawlist}) + if !f(fd_Encounter_drawlist, value) { + return + } + } + if x.Proven != false { + value := protoreflect.ValueOfBool(x.Proven) + if !f(fd_Encounter_proven, value) { + return + } + } + if x.Owner != "" { + value := protoreflect.ValueOfString(x.Owner) + if !f(fd_Encounter_owner, value) { + return + } + } + if len(x.Parameters) != 0 { + value := protoreflect.ValueOfMap(&_Encounter_5_map{m: &x.Parameters}) + if !f(fd_Encounter_parameters, value) { + return + } + } + if x.ImageId != uint64(0) { + value := protoreflect.ValueOfUint64(x.ImageId) + if !f(fd_Encounter_imageId, value) { + return + } + } + if x.Name != "" { + value := protoreflect.ValueOfString(x.Name) + if !f(fd_Encounter_name, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Encounter) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.Encounter.id": + return x.Id != uint64(0) + case "cardchain.cardchain.Encounter.drawlist": + return len(x.Drawlist) != 0 + case "cardchain.cardchain.Encounter.proven": + return x.Proven != false + case "cardchain.cardchain.Encounter.owner": + return x.Owner != "" + case "cardchain.cardchain.Encounter.parameters": + return len(x.Parameters) != 0 + case "cardchain.cardchain.Encounter.imageId": + return x.ImageId != uint64(0) + case "cardchain.cardchain.Encounter.name": + return x.Name != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Encounter")) + } + panic(fmt.Errorf("message cardchain.cardchain.Encounter does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Encounter) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.Encounter.id": + x.Id = uint64(0) + case "cardchain.cardchain.Encounter.drawlist": + x.Drawlist = nil + case "cardchain.cardchain.Encounter.proven": + x.Proven = false + case "cardchain.cardchain.Encounter.owner": + x.Owner = "" + case "cardchain.cardchain.Encounter.parameters": + x.Parameters = nil + case "cardchain.cardchain.Encounter.imageId": + x.ImageId = uint64(0) + case "cardchain.cardchain.Encounter.name": + x.Name = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Encounter")) + } + panic(fmt.Errorf("message cardchain.cardchain.Encounter does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Encounter) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.Encounter.id": + value := x.Id + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Encounter.drawlist": + if len(x.Drawlist) == 0 { + return protoreflect.ValueOfList(&_Encounter_2_list{}) + } + listValue := &_Encounter_2_list{list: &x.Drawlist} + return protoreflect.ValueOfList(listValue) + case "cardchain.cardchain.Encounter.proven": + value := x.Proven + return protoreflect.ValueOfBool(value) + case "cardchain.cardchain.Encounter.owner": + value := x.Owner + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.Encounter.parameters": + if len(x.Parameters) == 0 { + return protoreflect.ValueOfMap(&_Encounter_5_map{}) + } + mapValue := &_Encounter_5_map{m: &x.Parameters} + return protoreflect.ValueOfMap(mapValue) + case "cardchain.cardchain.Encounter.imageId": + value := x.ImageId + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Encounter.name": + value := x.Name + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Encounter")) + } + panic(fmt.Errorf("message cardchain.cardchain.Encounter does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Encounter) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.Encounter.id": + x.Id = value.Uint() + case "cardchain.cardchain.Encounter.drawlist": + lv := value.List() + clv := lv.(*_Encounter_2_list) + x.Drawlist = *clv.list + case "cardchain.cardchain.Encounter.proven": + x.Proven = value.Bool() + case "cardchain.cardchain.Encounter.owner": + x.Owner = value.Interface().(string) + case "cardchain.cardchain.Encounter.parameters": + mv := value.Map() + cmv := mv.(*_Encounter_5_map) + x.Parameters = *cmv.m + case "cardchain.cardchain.Encounter.imageId": + x.ImageId = value.Uint() + case "cardchain.cardchain.Encounter.name": + x.Name = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Encounter")) + } + panic(fmt.Errorf("message cardchain.cardchain.Encounter does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Encounter) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.Encounter.drawlist": + if x.Drawlist == nil { + x.Drawlist = []uint64{} + } + value := &_Encounter_2_list{list: &x.Drawlist} + return protoreflect.ValueOfList(value) + case "cardchain.cardchain.Encounter.parameters": + if x.Parameters == nil { + x.Parameters = make(map[string]string) + } + value := &_Encounter_5_map{m: &x.Parameters} + return protoreflect.ValueOfMap(value) + case "cardchain.cardchain.Encounter.id": + panic(fmt.Errorf("field id of message cardchain.cardchain.Encounter is not mutable")) + case "cardchain.cardchain.Encounter.proven": + panic(fmt.Errorf("field proven of message cardchain.cardchain.Encounter is not mutable")) + case "cardchain.cardchain.Encounter.owner": + panic(fmt.Errorf("field owner of message cardchain.cardchain.Encounter is not mutable")) + case "cardchain.cardchain.Encounter.imageId": + panic(fmt.Errorf("field imageId of message cardchain.cardchain.Encounter is not mutable")) + case "cardchain.cardchain.Encounter.name": + panic(fmt.Errorf("field name of message cardchain.cardchain.Encounter is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Encounter")) + } + panic(fmt.Errorf("message cardchain.cardchain.Encounter does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Encounter) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.Encounter.id": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Encounter.drawlist": + list := []uint64{} + return protoreflect.ValueOfList(&_Encounter_2_list{list: &list}) + case "cardchain.cardchain.Encounter.proven": + return protoreflect.ValueOfBool(false) + case "cardchain.cardchain.Encounter.owner": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.Encounter.parameters": + m := make(map[string]string) + return protoreflect.ValueOfMap(&_Encounter_5_map{m: &m}) + case "cardchain.cardchain.Encounter.imageId": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Encounter.name": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Encounter")) + } + panic(fmt.Errorf("message cardchain.cardchain.Encounter does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Encounter) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.Encounter", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Encounter) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Encounter) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Encounter) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Encounter) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Encounter) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Id != 0 { + n += 1 + runtime.Sov(uint64(x.Id)) + } + if len(x.Drawlist) > 0 { + l = 0 + for _, e := range x.Drawlist { + l += runtime.Sov(uint64(e)) + } + n += 1 + runtime.Sov(uint64(l)) + l + } + if x.Proven { + n += 2 + } + l = len(x.Owner) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Parameters) > 0 { + SiZeMaP := func(k string, v string) { + mapEntrySize := 1 + len(k) + runtime.Sov(uint64(len(k))) + 1 + len(v) + runtime.Sov(uint64(len(v))) + n += mapEntrySize + 1 + runtime.Sov(uint64(mapEntrySize)) + } + if options.Deterministic { + sortme := make([]string, 0, len(x.Parameters)) + for k := range x.Parameters { + sortme = append(sortme, k) + } + sort.Strings(sortme) + for _, k := range sortme { + v := x.Parameters[k] + SiZeMaP(k, v) + } + } else { + for k, v := range x.Parameters { + SiZeMaP(k, v) + } + } + } + if x.ImageId != 0 { + n += 1 + runtime.Sov(uint64(x.ImageId)) + } + l = len(x.Name) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Encounter) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Name) > 0 { + i -= len(x.Name) + copy(dAtA[i:], x.Name) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) + i-- + dAtA[i] = 0x3a + } + if x.ImageId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.ImageId)) + i-- + dAtA[i] = 0x30 + } + if len(x.Parameters) > 0 { + MaRsHaLmAp := func(k string, v string) (protoiface.MarshalOutput, error) { + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = runtime.EncodeVarint(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(k) + copy(dAtA[i:], k) + i = runtime.EncodeVarint(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = runtime.EncodeVarint(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x2a + return protoiface.MarshalOutput{}, nil + } + if options.Deterministic { + keysForParameters := make([]string, 0, len(x.Parameters)) + for k := range x.Parameters { + keysForParameters = append(keysForParameters, string(k)) + } + sort.Slice(keysForParameters, func(i, j int) bool { + return keysForParameters[i] < keysForParameters[j] + }) + for iNdEx := len(keysForParameters) - 1; iNdEx >= 0; iNdEx-- { + v := x.Parameters[string(keysForParameters[iNdEx])] + out, err := MaRsHaLmAp(keysForParameters[iNdEx], v) + if err != nil { + return out, err + } + } + } else { + for k := range x.Parameters { + v := x.Parameters[k] + out, err := MaRsHaLmAp(k, v) + if err != nil { + return out, err + } + } + } + } + if len(x.Owner) > 0 { + i -= len(x.Owner) + copy(dAtA[i:], x.Owner) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Owner))) + i-- + dAtA[i] = 0x22 + } + if x.Proven { + i-- + if x.Proven { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(x.Drawlist) > 0 { + var pksize2 int + for _, num := range x.Drawlist { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num := range x.Drawlist { + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0x12 + } + if x.Id != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Id)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Encounter) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Encounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Encounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + x.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Drawlist = append(x.Drawlist, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.Drawlist) == 0 { + x.Drawlist = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Drawlist = append(x.Drawlist, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Drawlist", wireType) + } + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Proven", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Proven = bool(v != 0) + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Owner", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Owner = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Parameters == nil { + x.Parameters = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postStringIndexmapkey > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postStringIndexmapvalue > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > postIndex { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + x.Parameters[mapkey] = mapvalue + iNdEx = postIndex + case 6: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ImageId", wireType) + } + x.ImageId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.ImageId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_EncounterWithImage protoreflect.MessageDescriptor + fd_EncounterWithImage_encounter protoreflect.FieldDescriptor + fd_EncounterWithImage_image protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_encounter_proto_init() + md_EncounterWithImage = File_cardchain_cardchain_encounter_proto.Messages().ByName("EncounterWithImage") + fd_EncounterWithImage_encounter = md_EncounterWithImage.Fields().ByName("encounter") + fd_EncounterWithImage_image = md_EncounterWithImage.Fields().ByName("image") +} + +var _ protoreflect.Message = (*fastReflection_EncounterWithImage)(nil) + +type fastReflection_EncounterWithImage EncounterWithImage + +func (x *EncounterWithImage) ProtoReflect() protoreflect.Message { + return (*fastReflection_EncounterWithImage)(x) +} + +func (x *EncounterWithImage) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_encounter_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_EncounterWithImage_messageType fastReflection_EncounterWithImage_messageType +var _ protoreflect.MessageType = fastReflection_EncounterWithImage_messageType{} + +type fastReflection_EncounterWithImage_messageType struct{} + +func (x fastReflection_EncounterWithImage_messageType) Zero() protoreflect.Message { + return (*fastReflection_EncounterWithImage)(nil) +} +func (x fastReflection_EncounterWithImage_messageType) New() protoreflect.Message { + return new(fastReflection_EncounterWithImage) +} +func (x fastReflection_EncounterWithImage_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_EncounterWithImage +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_EncounterWithImage) Descriptor() protoreflect.MessageDescriptor { + return md_EncounterWithImage +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_EncounterWithImage) Type() protoreflect.MessageType { + return _fastReflection_EncounterWithImage_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_EncounterWithImage) New() protoreflect.Message { + return new(fastReflection_EncounterWithImage) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_EncounterWithImage) Interface() protoreflect.ProtoMessage { + return (*EncounterWithImage)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_EncounterWithImage) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Encounter != nil { + value := protoreflect.ValueOfMessage(x.Encounter.ProtoReflect()) + if !f(fd_EncounterWithImage_encounter, value) { + return + } + } + if len(x.Image) != 0 { + value := protoreflect.ValueOfBytes(x.Image) + if !f(fd_EncounterWithImage_image, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_EncounterWithImage) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.EncounterWithImage.encounter": + return x.Encounter != nil + case "cardchain.cardchain.EncounterWithImage.image": + return len(x.Image) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.EncounterWithImage")) + } + panic(fmt.Errorf("message cardchain.cardchain.EncounterWithImage does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EncounterWithImage) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.EncounterWithImage.encounter": + x.Encounter = nil + case "cardchain.cardchain.EncounterWithImage.image": + x.Image = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.EncounterWithImage")) + } + panic(fmt.Errorf("message cardchain.cardchain.EncounterWithImage does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_EncounterWithImage) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.EncounterWithImage.encounter": + value := x.Encounter + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.EncounterWithImage.image": + value := x.Image + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.EncounterWithImage")) + } + panic(fmt.Errorf("message cardchain.cardchain.EncounterWithImage does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EncounterWithImage) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.EncounterWithImage.encounter": + x.Encounter = value.Message().Interface().(*Encounter) + case "cardchain.cardchain.EncounterWithImage.image": + x.Image = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.EncounterWithImage")) + } + panic(fmt.Errorf("message cardchain.cardchain.EncounterWithImage does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EncounterWithImage) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.EncounterWithImage.encounter": + if x.Encounter == nil { + x.Encounter = new(Encounter) + } + return protoreflect.ValueOfMessage(x.Encounter.ProtoReflect()) + case "cardchain.cardchain.EncounterWithImage.image": + panic(fmt.Errorf("field image of message cardchain.cardchain.EncounterWithImage is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.EncounterWithImage")) + } + panic(fmt.Errorf("message cardchain.cardchain.EncounterWithImage does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_EncounterWithImage) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.EncounterWithImage.encounter": + m := new(Encounter) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.EncounterWithImage.image": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.EncounterWithImage")) + } + panic(fmt.Errorf("message cardchain.cardchain.EncounterWithImage does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_EncounterWithImage) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.EncounterWithImage", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_EncounterWithImage) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_EncounterWithImage) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_EncounterWithImage) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_EncounterWithImage) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*EncounterWithImage) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Encounter != nil { + l = options.Size(x.Encounter) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Image) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*EncounterWithImage) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Image) > 0 { + i -= len(x.Image) + copy(dAtA[i:], x.Image) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Image))) + i-- + dAtA[i] = 0x12 + } + if x.Encounter != nil { + encoded, err := options.Marshal(x.Encounter) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*EncounterWithImage) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EncounterWithImage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: EncounterWithImage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Encounter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Encounter == nil { + x.Encounter = &Encounter{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Encounter); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Image = append(x.Image[:0], dAtA[iNdEx:postIndex]...) + if x.Image == nil { + x.Image = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cardchain/cardchain/encounter.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Encounter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Drawlist []uint64 `protobuf:"varint,2,rep,packed,name=drawlist,proto3" json:"drawlist,omitempty"` + Proven bool `protobuf:"varint,3,opt,name=proven,proto3" json:"proven,omitempty"` + Owner string `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"` + Parameters map[string]string `protobuf:"bytes,5,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ImageId uint64 `protobuf:"varint,6,opt,name=imageId,proto3" json:"imageId,omitempty"` + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Encounter) Reset() { + *x = Encounter{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_encounter_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Encounter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Encounter) ProtoMessage() {} + +// Deprecated: Use Encounter.ProtoReflect.Descriptor instead. +func (*Encounter) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_encounter_proto_rawDescGZIP(), []int{0} +} + +func (x *Encounter) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Encounter) GetDrawlist() []uint64 { + if x != nil { + return x.Drawlist + } + return nil +} + +func (x *Encounter) GetProven() bool { + if x != nil { + return x.Proven + } + return false +} + +func (x *Encounter) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *Encounter) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *Encounter) GetImageId() uint64 { + if x != nil { + return x.ImageId + } + return 0 +} + +func (x *Encounter) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type EncounterWithImage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Encounter *Encounter `protobuf:"bytes,1,opt,name=encounter,proto3" json:"encounter,omitempty"` + Image []byte `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` +} + +func (x *EncounterWithImage) Reset() { + *x = EncounterWithImage{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_encounter_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EncounterWithImage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EncounterWithImage) ProtoMessage() {} + +// Deprecated: Use EncounterWithImage.ProtoReflect.Descriptor instead. +func (*EncounterWithImage) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_encounter_proto_rawDescGZIP(), []int{1} +} + +func (x *EncounterWithImage) GetEncounter() *Encounter { + if x != nil { + return x.Encounter + } + return nil +} + +func (x *EncounterWithImage) GetImage() []byte { + if x != nil { + return x.Image + } + return nil +} + +var File_cardchain_cardchain_encounter_proto protoreflect.FileDescriptor + +var file_cardchain_cardchain_encounter_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xa2, 0x02, 0x0a, 0x09, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x64, 0x72, 0x61, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x08, 0x64, 0x72, 0x61, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, + 0x6f, 0x76, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x76, + 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x68, 0x0a, 0x12, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x65, + 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, + 0xd6, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x0e, 0x45, 0x6e, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, + 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, + 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cardchain_cardchain_encounter_proto_rawDescOnce sync.Once + file_cardchain_cardchain_encounter_proto_rawDescData = file_cardchain_cardchain_encounter_proto_rawDesc +) + +func file_cardchain_cardchain_encounter_proto_rawDescGZIP() []byte { + file_cardchain_cardchain_encounter_proto_rawDescOnce.Do(func() { + file_cardchain_cardchain_encounter_proto_rawDescData = protoimpl.X.CompressGZIP(file_cardchain_cardchain_encounter_proto_rawDescData) + }) + return file_cardchain_cardchain_encounter_proto_rawDescData +} + +var file_cardchain_cardchain_encounter_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_cardchain_cardchain_encounter_proto_goTypes = []interface{}{ + (*Encounter)(nil), // 0: cardchain.cardchain.Encounter + (*EncounterWithImage)(nil), // 1: cardchain.cardchain.EncounterWithImage + nil, // 2: cardchain.cardchain.Encounter.ParametersEntry +} +var file_cardchain_cardchain_encounter_proto_depIdxs = []int32{ + 2, // 0: cardchain.cardchain.Encounter.parameters:type_name -> cardchain.cardchain.Encounter.ParametersEntry + 0, // 1: cardchain.cardchain.EncounterWithImage.encounter:type_name -> cardchain.cardchain.Encounter + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_cardchain_cardchain_encounter_proto_init() } +func file_cardchain_cardchain_encounter_proto_init() { + if File_cardchain_cardchain_encounter_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cardchain_cardchain_encounter_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Encounter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_encounter_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EncounterWithImage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cardchain_cardchain_encounter_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cardchain_cardchain_encounter_proto_goTypes, + DependencyIndexes: file_cardchain_cardchain_encounter_proto_depIdxs, + MessageInfos: file_cardchain_cardchain_encounter_proto_msgTypes, + }.Build() + File_cardchain_cardchain_encounter_proto = out.File + file_cardchain_cardchain_encounter_proto_rawDesc = nil + file_cardchain_cardchain_encounter_proto_goTypes = nil + file_cardchain_cardchain_encounter_proto_depIdxs = nil +} diff --git a/api/cardchain/cardchain/genesis.pulsar.go b/api/cardchain/cardchain/genesis.pulsar.go index 95f741db..c48c933d 100644 --- a/api/cardchain/cardchain/genesis.pulsar.go +++ b/api/cardchain/cardchain/genesis.pulsar.go @@ -14,15 +14,70 @@ import ( sync "sync" ) +var _ protoreflect.List = (*_GenesisState_2_list)(nil) + +type _GenesisState_2_list struct { + list *[]*ProductDetails +} + +func (x *_GenesisState_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*ProductDetails) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*ProductDetails) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_2_list) AppendMutable() protoreflect.Value { + v := new(ProductDetails) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_2_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_2_list) NewElement() protoreflect.Value { + v := new(ProductDetails) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_2_list) IsValid() bool { + return x.list != nil +} + var ( - md_GenesisState protoreflect.MessageDescriptor - fd_GenesisState_params protoreflect.FieldDescriptor + md_GenesisState protoreflect.MessageDescriptor + fd_GenesisState_params protoreflect.FieldDescriptor + fd_GenesisState_productDetailsList protoreflect.FieldDescriptor + fd_GenesisState_productDetailsCount protoreflect.FieldDescriptor ) func init() { file_cardchain_cardchain_genesis_proto_init() md_GenesisState = File_cardchain_cardchain_genesis_proto.Messages().ByName("GenesisState") fd_GenesisState_params = md_GenesisState.Fields().ByName("params") + fd_GenesisState_productDetailsList = md_GenesisState.Fields().ByName("productDetailsList") + fd_GenesisState_productDetailsCount = md_GenesisState.Fields().ByName("productDetailsCount") } var _ protoreflect.Message = (*fastReflection_GenesisState)(nil) @@ -96,6 +151,18 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } + if len(x.ProductDetailsList) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_2_list{list: &x.ProductDetailsList}) + if !f(fd_GenesisState_productDetailsList, value) { + return + } + } + if x.ProductDetailsCount != uint64(0) { + value := protoreflect.ValueOfUint64(x.ProductDetailsCount) + if !f(fd_GenesisState_productDetailsCount, value) { + return + } + } } // Has reports whether a field is populated. @@ -113,6 +180,10 @@ func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool switch fd.FullName() { case "cardchain.cardchain.GenesisState.params": return x.Params != nil + case "cardchain.cardchain.GenesisState.productDetailsList": + return len(x.ProductDetailsList) != 0 + case "cardchain.cardchain.GenesisState.productDetailsCount": + return x.ProductDetailsCount != uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.GenesisState")) @@ -131,6 +202,10 @@ func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { case "cardchain.cardchain.GenesisState.params": x.Params = nil + case "cardchain.cardchain.GenesisState.productDetailsList": + x.ProductDetailsList = nil + case "cardchain.cardchain.GenesisState.productDetailsCount": + x.ProductDetailsCount = uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.GenesisState")) @@ -150,6 +225,15 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto case "cardchain.cardchain.GenesisState.params": value := x.Params return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.GenesisState.productDetailsList": + if len(x.ProductDetailsList) == 0 { + return protoreflect.ValueOfList(&_GenesisState_2_list{}) + } + listValue := &_GenesisState_2_list{list: &x.ProductDetailsList} + return protoreflect.ValueOfList(listValue) + case "cardchain.cardchain.GenesisState.productDetailsCount": + value := x.ProductDetailsCount + return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.GenesisState")) @@ -172,6 +256,12 @@ func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value switch fd.FullName() { case "cardchain.cardchain.GenesisState.params": x.Params = value.Message().Interface().(*Params) + case "cardchain.cardchain.GenesisState.productDetailsList": + lv := value.List() + clv := lv.(*_GenesisState_2_list) + x.ProductDetailsList = *clv.list + case "cardchain.cardchain.GenesisState.productDetailsCount": + x.ProductDetailsCount = value.Uint() default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.GenesisState")) @@ -197,6 +287,14 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p x.Params = new(Params) } return protoreflect.ValueOfMessage(x.Params.ProtoReflect()) + case "cardchain.cardchain.GenesisState.productDetailsList": + if x.ProductDetailsList == nil { + x.ProductDetailsList = []*ProductDetails{} + } + value := &_GenesisState_2_list{list: &x.ProductDetailsList} + return protoreflect.ValueOfList(value) + case "cardchain.cardchain.GenesisState.productDetailsCount": + panic(fmt.Errorf("field productDetailsCount of message cardchain.cardchain.GenesisState is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.GenesisState")) @@ -213,6 +311,11 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) case "cardchain.cardchain.GenesisState.params": m := new(Params) return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.GenesisState.productDetailsList": + list := []*ProductDetails{} + return protoreflect.ValueOfList(&_GenesisState_2_list{list: &list}) + case "cardchain.cardchain.GenesisState.productDetailsCount": + return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.GenesisState")) @@ -286,6 +389,15 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { l = options.Size(x.Params) n += 1 + l + runtime.Sov(uint64(l)) } + if len(x.ProductDetailsList) > 0 { + for _, e := range x.ProductDetailsList { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.ProductDetailsCount != 0 { + n += 1 + runtime.Sov(uint64(x.ProductDetailsCount)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -315,6 +427,27 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.ProductDetailsCount != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.ProductDetailsCount)) + i-- + dAtA[i] = 0x18 + } + if len(x.ProductDetailsList) > 0 { + for iNdEx := len(x.ProductDetailsList) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.ProductDetailsList[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + } if x.Params != nil { encoded, err := options.Marshal(x.Params) if err != nil { @@ -414,6 +547,59 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProductDetailsList", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ProductDetailsList = append(x.ProductDetailsList, &ProductDetails{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ProductDetailsList[len(x.ProductDetailsList)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProductDetailsCount", wireType) + } + x.ProductDetailsCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.ProductDetailsCount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -469,7 +655,9 @@ type GenesisState struct { unknownFields protoimpl.UnknownFields // params defines all the parameters of the module. - Params *Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params,omitempty"` + Params *Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params,omitempty"` + ProductDetailsList []*ProductDetails `protobuf:"bytes,2,rep,name=productDetailsList,proto3" json:"productDetailsList,omitempty"` + ProductDetailsCount uint64 `protobuf:"varint,3,opt,name=productDetailsCount,proto3" json:"productDetailsCount,omitempty"` } func (x *GenesisState) Reset() { @@ -499,6 +687,20 @@ func (x *GenesisState) GetParams() *Params { return nil } +func (x *GenesisState) GetProductDetailsList() []*ProductDetails { + if x != nil { + return x.ProductDetailsList + } + return nil +} + +func (x *GenesisState) GetProductDetailsCount() uint64 { + if x != nil { + return x.ProductDetailsCount + } + return 0 +} + var File_cardchain_cardchain_genesis_proto protoreflect.FileDescriptor var file_cardchain_cardchain_genesis_proto_rawDesc = []byte{ @@ -510,26 +712,37 @@ var file_cardchain_cardchain_genesis_proto_rawDesc = []byte{ 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x4e, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x42, 0xd4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, - 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, - 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, - 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, - 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdb, + 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x59, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xd4, 0x01, 0x0a, + 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, + 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -546,16 +759,18 @@ func file_cardchain_cardchain_genesis_proto_rawDescGZIP() []byte { var file_cardchain_cardchain_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cardchain_cardchain_genesis_proto_goTypes = []interface{}{ - (*GenesisState)(nil), // 0: cardchain.cardchain.GenesisState - (*Params)(nil), // 1: cardchain.cardchain.Params + (*GenesisState)(nil), // 0: cardchain.cardchain.GenesisState + (*Params)(nil), // 1: cardchain.cardchain.Params + (*ProductDetails)(nil), // 2: cardchain.cardchain.ProductDetails } var file_cardchain_cardchain_genesis_proto_depIdxs = []int32{ 1, // 0: cardchain.cardchain.GenesisState.params:type_name -> cardchain.cardchain.Params - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 2, // 1: cardchain.cardchain.GenesisState.productDetailsList:type_name -> cardchain.cardchain.ProductDetails + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } func init() { file_cardchain_cardchain_genesis_proto_init() } @@ -564,6 +779,7 @@ func file_cardchain_cardchain_genesis_proto_init() { return } file_cardchain_cardchain_params_proto_init() + file_cardchain_cardchain_product_details_proto_init() if !protoimpl.UnsafeEnabled { file_cardchain_cardchain_genesis_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GenesisState); i { diff --git a/api/cardchain/cardchain/image.pulsar.go b/api/cardchain/cardchain/image.pulsar.go new file mode 100644 index 00000000..627dece1 --- /dev/null +++ b/api/cardchain/cardchain/image.pulsar.go @@ -0,0 +1,571 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package cardchain + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_Image protoreflect.MessageDescriptor + fd_Image_image protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_image_proto_init() + md_Image = File_cardchain_cardchain_image_proto.Messages().ByName("Image") + fd_Image_image = md_Image.Fields().ByName("image") +} + +var _ protoreflect.Message = (*fastReflection_Image)(nil) + +type fastReflection_Image Image + +func (x *Image) ProtoReflect() protoreflect.Message { + return (*fastReflection_Image)(x) +} + +func (x *Image) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_image_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Image_messageType fastReflection_Image_messageType +var _ protoreflect.MessageType = fastReflection_Image_messageType{} + +type fastReflection_Image_messageType struct{} + +func (x fastReflection_Image_messageType) Zero() protoreflect.Message { + return (*fastReflection_Image)(nil) +} +func (x fastReflection_Image_messageType) New() protoreflect.Message { + return new(fastReflection_Image) +} +func (x fastReflection_Image_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Image +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Image) Descriptor() protoreflect.MessageDescriptor { + return md_Image +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Image) Type() protoreflect.MessageType { + return _fastReflection_Image_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Image) New() protoreflect.Message { + return new(fastReflection_Image) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Image) Interface() protoreflect.ProtoMessage { + return (*Image)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Image) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Image) != 0 { + value := protoreflect.ValueOfBytes(x.Image) + if !f(fd_Image_image, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Image) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.Image.image": + return len(x.Image) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Image")) + } + panic(fmt.Errorf("message cardchain.cardchain.Image does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Image) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.Image.image": + x.Image = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Image")) + } + panic(fmt.Errorf("message cardchain.cardchain.Image does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Image) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.Image.image": + value := x.Image + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Image")) + } + panic(fmt.Errorf("message cardchain.cardchain.Image does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Image) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.Image.image": + x.Image = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Image")) + } + panic(fmt.Errorf("message cardchain.cardchain.Image does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Image) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.Image.image": + panic(fmt.Errorf("field image of message cardchain.cardchain.Image is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Image")) + } + panic(fmt.Errorf("message cardchain.cardchain.Image does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Image) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.Image.image": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Image")) + } + panic(fmt.Errorf("message cardchain.cardchain.Image does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Image) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.Image", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Image) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Image) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Image) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Image) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Image) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Image) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Image) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Image) > 0 { + i -= len(x.Image) + copy(dAtA[i:], x.Image) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Image))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Image) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Image: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Image: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Image = append(x.Image[:0], dAtA[iNdEx:postIndex]...) + if x.Image == nil { + x.Image = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cardchain/cardchain/image.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Image struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Image []byte `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` +} + +func (x *Image) Reset() { + *x = Image{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_image_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Image) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Image) ProtoMessage() {} + +// Deprecated: Use Image.ProtoReflect.Descriptor instead. +func (*Image) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_image_proto_rawDescGZIP(), []int{0} +} + +func (x *Image) GetImage() []byte { + if x != nil { + return x.Image + } + return nil +} + +var File_cardchain_cardchain_image_proto protoreflect.FileDescriptor + +var file_cardchain_cardchain_image_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x13, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x22, 0x1d, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0xd2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x42, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, + 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, + 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_cardchain_cardchain_image_proto_rawDescOnce sync.Once + file_cardchain_cardchain_image_proto_rawDescData = file_cardchain_cardchain_image_proto_rawDesc +) + +func file_cardchain_cardchain_image_proto_rawDescGZIP() []byte { + file_cardchain_cardchain_image_proto_rawDescOnce.Do(func() { + file_cardchain_cardchain_image_proto_rawDescData = protoimpl.X.CompressGZIP(file_cardchain_cardchain_image_proto_rawDescData) + }) + return file_cardchain_cardchain_image_proto_rawDescData +} + +var file_cardchain_cardchain_image_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_cardchain_cardchain_image_proto_goTypes = []interface{}{ + (*Image)(nil), // 0: cardchain.cardchain.Image +} +var file_cardchain_cardchain_image_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_cardchain_cardchain_image_proto_init() } +func file_cardchain_cardchain_image_proto_init() { + if File_cardchain_cardchain_image_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cardchain_cardchain_image_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Image); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cardchain_cardchain_image_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cardchain_cardchain_image_proto_goTypes, + DependencyIndexes: file_cardchain_cardchain_image_proto_depIdxs, + MessageInfos: file_cardchain_cardchain_image_proto_msgTypes, + }.Build() + File_cardchain_cardchain_image_proto = out.File + file_cardchain_cardchain_image_proto_rawDesc = nil + file_cardchain_cardchain_image_proto_goTypes = nil + file_cardchain_cardchain_image_proto_depIdxs = nil +} diff --git a/api/cardchain/cardchain/num.pulsar.go b/api/cardchain/cardchain/num.pulsar.go index 7d2dce27..d43dae35 100644 --- a/api/cardchain/cardchain/num.pulsar.go +++ b/api/cardchain/cardchain/num.pulsar.go @@ -3,13 +3,14 @@ package cardchain import ( fmt "fmt" + io "io" + reflect "reflect" + sync "sync" + runtime "github.com/cosmos/cosmos-proto/runtime" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoiface "google.golang.org/protobuf/runtime/protoiface" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - io "io" - reflect "reflect" - sync "sync" ) var ( diff --git a/api/cardchain/cardchain/params.pulsar.go b/api/cardchain/cardchain/params.pulsar.go index 1b2cbd3b..11ddc437 100644 --- a/api/cardchain/cardchain/params.pulsar.go +++ b/api/cardchain/cardchain/params.pulsar.go @@ -3,6 +3,7 @@ package cardchain import ( _ "cosmossdk.io/api/amino" + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" fmt "fmt" runtime "github.com/cosmos/cosmos-proto/runtime" _ "github.com/cosmos/gogoproto/gogoproto" @@ -15,12 +16,60 @@ import ( ) var ( - md_Params protoreflect.MessageDescriptor + md_Params protoreflect.MessageDescriptor + fd_Params_votingRightsExpirationTime protoreflect.FieldDescriptor + fd_Params_setSize protoreflect.FieldDescriptor + fd_Params_setPrice protoreflect.FieldDescriptor + fd_Params_activeSetsAmount protoreflect.FieldDescriptor + fd_Params_setCreationFee protoreflect.FieldDescriptor + fd_Params_collateralDeposit protoreflect.FieldDescriptor + fd_Params_winnerReward protoreflect.FieldDescriptor + fd_Params_hourlyFaucet protoreflect.FieldDescriptor + fd_Params_inflationRate protoreflect.FieldDescriptor + fd_Params_raresPerPack protoreflect.FieldDescriptor + fd_Params_commonsPerPack protoreflect.FieldDescriptor + fd_Params_unCommonsPerPack protoreflect.FieldDescriptor + fd_Params_trialPeriod protoreflect.FieldDescriptor + fd_Params_gameVoteRatio protoreflect.FieldDescriptor + fd_Params_cardAuctionPriceReductionPeriod protoreflect.FieldDescriptor + fd_Params_airDropValue protoreflect.FieldDescriptor + fd_Params_airDropMaxBlockHeight protoreflect.FieldDescriptor + fd_Params_trialVoteReward protoreflect.FieldDescriptor + fd_Params_votePoolFraction protoreflect.FieldDescriptor + fd_Params_votingRewardCap protoreflect.FieldDescriptor + fd_Params_matchWorkerDelay protoreflect.FieldDescriptor + fd_Params_rareDropRatio protoreflect.FieldDescriptor + fd_Params_exceptionalDropRatio protoreflect.FieldDescriptor + fd_Params_uniqueDropRatio protoreflect.FieldDescriptor ) func init() { file_cardchain_cardchain_params_proto_init() md_Params = File_cardchain_cardchain_params_proto.Messages().ByName("Params") + fd_Params_votingRightsExpirationTime = md_Params.Fields().ByName("votingRightsExpirationTime") + fd_Params_setSize = md_Params.Fields().ByName("setSize") + fd_Params_setPrice = md_Params.Fields().ByName("setPrice") + fd_Params_activeSetsAmount = md_Params.Fields().ByName("activeSetsAmount") + fd_Params_setCreationFee = md_Params.Fields().ByName("setCreationFee") + fd_Params_collateralDeposit = md_Params.Fields().ByName("collateralDeposit") + fd_Params_winnerReward = md_Params.Fields().ByName("winnerReward") + fd_Params_hourlyFaucet = md_Params.Fields().ByName("hourlyFaucet") + fd_Params_inflationRate = md_Params.Fields().ByName("inflationRate") + fd_Params_raresPerPack = md_Params.Fields().ByName("raresPerPack") + fd_Params_commonsPerPack = md_Params.Fields().ByName("commonsPerPack") + fd_Params_unCommonsPerPack = md_Params.Fields().ByName("unCommonsPerPack") + fd_Params_trialPeriod = md_Params.Fields().ByName("trialPeriod") + fd_Params_gameVoteRatio = md_Params.Fields().ByName("gameVoteRatio") + fd_Params_cardAuctionPriceReductionPeriod = md_Params.Fields().ByName("cardAuctionPriceReductionPeriod") + fd_Params_airDropValue = md_Params.Fields().ByName("airDropValue") + fd_Params_airDropMaxBlockHeight = md_Params.Fields().ByName("airDropMaxBlockHeight") + fd_Params_trialVoteReward = md_Params.Fields().ByName("trialVoteReward") + fd_Params_votePoolFraction = md_Params.Fields().ByName("votePoolFraction") + fd_Params_votingRewardCap = md_Params.Fields().ByName("votingRewardCap") + fd_Params_matchWorkerDelay = md_Params.Fields().ByName("matchWorkerDelay") + fd_Params_rareDropRatio = md_Params.Fields().ByName("rareDropRatio") + fd_Params_exceptionalDropRatio = md_Params.Fields().ByName("exceptionalDropRatio") + fd_Params_uniqueDropRatio = md_Params.Fields().ByName("uniqueDropRatio") } var _ protoreflect.Message = (*fastReflection_Params)(nil) @@ -88,6 +137,150 @@ func (x *fastReflection_Params) Interface() protoreflect.ProtoMessage { // While iterating, mutating operations may only be performed // on the current field descriptor. func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.VotingRightsExpirationTime != int64(0) { + value := protoreflect.ValueOfInt64(x.VotingRightsExpirationTime) + if !f(fd_Params_votingRightsExpirationTime, value) { + return + } + } + if x.SetSize != uint64(0) { + value := protoreflect.ValueOfUint64(x.SetSize) + if !f(fd_Params_setSize, value) { + return + } + } + if x.SetPrice != nil { + value := protoreflect.ValueOfMessage(x.SetPrice.ProtoReflect()) + if !f(fd_Params_setPrice, value) { + return + } + } + if x.ActiveSetsAmount != uint64(0) { + value := protoreflect.ValueOfUint64(x.ActiveSetsAmount) + if !f(fd_Params_activeSetsAmount, value) { + return + } + } + if x.SetCreationFee != nil { + value := protoreflect.ValueOfMessage(x.SetCreationFee.ProtoReflect()) + if !f(fd_Params_setCreationFee, value) { + return + } + } + if x.CollateralDeposit != nil { + value := protoreflect.ValueOfMessage(x.CollateralDeposit.ProtoReflect()) + if !f(fd_Params_collateralDeposit, value) { + return + } + } + if x.WinnerReward != int64(0) { + value := protoreflect.ValueOfInt64(x.WinnerReward) + if !f(fd_Params_winnerReward, value) { + return + } + } + if x.HourlyFaucet != nil { + value := protoreflect.ValueOfMessage(x.HourlyFaucet.ProtoReflect()) + if !f(fd_Params_hourlyFaucet, value) { + return + } + } + if x.InflationRate != "" { + value := protoreflect.ValueOfString(x.InflationRate) + if !f(fd_Params_inflationRate, value) { + return + } + } + if x.RaresPerPack != uint64(0) { + value := protoreflect.ValueOfUint64(x.RaresPerPack) + if !f(fd_Params_raresPerPack, value) { + return + } + } + if x.CommonsPerPack != uint64(0) { + value := protoreflect.ValueOfUint64(x.CommonsPerPack) + if !f(fd_Params_commonsPerPack, value) { + return + } + } + if x.UnCommonsPerPack != uint64(0) { + value := protoreflect.ValueOfUint64(x.UnCommonsPerPack) + if !f(fd_Params_unCommonsPerPack, value) { + return + } + } + if x.TrialPeriod != uint64(0) { + value := protoreflect.ValueOfUint64(x.TrialPeriod) + if !f(fd_Params_trialPeriod, value) { + return + } + } + if x.GameVoteRatio != int64(0) { + value := protoreflect.ValueOfInt64(x.GameVoteRatio) + if !f(fd_Params_gameVoteRatio, value) { + return + } + } + if x.CardAuctionPriceReductionPeriod != int64(0) { + value := protoreflect.ValueOfInt64(x.CardAuctionPriceReductionPeriod) + if !f(fd_Params_cardAuctionPriceReductionPeriod, value) { + return + } + } + if x.AirDropValue != nil { + value := protoreflect.ValueOfMessage(x.AirDropValue.ProtoReflect()) + if !f(fd_Params_airDropValue, value) { + return + } + } + if x.AirDropMaxBlockHeight != int64(0) { + value := protoreflect.ValueOfInt64(x.AirDropMaxBlockHeight) + if !f(fd_Params_airDropMaxBlockHeight, value) { + return + } + } + if x.TrialVoteReward != nil { + value := protoreflect.ValueOfMessage(x.TrialVoteReward.ProtoReflect()) + if !f(fd_Params_trialVoteReward, value) { + return + } + } + if x.VotePoolFraction != int64(0) { + value := protoreflect.ValueOfInt64(x.VotePoolFraction) + if !f(fd_Params_votePoolFraction, value) { + return + } + } + if x.VotingRewardCap != int64(0) { + value := protoreflect.ValueOfInt64(x.VotingRewardCap) + if !f(fd_Params_votingRewardCap, value) { + return + } + } + if x.MatchWorkerDelay != uint64(0) { + value := protoreflect.ValueOfUint64(x.MatchWorkerDelay) + if !f(fd_Params_matchWorkerDelay, value) { + return + } + } + if x.RareDropRatio != uint64(0) { + value := protoreflect.ValueOfUint64(x.RareDropRatio) + if !f(fd_Params_rareDropRatio, value) { + return + } + } + if x.ExceptionalDropRatio != uint64(0) { + value := protoreflect.ValueOfUint64(x.ExceptionalDropRatio) + if !f(fd_Params_exceptionalDropRatio, value) { + return + } + } + if x.UniqueDropRatio != uint64(0) { + value := protoreflect.ValueOfUint64(x.UniqueDropRatio) + if !f(fd_Params_uniqueDropRatio, value) { + return + } + } } // Has reports whether a field is populated. @@ -103,6 +296,54 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto // a repeated field is populated if it is non-empty. func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { + case "cardchain.cardchain.Params.votingRightsExpirationTime": + return x.VotingRightsExpirationTime != int64(0) + case "cardchain.cardchain.Params.setSize": + return x.SetSize != uint64(0) + case "cardchain.cardchain.Params.setPrice": + return x.SetPrice != nil + case "cardchain.cardchain.Params.activeSetsAmount": + return x.ActiveSetsAmount != uint64(0) + case "cardchain.cardchain.Params.setCreationFee": + return x.SetCreationFee != nil + case "cardchain.cardchain.Params.collateralDeposit": + return x.CollateralDeposit != nil + case "cardchain.cardchain.Params.winnerReward": + return x.WinnerReward != int64(0) + case "cardchain.cardchain.Params.hourlyFaucet": + return x.HourlyFaucet != nil + case "cardchain.cardchain.Params.inflationRate": + return x.InflationRate != "" + case "cardchain.cardchain.Params.raresPerPack": + return x.RaresPerPack != uint64(0) + case "cardchain.cardchain.Params.commonsPerPack": + return x.CommonsPerPack != uint64(0) + case "cardchain.cardchain.Params.unCommonsPerPack": + return x.UnCommonsPerPack != uint64(0) + case "cardchain.cardchain.Params.trialPeriod": + return x.TrialPeriod != uint64(0) + case "cardchain.cardchain.Params.gameVoteRatio": + return x.GameVoteRatio != int64(0) + case "cardchain.cardchain.Params.cardAuctionPriceReductionPeriod": + return x.CardAuctionPriceReductionPeriod != int64(0) + case "cardchain.cardchain.Params.airDropValue": + return x.AirDropValue != nil + case "cardchain.cardchain.Params.airDropMaxBlockHeight": + return x.AirDropMaxBlockHeight != int64(0) + case "cardchain.cardchain.Params.trialVoteReward": + return x.TrialVoteReward != nil + case "cardchain.cardchain.Params.votePoolFraction": + return x.VotePoolFraction != int64(0) + case "cardchain.cardchain.Params.votingRewardCap": + return x.VotingRewardCap != int64(0) + case "cardchain.cardchain.Params.matchWorkerDelay": + return x.MatchWorkerDelay != uint64(0) + case "cardchain.cardchain.Params.rareDropRatio": + return x.RareDropRatio != uint64(0) + case "cardchain.cardchain.Params.exceptionalDropRatio": + return x.ExceptionalDropRatio != uint64(0) + case "cardchain.cardchain.Params.uniqueDropRatio": + return x.UniqueDropRatio != uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Params")) @@ -119,6 +360,54 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { // Clear is a mutating operation and unsafe for concurrent use. func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { + case "cardchain.cardchain.Params.votingRightsExpirationTime": + x.VotingRightsExpirationTime = int64(0) + case "cardchain.cardchain.Params.setSize": + x.SetSize = uint64(0) + case "cardchain.cardchain.Params.setPrice": + x.SetPrice = nil + case "cardchain.cardchain.Params.activeSetsAmount": + x.ActiveSetsAmount = uint64(0) + case "cardchain.cardchain.Params.setCreationFee": + x.SetCreationFee = nil + case "cardchain.cardchain.Params.collateralDeposit": + x.CollateralDeposit = nil + case "cardchain.cardchain.Params.winnerReward": + x.WinnerReward = int64(0) + case "cardchain.cardchain.Params.hourlyFaucet": + x.HourlyFaucet = nil + case "cardchain.cardchain.Params.inflationRate": + x.InflationRate = "" + case "cardchain.cardchain.Params.raresPerPack": + x.RaresPerPack = uint64(0) + case "cardchain.cardchain.Params.commonsPerPack": + x.CommonsPerPack = uint64(0) + case "cardchain.cardchain.Params.unCommonsPerPack": + x.UnCommonsPerPack = uint64(0) + case "cardchain.cardchain.Params.trialPeriod": + x.TrialPeriod = uint64(0) + case "cardchain.cardchain.Params.gameVoteRatio": + x.GameVoteRatio = int64(0) + case "cardchain.cardchain.Params.cardAuctionPriceReductionPeriod": + x.CardAuctionPriceReductionPeriod = int64(0) + case "cardchain.cardchain.Params.airDropValue": + x.AirDropValue = nil + case "cardchain.cardchain.Params.airDropMaxBlockHeight": + x.AirDropMaxBlockHeight = int64(0) + case "cardchain.cardchain.Params.trialVoteReward": + x.TrialVoteReward = nil + case "cardchain.cardchain.Params.votePoolFraction": + x.VotePoolFraction = int64(0) + case "cardchain.cardchain.Params.votingRewardCap": + x.VotingRewardCap = int64(0) + case "cardchain.cardchain.Params.matchWorkerDelay": + x.MatchWorkerDelay = uint64(0) + case "cardchain.cardchain.Params.rareDropRatio": + x.RareDropRatio = uint64(0) + case "cardchain.cardchain.Params.exceptionalDropRatio": + x.ExceptionalDropRatio = uint64(0) + case "cardchain.cardchain.Params.uniqueDropRatio": + x.UniqueDropRatio = uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Params")) @@ -135,6 +424,78 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { // of the value; to obtain a mutable reference, use Mutable. func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { + case "cardchain.cardchain.Params.votingRightsExpirationTime": + value := x.VotingRightsExpirationTime + return protoreflect.ValueOfInt64(value) + case "cardchain.cardchain.Params.setSize": + value := x.SetSize + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.setPrice": + value := x.SetPrice + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.Params.activeSetsAmount": + value := x.ActiveSetsAmount + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.setCreationFee": + value := x.SetCreationFee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.Params.collateralDeposit": + value := x.CollateralDeposit + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.Params.winnerReward": + value := x.WinnerReward + return protoreflect.ValueOfInt64(value) + case "cardchain.cardchain.Params.hourlyFaucet": + value := x.HourlyFaucet + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.Params.inflationRate": + value := x.InflationRate + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.Params.raresPerPack": + value := x.RaresPerPack + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.commonsPerPack": + value := x.CommonsPerPack + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.unCommonsPerPack": + value := x.UnCommonsPerPack + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.trialPeriod": + value := x.TrialPeriod + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.gameVoteRatio": + value := x.GameVoteRatio + return protoreflect.ValueOfInt64(value) + case "cardchain.cardchain.Params.cardAuctionPriceReductionPeriod": + value := x.CardAuctionPriceReductionPeriod + return protoreflect.ValueOfInt64(value) + case "cardchain.cardchain.Params.airDropValue": + value := x.AirDropValue + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.Params.airDropMaxBlockHeight": + value := x.AirDropMaxBlockHeight + return protoreflect.ValueOfInt64(value) + case "cardchain.cardchain.Params.trialVoteReward": + value := x.TrialVoteReward + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.Params.votePoolFraction": + value := x.VotePoolFraction + return protoreflect.ValueOfInt64(value) + case "cardchain.cardchain.Params.votingRewardCap": + value := x.VotingRewardCap + return protoreflect.ValueOfInt64(value) + case "cardchain.cardchain.Params.matchWorkerDelay": + value := x.MatchWorkerDelay + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.rareDropRatio": + value := x.RareDropRatio + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.exceptionalDropRatio": + value := x.ExceptionalDropRatio + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Params.uniqueDropRatio": + value := x.UniqueDropRatio + return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Params")) @@ -155,6 +516,54 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro // Set is a mutating operation and unsafe for concurrent use. func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { + case "cardchain.cardchain.Params.votingRightsExpirationTime": + x.VotingRightsExpirationTime = value.Int() + case "cardchain.cardchain.Params.setSize": + x.SetSize = value.Uint() + case "cardchain.cardchain.Params.setPrice": + x.SetPrice = value.Message().Interface().(*v1beta1.Coin) + case "cardchain.cardchain.Params.activeSetsAmount": + x.ActiveSetsAmount = value.Uint() + case "cardchain.cardchain.Params.setCreationFee": + x.SetCreationFee = value.Message().Interface().(*v1beta1.Coin) + case "cardchain.cardchain.Params.collateralDeposit": + x.CollateralDeposit = value.Message().Interface().(*v1beta1.Coin) + case "cardchain.cardchain.Params.winnerReward": + x.WinnerReward = value.Int() + case "cardchain.cardchain.Params.hourlyFaucet": + x.HourlyFaucet = value.Message().Interface().(*v1beta1.Coin) + case "cardchain.cardchain.Params.inflationRate": + x.InflationRate = value.Interface().(string) + case "cardchain.cardchain.Params.raresPerPack": + x.RaresPerPack = value.Uint() + case "cardchain.cardchain.Params.commonsPerPack": + x.CommonsPerPack = value.Uint() + case "cardchain.cardchain.Params.unCommonsPerPack": + x.UnCommonsPerPack = value.Uint() + case "cardchain.cardchain.Params.trialPeriod": + x.TrialPeriod = value.Uint() + case "cardchain.cardchain.Params.gameVoteRatio": + x.GameVoteRatio = value.Int() + case "cardchain.cardchain.Params.cardAuctionPriceReductionPeriod": + x.CardAuctionPriceReductionPeriod = value.Int() + case "cardchain.cardchain.Params.airDropValue": + x.AirDropValue = value.Message().Interface().(*v1beta1.Coin) + case "cardchain.cardchain.Params.airDropMaxBlockHeight": + x.AirDropMaxBlockHeight = value.Int() + case "cardchain.cardchain.Params.trialVoteReward": + x.TrialVoteReward = value.Message().Interface().(*v1beta1.Coin) + case "cardchain.cardchain.Params.votePoolFraction": + x.VotePoolFraction = value.Int() + case "cardchain.cardchain.Params.votingRewardCap": + x.VotingRewardCap = value.Int() + case "cardchain.cardchain.Params.matchWorkerDelay": + x.MatchWorkerDelay = value.Uint() + case "cardchain.cardchain.Params.rareDropRatio": + x.RareDropRatio = value.Uint() + case "cardchain.cardchain.Params.exceptionalDropRatio": + x.ExceptionalDropRatio = value.Uint() + case "cardchain.cardchain.Params.uniqueDropRatio": + x.UniqueDropRatio = value.Uint() default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Params")) @@ -175,6 +584,72 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto // Mutable is a mutating operation and unsafe for concurrent use. func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { + case "cardchain.cardchain.Params.setPrice": + if x.SetPrice == nil { + x.SetPrice = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.SetPrice.ProtoReflect()) + case "cardchain.cardchain.Params.setCreationFee": + if x.SetCreationFee == nil { + x.SetCreationFee = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.SetCreationFee.ProtoReflect()) + case "cardchain.cardchain.Params.collateralDeposit": + if x.CollateralDeposit == nil { + x.CollateralDeposit = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.CollateralDeposit.ProtoReflect()) + case "cardchain.cardchain.Params.hourlyFaucet": + if x.HourlyFaucet == nil { + x.HourlyFaucet = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.HourlyFaucet.ProtoReflect()) + case "cardchain.cardchain.Params.airDropValue": + if x.AirDropValue == nil { + x.AirDropValue = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.AirDropValue.ProtoReflect()) + case "cardchain.cardchain.Params.trialVoteReward": + if x.TrialVoteReward == nil { + x.TrialVoteReward = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.TrialVoteReward.ProtoReflect()) + case "cardchain.cardchain.Params.votingRightsExpirationTime": + panic(fmt.Errorf("field votingRightsExpirationTime of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.setSize": + panic(fmt.Errorf("field setSize of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.activeSetsAmount": + panic(fmt.Errorf("field activeSetsAmount of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.winnerReward": + panic(fmt.Errorf("field winnerReward of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.inflationRate": + panic(fmt.Errorf("field inflationRate of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.raresPerPack": + panic(fmt.Errorf("field raresPerPack of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.commonsPerPack": + panic(fmt.Errorf("field commonsPerPack of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.unCommonsPerPack": + panic(fmt.Errorf("field unCommonsPerPack of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.trialPeriod": + panic(fmt.Errorf("field trialPeriod of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.gameVoteRatio": + panic(fmt.Errorf("field gameVoteRatio of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.cardAuctionPriceReductionPeriod": + panic(fmt.Errorf("field cardAuctionPriceReductionPeriod of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.airDropMaxBlockHeight": + panic(fmt.Errorf("field airDropMaxBlockHeight of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.votePoolFraction": + panic(fmt.Errorf("field votePoolFraction of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.votingRewardCap": + panic(fmt.Errorf("field votingRewardCap of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.matchWorkerDelay": + panic(fmt.Errorf("field matchWorkerDelay of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.rareDropRatio": + panic(fmt.Errorf("field rareDropRatio of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.exceptionalDropRatio": + panic(fmt.Errorf("field exceptionalDropRatio of message cardchain.cardchain.Params is not mutable")) + case "cardchain.cardchain.Params.uniqueDropRatio": + panic(fmt.Errorf("field uniqueDropRatio of message cardchain.cardchain.Params is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Params")) @@ -188,6 +663,60 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore // For lists, maps, and messages, this returns a new, empty, mutable value. func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { + case "cardchain.cardchain.Params.votingRightsExpirationTime": + return protoreflect.ValueOfInt64(int64(0)) + case "cardchain.cardchain.Params.setSize": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.setPrice": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.Params.activeSetsAmount": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.setCreationFee": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.Params.collateralDeposit": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.Params.winnerReward": + return protoreflect.ValueOfInt64(int64(0)) + case "cardchain.cardchain.Params.hourlyFaucet": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.Params.inflationRate": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.Params.raresPerPack": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.commonsPerPack": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.unCommonsPerPack": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.trialPeriod": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.gameVoteRatio": + return protoreflect.ValueOfInt64(int64(0)) + case "cardchain.cardchain.Params.cardAuctionPriceReductionPeriod": + return protoreflect.ValueOfInt64(int64(0)) + case "cardchain.cardchain.Params.airDropValue": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.Params.airDropMaxBlockHeight": + return protoreflect.ValueOfInt64(int64(0)) + case "cardchain.cardchain.Params.trialVoteReward": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.Params.votePoolFraction": + return protoreflect.ValueOfInt64(int64(0)) + case "cardchain.cardchain.Params.votingRewardCap": + return protoreflect.ValueOfInt64(int64(0)) + case "cardchain.cardchain.Params.matchWorkerDelay": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.rareDropRatio": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.exceptionalDropRatio": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Params.uniqueDropRatio": + return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Params")) @@ -257,6 +786,85 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { var n int var l int _ = l + if x.VotingRightsExpirationTime != 0 { + n += 1 + runtime.Sov(uint64(x.VotingRightsExpirationTime)) + } + if x.SetSize != 0 { + n += 1 + runtime.Sov(uint64(x.SetSize)) + } + if x.SetPrice != nil { + l = options.Size(x.SetPrice) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.ActiveSetsAmount != 0 { + n += 1 + runtime.Sov(uint64(x.ActiveSetsAmount)) + } + if x.SetCreationFee != nil { + l = options.Size(x.SetCreationFee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.CollateralDeposit != nil { + l = options.Size(x.CollateralDeposit) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.WinnerReward != 0 { + n += 1 + runtime.Sov(uint64(x.WinnerReward)) + } + if x.HourlyFaucet != nil { + l = options.Size(x.HourlyFaucet) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.InflationRate) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.RaresPerPack != 0 { + n += 1 + runtime.Sov(uint64(x.RaresPerPack)) + } + if x.CommonsPerPack != 0 { + n += 1 + runtime.Sov(uint64(x.CommonsPerPack)) + } + if x.UnCommonsPerPack != 0 { + n += 1 + runtime.Sov(uint64(x.UnCommonsPerPack)) + } + if x.TrialPeriod != 0 { + n += 1 + runtime.Sov(uint64(x.TrialPeriod)) + } + if x.GameVoteRatio != 0 { + n += 1 + runtime.Sov(uint64(x.GameVoteRatio)) + } + if x.CardAuctionPriceReductionPeriod != 0 { + n += 2 + runtime.Sov(uint64(x.CardAuctionPriceReductionPeriod)) + } + if x.AirDropValue != nil { + l = options.Size(x.AirDropValue) + n += 2 + l + runtime.Sov(uint64(l)) + } + if x.AirDropMaxBlockHeight != 0 { + n += 2 + runtime.Sov(uint64(x.AirDropMaxBlockHeight)) + } + if x.TrialVoteReward != nil { + l = options.Size(x.TrialVoteReward) + n += 2 + l + runtime.Sov(uint64(l)) + } + if x.VotePoolFraction != 0 { + n += 2 + runtime.Sov(uint64(x.VotePoolFraction)) + } + if x.VotingRewardCap != 0 { + n += 1 + runtime.Sov(uint64(x.VotingRewardCap)) + } + if x.MatchWorkerDelay != 0 { + n += 2 + runtime.Sov(uint64(x.MatchWorkerDelay)) + } + if x.RareDropRatio != 0 { + n += 2 + runtime.Sov(uint64(x.RareDropRatio)) + } + if x.ExceptionalDropRatio != 0 { + n += 2 + runtime.Sov(uint64(x.ExceptionalDropRatio)) + } + if x.UniqueDropRatio != 0 { + n += 2 + runtime.Sov(uint64(x.UniqueDropRatio)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -286,6 +894,200 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.UniqueDropRatio != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.UniqueDropRatio)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc0 + } + if x.ExceptionalDropRatio != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.ExceptionalDropRatio)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb8 + } + if x.RareDropRatio != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.RareDropRatio)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb0 + } + if x.MatchWorkerDelay != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.MatchWorkerDelay)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + } + if x.VotePoolFraction != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.VotePoolFraction)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + if x.TrialVoteReward != nil { + encoded, err := options.Marshal(x.TrialVoteReward) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + if x.AirDropMaxBlockHeight != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.AirDropMaxBlockHeight)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x90 + } + if x.AirDropValue != nil { + encoded, err := options.Marshal(x.AirDropValue) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + if x.CardAuctionPriceReductionPeriod != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.CardAuctionPriceReductionPeriod)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x80 + } + if x.GameVoteRatio != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.GameVoteRatio)) + i-- + dAtA[i] = 0x78 + } + if x.TrialPeriod != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.TrialPeriod)) + i-- + dAtA[i] = 0x70 + } + if x.UnCommonsPerPack != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.UnCommonsPerPack)) + i-- + dAtA[i] = 0x68 + } + if x.CommonsPerPack != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.CommonsPerPack)) + i-- + dAtA[i] = 0x60 + } + if x.RaresPerPack != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.RaresPerPack)) + i-- + dAtA[i] = 0x58 + } + if len(x.InflationRate) > 0 { + i -= len(x.InflationRate) + copy(dAtA[i:], x.InflationRate) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.InflationRate))) + i-- + dAtA[i] = 0x52 + } + if x.HourlyFaucet != nil { + encoded, err := options.Marshal(x.HourlyFaucet) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x4a + } + if x.VotingRewardCap != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.VotingRewardCap)) + i-- + dAtA[i] = 0x40 + } + if x.WinnerReward != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.WinnerReward)) + i-- + dAtA[i] = 0x38 + } + if x.CollateralDeposit != nil { + encoded, err := options.Marshal(x.CollateralDeposit) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x32 + } + if x.SetCreationFee != nil { + encoded, err := options.Marshal(x.SetCreationFee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x2a + } + if x.ActiveSetsAmount != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.ActiveSetsAmount)) + i-- + dAtA[i] = 0x20 + } + if x.SetPrice != nil { + encoded, err := options.Marshal(x.SetPrice) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + if x.SetSize != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.SetSize)) + i-- + dAtA[i] = 0x10 + } + if x.VotingRightsExpirationTime != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.VotingRightsExpirationTime)) + i-- + dAtA[i] = 0x8 + } if input.Buf != nil { input.Buf = append(input.Buf, dAtA...) } else { @@ -335,6 +1137,577 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VotingRightsExpirationTime", wireType) + } + x.VotingRightsExpirationTime = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.VotingRightsExpirationTime |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SetSize", wireType) + } + x.SetSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.SetSize |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SetPrice", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.SetPrice == nil { + x.SetPrice = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.SetPrice); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ActiveSetsAmount", wireType) + } + x.ActiveSetsAmount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.ActiveSetsAmount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SetCreationFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.SetCreationFee == nil { + x.SetCreationFee = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.SetCreationFee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CollateralDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.CollateralDeposit == nil { + x.CollateralDeposit = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.CollateralDeposit); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field WinnerReward", wireType) + } + x.WinnerReward = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.WinnerReward |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HourlyFaucet", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.HourlyFaucet == nil { + x.HourlyFaucet = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.HourlyFaucet); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InflationRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.InflationRate = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field RaresPerPack", wireType) + } + x.RaresPerPack = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.RaresPerPack |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 12: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CommonsPerPack", wireType) + } + x.CommonsPerPack = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.CommonsPerPack |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 13: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UnCommonsPerPack", wireType) + } + x.UnCommonsPerPack = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.UnCommonsPerPack |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 14: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TrialPeriod", wireType) + } + x.TrialPeriod = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.TrialPeriod |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 15: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field GameVoteRatio", wireType) + } + x.GameVoteRatio = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.GameVoteRatio |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 16: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field CardAuctionPriceReductionPeriod", wireType) + } + x.CardAuctionPriceReductionPeriod = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.CardAuctionPriceReductionPeriod |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 17: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AirDropValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.AirDropValue == nil { + x.AirDropValue = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.AirDropValue); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 18: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AirDropMaxBlockHeight", wireType) + } + x.AirDropMaxBlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.AirDropMaxBlockHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 19: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TrialVoteReward", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.TrialVoteReward == nil { + x.TrialVoteReward = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.TrialVoteReward); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 20: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VotePoolFraction", wireType) + } + x.VotePoolFraction = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.VotePoolFraction |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field VotingRewardCap", wireType) + } + x.VotingRewardCap = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.VotingRewardCap |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 21: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MatchWorkerDelay", wireType) + } + x.MatchWorkerDelay = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.MatchWorkerDelay |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 22: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field RareDropRatio", wireType) + } + x.RareDropRatio = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.RareDropRatio |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 23: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ExceptionalDropRatio", wireType) + } + x.ExceptionalDropRatio = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.ExceptionalDropRatio |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 24: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field UniqueDropRatio", wireType) + } + x.UniqueDropRatio = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.UniqueDropRatio |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -388,6 +1761,31 @@ type Params struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + VotingRightsExpirationTime int64 `protobuf:"varint,1,opt,name=votingRightsExpirationTime,proto3" json:"votingRightsExpirationTime,omitempty"` + SetSize uint64 `protobuf:"varint,2,opt,name=setSize,proto3" json:"setSize,omitempty"` + SetPrice *v1beta1.Coin `protobuf:"bytes,3,opt,name=setPrice,proto3" json:"setPrice,omitempty"` + ActiveSetsAmount uint64 `protobuf:"varint,4,opt,name=activeSetsAmount,proto3" json:"activeSetsAmount,omitempty"` + SetCreationFee *v1beta1.Coin `protobuf:"bytes,5,opt,name=setCreationFee,proto3" json:"setCreationFee,omitempty"` + CollateralDeposit *v1beta1.Coin `protobuf:"bytes,6,opt,name=collateralDeposit,proto3" json:"collateralDeposit,omitempty"` + WinnerReward int64 `protobuf:"varint,7,opt,name=winnerReward,proto3" json:"winnerReward,omitempty"` + HourlyFaucet *v1beta1.Coin `protobuf:"bytes,9,opt,name=hourlyFaucet,proto3" json:"hourlyFaucet,omitempty"` + InflationRate string `protobuf:"bytes,10,opt,name=inflationRate,proto3" json:"inflationRate,omitempty"` + RaresPerPack uint64 `protobuf:"varint,11,opt,name=raresPerPack,proto3" json:"raresPerPack,omitempty"` + CommonsPerPack uint64 `protobuf:"varint,12,opt,name=commonsPerPack,proto3" json:"commonsPerPack,omitempty"` + UnCommonsPerPack uint64 `protobuf:"varint,13,opt,name=unCommonsPerPack,proto3" json:"unCommonsPerPack,omitempty"` + TrialPeriod uint64 `protobuf:"varint,14,opt,name=trialPeriod,proto3" json:"trialPeriod,omitempty"` + GameVoteRatio int64 `protobuf:"varint,15,opt,name=gameVoteRatio,proto3" json:"gameVoteRatio,omitempty"` + CardAuctionPriceReductionPeriod int64 `protobuf:"varint,16,opt,name=cardAuctionPriceReductionPeriod,proto3" json:"cardAuctionPriceReductionPeriod,omitempty"` + AirDropValue *v1beta1.Coin `protobuf:"bytes,17,opt,name=airDropValue,proto3" json:"airDropValue,omitempty"` + AirDropMaxBlockHeight int64 `protobuf:"varint,18,opt,name=airDropMaxBlockHeight,proto3" json:"airDropMaxBlockHeight,omitempty"` + TrialVoteReward *v1beta1.Coin `protobuf:"bytes,19,opt,name=trialVoteReward,proto3" json:"trialVoteReward,omitempty"` + VotePoolFraction int64 `protobuf:"varint,20,opt,name=votePoolFraction,proto3" json:"votePoolFraction,omitempty"` + VotingRewardCap int64 `protobuf:"varint,8,opt,name=votingRewardCap,proto3" json:"votingRewardCap,omitempty"` + MatchWorkerDelay uint64 `protobuf:"varint,21,opt,name=matchWorkerDelay,proto3" json:"matchWorkerDelay,omitempty"` + RareDropRatio uint64 `protobuf:"varint,22,opt,name=rareDropRatio,proto3" json:"rareDropRatio,omitempty"` + ExceptionalDropRatio uint64 `protobuf:"varint,23,opt,name=exceptionalDropRatio,proto3" json:"exceptionalDropRatio,omitempty"` + UniqueDropRatio uint64 `protobuf:"varint,24,opt,name=uniqueDropRatio,proto3" json:"uniqueDropRatio,omitempty"` } func (x *Params) Reset() { @@ -410,6 +1808,174 @@ func (*Params) Descriptor() ([]byte, []int) { return file_cardchain_cardchain_params_proto_rawDescGZIP(), []int{0} } +func (x *Params) GetVotingRightsExpirationTime() int64 { + if x != nil { + return x.VotingRightsExpirationTime + } + return 0 +} + +func (x *Params) GetSetSize() uint64 { + if x != nil { + return x.SetSize + } + return 0 +} + +func (x *Params) GetSetPrice() *v1beta1.Coin { + if x != nil { + return x.SetPrice + } + return nil +} + +func (x *Params) GetActiveSetsAmount() uint64 { + if x != nil { + return x.ActiveSetsAmount + } + return 0 +} + +func (x *Params) GetSetCreationFee() *v1beta1.Coin { + if x != nil { + return x.SetCreationFee + } + return nil +} + +func (x *Params) GetCollateralDeposit() *v1beta1.Coin { + if x != nil { + return x.CollateralDeposit + } + return nil +} + +func (x *Params) GetWinnerReward() int64 { + if x != nil { + return x.WinnerReward + } + return 0 +} + +func (x *Params) GetHourlyFaucet() *v1beta1.Coin { + if x != nil { + return x.HourlyFaucet + } + return nil +} + +func (x *Params) GetInflationRate() string { + if x != nil { + return x.InflationRate + } + return "" +} + +func (x *Params) GetRaresPerPack() uint64 { + if x != nil { + return x.RaresPerPack + } + return 0 +} + +func (x *Params) GetCommonsPerPack() uint64 { + if x != nil { + return x.CommonsPerPack + } + return 0 +} + +func (x *Params) GetUnCommonsPerPack() uint64 { + if x != nil { + return x.UnCommonsPerPack + } + return 0 +} + +func (x *Params) GetTrialPeriod() uint64 { + if x != nil { + return x.TrialPeriod + } + return 0 +} + +func (x *Params) GetGameVoteRatio() int64 { + if x != nil { + return x.GameVoteRatio + } + return 0 +} + +func (x *Params) GetCardAuctionPriceReductionPeriod() int64 { + if x != nil { + return x.CardAuctionPriceReductionPeriod + } + return 0 +} + +func (x *Params) GetAirDropValue() *v1beta1.Coin { + if x != nil { + return x.AirDropValue + } + return nil +} + +func (x *Params) GetAirDropMaxBlockHeight() int64 { + if x != nil { + return x.AirDropMaxBlockHeight + } + return 0 +} + +func (x *Params) GetTrialVoteReward() *v1beta1.Coin { + if x != nil { + return x.TrialVoteReward + } + return nil +} + +func (x *Params) GetVotePoolFraction() int64 { + if x != nil { + return x.VotePoolFraction + } + return 0 +} + +func (x *Params) GetVotingRewardCap() int64 { + if x != nil { + return x.VotingRewardCap + } + return 0 +} + +func (x *Params) GetMatchWorkerDelay() uint64 { + if x != nil { + return x.MatchWorkerDelay + } + return 0 +} + +func (x *Params) GetRareDropRatio() uint64 { + if x != nil { + return x.RareDropRatio + } + return 0 +} + +func (x *Params) GetExceptionalDropRatio() uint64 { + if x != nil { + return x.ExceptionalDropRatio + } + return 0 +} + +func (x *Params) GetUniqueDropRatio() uint64 { + if x != nil { + return x.UniqueDropRatio + } + return 0 +} + var File_cardchain_cardchain_params_proto protoreflect.FileDescriptor var file_cardchain_cardchain_params_proto_rawDesc = []byte{ @@ -419,23 +1985,101 @@ var file_cardchain_cardchain_params_proto_rawDesc = []byte{ 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x2f, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x25, 0xe8, 0xa0, 0x1f, 0x01, - 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, - 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x42, 0xd3, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x0b, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, - 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, - 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, - 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xef, 0x09, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x3e, 0x0a, 0x1a, 0x76, + 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x1a, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x45, 0x78, 0x70, + 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x65, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x08, 0x73, 0x65, 0x74, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x73, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x74, 0x73, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, + 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x4d, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x61, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, + 0xde, 0x1f, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x77, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x43, 0x0a, 0x0c, 0x68, 0x6f, + 0x75, 0x72, 0x6c, 0x79, 0x46, 0x61, 0x75, 0x63, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, + 0x00, 0x52, 0x0c, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x46, 0x61, 0x75, 0x63, 0x65, 0x74, 0x12, + 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x61, 0x72, 0x65, 0x73, 0x50, 0x65, + 0x72, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x61, 0x72, + 0x65, 0x73, 0x50, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x50, 0x61, 0x63, + 0x6b, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x50, 0x65, + 0x72, 0x50, 0x61, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x75, 0x6e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x67, 0x61, 0x6d, 0x65, 0x56, 0x6f, 0x74, 0x65, + 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x48, 0x0a, 0x1f, 0x63, 0x61, 0x72, 0x64, 0x41, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1f, + 0x63, 0x61, 0x72, 0x64, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, + 0x43, 0x0a, 0x0c, 0x61, 0x69, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0c, 0x61, 0x69, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x61, 0x69, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x4d, + 0x61, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x15, 0x61, 0x69, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x4d, 0x61, 0x78, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x72, + 0x69, 0x61, 0x6c, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, + 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x56, 0x6f, 0x74, 0x65, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x10, 0x76, 0x6f, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x43, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x76, 0x6f, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x61, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x61, 0x72, 0x65, 0x44, + 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x72, 0x61, 0x72, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x32, 0x0a, + 0x14, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x72, 0x6f, 0x70, + 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x65, 0x78, 0x63, + 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x69, + 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, + 0x61, 0x74, 0x69, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x3a, 0x25, 0xe8, 0xa0, 0x1f, + 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, + 0x78, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x42, 0xd3, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x0b, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, + 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, + 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -452,14 +2096,21 @@ func file_cardchain_cardchain_params_proto_rawDescGZIP() []byte { var file_cardchain_cardchain_params_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_cardchain_cardchain_params_proto_goTypes = []interface{}{ - (*Params)(nil), // 0: cardchain.cardchain.Params + (*Params)(nil), // 0: cardchain.cardchain.Params + (*v1beta1.Coin)(nil), // 1: cosmos.base.v1beta1.Coin } var file_cardchain_cardchain_params_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 1, // 0: cardchain.cardchain.Params.setPrice:type_name -> cosmos.base.v1beta1.Coin + 1, // 1: cardchain.cardchain.Params.setCreationFee:type_name -> cosmos.base.v1beta1.Coin + 1, // 2: cardchain.cardchain.Params.collateralDeposit:type_name -> cosmos.base.v1beta1.Coin + 1, // 3: cardchain.cardchain.Params.hourlyFaucet:type_name -> cosmos.base.v1beta1.Coin + 1, // 4: cardchain.cardchain.Params.airDropValue:type_name -> cosmos.base.v1beta1.Coin + 1, // 5: cardchain.cardchain.Params.trialVoteReward:type_name -> cosmos.base.v1beta1.Coin + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_cardchain_cardchain_params_proto_init() } diff --git a/api/cardchain/cardchain/product_details.pulsar.go b/api/cardchain/cardchain/product_details.pulsar.go new file mode 100644 index 00000000..4217d854 --- /dev/null +++ b/api/cardchain/cardchain/product_details.pulsar.go @@ -0,0 +1,774 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package cardchain + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_ProductDetails protoreflect.MessageDescriptor + fd_ProductDetails_id protoreflect.FieldDescriptor + fd_ProductDetails_name protoreflect.FieldDescriptor + fd_ProductDetails_desc protoreflect.FieldDescriptor + fd_ProductDetails_creator protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_product_details_proto_init() + md_ProductDetails = File_cardchain_cardchain_product_details_proto.Messages().ByName("ProductDetails") + fd_ProductDetails_id = md_ProductDetails.Fields().ByName("id") + fd_ProductDetails_name = md_ProductDetails.Fields().ByName("name") + fd_ProductDetails_desc = md_ProductDetails.Fields().ByName("desc") + fd_ProductDetails_creator = md_ProductDetails.Fields().ByName("creator") +} + +var _ protoreflect.Message = (*fastReflection_ProductDetails)(nil) + +type fastReflection_ProductDetails ProductDetails + +func (x *ProductDetails) ProtoReflect() protoreflect.Message { + return (*fastReflection_ProductDetails)(x) +} + +func (x *ProductDetails) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_product_details_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_ProductDetails_messageType fastReflection_ProductDetails_messageType +var _ protoreflect.MessageType = fastReflection_ProductDetails_messageType{} + +type fastReflection_ProductDetails_messageType struct{} + +func (x fastReflection_ProductDetails_messageType) Zero() protoreflect.Message { + return (*fastReflection_ProductDetails)(nil) +} +func (x fastReflection_ProductDetails_messageType) New() protoreflect.Message { + return new(fastReflection_ProductDetails) +} +func (x fastReflection_ProductDetails_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ProductDetails +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ProductDetails) Descriptor() protoreflect.MessageDescriptor { + return md_ProductDetails +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_ProductDetails) Type() protoreflect.MessageType { + return _fastReflection_ProductDetails_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ProductDetails) New() protoreflect.Message { + return new(fastReflection_ProductDetails) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ProductDetails) Interface() protoreflect.ProtoMessage { + return (*ProductDetails)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_ProductDetails) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Id != uint64(0) { + value := protoreflect.ValueOfUint64(x.Id) + if !f(fd_ProductDetails_id, value) { + return + } + } + if x.Name != "" { + value := protoreflect.ValueOfString(x.Name) + if !f(fd_ProductDetails_name, value) { + return + } + } + if x.Desc != "" { + value := protoreflect.ValueOfString(x.Desc) + if !f(fd_ProductDetails_desc, value) { + return + } + } + if x.Creator != "" { + value := protoreflect.ValueOfString(x.Creator) + if !f(fd_ProductDetails_creator, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_ProductDetails) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.ProductDetails.id": + return x.Id != uint64(0) + case "cardchain.cardchain.ProductDetails.name": + return x.Name != "" + case "cardchain.cardchain.ProductDetails.desc": + return x.Desc != "" + case "cardchain.cardchain.ProductDetails.creator": + return x.Creator != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.ProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.ProductDetails does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ProductDetails) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.ProductDetails.id": + x.Id = uint64(0) + case "cardchain.cardchain.ProductDetails.name": + x.Name = "" + case "cardchain.cardchain.ProductDetails.desc": + x.Desc = "" + case "cardchain.cardchain.ProductDetails.creator": + x.Creator = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.ProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.ProductDetails does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_ProductDetails) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.ProductDetails.id": + value := x.Id + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.ProductDetails.name": + value := x.Name + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.ProductDetails.desc": + value := x.Desc + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.ProductDetails.creator": + value := x.Creator + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.ProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.ProductDetails does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ProductDetails) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.ProductDetails.id": + x.Id = value.Uint() + case "cardchain.cardchain.ProductDetails.name": + x.Name = value.Interface().(string) + case "cardchain.cardchain.ProductDetails.desc": + x.Desc = value.Interface().(string) + case "cardchain.cardchain.ProductDetails.creator": + x.Creator = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.ProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.ProductDetails does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ProductDetails) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.ProductDetails.id": + panic(fmt.Errorf("field id of message cardchain.cardchain.ProductDetails is not mutable")) + case "cardchain.cardchain.ProductDetails.name": + panic(fmt.Errorf("field name of message cardchain.cardchain.ProductDetails is not mutable")) + case "cardchain.cardchain.ProductDetails.desc": + panic(fmt.Errorf("field desc of message cardchain.cardchain.ProductDetails is not mutable")) + case "cardchain.cardchain.ProductDetails.creator": + panic(fmt.Errorf("field creator of message cardchain.cardchain.ProductDetails is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.ProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.ProductDetails does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_ProductDetails) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.ProductDetails.id": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.ProductDetails.name": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.ProductDetails.desc": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.ProductDetails.creator": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.ProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.ProductDetails does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_ProductDetails) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.ProductDetails", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_ProductDetails) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ProductDetails) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_ProductDetails) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_ProductDetails) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ProductDetails) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Id != 0 { + n += 1 + runtime.Sov(uint64(x.Id)) + } + l = len(x.Name) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Desc) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Creator) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*ProductDetails) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Creator) > 0 { + i -= len(x.Creator) + copy(dAtA[i:], x.Creator) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Creator))) + i-- + dAtA[i] = 0x22 + } + if len(x.Desc) > 0 { + i -= len(x.Desc) + copy(dAtA[i:], x.Desc) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Desc))) + i-- + dAtA[i] = 0x1a + } + if len(x.Name) > 0 { + i -= len(x.Name) + copy(dAtA[i:], x.Name) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) + i-- + dAtA[i] = 0x12 + } + if x.Id != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Id)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*ProductDetails) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ProductDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ProductDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + x.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Desc = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cardchain/cardchain/product_details.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ProductDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Desc string `protobuf:"bytes,3,opt,name=desc,proto3" json:"desc,omitempty"` + Creator string `protobuf:"bytes,4,opt,name=creator,proto3" json:"creator,omitempty"` +} + +func (x *ProductDetails) Reset() { + *x = ProductDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_product_details_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProductDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProductDetails) ProtoMessage() {} + +// Deprecated: Use ProductDetails.ProtoReflect.Descriptor instead. +func (*ProductDetails) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_product_details_proto_rawDescGZIP(), []int{0} +} + +func (x *ProductDetails) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ProductDetails) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ProductDetails) GetDesc() string { + if x != nil { + return x.Desc + } + return "" +} + +func (x *ProductDetails) GetCreator() string { + if x != nil { + return x.Creator + } + return "" +} + +var File_cardchain_cardchain_product_details_proto protoreflect.FileDescriptor + +var file_cardchain_cardchain_product_details_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x22, 0x62, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x42, 0xdb, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x42, 0x13, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, + 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, + 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, + 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cardchain_cardchain_product_details_proto_rawDescOnce sync.Once + file_cardchain_cardchain_product_details_proto_rawDescData = file_cardchain_cardchain_product_details_proto_rawDesc +) + +func file_cardchain_cardchain_product_details_proto_rawDescGZIP() []byte { + file_cardchain_cardchain_product_details_proto_rawDescOnce.Do(func() { + file_cardchain_cardchain_product_details_proto_rawDescData = protoimpl.X.CompressGZIP(file_cardchain_cardchain_product_details_proto_rawDescData) + }) + return file_cardchain_cardchain_product_details_proto_rawDescData +} + +var file_cardchain_cardchain_product_details_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_cardchain_cardchain_product_details_proto_goTypes = []interface{}{ + (*ProductDetails)(nil), // 0: cardchain.cardchain.ProductDetails +} +var file_cardchain_cardchain_product_details_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_cardchain_cardchain_product_details_proto_init() } +func file_cardchain_cardchain_product_details_proto_init() { + if File_cardchain_cardchain_product_details_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cardchain_cardchain_product_details_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProductDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cardchain_cardchain_product_details_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cardchain_cardchain_product_details_proto_goTypes, + DependencyIndexes: file_cardchain_cardchain_product_details_proto_depIdxs, + MessageInfos: file_cardchain_cardchain_product_details_proto_msgTypes, + }.Build() + File_cardchain_cardchain_product_details_proto = out.File + file_cardchain_cardchain_product_details_proto_rawDesc = nil + file_cardchain_cardchain_product_details_proto_goTypes = nil + file_cardchain_cardchain_product_details_proto_depIdxs = nil +} diff --git a/api/cardchain/cardchain/query.pulsar.go b/api/cardchain/cardchain/query.pulsar.go index 2fbc5336..0bf3306c 100644 --- a/api/cardchain/cardchain/query.pulsar.go +++ b/api/cardchain/cardchain/query.pulsar.go @@ -3,7 +3,7 @@ package cardchain import ( _ "cosmossdk.io/api/amino" - _ "cosmossdk.io/api/cosmos/base/query/v1beta1" + v1beta1 "cosmossdk.io/api/cosmos/base/query/v1beta1" fmt "fmt" runtime "github.com/cosmos/cosmos-proto/runtime" _ "github.com/cosmos/gogoproto/gogoproto" @@ -807,6 +807,1853 @@ func (x *fastReflection_QueryParamsResponse) ProtoMethods() *protoiface.Methods } } +var ( + md_QueryGetProductDetailsRequest protoreflect.MessageDescriptor + fd_QueryGetProductDetailsRequest_id protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_query_proto_init() + md_QueryGetProductDetailsRequest = File_cardchain_cardchain_query_proto.Messages().ByName("QueryGetProductDetailsRequest") + fd_QueryGetProductDetailsRequest_id = md_QueryGetProductDetailsRequest.Fields().ByName("id") +} + +var _ protoreflect.Message = (*fastReflection_QueryGetProductDetailsRequest)(nil) + +type fastReflection_QueryGetProductDetailsRequest QueryGetProductDetailsRequest + +func (x *QueryGetProductDetailsRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryGetProductDetailsRequest)(x) +} + +func (x *QueryGetProductDetailsRequest) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_query_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryGetProductDetailsRequest_messageType fastReflection_QueryGetProductDetailsRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryGetProductDetailsRequest_messageType{} + +type fastReflection_QueryGetProductDetailsRequest_messageType struct{} + +func (x fastReflection_QueryGetProductDetailsRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryGetProductDetailsRequest)(nil) +} +func (x fastReflection_QueryGetProductDetailsRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryGetProductDetailsRequest) +} +func (x fastReflection_QueryGetProductDetailsRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetProductDetailsRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryGetProductDetailsRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetProductDetailsRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryGetProductDetailsRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryGetProductDetailsRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryGetProductDetailsRequest) New() protoreflect.Message { + return new(fastReflection_QueryGetProductDetailsRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryGetProductDetailsRequest) Interface() protoreflect.ProtoMessage { + return (*QueryGetProductDetailsRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryGetProductDetailsRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Id != uint64(0) { + value := protoreflect.ValueOfUint64(x.Id) + if !f(fd_QueryGetProductDetailsRequest_id, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryGetProductDetailsRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsRequest.id": + return x.Id != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryGetProductDetailsRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsRequest.id": + x.Id = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryGetProductDetailsRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsRequest.id": + value := x.Id + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryGetProductDetailsRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsRequest.id": + x.Id = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryGetProductDetailsRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsRequest.id": + panic(fmt.Errorf("field id of message cardchain.cardchain.QueryGetProductDetailsRequest is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryGetProductDetailsRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsRequest.id": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryGetProductDetailsRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.QueryGetProductDetailsRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryGetProductDetailsRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryGetProductDetailsRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryGetProductDetailsRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryGetProductDetailsRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryGetProductDetailsRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Id != 0 { + n += 1 + runtime.Sov(uint64(x.Id)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryGetProductDetailsRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Id != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Id)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryGetProductDetailsRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetProductDetailsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetProductDetailsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + x.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_QueryGetProductDetailsResponse protoreflect.MessageDescriptor + fd_QueryGetProductDetailsResponse_ProductDetails protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_query_proto_init() + md_QueryGetProductDetailsResponse = File_cardchain_cardchain_query_proto.Messages().ByName("QueryGetProductDetailsResponse") + fd_QueryGetProductDetailsResponse_ProductDetails = md_QueryGetProductDetailsResponse.Fields().ByName("ProductDetails") +} + +var _ protoreflect.Message = (*fastReflection_QueryGetProductDetailsResponse)(nil) + +type fastReflection_QueryGetProductDetailsResponse QueryGetProductDetailsResponse + +func (x *QueryGetProductDetailsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryGetProductDetailsResponse)(x) +} + +func (x *QueryGetProductDetailsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_query_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) +} + +var _fastReflection_QueryGetProductDetailsResponse_messageType fastReflection_QueryGetProductDetailsResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryGetProductDetailsResponse_messageType{} + +type fastReflection_QueryGetProductDetailsResponse_messageType struct{} + +func (x fastReflection_QueryGetProductDetailsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryGetProductDetailsResponse)(nil) +} +func (x fastReflection_QueryGetProductDetailsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryGetProductDetailsResponse) +} +func (x fastReflection_QueryGetProductDetailsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetProductDetailsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryGetProductDetailsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetProductDetailsResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryGetProductDetailsResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryGetProductDetailsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryGetProductDetailsResponse) New() protoreflect.Message { + return new(fastReflection_QueryGetProductDetailsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryGetProductDetailsResponse) Interface() protoreflect.ProtoMessage { + return (*QueryGetProductDetailsResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryGetProductDetailsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.ProductDetails != nil { + value := protoreflect.ValueOfMessage(x.ProductDetails.ProtoReflect()) + if !f(fd_QueryGetProductDetailsResponse_ProductDetails, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryGetProductDetailsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsResponse.ProductDetails": + return x.ProductDetails != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryGetProductDetailsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsResponse.ProductDetails": + x.ProductDetails = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryGetProductDetailsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsResponse.ProductDetails": + value := x.ProductDetails + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryGetProductDetailsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsResponse.ProductDetails": + x.ProductDetails = value.Message().Interface().(*ProductDetails) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryGetProductDetailsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsResponse.ProductDetails": + if x.ProductDetails == nil { + x.ProductDetails = new(ProductDetails) + } + return protoreflect.ValueOfMessage(x.ProductDetails.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryGetProductDetailsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.QueryGetProductDetailsResponse.ProductDetails": + m := new(ProductDetails) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryGetProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryGetProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryGetProductDetailsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.QueryGetProductDetailsResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryGetProductDetailsResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryGetProductDetailsResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryGetProductDetailsResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryGetProductDetailsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryGetProductDetailsResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.ProductDetails != nil { + l = options.Size(x.ProductDetails) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryGetProductDetailsResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.ProductDetails != nil { + encoded, err := options.Marshal(x.ProductDetails) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryGetProductDetailsResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProductDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.ProductDetails == nil { + x.ProductDetails = &ProductDetails{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ProductDetails); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_QueryAllProductDetailsRequest protoreflect.MessageDescriptor + fd_QueryAllProductDetailsRequest_pagination protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_query_proto_init() + md_QueryAllProductDetailsRequest = File_cardchain_cardchain_query_proto.Messages().ByName("QueryAllProductDetailsRequest") + fd_QueryAllProductDetailsRequest_pagination = md_QueryAllProductDetailsRequest.Fields().ByName("pagination") +} + +var _ protoreflect.Message = (*fastReflection_QueryAllProductDetailsRequest)(nil) + +type fastReflection_QueryAllProductDetailsRequest QueryAllProductDetailsRequest + +func (x *QueryAllProductDetailsRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryAllProductDetailsRequest)(x) +} + +func (x *QueryAllProductDetailsRequest) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_query_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) +} + +var _fastReflection_QueryAllProductDetailsRequest_messageType fastReflection_QueryAllProductDetailsRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryAllProductDetailsRequest_messageType{} + +type fastReflection_QueryAllProductDetailsRequest_messageType struct{} + +func (x fastReflection_QueryAllProductDetailsRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryAllProductDetailsRequest)(nil) +} +func (x fastReflection_QueryAllProductDetailsRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryAllProductDetailsRequest) +} +func (x fastReflection_QueryAllProductDetailsRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryAllProductDetailsRequest +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryAllProductDetailsRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryAllProductDetailsRequest +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryAllProductDetailsRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryAllProductDetailsRequest_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryAllProductDetailsRequest) New() protoreflect.Message { + return new(fastReflection_QueryAllProductDetailsRequest) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryAllProductDetailsRequest) Interface() protoreflect.ProtoMessage { + return (*QueryAllProductDetailsRequest)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryAllProductDetailsRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Pagination != nil { + value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + if !f(fd_QueryAllProductDetailsRequest_pagination, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryAllProductDetailsRequest) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsRequest.pagination": + return x.Pagination != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryAllProductDetailsRequest) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsRequest.pagination": + x.Pagination = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryAllProductDetailsRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsRequest.pagination": + value := x.Pagination + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsRequest does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryAllProductDetailsRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsRequest.pagination": + x.Pagination = value.Message().Interface().(*v1beta1.PageRequest) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryAllProductDetailsRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsRequest.pagination": + if x.Pagination == nil { + x.Pagination = new(v1beta1.PageRequest) + } + return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryAllProductDetailsRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsRequest.pagination": + m := new(v1beta1.PageRequest) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsRequest")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsRequest does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryAllProductDetailsRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.QueryAllProductDetailsRequest", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryAllProductDetailsRequest) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryAllProductDetailsRequest) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryAllProductDetailsRequest) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryAllProductDetailsRequest) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryAllProductDetailsRequest) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Pagination != nil { + l = options.Size(x.Pagination) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryAllProductDetailsRequest) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Pagination != nil { + encoded, err := options.Marshal(x.Pagination) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryAllProductDetailsRequest) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryAllProductDetailsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryAllProductDetailsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Pagination == nil { + x.Pagination = &v1beta1.PageRequest{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pagination); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_QueryAllProductDetailsResponse_1_list)(nil) + +type _QueryAllProductDetailsResponse_1_list struct { + list *[]*ProductDetails +} + +func (x *_QueryAllProductDetailsResponse_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_QueryAllProductDetailsResponse_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_QueryAllProductDetailsResponse_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*ProductDetails) + (*x.list)[i] = concreteValue +} + +func (x *_QueryAllProductDetailsResponse_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*ProductDetails) + *x.list = append(*x.list, concreteValue) +} + +func (x *_QueryAllProductDetailsResponse_1_list) AppendMutable() protoreflect.Value { + v := new(ProductDetails) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_QueryAllProductDetailsResponse_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_QueryAllProductDetailsResponse_1_list) NewElement() protoreflect.Value { + v := new(ProductDetails) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_QueryAllProductDetailsResponse_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_QueryAllProductDetailsResponse protoreflect.MessageDescriptor + fd_QueryAllProductDetailsResponse_ProductDetails protoreflect.FieldDescriptor + fd_QueryAllProductDetailsResponse_pagination protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_query_proto_init() + md_QueryAllProductDetailsResponse = File_cardchain_cardchain_query_proto.Messages().ByName("QueryAllProductDetailsResponse") + fd_QueryAllProductDetailsResponse_ProductDetails = md_QueryAllProductDetailsResponse.Fields().ByName("ProductDetails") + fd_QueryAllProductDetailsResponse_pagination = md_QueryAllProductDetailsResponse.Fields().ByName("pagination") +} + +var _ protoreflect.Message = (*fastReflection_QueryAllProductDetailsResponse)(nil) + +type fastReflection_QueryAllProductDetailsResponse QueryAllProductDetailsResponse + +func (x *QueryAllProductDetailsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryAllProductDetailsResponse)(x) +} + +func (x *QueryAllProductDetailsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_query_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_QueryAllProductDetailsResponse_messageType fastReflection_QueryAllProductDetailsResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryAllProductDetailsResponse_messageType{} + +type fastReflection_QueryAllProductDetailsResponse_messageType struct{} + +func (x fastReflection_QueryAllProductDetailsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryAllProductDetailsResponse)(nil) +} +func (x fastReflection_QueryAllProductDetailsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryAllProductDetailsResponse) +} +func (x fastReflection_QueryAllProductDetailsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryAllProductDetailsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_QueryAllProductDetailsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryAllProductDetailsResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_QueryAllProductDetailsResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryAllProductDetailsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_QueryAllProductDetailsResponse) New() protoreflect.Message { + return new(fastReflection_QueryAllProductDetailsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_QueryAllProductDetailsResponse) Interface() protoreflect.ProtoMessage { + return (*QueryAllProductDetailsResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_QueryAllProductDetailsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.ProductDetails) != 0 { + value := protoreflect.ValueOfList(&_QueryAllProductDetailsResponse_1_list{list: &x.ProductDetails}) + if !f(fd_QueryAllProductDetailsResponse_ProductDetails, value) { + return + } + } + if x.Pagination != nil { + value := protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + if !f(fd_QueryAllProductDetailsResponse_pagination, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_QueryAllProductDetailsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsResponse.ProductDetails": + return len(x.ProductDetails) != 0 + case "cardchain.cardchain.QueryAllProductDetailsResponse.pagination": + return x.Pagination != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryAllProductDetailsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsResponse.ProductDetails": + x.ProductDetails = nil + case "cardchain.cardchain.QueryAllProductDetailsResponse.pagination": + x.Pagination = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_QueryAllProductDetailsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsResponse.ProductDetails": + if len(x.ProductDetails) == 0 { + return protoreflect.ValueOfList(&_QueryAllProductDetailsResponse_1_list{}) + } + listValue := &_QueryAllProductDetailsResponse_1_list{list: &x.ProductDetails} + return protoreflect.ValueOfList(listValue) + case "cardchain.cardchain.QueryAllProductDetailsResponse.pagination": + value := x.Pagination + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryAllProductDetailsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsResponse.ProductDetails": + lv := value.List() + clv := lv.(*_QueryAllProductDetailsResponse_1_list) + x.ProductDetails = *clv.list + case "cardchain.cardchain.QueryAllProductDetailsResponse.pagination": + x.Pagination = value.Message().Interface().(*v1beta1.PageResponse) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryAllProductDetailsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsResponse.ProductDetails": + if x.ProductDetails == nil { + x.ProductDetails = []*ProductDetails{} + } + value := &_QueryAllProductDetailsResponse_1_list{list: &x.ProductDetails} + return protoreflect.ValueOfList(value) + case "cardchain.cardchain.QueryAllProductDetailsResponse.pagination": + if x.Pagination == nil { + x.Pagination = new(v1beta1.PageResponse) + } + return protoreflect.ValueOfMessage(x.Pagination.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_QueryAllProductDetailsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.QueryAllProductDetailsResponse.ProductDetails": + list := []*ProductDetails{} + return protoreflect.ValueOfList(&_QueryAllProductDetailsResponse_1_list{list: &list}) + case "cardchain.cardchain.QueryAllProductDetailsResponse.pagination": + m := new(v1beta1.PageResponse) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.QueryAllProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.QueryAllProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_QueryAllProductDetailsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.QueryAllProductDetailsResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_QueryAllProductDetailsResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_QueryAllProductDetailsResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_QueryAllProductDetailsResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_QueryAllProductDetailsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*QueryAllProductDetailsResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.ProductDetails) > 0 { + for _, e := range x.ProductDetails { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.Pagination != nil { + l = options.Size(x.Pagination) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*QueryAllProductDetailsResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Pagination != nil { + encoded, err := options.Marshal(x.Pagination) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.ProductDetails) > 0 { + for iNdEx := len(x.ProductDetails) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.ProductDetails[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*QueryAllProductDetailsResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryAllProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryAllProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ProductDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ProductDetails = append(x.ProductDetails, &ProductDetails{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ProductDetails[len(x.ProductDetails)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Pagination == nil { + x.Pagination = &v1beta1.PageResponse{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Pagination); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -884,6 +2731,154 @@ func (x *QueryParamsResponse) GetParams() *Params { return nil } +type QueryGetProductDetailsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *QueryGetProductDetailsRequest) Reset() { + *x = QueryGetProductDetailsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_query_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryGetProductDetailsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryGetProductDetailsRequest) ProtoMessage() {} + +// Deprecated: Use QueryGetProductDetailsRequest.ProtoReflect.Descriptor instead. +func (*QueryGetProductDetailsRequest) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_query_proto_rawDescGZIP(), []int{2} +} + +func (x *QueryGetProductDetailsRequest) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type QueryGetProductDetailsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProductDetails *ProductDetails `protobuf:"bytes,1,opt,name=ProductDetails,proto3" json:"ProductDetails,omitempty"` +} + +func (x *QueryGetProductDetailsResponse) Reset() { + *x = QueryGetProductDetailsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_query_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryGetProductDetailsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryGetProductDetailsResponse) ProtoMessage() {} + +// Deprecated: Use QueryGetProductDetailsResponse.ProtoReflect.Descriptor instead. +func (*QueryGetProductDetailsResponse) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_query_proto_rawDescGZIP(), []int{3} +} + +func (x *QueryGetProductDetailsResponse) GetProductDetails() *ProductDetails { + if x != nil { + return x.ProductDetails + } + return nil +} + +type QueryAllProductDetailsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pagination *v1beta1.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (x *QueryAllProductDetailsRequest) Reset() { + *x = QueryAllProductDetailsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_query_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryAllProductDetailsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryAllProductDetailsRequest) ProtoMessage() {} + +// Deprecated: Use QueryAllProductDetailsRequest.ProtoReflect.Descriptor instead. +func (*QueryAllProductDetailsRequest) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_query_proto_rawDescGZIP(), []int{4} +} + +func (x *QueryAllProductDetailsRequest) GetPagination() *v1beta1.PageRequest { + if x != nil { + return x.Pagination + } + return nil +} + +type QueryAllProductDetailsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProductDetails []*ProductDetails `protobuf:"bytes,1,rep,name=ProductDetails,proto3" json:"ProductDetails,omitempty"` + Pagination *v1beta1.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (x *QueryAllProductDetailsResponse) Reset() { + *x = QueryAllProductDetailsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_query_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueryAllProductDetailsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryAllProductDetailsResponse) ProtoMessage() {} + +// Deprecated: Use QueryAllProductDetailsResponse.ProtoReflect.Descriptor instead. +func (*QueryAllProductDetailsResponse) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_query_proto_rawDescGZIP(), []int{5} +} + +func (x *QueryAllProductDetailsResponse) GetProductDetails() []*ProductDetails { + if x != nil { + return x.ProductDetails + } + return nil +} + +func (x *QueryAllProductDetailsResponse) GetPagination() *v1beta1.PageResponse { + if x != nil { + return x.Pagination + } + return nil +} + var File_cardchain_cardchain_query_proto protoreflect.FileDescriptor var file_cardchain_cardchain_query_proto_rawDesc = []byte{ @@ -899,38 +2894,93 @@ var file_cardchain_cardchain_query_proto_rawDesc = []byte{ 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x14, 0x0a, 0x12, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0x9c, 0x01, 0x0a, 0x05, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x12, 0x92, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x2e, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x13, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x22, 0x2f, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x69, 0x64, 0x22, 0x73, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, + 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x67, 0x0a, 0x1d, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0xbc, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x61, 0x69, 0x6e, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x32, 0x9c, 0x04, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x92, 0x01, 0x0a, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, + 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x28, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2f, 0x12, 0x2d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, + 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0xbe, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, + 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x7b, 0x69, 0x64, + 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x41, 0x6c, 0x6c, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xd2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, - 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, - 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, - 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x42, 0xd2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x0a, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, + 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, + 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -945,21 +2995,36 @@ func file_cardchain_cardchain_query_proto_rawDescGZIP() []byte { return file_cardchain_cardchain_query_proto_rawDescData } -var file_cardchain_cardchain_query_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_cardchain_cardchain_query_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_cardchain_cardchain_query_proto_goTypes = []interface{}{ - (*QueryParamsRequest)(nil), // 0: cardchain.cardchain.QueryParamsRequest - (*QueryParamsResponse)(nil), // 1: cardchain.cardchain.QueryParamsResponse - (*Params)(nil), // 2: cardchain.cardchain.Params + (*QueryParamsRequest)(nil), // 0: cardchain.cardchain.QueryParamsRequest + (*QueryParamsResponse)(nil), // 1: cardchain.cardchain.QueryParamsResponse + (*QueryGetProductDetailsRequest)(nil), // 2: cardchain.cardchain.QueryGetProductDetailsRequest + (*QueryGetProductDetailsResponse)(nil), // 3: cardchain.cardchain.QueryGetProductDetailsResponse + (*QueryAllProductDetailsRequest)(nil), // 4: cardchain.cardchain.QueryAllProductDetailsRequest + (*QueryAllProductDetailsResponse)(nil), // 5: cardchain.cardchain.QueryAllProductDetailsResponse + (*Params)(nil), // 6: cardchain.cardchain.Params + (*ProductDetails)(nil), // 7: cardchain.cardchain.ProductDetails + (*v1beta1.PageRequest)(nil), // 8: cosmos.base.query.v1beta1.PageRequest + (*v1beta1.PageResponse)(nil), // 9: cosmos.base.query.v1beta1.PageResponse } var file_cardchain_cardchain_query_proto_depIdxs = []int32{ - 2, // 0: cardchain.cardchain.QueryParamsResponse.params:type_name -> cardchain.cardchain.Params - 0, // 1: cardchain.cardchain.Query.Params:input_type -> cardchain.cardchain.QueryParamsRequest - 1, // 2: cardchain.cardchain.Query.Params:output_type -> cardchain.cardchain.QueryParamsResponse - 2, // [2:3] is the sub-list for method output_type - 1, // [1:2] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 6, // 0: cardchain.cardchain.QueryParamsResponse.params:type_name -> cardchain.cardchain.Params + 7, // 1: cardchain.cardchain.QueryGetProductDetailsResponse.ProductDetails:type_name -> cardchain.cardchain.ProductDetails + 8, // 2: cardchain.cardchain.QueryAllProductDetailsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest + 7, // 3: cardchain.cardchain.QueryAllProductDetailsResponse.ProductDetails:type_name -> cardchain.cardchain.ProductDetails + 9, // 4: cardchain.cardchain.QueryAllProductDetailsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse + 0, // 5: cardchain.cardchain.Query.Params:input_type -> cardchain.cardchain.QueryParamsRequest + 2, // 6: cardchain.cardchain.Query.ProductDetails:input_type -> cardchain.cardchain.QueryGetProductDetailsRequest + 4, // 7: cardchain.cardchain.Query.ProductDetailsAll:input_type -> cardchain.cardchain.QueryAllProductDetailsRequest + 1, // 8: cardchain.cardchain.Query.Params:output_type -> cardchain.cardchain.QueryParamsResponse + 3, // 9: cardchain.cardchain.Query.ProductDetails:output_type -> cardchain.cardchain.QueryGetProductDetailsResponse + 5, // 10: cardchain.cardchain.Query.ProductDetailsAll:output_type -> cardchain.cardchain.QueryAllProductDetailsResponse + 8, // [8:11] is the sub-list for method output_type + 5, // [5:8] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_cardchain_cardchain_query_proto_init() } @@ -968,6 +3033,7 @@ func file_cardchain_cardchain_query_proto_init() { return } file_cardchain_cardchain_params_proto_init() + file_cardchain_cardchain_product_details_proto_init() if !protoimpl.UnsafeEnabled { file_cardchain_cardchain_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueryParamsRequest); i { @@ -993,6 +3059,54 @@ func file_cardchain_cardchain_query_proto_init() { return nil } } + file_cardchain_cardchain_query_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryGetProductDetailsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_query_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryGetProductDetailsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_query_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryAllProductDetailsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_query_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueryAllProductDetailsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1000,7 +3114,7 @@ func file_cardchain_cardchain_query_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cardchain_cardchain_query_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 6, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cardchain/cardchain/query_grpc.pb.go b/api/cardchain/cardchain/query_grpc.pb.go index 641cf1eb..eaabaeb4 100644 --- a/api/cardchain/cardchain/query_grpc.pb.go +++ b/api/cardchain/cardchain/query_grpc.pb.go @@ -19,7 +19,9 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - Query_Params_FullMethodName = "/cardchain.cardchain.Query/Params" + Query_Params_FullMethodName = "/cardchain.cardchain.Query/Params" + Query_ProductDetails_FullMethodName = "/cardchain.cardchain.Query/ProductDetails" + Query_ProductDetailsAll_FullMethodName = "/cardchain.cardchain.Query/ProductDetailsAll" ) // QueryClient is the client API for Query service. @@ -28,6 +30,9 @@ const ( type QueryClient interface { // Parameters queries the parameters of the module. Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // Queries a list of ProductDetails items. + ProductDetails(ctx context.Context, in *QueryGetProductDetailsRequest, opts ...grpc.CallOption) (*QueryGetProductDetailsResponse, error) + ProductDetailsAll(ctx context.Context, in *QueryAllProductDetailsRequest, opts ...grpc.CallOption) (*QueryAllProductDetailsResponse, error) } type queryClient struct { @@ -47,12 +52,33 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts . return out, nil } +func (c *queryClient) ProductDetails(ctx context.Context, in *QueryGetProductDetailsRequest, opts ...grpc.CallOption) (*QueryGetProductDetailsResponse, error) { + out := new(QueryGetProductDetailsResponse) + err := c.cc.Invoke(ctx, Query_ProductDetails_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) ProductDetailsAll(ctx context.Context, in *QueryAllProductDetailsRequest, opts ...grpc.CallOption) (*QueryAllProductDetailsResponse, error) { + out := new(QueryAllProductDetailsResponse) + err := c.cc.Invoke(ctx, Query_ProductDetailsAll_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. // All implementations must embed UnimplementedQueryServer // for forward compatibility type QueryServer interface { // Parameters queries the parameters of the module. Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // Queries a list of ProductDetails items. + ProductDetails(context.Context, *QueryGetProductDetailsRequest) (*QueryGetProductDetailsResponse, error) + ProductDetailsAll(context.Context, *QueryAllProductDetailsRequest) (*QueryAllProductDetailsResponse, error) mustEmbedUnimplementedQueryServer() } @@ -63,6 +89,12 @@ type UnimplementedQueryServer struct { func (UnimplementedQueryServer) Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } +func (UnimplementedQueryServer) ProductDetails(context.Context, *QueryGetProductDetailsRequest) (*QueryGetProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProductDetails not implemented") +} +func (UnimplementedQueryServer) ProductDetailsAll(context.Context, *QueryAllProductDetailsRequest) (*QueryAllProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProductDetailsAll not implemented") +} func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {} // UnsafeQueryServer may be embedded to opt out of forward compatibility for this service. @@ -94,6 +126,42 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } +func _Query_ProductDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetProductDetailsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ProductDetails(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_ProductDetails_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ProductDetails(ctx, req.(*QueryGetProductDetailsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_ProductDetailsAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAllProductDetailsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ProductDetailsAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Query_ProductDetailsAll_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ProductDetailsAll(ctx, req.(*QueryAllProductDetailsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // Query_ServiceDesc is the grpc.ServiceDesc for Query service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -105,6 +173,14 @@ var Query_ServiceDesc = grpc.ServiceDesc{ MethodName: "Params", Handler: _Query_Params_Handler, }, + { + MethodName: "ProductDetails", + Handler: _Query_ProductDetails_Handler, + }, + { + MethodName: "ProductDetailsAll", + Handler: _Query_ProductDetailsAll_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cardchain/cardchain/query.proto", diff --git a/api/cardchain/cardchain/running_average.pulsar.go b/api/cardchain/cardchain/running_average.pulsar.go new file mode 100644 index 00000000..9cff2c1b --- /dev/null +++ b/api/cardchain/cardchain/running_average.pulsar.go @@ -0,0 +1,687 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package cardchain + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_RunningAverage_1_list)(nil) + +type _RunningAverage_1_list struct { + list *[]int64 +} + +func (x *_RunningAverage_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_RunningAverage_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfInt64((*x.list)[i]) +} + +func (x *_RunningAverage_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Int() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_RunningAverage_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Int() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_RunningAverage_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message RunningAverage at list field Arr as it is not of Message kind")) +} + +func (x *_RunningAverage_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_RunningAverage_1_list) NewElement() protoreflect.Value { + v := int64(0) + return protoreflect.ValueOfInt64(v) +} + +func (x *_RunningAverage_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_RunningAverage protoreflect.MessageDescriptor + fd_RunningAverage_arr protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_running_average_proto_init() + md_RunningAverage = File_cardchain_cardchain_running_average_proto.Messages().ByName("RunningAverage") + fd_RunningAverage_arr = md_RunningAverage.Fields().ByName("arr") +} + +var _ protoreflect.Message = (*fastReflection_RunningAverage)(nil) + +type fastReflection_RunningAverage RunningAverage + +func (x *RunningAverage) ProtoReflect() protoreflect.Message { + return (*fastReflection_RunningAverage)(x) +} + +func (x *RunningAverage) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_running_average_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_RunningAverage_messageType fastReflection_RunningAverage_messageType +var _ protoreflect.MessageType = fastReflection_RunningAverage_messageType{} + +type fastReflection_RunningAverage_messageType struct{} + +func (x fastReflection_RunningAverage_messageType) Zero() protoreflect.Message { + return (*fastReflection_RunningAverage)(nil) +} +func (x fastReflection_RunningAverage_messageType) New() protoreflect.Message { + return new(fastReflection_RunningAverage) +} +func (x fastReflection_RunningAverage_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_RunningAverage +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_RunningAverage) Descriptor() protoreflect.MessageDescriptor { + return md_RunningAverage +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_RunningAverage) Type() protoreflect.MessageType { + return _fastReflection_RunningAverage_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_RunningAverage) New() protoreflect.Message { + return new(fastReflection_RunningAverage) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_RunningAverage) Interface() protoreflect.ProtoMessage { + return (*RunningAverage)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_RunningAverage) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Arr) != 0 { + value := protoreflect.ValueOfList(&_RunningAverage_1_list{list: &x.Arr}) + if !f(fd_RunningAverage_arr, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_RunningAverage) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.RunningAverage.arr": + return len(x.Arr) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.RunningAverage")) + } + panic(fmt.Errorf("message cardchain.cardchain.RunningAverage does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_RunningAverage) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.RunningAverage.arr": + x.Arr = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.RunningAverage")) + } + panic(fmt.Errorf("message cardchain.cardchain.RunningAverage does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_RunningAverage) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.RunningAverage.arr": + if len(x.Arr) == 0 { + return protoreflect.ValueOfList(&_RunningAverage_1_list{}) + } + listValue := &_RunningAverage_1_list{list: &x.Arr} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.RunningAverage")) + } + panic(fmt.Errorf("message cardchain.cardchain.RunningAverage does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_RunningAverage) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.RunningAverage.arr": + lv := value.List() + clv := lv.(*_RunningAverage_1_list) + x.Arr = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.RunningAverage")) + } + panic(fmt.Errorf("message cardchain.cardchain.RunningAverage does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_RunningAverage) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.RunningAverage.arr": + if x.Arr == nil { + x.Arr = []int64{} + } + value := &_RunningAverage_1_list{list: &x.Arr} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.RunningAverage")) + } + panic(fmt.Errorf("message cardchain.cardchain.RunningAverage does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_RunningAverage) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.RunningAverage.arr": + list := []int64{} + return protoreflect.ValueOfList(&_RunningAverage_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.RunningAverage")) + } + panic(fmt.Errorf("message cardchain.cardchain.RunningAverage does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_RunningAverage) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.RunningAverage", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_RunningAverage) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_RunningAverage) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_RunningAverage) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_RunningAverage) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*RunningAverage) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Arr) > 0 { + l = 0 + for _, e := range x.Arr { + l += runtime.Sov(uint64(e)) + } + n += 1 + runtime.Sov(uint64(l)) + l + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*RunningAverage) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Arr) > 0 { + var pksize2 int + for _, num := range x.Arr { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num1 := range x.Arr { + num := uint64(num1) + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*RunningAverage) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RunningAverage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: RunningAverage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Arr = append(x.Arr, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.Arr) == 0 { + x.Arr = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Arr = append(x.Arr, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Arr", wireType) + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cardchain/cardchain/running_average.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type RunningAverage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Arr []int64 `protobuf:"varint,1,rep,packed,name=arr,proto3" json:"arr,omitempty"` +} + +func (x *RunningAverage) Reset() { + *x = RunningAverage{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_running_average_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RunningAverage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunningAverage) ProtoMessage() {} + +// Deprecated: Use RunningAverage.ProtoReflect.Descriptor instead. +func (*RunningAverage) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_running_average_proto_rawDescGZIP(), []int{0} +} + +func (x *RunningAverage) GetArr() []int64 { + if x != nil { + return x.Arr + } + return nil +} + +var File_cardchain_cardchain_running_average_proto protoreflect.FileDescriptor + +var file_cardchain_cardchain_running_average_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x76, + 0x65, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x72, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, + 0x03, 0x61, 0x72, 0x72, 0x42, 0xdb, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x42, 0x13, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, + 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, + 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, + 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cardchain_cardchain_running_average_proto_rawDescOnce sync.Once + file_cardchain_cardchain_running_average_proto_rawDescData = file_cardchain_cardchain_running_average_proto_rawDesc +) + +func file_cardchain_cardchain_running_average_proto_rawDescGZIP() []byte { + file_cardchain_cardchain_running_average_proto_rawDescOnce.Do(func() { + file_cardchain_cardchain_running_average_proto_rawDescData = protoimpl.X.CompressGZIP(file_cardchain_cardchain_running_average_proto_rawDescData) + }) + return file_cardchain_cardchain_running_average_proto_rawDescData +} + +var file_cardchain_cardchain_running_average_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_cardchain_cardchain_running_average_proto_goTypes = []interface{}{ + (*RunningAverage)(nil), // 0: cardchain.cardchain.RunningAverage +} +var file_cardchain_cardchain_running_average_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_cardchain_cardchain_running_average_proto_init() } +func file_cardchain_cardchain_running_average_proto_init() { + if File_cardchain_cardchain_running_average_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cardchain_cardchain_running_average_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RunningAverage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cardchain_cardchain_running_average_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cardchain_cardchain_running_average_proto_goTypes, + DependencyIndexes: file_cardchain_cardchain_running_average_proto_depIdxs, + MessageInfos: file_cardchain_cardchain_running_average_proto_msgTypes, + }.Build() + File_cardchain_cardchain_running_average_proto = out.File + file_cardchain_cardchain_running_average_proto_rawDesc = nil + file_cardchain_cardchain_running_average_proto_goTypes = nil + file_cardchain_cardchain_running_average_proto_depIdxs = nil +} diff --git a/api/cardchain/cardchain/sell_offer.pulsar.go b/api/cardchain/cardchain/sell_offer.pulsar.go new file mode 100644 index 00000000..55fde4b3 --- /dev/null +++ b/api/cardchain/cardchain/sell_offer.pulsar.go @@ -0,0 +1,914 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package cardchain + +import ( + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_SellOffer protoreflect.MessageDescriptor + fd_SellOffer_seller protoreflect.FieldDescriptor + fd_SellOffer_buyer protoreflect.FieldDescriptor + fd_SellOffer_card protoreflect.FieldDescriptor + fd_SellOffer_price protoreflect.FieldDescriptor + fd_SellOffer_status protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_sell_offer_proto_init() + md_SellOffer = File_cardchain_cardchain_sell_offer_proto.Messages().ByName("SellOffer") + fd_SellOffer_seller = md_SellOffer.Fields().ByName("seller") + fd_SellOffer_buyer = md_SellOffer.Fields().ByName("buyer") + fd_SellOffer_card = md_SellOffer.Fields().ByName("card") + fd_SellOffer_price = md_SellOffer.Fields().ByName("price") + fd_SellOffer_status = md_SellOffer.Fields().ByName("status") +} + +var _ protoreflect.Message = (*fastReflection_SellOffer)(nil) + +type fastReflection_SellOffer SellOffer + +func (x *SellOffer) ProtoReflect() protoreflect.Message { + return (*fastReflection_SellOffer)(x) +} + +func (x *SellOffer) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_sell_offer_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_SellOffer_messageType fastReflection_SellOffer_messageType +var _ protoreflect.MessageType = fastReflection_SellOffer_messageType{} + +type fastReflection_SellOffer_messageType struct{} + +func (x fastReflection_SellOffer_messageType) Zero() protoreflect.Message { + return (*fastReflection_SellOffer)(nil) +} +func (x fastReflection_SellOffer_messageType) New() protoreflect.Message { + return new(fastReflection_SellOffer) +} +func (x fastReflection_SellOffer_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_SellOffer +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_SellOffer) Descriptor() protoreflect.MessageDescriptor { + return md_SellOffer +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_SellOffer) Type() protoreflect.MessageType { + return _fastReflection_SellOffer_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_SellOffer) New() protoreflect.Message { + return new(fastReflection_SellOffer) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_SellOffer) Interface() protoreflect.ProtoMessage { + return (*SellOffer)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_SellOffer) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Seller != "" { + value := protoreflect.ValueOfString(x.Seller) + if !f(fd_SellOffer_seller, value) { + return + } + } + if x.Buyer != "" { + value := protoreflect.ValueOfString(x.Buyer) + if !f(fd_SellOffer_buyer, value) { + return + } + } + if x.Card != uint64(0) { + value := protoreflect.ValueOfUint64(x.Card) + if !f(fd_SellOffer_card, value) { + return + } + } + if x.Price != nil { + value := protoreflect.ValueOfMessage(x.Price.ProtoReflect()) + if !f(fd_SellOffer_price, value) { + return + } + } + if x.Status != 0 { + value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Status)) + if !f(fd_SellOffer_status, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_SellOffer) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.SellOffer.seller": + return x.Seller != "" + case "cardchain.cardchain.SellOffer.buyer": + return x.Buyer != "" + case "cardchain.cardchain.SellOffer.card": + return x.Card != uint64(0) + case "cardchain.cardchain.SellOffer.price": + return x.Price != nil + case "cardchain.cardchain.SellOffer.status": + return x.Status != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.SellOffer")) + } + panic(fmt.Errorf("message cardchain.cardchain.SellOffer does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_SellOffer) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.SellOffer.seller": + x.Seller = "" + case "cardchain.cardchain.SellOffer.buyer": + x.Buyer = "" + case "cardchain.cardchain.SellOffer.card": + x.Card = uint64(0) + case "cardchain.cardchain.SellOffer.price": + x.Price = nil + case "cardchain.cardchain.SellOffer.status": + x.Status = 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.SellOffer")) + } + panic(fmt.Errorf("message cardchain.cardchain.SellOffer does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_SellOffer) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.SellOffer.seller": + value := x.Seller + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.SellOffer.buyer": + value := x.Buyer + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.SellOffer.card": + value := x.Card + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.SellOffer.price": + value := x.Price + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.SellOffer.status": + value := x.Status + return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.SellOffer")) + } + panic(fmt.Errorf("message cardchain.cardchain.SellOffer does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_SellOffer) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.SellOffer.seller": + x.Seller = value.Interface().(string) + case "cardchain.cardchain.SellOffer.buyer": + x.Buyer = value.Interface().(string) + case "cardchain.cardchain.SellOffer.card": + x.Card = value.Uint() + case "cardchain.cardchain.SellOffer.price": + x.Price = value.Message().Interface().(*v1beta1.Coin) + case "cardchain.cardchain.SellOffer.status": + x.Status = (SellOfferStatus)(value.Enum()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.SellOffer")) + } + panic(fmt.Errorf("message cardchain.cardchain.SellOffer does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_SellOffer) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.SellOffer.price": + if x.Price == nil { + x.Price = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Price.ProtoReflect()) + case "cardchain.cardchain.SellOffer.seller": + panic(fmt.Errorf("field seller of message cardchain.cardchain.SellOffer is not mutable")) + case "cardchain.cardchain.SellOffer.buyer": + panic(fmt.Errorf("field buyer of message cardchain.cardchain.SellOffer is not mutable")) + case "cardchain.cardchain.SellOffer.card": + panic(fmt.Errorf("field card of message cardchain.cardchain.SellOffer is not mutable")) + case "cardchain.cardchain.SellOffer.status": + panic(fmt.Errorf("field status of message cardchain.cardchain.SellOffer is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.SellOffer")) + } + panic(fmt.Errorf("message cardchain.cardchain.SellOffer does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_SellOffer) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.SellOffer.seller": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.SellOffer.buyer": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.SellOffer.card": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.SellOffer.price": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.SellOffer.status": + return protoreflect.ValueOfEnum(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.SellOffer")) + } + panic(fmt.Errorf("message cardchain.cardchain.SellOffer does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_SellOffer) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.SellOffer", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_SellOffer) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_SellOffer) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_SellOffer) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_SellOffer) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*SellOffer) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Seller) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Buyer) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Card != 0 { + n += 1 + runtime.Sov(uint64(x.Card)) + } + if x.Price != nil { + l = options.Size(x.Price) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Status != 0 { + n += 1 + runtime.Sov(uint64(x.Status)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*SellOffer) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Status != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Status)) + i-- + dAtA[i] = 0x28 + } + if x.Price != nil { + encoded, err := options.Marshal(x.Price) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x22 + } + if x.Card != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Card)) + i-- + dAtA[i] = 0x18 + } + if len(x.Buyer) > 0 { + i -= len(x.Buyer) + copy(dAtA[i:], x.Buyer) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Buyer))) + i-- + dAtA[i] = 0x12 + } + if len(x.Seller) > 0 { + i -= len(x.Seller) + copy(dAtA[i:], x.Seller) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Seller))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*SellOffer) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: SellOffer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: SellOffer: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Seller", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Seller = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Buyer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Buyer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Card", wireType) + } + x.Card = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Card |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Price == nil { + x.Price = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Price); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + x.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Status |= SellOfferStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cardchain/cardchain/sell_offer.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type SellOfferStatus int32 + +const ( + SellOfferStatus_open SellOfferStatus = 0 + SellOfferStatus_sold SellOfferStatus = 1 + SellOfferStatus_removed SellOfferStatus = 2 +) + +// Enum value maps for SellOfferStatus. +var ( + SellOfferStatus_name = map[int32]string{ + 0: "open", + 1: "sold", + 2: "removed", + } + SellOfferStatus_value = map[string]int32{ + "open": 0, + "sold": 1, + "removed": 2, + } +) + +func (x SellOfferStatus) Enum() *SellOfferStatus { + p := new(SellOfferStatus) + *p = x + return p +} + +func (x SellOfferStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SellOfferStatus) Descriptor() protoreflect.EnumDescriptor { + return file_cardchain_cardchain_sell_offer_proto_enumTypes[0].Descriptor() +} + +func (SellOfferStatus) Type() protoreflect.EnumType { + return &file_cardchain_cardchain_sell_offer_proto_enumTypes[0] +} + +func (x SellOfferStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SellOfferStatus.Descriptor instead. +func (SellOfferStatus) EnumDescriptor() ([]byte, []int) { + return file_cardchain_cardchain_sell_offer_proto_rawDescGZIP(), []int{0} +} + +type SellOffer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seller string `protobuf:"bytes,1,opt,name=seller,proto3" json:"seller,omitempty"` + Buyer string `protobuf:"bytes,2,opt,name=buyer,proto3" json:"buyer,omitempty"` + Card uint64 `protobuf:"varint,3,opt,name=card,proto3" json:"card,omitempty"` + Price *v1beta1.Coin `protobuf:"bytes,4,opt,name=price,proto3" json:"price,omitempty"` + Status SellOfferStatus `protobuf:"varint,5,opt,name=status,proto3,enum=cardchain.cardchain.SellOfferStatus" json:"status,omitempty"` +} + +func (x *SellOffer) Reset() { + *x = SellOffer{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_sell_offer_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SellOffer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SellOffer) ProtoMessage() {} + +// Deprecated: Use SellOffer.ProtoReflect.Descriptor instead. +func (*SellOffer) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_sell_offer_proto_rawDescGZIP(), []int{0} +} + +func (x *SellOffer) GetSeller() string { + if x != nil { + return x.Seller + } + return "" +} + +func (x *SellOffer) GetBuyer() string { + if x != nil { + return x.Buyer + } + return "" +} + +func (x *SellOffer) GetCard() uint64 { + if x != nil { + return x.Card + } + return 0 +} + +func (x *SellOffer) GetPrice() *v1beta1.Coin { + if x != nil { + return x.Price + } + return nil +} + +func (x *SellOffer) GetStatus() SellOfferStatus { + if x != nil { + return x.Status + } + return SellOfferStatus_open +} + +var File_cardchain_cardchain_sell_offer_proto protoreflect.FileDescriptor + +var file_cardchain_cardchain_sell_offer_proto_rawDesc = []byte{ + 0x0a, 0x24, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x14, 0x67, 0x6f, 0x67, + 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xc2, 0x01, 0x0a, 0x09, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x61, 0x72, + 0x64, 0x12, 0x35, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, + 0x00, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x53, + 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x32, 0x0a, 0x0f, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, + 0x66, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, 0x04, 0x6f, 0x70, 0x65, + 0x6e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x6f, 0x6c, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x10, 0x02, 0x42, 0xd6, 0x01, 0x0a, 0x17, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x0e, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, + 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cardchain_cardchain_sell_offer_proto_rawDescOnce sync.Once + file_cardchain_cardchain_sell_offer_proto_rawDescData = file_cardchain_cardchain_sell_offer_proto_rawDesc +) + +func file_cardchain_cardchain_sell_offer_proto_rawDescGZIP() []byte { + file_cardchain_cardchain_sell_offer_proto_rawDescOnce.Do(func() { + file_cardchain_cardchain_sell_offer_proto_rawDescData = protoimpl.X.CompressGZIP(file_cardchain_cardchain_sell_offer_proto_rawDescData) + }) + return file_cardchain_cardchain_sell_offer_proto_rawDescData +} + +var file_cardchain_cardchain_sell_offer_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_cardchain_cardchain_sell_offer_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_cardchain_cardchain_sell_offer_proto_goTypes = []interface{}{ + (SellOfferStatus)(0), // 0: cardchain.cardchain.SellOfferStatus + (*SellOffer)(nil), // 1: cardchain.cardchain.SellOffer + (*v1beta1.Coin)(nil), // 2: cosmos.base.v1beta1.Coin +} +var file_cardchain_cardchain_sell_offer_proto_depIdxs = []int32{ + 2, // 0: cardchain.cardchain.SellOffer.price:type_name -> cosmos.base.v1beta1.Coin + 0, // 1: cardchain.cardchain.SellOffer.status:type_name -> cardchain.cardchain.SellOfferStatus + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_cardchain_cardchain_sell_offer_proto_init() } +func file_cardchain_cardchain_sell_offer_proto_init() { + if File_cardchain_cardchain_sell_offer_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cardchain_cardchain_sell_offer_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SellOffer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cardchain_cardchain_sell_offer_proto_rawDesc, + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cardchain_cardchain_sell_offer_proto_goTypes, + DependencyIndexes: file_cardchain_cardchain_sell_offer_proto_depIdxs, + EnumInfos: file_cardchain_cardchain_sell_offer_proto_enumTypes, + MessageInfos: file_cardchain_cardchain_sell_offer_proto_msgTypes, + }.Build() + File_cardchain_cardchain_sell_offer_proto = out.File + file_cardchain_cardchain_sell_offer_proto_rawDesc = nil + file_cardchain_cardchain_sell_offer_proto_goTypes = nil + file_cardchain_cardchain_sell_offer_proto_depIdxs = nil +} diff --git a/api/cardchain/cardchain/server.pulsar.go b/api/cardchain/cardchain/server.pulsar.go new file mode 100644 index 00000000..e8d66d38 --- /dev/null +++ b/api/cardchain/cardchain/server.pulsar.go @@ -0,0 +1,686 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package cardchain + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_Server protoreflect.MessageDescriptor + fd_Server_reporter protoreflect.FieldDescriptor + fd_Server_invalidReports protoreflect.FieldDescriptor + fd_Server_validReports protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_server_proto_init() + md_Server = File_cardchain_cardchain_server_proto.Messages().ByName("Server") + fd_Server_reporter = md_Server.Fields().ByName("reporter") + fd_Server_invalidReports = md_Server.Fields().ByName("invalidReports") + fd_Server_validReports = md_Server.Fields().ByName("validReports") +} + +var _ protoreflect.Message = (*fastReflection_Server)(nil) + +type fastReflection_Server Server + +func (x *Server) ProtoReflect() protoreflect.Message { + return (*fastReflection_Server)(x) +} + +func (x *Server) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_server_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Server_messageType fastReflection_Server_messageType +var _ protoreflect.MessageType = fastReflection_Server_messageType{} + +type fastReflection_Server_messageType struct{} + +func (x fastReflection_Server_messageType) Zero() protoreflect.Message { + return (*fastReflection_Server)(nil) +} +func (x fastReflection_Server_messageType) New() protoreflect.Message { + return new(fastReflection_Server) +} +func (x fastReflection_Server_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Server +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Server) Descriptor() protoreflect.MessageDescriptor { + return md_Server +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Server) Type() protoreflect.MessageType { + return _fastReflection_Server_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Server) New() protoreflect.Message { + return new(fastReflection_Server) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Server) Interface() protoreflect.ProtoMessage { + return (*Server)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Server) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Reporter != "" { + value := protoreflect.ValueOfString(x.Reporter) + if !f(fd_Server_reporter, value) { + return + } + } + if x.InvalidReports != uint64(0) { + value := protoreflect.ValueOfUint64(x.InvalidReports) + if !f(fd_Server_invalidReports, value) { + return + } + } + if x.ValidReports != uint64(0) { + value := protoreflect.ValueOfUint64(x.ValidReports) + if !f(fd_Server_validReports, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Server) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.Server.reporter": + return x.Reporter != "" + case "cardchain.cardchain.Server.invalidReports": + return x.InvalidReports != uint64(0) + case "cardchain.cardchain.Server.validReports": + return x.ValidReports != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Server")) + } + panic(fmt.Errorf("message cardchain.cardchain.Server does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Server) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.Server.reporter": + x.Reporter = "" + case "cardchain.cardchain.Server.invalidReports": + x.InvalidReports = uint64(0) + case "cardchain.cardchain.Server.validReports": + x.ValidReports = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Server")) + } + panic(fmt.Errorf("message cardchain.cardchain.Server does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Server) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.Server.reporter": + value := x.Reporter + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.Server.invalidReports": + value := x.InvalidReports + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Server.validReports": + value := x.ValidReports + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Server")) + } + panic(fmt.Errorf("message cardchain.cardchain.Server does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Server) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.Server.reporter": + x.Reporter = value.Interface().(string) + case "cardchain.cardchain.Server.invalidReports": + x.InvalidReports = value.Uint() + case "cardchain.cardchain.Server.validReports": + x.ValidReports = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Server")) + } + panic(fmt.Errorf("message cardchain.cardchain.Server does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Server) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.Server.reporter": + panic(fmt.Errorf("field reporter of message cardchain.cardchain.Server is not mutable")) + case "cardchain.cardchain.Server.invalidReports": + panic(fmt.Errorf("field invalidReports of message cardchain.cardchain.Server is not mutable")) + case "cardchain.cardchain.Server.validReports": + panic(fmt.Errorf("field validReports of message cardchain.cardchain.Server is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Server")) + } + panic(fmt.Errorf("message cardchain.cardchain.Server does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Server) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.Server.reporter": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.Server.invalidReports": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Server.validReports": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Server")) + } + panic(fmt.Errorf("message cardchain.cardchain.Server does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Server) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.Server", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Server) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Server) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Server) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Server) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Server) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Reporter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.InvalidReports != 0 { + n += 1 + runtime.Sov(uint64(x.InvalidReports)) + } + if x.ValidReports != 0 { + n += 1 + runtime.Sov(uint64(x.ValidReports)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Server) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.ValidReports != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.ValidReports)) + i-- + dAtA[i] = 0x18 + } + if x.InvalidReports != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.InvalidReports)) + i-- + dAtA[i] = 0x10 + } + if len(x.Reporter) > 0 { + i -= len(x.Reporter) + copy(dAtA[i:], x.Reporter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Reporter))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Server) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Server: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Server: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Reporter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Reporter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InvalidReports", wireType) + } + x.InvalidReports = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.InvalidReports |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidReports", wireType) + } + x.ValidReports = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.ValidReports |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cardchain/cardchain/server.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Server struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reporter string `protobuf:"bytes,1,opt,name=reporter,proto3" json:"reporter,omitempty"` + InvalidReports uint64 `protobuf:"varint,2,opt,name=invalidReports,proto3" json:"invalidReports,omitempty"` + ValidReports uint64 `protobuf:"varint,3,opt,name=validReports,proto3" json:"validReports,omitempty"` +} + +func (x *Server) Reset() { + *x = Server{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_server_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Server) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Server) ProtoMessage() {} + +// Deprecated: Use Server.ProtoReflect.Descriptor instead. +func (*Server) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_server_proto_rawDescGZIP(), []int{0} +} + +func (x *Server) GetReporter() string { + if x != nil { + return x.Reporter + } + return "" +} + +func (x *Server) GetInvalidReports() uint64 { + if x != nil { + return x.InvalidReports + } + return 0 +} + +func (x *Server) GetValidReports() uint64 { + if x != nil { + return x.ValidReports + } + return 0 +} + +var File_cardchain_cardchain_server_proto protoreflect.FileDescriptor + +var file_cardchain_cardchain_server_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x13, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x22, 0x70, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, + 0x0e, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0xd3, 0x01, 0x0a, 0x17, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, + 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cardchain_cardchain_server_proto_rawDescOnce sync.Once + file_cardchain_cardchain_server_proto_rawDescData = file_cardchain_cardchain_server_proto_rawDesc +) + +func file_cardchain_cardchain_server_proto_rawDescGZIP() []byte { + file_cardchain_cardchain_server_proto_rawDescOnce.Do(func() { + file_cardchain_cardchain_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_cardchain_cardchain_server_proto_rawDescData) + }) + return file_cardchain_cardchain_server_proto_rawDescData +} + +var file_cardchain_cardchain_server_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_cardchain_cardchain_server_proto_goTypes = []interface{}{ + (*Server)(nil), // 0: cardchain.cardchain.Server +} +var file_cardchain_cardchain_server_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_cardchain_cardchain_server_proto_init() } +func file_cardchain_cardchain_server_proto_init() { + if File_cardchain_cardchain_server_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cardchain_cardchain_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Server); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cardchain_cardchain_server_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cardchain_cardchain_server_proto_goTypes, + DependencyIndexes: file_cardchain_cardchain_server_proto_depIdxs, + MessageInfos: file_cardchain_cardchain_server_proto_msgTypes, + }.Build() + File_cardchain_cardchain_server_proto = out.File + file_cardchain_cardchain_server_proto_rawDesc = nil + file_cardchain_cardchain_server_proto_goTypes = nil + file_cardchain_cardchain_server_proto_depIdxs = nil +} diff --git a/api/cardchain/cardchain/set.pulsar.go b/api/cardchain/cardchain/set.pulsar.go new file mode 100644 index 00000000..84be5f2e --- /dev/null +++ b/api/cardchain/cardchain/set.pulsar.go @@ -0,0 +1,3424 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package cardchain + +import ( + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_Set_2_list)(nil) + +type _Set_2_list struct { + list *[]uint64 +} + +func (x *_Set_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Set_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfUint64((*x.list)[i]) +} + +func (x *_Set_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Set_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Set_2_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Set at list field Cards as it is not of Message kind")) +} + +func (x *_Set_2_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Set_2_list) NewElement() protoreflect.Value { + v := uint64(0) + return protoreflect.ValueOfUint64(v) +} + +func (x *_Set_2_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_Set_5_list)(nil) + +type _Set_5_list struct { + list *[]string +} + +func (x *_Set_5_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Set_5_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_Set_5_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Set_5_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Set_5_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Set at list field Contributors as it is not of Message kind")) +} + +func (x *_Set_5_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Set_5_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_Set_5_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_Set_10_list)(nil) + +type _Set_10_list struct { + list *[]*AddrWithQuantity +} + +func (x *_Set_10_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Set_10_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_Set_10_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*AddrWithQuantity) + (*x.list)[i] = concreteValue +} + +func (x *_Set_10_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*AddrWithQuantity) + *x.list = append(*x.list, concreteValue) +} + +func (x *_Set_10_list) AppendMutable() protoreflect.Value { + v := new(AddrWithQuantity) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_Set_10_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_Set_10_list) NewElement() protoreflect.Value { + v := new(AddrWithQuantity) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_Set_10_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_Set_11_list)(nil) + +type _Set_11_list struct { + list *[]*InnerRarities +} + +func (x *_Set_11_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Set_11_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_Set_11_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*InnerRarities) + (*x.list)[i] = concreteValue +} + +func (x *_Set_11_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*InnerRarities) + *x.list = append(*x.list, concreteValue) +} + +func (x *_Set_11_list) AppendMutable() protoreflect.Value { + v := new(InnerRarities) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_Set_11_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_Set_11_list) NewElement() protoreflect.Value { + v := new(InnerRarities) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_Set_11_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Set protoreflect.MessageDescriptor + fd_Set_name protoreflect.FieldDescriptor + fd_Set_cards protoreflect.FieldDescriptor + fd_Set_artist protoreflect.FieldDescriptor + fd_Set_storyWriter protoreflect.FieldDescriptor + fd_Set_contributors protoreflect.FieldDescriptor + fd_Set_story protoreflect.FieldDescriptor + fd_Set_artworkId protoreflect.FieldDescriptor + fd_Set_status protoreflect.FieldDescriptor + fd_Set_timeStamp protoreflect.FieldDescriptor + fd_Set_contributorsDistribution protoreflect.FieldDescriptor + fd_Set_Rarities protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_set_proto_init() + md_Set = File_cardchain_cardchain_set_proto.Messages().ByName("Set") + fd_Set_name = md_Set.Fields().ByName("name") + fd_Set_cards = md_Set.Fields().ByName("cards") + fd_Set_artist = md_Set.Fields().ByName("artist") + fd_Set_storyWriter = md_Set.Fields().ByName("storyWriter") + fd_Set_contributors = md_Set.Fields().ByName("contributors") + fd_Set_story = md_Set.Fields().ByName("story") + fd_Set_artworkId = md_Set.Fields().ByName("artworkId") + fd_Set_status = md_Set.Fields().ByName("status") + fd_Set_timeStamp = md_Set.Fields().ByName("timeStamp") + fd_Set_contributorsDistribution = md_Set.Fields().ByName("contributorsDistribution") + fd_Set_Rarities = md_Set.Fields().ByName("Rarities") +} + +var _ protoreflect.Message = (*fastReflection_Set)(nil) + +type fastReflection_Set Set + +func (x *Set) ProtoReflect() protoreflect.Message { + return (*fastReflection_Set)(x) +} + +func (x *Set) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_set_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Set_messageType fastReflection_Set_messageType +var _ protoreflect.MessageType = fastReflection_Set_messageType{} + +type fastReflection_Set_messageType struct{} + +func (x fastReflection_Set_messageType) Zero() protoreflect.Message { + return (*fastReflection_Set)(nil) +} +func (x fastReflection_Set_messageType) New() protoreflect.Message { + return new(fastReflection_Set) +} +func (x fastReflection_Set_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Set +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Set) Descriptor() protoreflect.MessageDescriptor { + return md_Set +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Set) Type() protoreflect.MessageType { + return _fastReflection_Set_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Set) New() protoreflect.Message { + return new(fastReflection_Set) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Set) Interface() protoreflect.ProtoMessage { + return (*Set)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Set) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Name != "" { + value := protoreflect.ValueOfString(x.Name) + if !f(fd_Set_name, value) { + return + } + } + if len(x.Cards) != 0 { + value := protoreflect.ValueOfList(&_Set_2_list{list: &x.Cards}) + if !f(fd_Set_cards, value) { + return + } + } + if x.Artist != "" { + value := protoreflect.ValueOfString(x.Artist) + if !f(fd_Set_artist, value) { + return + } + } + if x.StoryWriter != "" { + value := protoreflect.ValueOfString(x.StoryWriter) + if !f(fd_Set_storyWriter, value) { + return + } + } + if len(x.Contributors) != 0 { + value := protoreflect.ValueOfList(&_Set_5_list{list: &x.Contributors}) + if !f(fd_Set_contributors, value) { + return + } + } + if x.Story != "" { + value := protoreflect.ValueOfString(x.Story) + if !f(fd_Set_story, value) { + return + } + } + if x.ArtworkId != uint64(0) { + value := protoreflect.ValueOfUint64(x.ArtworkId) + if !f(fd_Set_artworkId, value) { + return + } + } + if x.Status != 0 { + value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Status)) + if !f(fd_Set_status, value) { + return + } + } + if x.TimeStamp != int64(0) { + value := protoreflect.ValueOfInt64(x.TimeStamp) + if !f(fd_Set_timeStamp, value) { + return + } + } + if len(x.ContributorsDistribution) != 0 { + value := protoreflect.ValueOfList(&_Set_10_list{list: &x.ContributorsDistribution}) + if !f(fd_Set_contributorsDistribution, value) { + return + } + } + if len(x.Rarities) != 0 { + value := protoreflect.ValueOfList(&_Set_11_list{list: &x.Rarities}) + if !f(fd_Set_Rarities, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Set) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.Set.name": + return x.Name != "" + case "cardchain.cardchain.Set.cards": + return len(x.Cards) != 0 + case "cardchain.cardchain.Set.artist": + return x.Artist != "" + case "cardchain.cardchain.Set.storyWriter": + return x.StoryWriter != "" + case "cardchain.cardchain.Set.contributors": + return len(x.Contributors) != 0 + case "cardchain.cardchain.Set.story": + return x.Story != "" + case "cardchain.cardchain.Set.artworkId": + return x.ArtworkId != uint64(0) + case "cardchain.cardchain.Set.status": + return x.Status != 0 + case "cardchain.cardchain.Set.timeStamp": + return x.TimeStamp != int64(0) + case "cardchain.cardchain.Set.contributorsDistribution": + return len(x.ContributorsDistribution) != 0 + case "cardchain.cardchain.Set.Rarities": + return len(x.Rarities) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Set")) + } + panic(fmt.Errorf("message cardchain.cardchain.Set does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Set) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.Set.name": + x.Name = "" + case "cardchain.cardchain.Set.cards": + x.Cards = nil + case "cardchain.cardchain.Set.artist": + x.Artist = "" + case "cardchain.cardchain.Set.storyWriter": + x.StoryWriter = "" + case "cardchain.cardchain.Set.contributors": + x.Contributors = nil + case "cardchain.cardchain.Set.story": + x.Story = "" + case "cardchain.cardchain.Set.artworkId": + x.ArtworkId = uint64(0) + case "cardchain.cardchain.Set.status": + x.Status = 0 + case "cardchain.cardchain.Set.timeStamp": + x.TimeStamp = int64(0) + case "cardchain.cardchain.Set.contributorsDistribution": + x.ContributorsDistribution = nil + case "cardchain.cardchain.Set.Rarities": + x.Rarities = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Set")) + } + panic(fmt.Errorf("message cardchain.cardchain.Set does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Set) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.Set.name": + value := x.Name + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.Set.cards": + if len(x.Cards) == 0 { + return protoreflect.ValueOfList(&_Set_2_list{}) + } + listValue := &_Set_2_list{list: &x.Cards} + return protoreflect.ValueOfList(listValue) + case "cardchain.cardchain.Set.artist": + value := x.Artist + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.Set.storyWriter": + value := x.StoryWriter + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.Set.contributors": + if len(x.Contributors) == 0 { + return protoreflect.ValueOfList(&_Set_5_list{}) + } + listValue := &_Set_5_list{list: &x.Contributors} + return protoreflect.ValueOfList(listValue) + case "cardchain.cardchain.Set.story": + value := x.Story + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.Set.artworkId": + value := x.ArtworkId + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.Set.status": + value := x.Status + return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) + case "cardchain.cardchain.Set.timeStamp": + value := x.TimeStamp + return protoreflect.ValueOfInt64(value) + case "cardchain.cardchain.Set.contributorsDistribution": + if len(x.ContributorsDistribution) == 0 { + return protoreflect.ValueOfList(&_Set_10_list{}) + } + listValue := &_Set_10_list{list: &x.ContributorsDistribution} + return protoreflect.ValueOfList(listValue) + case "cardchain.cardchain.Set.Rarities": + if len(x.Rarities) == 0 { + return protoreflect.ValueOfList(&_Set_11_list{}) + } + listValue := &_Set_11_list{list: &x.Rarities} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Set")) + } + panic(fmt.Errorf("message cardchain.cardchain.Set does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Set) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.Set.name": + x.Name = value.Interface().(string) + case "cardchain.cardchain.Set.cards": + lv := value.List() + clv := lv.(*_Set_2_list) + x.Cards = *clv.list + case "cardchain.cardchain.Set.artist": + x.Artist = value.Interface().(string) + case "cardchain.cardchain.Set.storyWriter": + x.StoryWriter = value.Interface().(string) + case "cardchain.cardchain.Set.contributors": + lv := value.List() + clv := lv.(*_Set_5_list) + x.Contributors = *clv.list + case "cardchain.cardchain.Set.story": + x.Story = value.Interface().(string) + case "cardchain.cardchain.Set.artworkId": + x.ArtworkId = value.Uint() + case "cardchain.cardchain.Set.status": + x.Status = (CStatus)(value.Enum()) + case "cardchain.cardchain.Set.timeStamp": + x.TimeStamp = value.Int() + case "cardchain.cardchain.Set.contributorsDistribution": + lv := value.List() + clv := lv.(*_Set_10_list) + x.ContributorsDistribution = *clv.list + case "cardchain.cardchain.Set.Rarities": + lv := value.List() + clv := lv.(*_Set_11_list) + x.Rarities = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Set")) + } + panic(fmt.Errorf("message cardchain.cardchain.Set does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Set) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.Set.cards": + if x.Cards == nil { + x.Cards = []uint64{} + } + value := &_Set_2_list{list: &x.Cards} + return protoreflect.ValueOfList(value) + case "cardchain.cardchain.Set.contributors": + if x.Contributors == nil { + x.Contributors = []string{} + } + value := &_Set_5_list{list: &x.Contributors} + return protoreflect.ValueOfList(value) + case "cardchain.cardchain.Set.contributorsDistribution": + if x.ContributorsDistribution == nil { + x.ContributorsDistribution = []*AddrWithQuantity{} + } + value := &_Set_10_list{list: &x.ContributorsDistribution} + return protoreflect.ValueOfList(value) + case "cardchain.cardchain.Set.Rarities": + if x.Rarities == nil { + x.Rarities = []*InnerRarities{} + } + value := &_Set_11_list{list: &x.Rarities} + return protoreflect.ValueOfList(value) + case "cardchain.cardchain.Set.name": + panic(fmt.Errorf("field name of message cardchain.cardchain.Set is not mutable")) + case "cardchain.cardchain.Set.artist": + panic(fmt.Errorf("field artist of message cardchain.cardchain.Set is not mutable")) + case "cardchain.cardchain.Set.storyWriter": + panic(fmt.Errorf("field storyWriter of message cardchain.cardchain.Set is not mutable")) + case "cardchain.cardchain.Set.story": + panic(fmt.Errorf("field story of message cardchain.cardchain.Set is not mutable")) + case "cardchain.cardchain.Set.artworkId": + panic(fmt.Errorf("field artworkId of message cardchain.cardchain.Set is not mutable")) + case "cardchain.cardchain.Set.status": + panic(fmt.Errorf("field status of message cardchain.cardchain.Set is not mutable")) + case "cardchain.cardchain.Set.timeStamp": + panic(fmt.Errorf("field timeStamp of message cardchain.cardchain.Set is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Set")) + } + panic(fmt.Errorf("message cardchain.cardchain.Set does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Set) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.Set.name": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.Set.cards": + list := []uint64{} + return protoreflect.ValueOfList(&_Set_2_list{list: &list}) + case "cardchain.cardchain.Set.artist": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.Set.storyWriter": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.Set.contributors": + list := []string{} + return protoreflect.ValueOfList(&_Set_5_list{list: &list}) + case "cardchain.cardchain.Set.story": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.Set.artworkId": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.Set.status": + return protoreflect.ValueOfEnum(0) + case "cardchain.cardchain.Set.timeStamp": + return protoreflect.ValueOfInt64(int64(0)) + case "cardchain.cardchain.Set.contributorsDistribution": + list := []*AddrWithQuantity{} + return protoreflect.ValueOfList(&_Set_10_list{list: &list}) + case "cardchain.cardchain.Set.Rarities": + list := []*InnerRarities{} + return protoreflect.ValueOfList(&_Set_11_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.Set")) + } + panic(fmt.Errorf("message cardchain.cardchain.Set does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Set) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.Set", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Set) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Set) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Set) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Set) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Set) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Name) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Cards) > 0 { + l = 0 + for _, e := range x.Cards { + l += runtime.Sov(uint64(e)) + } + n += 1 + runtime.Sov(uint64(l)) + l + } + l = len(x.Artist) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.StoryWriter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Contributors) > 0 { + for _, s := range x.Contributors { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + l = len(x.Story) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.ArtworkId != 0 { + n += 1 + runtime.Sov(uint64(x.ArtworkId)) + } + if x.Status != 0 { + n += 1 + runtime.Sov(uint64(x.Status)) + } + if x.TimeStamp != 0 { + n += 1 + runtime.Sov(uint64(x.TimeStamp)) + } + if len(x.ContributorsDistribution) > 0 { + for _, e := range x.ContributorsDistribution { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if len(x.Rarities) > 0 { + for _, e := range x.Rarities { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Set) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Rarities) > 0 { + for iNdEx := len(x.Rarities) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Rarities[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x5a + } + } + if len(x.ContributorsDistribution) > 0 { + for iNdEx := len(x.ContributorsDistribution) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.ContributorsDistribution[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x52 + } + } + if x.TimeStamp != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.TimeStamp)) + i-- + dAtA[i] = 0x48 + } + if x.Status != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Status)) + i-- + dAtA[i] = 0x40 + } + if x.ArtworkId != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.ArtworkId)) + i-- + dAtA[i] = 0x38 + } + if len(x.Story) > 0 { + i -= len(x.Story) + copy(dAtA[i:], x.Story) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Story))) + i-- + dAtA[i] = 0x32 + } + if len(x.Contributors) > 0 { + for iNdEx := len(x.Contributors) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.Contributors[iNdEx]) + copy(dAtA[i:], x.Contributors[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Contributors[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if len(x.StoryWriter) > 0 { + i -= len(x.StoryWriter) + copy(dAtA[i:], x.StoryWriter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.StoryWriter))) + i-- + dAtA[i] = 0x22 + } + if len(x.Artist) > 0 { + i -= len(x.Artist) + copy(dAtA[i:], x.Artist) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Artist))) + i-- + dAtA[i] = 0x1a + } + if len(x.Cards) > 0 { + var pksize2 int + for _, num := range x.Cards { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num := range x.Cards { + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0x12 + } + if len(x.Name) > 0 { + i -= len(x.Name) + copy(dAtA[i:], x.Name) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Set) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Set: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Set: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Cards = append(x.Cards, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.Cards) == 0 { + x.Cards = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Cards = append(x.Cards, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Cards", wireType) + } + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Artist", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Artist = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field StoryWriter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.StoryWriter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Contributors", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Contributors = append(x.Contributors, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Story", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Story = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ArtworkId", wireType) + } + x.ArtworkId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.ArtworkId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + x.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Status |= CStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TimeStamp", wireType) + } + x.TimeStamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.TimeStamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ContributorsDistribution", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ContributorsDistribution = append(x.ContributorsDistribution, &AddrWithQuantity{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ContributorsDistribution[len(x.ContributorsDistribution)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Rarities", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Rarities = append(x.Rarities, &InnerRarities{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Rarities[len(x.Rarities)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_InnerRarities_1_list)(nil) + +type _InnerRarities_1_list struct { + list *[]uint64 +} + +func (x *_InnerRarities_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_InnerRarities_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfUint64((*x.list)[i]) +} + +func (x *_InnerRarities_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_InnerRarities_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_InnerRarities_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message InnerRarities at list field R as it is not of Message kind")) +} + +func (x *_InnerRarities_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_InnerRarities_1_list) NewElement() protoreflect.Value { + v := uint64(0) + return protoreflect.ValueOfUint64(v) +} + +func (x *_InnerRarities_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_InnerRarities protoreflect.MessageDescriptor + fd_InnerRarities_R protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_set_proto_init() + md_InnerRarities = File_cardchain_cardchain_set_proto.Messages().ByName("InnerRarities") + fd_InnerRarities_R = md_InnerRarities.Fields().ByName("R") +} + +var _ protoreflect.Message = (*fastReflection_InnerRarities)(nil) + +type fastReflection_InnerRarities InnerRarities + +func (x *InnerRarities) ProtoReflect() protoreflect.Message { + return (*fastReflection_InnerRarities)(x) +} + +func (x *InnerRarities) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_set_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_InnerRarities_messageType fastReflection_InnerRarities_messageType +var _ protoreflect.MessageType = fastReflection_InnerRarities_messageType{} + +type fastReflection_InnerRarities_messageType struct{} + +func (x fastReflection_InnerRarities_messageType) Zero() protoreflect.Message { + return (*fastReflection_InnerRarities)(nil) +} +func (x fastReflection_InnerRarities_messageType) New() protoreflect.Message { + return new(fastReflection_InnerRarities) +} +func (x fastReflection_InnerRarities_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_InnerRarities +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_InnerRarities) Descriptor() protoreflect.MessageDescriptor { + return md_InnerRarities +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_InnerRarities) Type() protoreflect.MessageType { + return _fastReflection_InnerRarities_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_InnerRarities) New() protoreflect.Message { + return new(fastReflection_InnerRarities) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_InnerRarities) Interface() protoreflect.ProtoMessage { + return (*InnerRarities)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_InnerRarities) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.R) != 0 { + value := protoreflect.ValueOfList(&_InnerRarities_1_list{list: &x.R}) + if !f(fd_InnerRarities_R, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_InnerRarities) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.InnerRarities.R": + return len(x.R) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.InnerRarities")) + } + panic(fmt.Errorf("message cardchain.cardchain.InnerRarities does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_InnerRarities) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.InnerRarities.R": + x.R = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.InnerRarities")) + } + panic(fmt.Errorf("message cardchain.cardchain.InnerRarities does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_InnerRarities) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.InnerRarities.R": + if len(x.R) == 0 { + return protoreflect.ValueOfList(&_InnerRarities_1_list{}) + } + listValue := &_InnerRarities_1_list{list: &x.R} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.InnerRarities")) + } + panic(fmt.Errorf("message cardchain.cardchain.InnerRarities does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_InnerRarities) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.InnerRarities.R": + lv := value.List() + clv := lv.(*_InnerRarities_1_list) + x.R = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.InnerRarities")) + } + panic(fmt.Errorf("message cardchain.cardchain.InnerRarities does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_InnerRarities) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.InnerRarities.R": + if x.R == nil { + x.R = []uint64{} + } + value := &_InnerRarities_1_list{list: &x.R} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.InnerRarities")) + } + panic(fmt.Errorf("message cardchain.cardchain.InnerRarities does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_InnerRarities) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.InnerRarities.R": + list := []uint64{} + return protoreflect.ValueOfList(&_InnerRarities_1_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.InnerRarities")) + } + panic(fmt.Errorf("message cardchain.cardchain.InnerRarities does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_InnerRarities) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.InnerRarities", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_InnerRarities) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_InnerRarities) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_InnerRarities) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_InnerRarities) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*InnerRarities) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.R) > 0 { + l = 0 + for _, e := range x.R { + l += runtime.Sov(uint64(e)) + } + n += 1 + runtime.Sov(uint64(l)) + l + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*InnerRarities) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.R) > 0 { + var pksize2 int + for _, num := range x.R { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num := range x.R { + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*InnerRarities) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: InnerRarities: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: InnerRarities: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.R = append(x.R, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.R) == 0 { + x.R = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.R = append(x.R, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field R", wireType) + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_OutpSet protoreflect.MessageDescriptor + fd_OutpSet_set protoreflect.FieldDescriptor + fd_OutpSet_artwork protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_set_proto_init() + md_OutpSet = File_cardchain_cardchain_set_proto.Messages().ByName("OutpSet") + fd_OutpSet_set = md_OutpSet.Fields().ByName("set") + fd_OutpSet_artwork = md_OutpSet.Fields().ByName("artwork") +} + +var _ protoreflect.Message = (*fastReflection_OutpSet)(nil) + +type fastReflection_OutpSet OutpSet + +func (x *OutpSet) ProtoReflect() protoreflect.Message { + return (*fastReflection_OutpSet)(x) +} + +func (x *OutpSet) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_set_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_OutpSet_messageType fastReflection_OutpSet_messageType +var _ protoreflect.MessageType = fastReflection_OutpSet_messageType{} + +type fastReflection_OutpSet_messageType struct{} + +func (x fastReflection_OutpSet_messageType) Zero() protoreflect.Message { + return (*fastReflection_OutpSet)(nil) +} +func (x fastReflection_OutpSet_messageType) New() protoreflect.Message { + return new(fastReflection_OutpSet) +} +func (x fastReflection_OutpSet_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_OutpSet +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_OutpSet) Descriptor() protoreflect.MessageDescriptor { + return md_OutpSet +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_OutpSet) Type() protoreflect.MessageType { + return _fastReflection_OutpSet_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_OutpSet) New() protoreflect.Message { + return new(fastReflection_OutpSet) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_OutpSet) Interface() protoreflect.ProtoMessage { + return (*OutpSet)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_OutpSet) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Set_ != nil { + value := protoreflect.ValueOfMessage(x.Set_.ProtoReflect()) + if !f(fd_OutpSet_set, value) { + return + } + } + if len(x.Artwork) != 0 { + value := protoreflect.ValueOfBytes(x.Artwork) + if !f(fd_OutpSet_artwork, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_OutpSet) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.OutpSet.set": + return x.Set_ != nil + case "cardchain.cardchain.OutpSet.artwork": + return len(x.Artwork) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.OutpSet")) + } + panic(fmt.Errorf("message cardchain.cardchain.OutpSet does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_OutpSet) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.OutpSet.set": + x.Set_ = nil + case "cardchain.cardchain.OutpSet.artwork": + x.Artwork = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.OutpSet")) + } + panic(fmt.Errorf("message cardchain.cardchain.OutpSet does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_OutpSet) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.OutpSet.set": + value := x.Set_ + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cardchain.cardchain.OutpSet.artwork": + value := x.Artwork + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.OutpSet")) + } + panic(fmt.Errorf("message cardchain.cardchain.OutpSet does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_OutpSet) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.OutpSet.set": + x.Set_ = value.Message().Interface().(*Set) + case "cardchain.cardchain.OutpSet.artwork": + x.Artwork = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.OutpSet")) + } + panic(fmt.Errorf("message cardchain.cardchain.OutpSet does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_OutpSet) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.OutpSet.set": + if x.Set_ == nil { + x.Set_ = new(Set) + } + return protoreflect.ValueOfMessage(x.Set_.ProtoReflect()) + case "cardchain.cardchain.OutpSet.artwork": + panic(fmt.Errorf("field artwork of message cardchain.cardchain.OutpSet is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.OutpSet")) + } + panic(fmt.Errorf("message cardchain.cardchain.OutpSet does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_OutpSet) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.OutpSet.set": + m := new(Set) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cardchain.cardchain.OutpSet.artwork": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.OutpSet")) + } + panic(fmt.Errorf("message cardchain.cardchain.OutpSet does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_OutpSet) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.OutpSet", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_OutpSet) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_OutpSet) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_OutpSet) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_OutpSet) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*OutpSet) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Set_ != nil { + l = options.Size(x.Set_) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Artwork) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*OutpSet) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Artwork) > 0 { + i -= len(x.Artwork) + copy(dAtA[i:], x.Artwork) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Artwork))) + i-- + dAtA[i] = 0x12 + } + if x.Set_ != nil { + encoded, err := options.Marshal(x.Set_) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*OutpSet) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: OutpSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: OutpSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Set_", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Set_ == nil { + x.Set_ = &Set{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Set_); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Artwork", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Artwork = append(x.Artwork[:0], dAtA[iNdEx:postIndex]...) + if x.Artwork == nil { + x.Artwork = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_AddrWithQuantity protoreflect.MessageDescriptor + fd_AddrWithQuantity_addr protoreflect.FieldDescriptor + fd_AddrWithQuantity_q protoreflect.FieldDescriptor + fd_AddrWithQuantity_payment protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_set_proto_init() + md_AddrWithQuantity = File_cardchain_cardchain_set_proto.Messages().ByName("AddrWithQuantity") + fd_AddrWithQuantity_addr = md_AddrWithQuantity.Fields().ByName("addr") + fd_AddrWithQuantity_q = md_AddrWithQuantity.Fields().ByName("q") + fd_AddrWithQuantity_payment = md_AddrWithQuantity.Fields().ByName("payment") +} + +var _ protoreflect.Message = (*fastReflection_AddrWithQuantity)(nil) + +type fastReflection_AddrWithQuantity AddrWithQuantity + +func (x *AddrWithQuantity) ProtoReflect() protoreflect.Message { + return (*fastReflection_AddrWithQuantity)(x) +} + +func (x *AddrWithQuantity) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_set_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) +} + +var _fastReflection_AddrWithQuantity_messageType fastReflection_AddrWithQuantity_messageType +var _ protoreflect.MessageType = fastReflection_AddrWithQuantity_messageType{} + +type fastReflection_AddrWithQuantity_messageType struct{} + +func (x fastReflection_AddrWithQuantity_messageType) Zero() protoreflect.Message { + return (*fastReflection_AddrWithQuantity)(nil) +} +func (x fastReflection_AddrWithQuantity_messageType) New() protoreflect.Message { + return new(fastReflection_AddrWithQuantity) +} +func (x fastReflection_AddrWithQuantity_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AddrWithQuantity +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_AddrWithQuantity) Descriptor() protoreflect.MessageDescriptor { + return md_AddrWithQuantity +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_AddrWithQuantity) Type() protoreflect.MessageType { + return _fastReflection_AddrWithQuantity_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_AddrWithQuantity) New() protoreflect.Message { + return new(fastReflection_AddrWithQuantity) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_AddrWithQuantity) Interface() protoreflect.ProtoMessage { + return (*AddrWithQuantity)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_AddrWithQuantity) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Addr != "" { + value := protoreflect.ValueOfString(x.Addr) + if !f(fd_AddrWithQuantity_addr, value) { + return + } + } + if x.Q != uint32(0) { + value := protoreflect.ValueOfUint32(x.Q) + if !f(fd_AddrWithQuantity_q, value) { + return + } + } + if x.Payment != nil { + value := protoreflect.ValueOfMessage(x.Payment.ProtoReflect()) + if !f(fd_AddrWithQuantity_payment, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_AddrWithQuantity) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.AddrWithQuantity.addr": + return x.Addr != "" + case "cardchain.cardchain.AddrWithQuantity.q": + return x.Q != uint32(0) + case "cardchain.cardchain.AddrWithQuantity.payment": + return x.Payment != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.AddrWithQuantity")) + } + panic(fmt.Errorf("message cardchain.cardchain.AddrWithQuantity does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AddrWithQuantity) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.AddrWithQuantity.addr": + x.Addr = "" + case "cardchain.cardchain.AddrWithQuantity.q": + x.Q = uint32(0) + case "cardchain.cardchain.AddrWithQuantity.payment": + x.Payment = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.AddrWithQuantity")) + } + panic(fmt.Errorf("message cardchain.cardchain.AddrWithQuantity does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_AddrWithQuantity) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.AddrWithQuantity.addr": + value := x.Addr + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.AddrWithQuantity.q": + value := x.Q + return protoreflect.ValueOfUint32(value) + case "cardchain.cardchain.AddrWithQuantity.payment": + value := x.Payment + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.AddrWithQuantity")) + } + panic(fmt.Errorf("message cardchain.cardchain.AddrWithQuantity does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AddrWithQuantity) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.AddrWithQuantity.addr": + x.Addr = value.Interface().(string) + case "cardchain.cardchain.AddrWithQuantity.q": + x.Q = uint32(value.Uint()) + case "cardchain.cardchain.AddrWithQuantity.payment": + x.Payment = value.Message().Interface().(*v1beta1.Coin) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.AddrWithQuantity")) + } + panic(fmt.Errorf("message cardchain.cardchain.AddrWithQuantity does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AddrWithQuantity) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.AddrWithQuantity.payment": + if x.Payment == nil { + x.Payment = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.Payment.ProtoReflect()) + case "cardchain.cardchain.AddrWithQuantity.addr": + panic(fmt.Errorf("field addr of message cardchain.cardchain.AddrWithQuantity is not mutable")) + case "cardchain.cardchain.AddrWithQuantity.q": + panic(fmt.Errorf("field q of message cardchain.cardchain.AddrWithQuantity is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.AddrWithQuantity")) + } + panic(fmt.Errorf("message cardchain.cardchain.AddrWithQuantity does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_AddrWithQuantity) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.AddrWithQuantity.addr": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.AddrWithQuantity.q": + return protoreflect.ValueOfUint32(uint32(0)) + case "cardchain.cardchain.AddrWithQuantity.payment": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.AddrWithQuantity")) + } + panic(fmt.Errorf("message cardchain.cardchain.AddrWithQuantity does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_AddrWithQuantity) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.AddrWithQuantity", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_AddrWithQuantity) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AddrWithQuantity) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_AddrWithQuantity) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_AddrWithQuantity) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*AddrWithQuantity) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Addr) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Q != 0 { + n += 1 + runtime.Sov(uint64(x.Q)) + } + if x.Payment != nil { + l = options.Size(x.Payment) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*AddrWithQuantity) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Payment != nil { + encoded, err := options.Marshal(x.Payment) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + if x.Q != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Q)) + i-- + dAtA[i] = 0x10 + } + if len(x.Addr) > 0 { + i -= len(x.Addr) + copy(dAtA[i:], x.Addr) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Addr))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*AddrWithQuantity) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AddrWithQuantity: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AddrWithQuantity: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Addr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Q", wireType) + } + x.Q = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Q |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Payment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Payment == nil { + x.Payment = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Payment); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cardchain/cardchain/set.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CStatus int32 + +const ( + CStatus_design CStatus = 0 + CStatus_finalized CStatus = 1 + CStatus_active CStatus = 2 + CStatus_archived CStatus = 3 +) + +// Enum value maps for CStatus. +var ( + CStatus_name = map[int32]string{ + 0: "design", + 1: "finalized", + 2: "active", + 3: "archived", + } + CStatus_value = map[string]int32{ + "design": 0, + "finalized": 1, + "active": 2, + "archived": 3, + } +) + +func (x CStatus) Enum() *CStatus { + p := new(CStatus) + *p = x + return p +} + +func (x CStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CStatus) Descriptor() protoreflect.EnumDescriptor { + return file_cardchain_cardchain_set_proto_enumTypes[0].Descriptor() +} + +func (CStatus) Type() protoreflect.EnumType { + return &file_cardchain_cardchain_set_proto_enumTypes[0] +} + +func (x CStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CStatus.Descriptor instead. +func (CStatus) EnumDescriptor() ([]byte, []int) { + return file_cardchain_cardchain_set_proto_rawDescGZIP(), []int{0} +} + +type Set struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Cards []uint64 `protobuf:"varint,2,rep,packed,name=cards,proto3" json:"cards,omitempty"` + Artist string `protobuf:"bytes,3,opt,name=artist,proto3" json:"artist,omitempty"` + StoryWriter string `protobuf:"bytes,4,opt,name=storyWriter,proto3" json:"storyWriter,omitempty"` + Contributors []string `protobuf:"bytes,5,rep,name=contributors,proto3" json:"contributors,omitempty"` + Story string `protobuf:"bytes,6,opt,name=story,proto3" json:"story,omitempty"` + ArtworkId uint64 `protobuf:"varint,7,opt,name=artworkId,proto3" json:"artworkId,omitempty"` + Status CStatus `protobuf:"varint,8,opt,name=status,proto3,enum=cardchain.cardchain.CStatus" json:"status,omitempty"` + TimeStamp int64 `protobuf:"varint,9,opt,name=timeStamp,proto3" json:"timeStamp,omitempty"` + ContributorsDistribution []*AddrWithQuantity `protobuf:"bytes,10,rep,name=contributorsDistribution,proto3" json:"contributorsDistribution,omitempty"` + Rarities []*InnerRarities `protobuf:"bytes,11,rep,name=Rarities,proto3" json:"Rarities,omitempty"` +} + +func (x *Set) Reset() { + *x = Set{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_set_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Set) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Set) ProtoMessage() {} + +// Deprecated: Use Set.ProtoReflect.Descriptor instead. +func (*Set) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_set_proto_rawDescGZIP(), []int{0} +} + +func (x *Set) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Set) GetCards() []uint64 { + if x != nil { + return x.Cards + } + return nil +} + +func (x *Set) GetArtist() string { + if x != nil { + return x.Artist + } + return "" +} + +func (x *Set) GetStoryWriter() string { + if x != nil { + return x.StoryWriter + } + return "" +} + +func (x *Set) GetContributors() []string { + if x != nil { + return x.Contributors + } + return nil +} + +func (x *Set) GetStory() string { + if x != nil { + return x.Story + } + return "" +} + +func (x *Set) GetArtworkId() uint64 { + if x != nil { + return x.ArtworkId + } + return 0 +} + +func (x *Set) GetStatus() CStatus { + if x != nil { + return x.Status + } + return CStatus_design +} + +func (x *Set) GetTimeStamp() int64 { + if x != nil { + return x.TimeStamp + } + return 0 +} + +func (x *Set) GetContributorsDistribution() []*AddrWithQuantity { + if x != nil { + return x.ContributorsDistribution + } + return nil +} + +func (x *Set) GetRarities() []*InnerRarities { + if x != nil { + return x.Rarities + } + return nil +} + +type InnerRarities struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + R []uint64 `protobuf:"varint,1,rep,packed,name=R,proto3" json:"R,omitempty"` +} + +func (x *InnerRarities) Reset() { + *x = InnerRarities{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_set_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InnerRarities) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InnerRarities) ProtoMessage() {} + +// Deprecated: Use InnerRarities.ProtoReflect.Descriptor instead. +func (*InnerRarities) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_set_proto_rawDescGZIP(), []int{1} +} + +func (x *InnerRarities) GetR() []uint64 { + if x != nil { + return x.R + } + return nil +} + +type OutpSet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Set_ *Set `protobuf:"bytes,1,opt,name=set,proto3" json:"set,omitempty"` + Artwork []byte `protobuf:"bytes,2,opt,name=artwork,proto3" json:"artwork,omitempty"` +} + +func (x *OutpSet) Reset() { + *x = OutpSet{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_set_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutpSet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutpSet) ProtoMessage() {} + +// Deprecated: Use OutpSet.ProtoReflect.Descriptor instead. +func (*OutpSet) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_set_proto_rawDescGZIP(), []int{2} +} + +func (x *OutpSet) GetSet_() *Set { + if x != nil { + return x.Set_ + } + return nil +} + +func (x *OutpSet) GetArtwork() []byte { + if x != nil { + return x.Artwork + } + return nil +} + +type AddrWithQuantity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` + Q uint32 `protobuf:"varint,2,opt,name=q,proto3" json:"q,omitempty"` + Payment *v1beta1.Coin `protobuf:"bytes,3,opt,name=payment,proto3" json:"payment,omitempty"` +} + +func (x *AddrWithQuantity) Reset() { + *x = AddrWithQuantity{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_set_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddrWithQuantity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddrWithQuantity) ProtoMessage() {} + +// Deprecated: Use AddrWithQuantity.ProtoReflect.Descriptor instead. +func (*AddrWithQuantity) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_set_proto_rawDescGZIP(), []int{3} +} + +func (x *AddrWithQuantity) GetAddr() string { + if x != nil { + return x.Addr + } + return "" +} + +func (x *AddrWithQuantity) GetQ() uint32 { + if x != nil { + return x.Q + } + return 0 +} + +func (x *AddrWithQuantity) GetPayment() *v1beta1.Coin { + if x != nil { + return x.Payment + } + return nil +} + +var File_cardchain_cardchain_set_proto protoreflect.FileDescriptor + +var file_cardchain_cardchain_set_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x13, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, + 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x03, 0x0a, 0x03, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x05, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, + 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x6f, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, + 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x61, 0x0a, 0x18, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x44, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x6f, 0x72, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3e, 0x0a, 0x08, 0x52, 0x61, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x61, 0x72, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x08, 0x52, 0x61, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, + 0x1d, 0x0a, 0x0d, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x61, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x0c, 0x0a, 0x01, 0x52, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x01, 0x52, 0x22, 0x4f, + 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x70, 0x53, 0x65, 0x74, 0x12, 0x2a, 0x0a, 0x03, 0x73, 0x65, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x74, + 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, + 0x69, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x72, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x71, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x01, 0x71, 0x12, 0x33, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2a, 0x3e, 0x0a, 0x07, 0x43, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x10, 0x03, 0x42, 0xd0, 0x01, 0x0a, 0x17, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x08, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, + 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, + 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, 0x02, + 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cardchain_cardchain_set_proto_rawDescOnce sync.Once + file_cardchain_cardchain_set_proto_rawDescData = file_cardchain_cardchain_set_proto_rawDesc +) + +func file_cardchain_cardchain_set_proto_rawDescGZIP() []byte { + file_cardchain_cardchain_set_proto_rawDescOnce.Do(func() { + file_cardchain_cardchain_set_proto_rawDescData = protoimpl.X.CompressGZIP(file_cardchain_cardchain_set_proto_rawDescData) + }) + return file_cardchain_cardchain_set_proto_rawDescData +} + +var file_cardchain_cardchain_set_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_cardchain_cardchain_set_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_cardchain_cardchain_set_proto_goTypes = []interface{}{ + (CStatus)(0), // 0: cardchain.cardchain.CStatus + (*Set)(nil), // 1: cardchain.cardchain.Set + (*InnerRarities)(nil), // 2: cardchain.cardchain.InnerRarities + (*OutpSet)(nil), // 3: cardchain.cardchain.OutpSet + (*AddrWithQuantity)(nil), // 4: cardchain.cardchain.AddrWithQuantity + (*v1beta1.Coin)(nil), // 5: cosmos.base.v1beta1.Coin +} +var file_cardchain_cardchain_set_proto_depIdxs = []int32{ + 0, // 0: cardchain.cardchain.Set.status:type_name -> cardchain.cardchain.CStatus + 4, // 1: cardchain.cardchain.Set.contributorsDistribution:type_name -> cardchain.cardchain.AddrWithQuantity + 2, // 2: cardchain.cardchain.Set.Rarities:type_name -> cardchain.cardchain.InnerRarities + 1, // 3: cardchain.cardchain.OutpSet.set:type_name -> cardchain.cardchain.Set + 5, // 4: cardchain.cardchain.AddrWithQuantity.payment:type_name -> cosmos.base.v1beta1.Coin + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_cardchain_cardchain_set_proto_init() } +func file_cardchain_cardchain_set_proto_init() { + if File_cardchain_cardchain_set_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cardchain_cardchain_set_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Set); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_set_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InnerRarities); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_set_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutpSet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_set_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddrWithQuantity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cardchain_cardchain_set_proto_rawDesc, + NumEnums: 1, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cardchain_cardchain_set_proto_goTypes, + DependencyIndexes: file_cardchain_cardchain_set_proto_depIdxs, + EnumInfos: file_cardchain_cardchain_set_proto_enumTypes, + MessageInfos: file_cardchain_cardchain_set_proto_msgTypes, + }.Build() + File_cardchain_cardchain_set_proto = out.File + file_cardchain_cardchain_set_proto_rawDesc = nil + file_cardchain_cardchain_set_proto_goTypes = nil + file_cardchain_cardchain_set_proto_depIdxs = nil +} diff --git a/api/cardchain/cardchain/tx.pulsar.go b/api/cardchain/cardchain/tx.pulsar.go index db1b72de..8ee76fba 100644 --- a/api/cardchain/cardchain/tx.pulsar.go +++ b/api/cardchain/cardchain/tx.pulsar.go @@ -43151,6 +43151,2734 @@ func (x *fastReflection_MsgEncounterCloseResponse) ProtoMethods() *protoiface.Me } } +var ( + md_MsgCreateProductDetails protoreflect.MessageDescriptor + fd_MsgCreateProductDetails_creator protoreflect.FieldDescriptor + fd_MsgCreateProductDetails_name protoreflect.FieldDescriptor + fd_MsgCreateProductDetails_desc protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_tx_proto_init() + md_MsgCreateProductDetails = File_cardchain_cardchain_tx_proto.Messages().ByName("MsgCreateProductDetails") + fd_MsgCreateProductDetails_creator = md_MsgCreateProductDetails.Fields().ByName("creator") + fd_MsgCreateProductDetails_name = md_MsgCreateProductDetails.Fields().ByName("name") + fd_MsgCreateProductDetails_desc = md_MsgCreateProductDetails.Fields().ByName("desc") +} + +var _ protoreflect.Message = (*fastReflection_MsgCreateProductDetails)(nil) + +type fastReflection_MsgCreateProductDetails MsgCreateProductDetails + +func (x *MsgCreateProductDetails) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgCreateProductDetails)(x) +} + +func (x *MsgCreateProductDetails) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[94] + 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) +} + +var _fastReflection_MsgCreateProductDetails_messageType fastReflection_MsgCreateProductDetails_messageType +var _ protoreflect.MessageType = fastReflection_MsgCreateProductDetails_messageType{} + +type fastReflection_MsgCreateProductDetails_messageType struct{} + +func (x fastReflection_MsgCreateProductDetails_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgCreateProductDetails)(nil) +} +func (x fastReflection_MsgCreateProductDetails_messageType) New() protoreflect.Message { + return new(fastReflection_MsgCreateProductDetails) +} +func (x fastReflection_MsgCreateProductDetails_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgCreateProductDetails +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgCreateProductDetails) Descriptor() protoreflect.MessageDescriptor { + return md_MsgCreateProductDetails +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgCreateProductDetails) Type() protoreflect.MessageType { + return _fastReflection_MsgCreateProductDetails_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgCreateProductDetails) New() protoreflect.Message { + return new(fastReflection_MsgCreateProductDetails) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgCreateProductDetails) Interface() protoreflect.ProtoMessage { + return (*MsgCreateProductDetails)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgCreateProductDetails) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Creator != "" { + value := protoreflect.ValueOfString(x.Creator) + if !f(fd_MsgCreateProductDetails_creator, value) { + return + } + } + if x.Name != "" { + value := protoreflect.ValueOfString(x.Name) + if !f(fd_MsgCreateProductDetails_name, value) { + return + } + } + if x.Desc != "" { + value := protoreflect.ValueOfString(x.Desc) + if !f(fd_MsgCreateProductDetails_desc, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgCreateProductDetails) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetails.creator": + return x.Creator != "" + case "cardchain.cardchain.MsgCreateProductDetails.name": + return x.Name != "" + case "cardchain.cardchain.MsgCreateProductDetails.desc": + return x.Desc != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetails does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgCreateProductDetails) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetails.creator": + x.Creator = "" + case "cardchain.cardchain.MsgCreateProductDetails.name": + x.Name = "" + case "cardchain.cardchain.MsgCreateProductDetails.desc": + x.Desc = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetails does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgCreateProductDetails) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.MsgCreateProductDetails.creator": + value := x.Creator + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.MsgCreateProductDetails.name": + value := x.Name + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.MsgCreateProductDetails.desc": + value := x.Desc + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetails does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgCreateProductDetails) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetails.creator": + x.Creator = value.Interface().(string) + case "cardchain.cardchain.MsgCreateProductDetails.name": + x.Name = value.Interface().(string) + case "cardchain.cardchain.MsgCreateProductDetails.desc": + x.Desc = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetails does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgCreateProductDetails) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetails.creator": + panic(fmt.Errorf("field creator of message cardchain.cardchain.MsgCreateProductDetails is not mutable")) + case "cardchain.cardchain.MsgCreateProductDetails.name": + panic(fmt.Errorf("field name of message cardchain.cardchain.MsgCreateProductDetails is not mutable")) + case "cardchain.cardchain.MsgCreateProductDetails.desc": + panic(fmt.Errorf("field desc of message cardchain.cardchain.MsgCreateProductDetails is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetails does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgCreateProductDetails) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetails.creator": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.MsgCreateProductDetails.name": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.MsgCreateProductDetails.desc": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetails does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgCreateProductDetails) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.MsgCreateProductDetails", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgCreateProductDetails) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgCreateProductDetails) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgCreateProductDetails) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgCreateProductDetails) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgCreateProductDetails) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Creator) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Name) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Desc) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgCreateProductDetails) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Desc) > 0 { + i -= len(x.Desc) + copy(dAtA[i:], x.Desc) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Desc))) + i-- + dAtA[i] = 0x1a + } + if len(x.Name) > 0 { + i -= len(x.Name) + copy(dAtA[i:], x.Name) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) + i-- + dAtA[i] = 0x12 + } + if len(x.Creator) > 0 { + i -= len(x.Creator) + copy(dAtA[i:], x.Creator) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Creator))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgCreateProductDetails) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgCreateProductDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgCreateProductDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Desc = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgCreateProductDetailsResponse protoreflect.MessageDescriptor + fd_MsgCreateProductDetailsResponse_id protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_tx_proto_init() + md_MsgCreateProductDetailsResponse = File_cardchain_cardchain_tx_proto.Messages().ByName("MsgCreateProductDetailsResponse") + fd_MsgCreateProductDetailsResponse_id = md_MsgCreateProductDetailsResponse.Fields().ByName("id") +} + +var _ protoreflect.Message = (*fastReflection_MsgCreateProductDetailsResponse)(nil) + +type fastReflection_MsgCreateProductDetailsResponse MsgCreateProductDetailsResponse + +func (x *MsgCreateProductDetailsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgCreateProductDetailsResponse)(x) +} + +func (x *MsgCreateProductDetailsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[95] + 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) +} + +var _fastReflection_MsgCreateProductDetailsResponse_messageType fastReflection_MsgCreateProductDetailsResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgCreateProductDetailsResponse_messageType{} + +type fastReflection_MsgCreateProductDetailsResponse_messageType struct{} + +func (x fastReflection_MsgCreateProductDetailsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgCreateProductDetailsResponse)(nil) +} +func (x fastReflection_MsgCreateProductDetailsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgCreateProductDetailsResponse) +} +func (x fastReflection_MsgCreateProductDetailsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgCreateProductDetailsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgCreateProductDetailsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgCreateProductDetailsResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgCreateProductDetailsResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgCreateProductDetailsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgCreateProductDetailsResponse) New() protoreflect.Message { + return new(fastReflection_MsgCreateProductDetailsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgCreateProductDetailsResponse) Interface() protoreflect.ProtoMessage { + return (*MsgCreateProductDetailsResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgCreateProductDetailsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Id != uint64(0) { + value := protoreflect.ValueOfUint64(x.Id) + if !f(fd_MsgCreateProductDetailsResponse_id, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgCreateProductDetailsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetailsResponse.id": + return x.Id != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgCreateProductDetailsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetailsResponse.id": + x.Id = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgCreateProductDetailsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.MsgCreateProductDetailsResponse.id": + value := x.Id + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetailsResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgCreateProductDetailsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetailsResponse.id": + x.Id = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgCreateProductDetailsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetailsResponse.id": + panic(fmt.Errorf("field id of message cardchain.cardchain.MsgCreateProductDetailsResponse is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgCreateProductDetailsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.MsgCreateProductDetailsResponse.id": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgCreateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgCreateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgCreateProductDetailsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.MsgCreateProductDetailsResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgCreateProductDetailsResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgCreateProductDetailsResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgCreateProductDetailsResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgCreateProductDetailsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgCreateProductDetailsResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Id != 0 { + n += 1 + runtime.Sov(uint64(x.Id)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgCreateProductDetailsResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Id != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Id)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgCreateProductDetailsResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgCreateProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgCreateProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + x.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgUpdateProductDetails protoreflect.MessageDescriptor + fd_MsgUpdateProductDetails_creator protoreflect.FieldDescriptor + fd_MsgUpdateProductDetails_id protoreflect.FieldDescriptor + fd_MsgUpdateProductDetails_name protoreflect.FieldDescriptor + fd_MsgUpdateProductDetails_desc protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_tx_proto_init() + md_MsgUpdateProductDetails = File_cardchain_cardchain_tx_proto.Messages().ByName("MsgUpdateProductDetails") + fd_MsgUpdateProductDetails_creator = md_MsgUpdateProductDetails.Fields().ByName("creator") + fd_MsgUpdateProductDetails_id = md_MsgUpdateProductDetails.Fields().ByName("id") + fd_MsgUpdateProductDetails_name = md_MsgUpdateProductDetails.Fields().ByName("name") + fd_MsgUpdateProductDetails_desc = md_MsgUpdateProductDetails.Fields().ByName("desc") +} + +var _ protoreflect.Message = (*fastReflection_MsgUpdateProductDetails)(nil) + +type fastReflection_MsgUpdateProductDetails MsgUpdateProductDetails + +func (x *MsgUpdateProductDetails) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgUpdateProductDetails)(x) +} + +func (x *MsgUpdateProductDetails) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[96] + 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) +} + +var _fastReflection_MsgUpdateProductDetails_messageType fastReflection_MsgUpdateProductDetails_messageType +var _ protoreflect.MessageType = fastReflection_MsgUpdateProductDetails_messageType{} + +type fastReflection_MsgUpdateProductDetails_messageType struct{} + +func (x fastReflection_MsgUpdateProductDetails_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgUpdateProductDetails)(nil) +} +func (x fastReflection_MsgUpdateProductDetails_messageType) New() protoreflect.Message { + return new(fastReflection_MsgUpdateProductDetails) +} +func (x fastReflection_MsgUpdateProductDetails_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgUpdateProductDetails +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgUpdateProductDetails) Descriptor() protoreflect.MessageDescriptor { + return md_MsgUpdateProductDetails +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgUpdateProductDetails) Type() protoreflect.MessageType { + return _fastReflection_MsgUpdateProductDetails_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgUpdateProductDetails) New() protoreflect.Message { + return new(fastReflection_MsgUpdateProductDetails) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgUpdateProductDetails) Interface() protoreflect.ProtoMessage { + return (*MsgUpdateProductDetails)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgUpdateProductDetails) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Creator != "" { + value := protoreflect.ValueOfString(x.Creator) + if !f(fd_MsgUpdateProductDetails_creator, value) { + return + } + } + if x.Id != uint64(0) { + value := protoreflect.ValueOfUint64(x.Id) + if !f(fd_MsgUpdateProductDetails_id, value) { + return + } + } + if x.Name != "" { + value := protoreflect.ValueOfString(x.Name) + if !f(fd_MsgUpdateProductDetails_name, value) { + return + } + } + if x.Desc != "" { + value := protoreflect.ValueOfString(x.Desc) + if !f(fd_MsgUpdateProductDetails_desc, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgUpdateProductDetails) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.MsgUpdateProductDetails.creator": + return x.Creator != "" + case "cardchain.cardchain.MsgUpdateProductDetails.id": + return x.Id != uint64(0) + case "cardchain.cardchain.MsgUpdateProductDetails.name": + return x.Name != "" + case "cardchain.cardchain.MsgUpdateProductDetails.desc": + return x.Desc != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetails does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgUpdateProductDetails) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.MsgUpdateProductDetails.creator": + x.Creator = "" + case "cardchain.cardchain.MsgUpdateProductDetails.id": + x.Id = uint64(0) + case "cardchain.cardchain.MsgUpdateProductDetails.name": + x.Name = "" + case "cardchain.cardchain.MsgUpdateProductDetails.desc": + x.Desc = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetails does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgUpdateProductDetails) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.MsgUpdateProductDetails.creator": + value := x.Creator + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.MsgUpdateProductDetails.id": + value := x.Id + return protoreflect.ValueOfUint64(value) + case "cardchain.cardchain.MsgUpdateProductDetails.name": + value := x.Name + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.MsgUpdateProductDetails.desc": + value := x.Desc + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetails does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgUpdateProductDetails) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.MsgUpdateProductDetails.creator": + x.Creator = value.Interface().(string) + case "cardchain.cardchain.MsgUpdateProductDetails.id": + x.Id = value.Uint() + case "cardchain.cardchain.MsgUpdateProductDetails.name": + x.Name = value.Interface().(string) + case "cardchain.cardchain.MsgUpdateProductDetails.desc": + x.Desc = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetails does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgUpdateProductDetails) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.MsgUpdateProductDetails.creator": + panic(fmt.Errorf("field creator of message cardchain.cardchain.MsgUpdateProductDetails is not mutable")) + case "cardchain.cardchain.MsgUpdateProductDetails.id": + panic(fmt.Errorf("field id of message cardchain.cardchain.MsgUpdateProductDetails is not mutable")) + case "cardchain.cardchain.MsgUpdateProductDetails.name": + panic(fmt.Errorf("field name of message cardchain.cardchain.MsgUpdateProductDetails is not mutable")) + case "cardchain.cardchain.MsgUpdateProductDetails.desc": + panic(fmt.Errorf("field desc of message cardchain.cardchain.MsgUpdateProductDetails is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetails does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgUpdateProductDetails) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.MsgUpdateProductDetails.creator": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.MsgUpdateProductDetails.id": + return protoreflect.ValueOfUint64(uint64(0)) + case "cardchain.cardchain.MsgUpdateProductDetails.name": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.MsgUpdateProductDetails.desc": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetails does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgUpdateProductDetails) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.MsgUpdateProductDetails", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgUpdateProductDetails) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgUpdateProductDetails) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgUpdateProductDetails) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgUpdateProductDetails) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgUpdateProductDetails) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Creator) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Id != 0 { + n += 1 + runtime.Sov(uint64(x.Id)) + } + l = len(x.Name) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Desc) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgUpdateProductDetails) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Desc) > 0 { + i -= len(x.Desc) + copy(dAtA[i:], x.Desc) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Desc))) + i-- + dAtA[i] = 0x22 + } + if len(x.Name) > 0 { + i -= len(x.Name) + copy(dAtA[i:], x.Name) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Name))) + i-- + dAtA[i] = 0x1a + } + if x.Id != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Id)) + i-- + dAtA[i] = 0x10 + } + if len(x.Creator) > 0 { + i -= len(x.Creator) + copy(dAtA[i:], x.Creator) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Creator))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgUpdateProductDetails) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateProductDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateProductDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + x.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Desc = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgUpdateProductDetailsResponse protoreflect.MessageDescriptor +) + +func init() { + file_cardchain_cardchain_tx_proto_init() + md_MsgUpdateProductDetailsResponse = File_cardchain_cardchain_tx_proto.Messages().ByName("MsgUpdateProductDetailsResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgUpdateProductDetailsResponse)(nil) + +type fastReflection_MsgUpdateProductDetailsResponse MsgUpdateProductDetailsResponse + +func (x *MsgUpdateProductDetailsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgUpdateProductDetailsResponse)(x) +} + +func (x *MsgUpdateProductDetailsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[97] + 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) +} + +var _fastReflection_MsgUpdateProductDetailsResponse_messageType fastReflection_MsgUpdateProductDetailsResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgUpdateProductDetailsResponse_messageType{} + +type fastReflection_MsgUpdateProductDetailsResponse_messageType struct{} + +func (x fastReflection_MsgUpdateProductDetailsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgUpdateProductDetailsResponse)(nil) +} +func (x fastReflection_MsgUpdateProductDetailsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgUpdateProductDetailsResponse) +} +func (x fastReflection_MsgUpdateProductDetailsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgUpdateProductDetailsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgUpdateProductDetailsResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgUpdateProductDetailsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgUpdateProductDetailsResponse) New() protoreflect.Message { + return new(fastReflection_MsgUpdateProductDetailsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Interface() protoreflect.ProtoMessage { + return (*MsgUpdateProductDetailsResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetailsResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgUpdateProductDetailsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgUpdateProductDetailsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgUpdateProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgUpdateProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgUpdateProductDetailsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.MsgUpdateProductDetailsResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgUpdateProductDetailsResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgUpdateProductDetailsResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgUpdateProductDetailsResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgUpdateProductDetailsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgUpdateProductDetailsResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgUpdateProductDetailsResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgUpdateProductDetailsResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgUpdateProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgDeleteProductDetails protoreflect.MessageDescriptor + fd_MsgDeleteProductDetails_creator protoreflect.FieldDescriptor + fd_MsgDeleteProductDetails_id protoreflect.FieldDescriptor +) + +func init() { + file_cardchain_cardchain_tx_proto_init() + md_MsgDeleteProductDetails = File_cardchain_cardchain_tx_proto.Messages().ByName("MsgDeleteProductDetails") + fd_MsgDeleteProductDetails_creator = md_MsgDeleteProductDetails.Fields().ByName("creator") + fd_MsgDeleteProductDetails_id = md_MsgDeleteProductDetails.Fields().ByName("id") +} + +var _ protoreflect.Message = (*fastReflection_MsgDeleteProductDetails)(nil) + +type fastReflection_MsgDeleteProductDetails MsgDeleteProductDetails + +func (x *MsgDeleteProductDetails) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgDeleteProductDetails)(x) +} + +func (x *MsgDeleteProductDetails) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[98] + 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) +} + +var _fastReflection_MsgDeleteProductDetails_messageType fastReflection_MsgDeleteProductDetails_messageType +var _ protoreflect.MessageType = fastReflection_MsgDeleteProductDetails_messageType{} + +type fastReflection_MsgDeleteProductDetails_messageType struct{} + +func (x fastReflection_MsgDeleteProductDetails_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgDeleteProductDetails)(nil) +} +func (x fastReflection_MsgDeleteProductDetails_messageType) New() protoreflect.Message { + return new(fastReflection_MsgDeleteProductDetails) +} +func (x fastReflection_MsgDeleteProductDetails_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgDeleteProductDetails +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgDeleteProductDetails) Descriptor() protoreflect.MessageDescriptor { + return md_MsgDeleteProductDetails +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgDeleteProductDetails) Type() protoreflect.MessageType { + return _fastReflection_MsgDeleteProductDetails_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgDeleteProductDetails) New() protoreflect.Message { + return new(fastReflection_MsgDeleteProductDetails) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgDeleteProductDetails) Interface() protoreflect.ProtoMessage { + return (*MsgDeleteProductDetails)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgDeleteProductDetails) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Creator != "" { + value := protoreflect.ValueOfString(x.Creator) + if !f(fd_MsgDeleteProductDetails_creator, value) { + return + } + } + if x.Id != uint64(0) { + value := protoreflect.ValueOfUint64(x.Id) + if !f(fd_MsgDeleteProductDetails_id, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgDeleteProductDetails) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cardchain.cardchain.MsgDeleteProductDetails.creator": + return x.Creator != "" + case "cardchain.cardchain.MsgDeleteProductDetails.id": + return x.Id != uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetails does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDeleteProductDetails) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cardchain.cardchain.MsgDeleteProductDetails.creator": + x.Creator = "" + case "cardchain.cardchain.MsgDeleteProductDetails.id": + x.Id = uint64(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetails does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgDeleteProductDetails) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cardchain.cardchain.MsgDeleteProductDetails.creator": + value := x.Creator + return protoreflect.ValueOfString(value) + case "cardchain.cardchain.MsgDeleteProductDetails.id": + value := x.Id + return protoreflect.ValueOfUint64(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetails does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDeleteProductDetails) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cardchain.cardchain.MsgDeleteProductDetails.creator": + x.Creator = value.Interface().(string) + case "cardchain.cardchain.MsgDeleteProductDetails.id": + x.Id = value.Uint() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetails does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDeleteProductDetails) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.MsgDeleteProductDetails.creator": + panic(fmt.Errorf("field creator of message cardchain.cardchain.MsgDeleteProductDetails is not mutable")) + case "cardchain.cardchain.MsgDeleteProductDetails.id": + panic(fmt.Errorf("field id of message cardchain.cardchain.MsgDeleteProductDetails is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetails does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgDeleteProductDetails) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cardchain.cardchain.MsgDeleteProductDetails.creator": + return protoreflect.ValueOfString("") + case "cardchain.cardchain.MsgDeleteProductDetails.id": + return protoreflect.ValueOfUint64(uint64(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetails")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetails does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgDeleteProductDetails) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.MsgDeleteProductDetails", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgDeleteProductDetails) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDeleteProductDetails) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgDeleteProductDetails) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgDeleteProductDetails) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgDeleteProductDetails) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Creator) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Id != 0 { + n += 1 + runtime.Sov(uint64(x.Id)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgDeleteProductDetails) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Id != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Id)) + i-- + dAtA[i] = 0x10 + } + if len(x.Creator) > 0 { + i -= len(x.Creator) + copy(dAtA[i:], x.Creator) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Creator))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgDeleteProductDetails) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDeleteProductDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDeleteProductDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + x.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgDeleteProductDetailsResponse protoreflect.MessageDescriptor +) + +func init() { + file_cardchain_cardchain_tx_proto_init() + md_MsgDeleteProductDetailsResponse = File_cardchain_cardchain_tx_proto.Messages().ByName("MsgDeleteProductDetailsResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgDeleteProductDetailsResponse)(nil) + +type fastReflection_MsgDeleteProductDetailsResponse MsgDeleteProductDetailsResponse + +func (x *MsgDeleteProductDetailsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgDeleteProductDetailsResponse)(x) +} + +func (x *MsgDeleteProductDetailsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[99] + 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) +} + +var _fastReflection_MsgDeleteProductDetailsResponse_messageType fastReflection_MsgDeleteProductDetailsResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgDeleteProductDetailsResponse_messageType{} + +type fastReflection_MsgDeleteProductDetailsResponse_messageType struct{} + +func (x fastReflection_MsgDeleteProductDetailsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgDeleteProductDetailsResponse)(nil) +} +func (x fastReflection_MsgDeleteProductDetailsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgDeleteProductDetailsResponse) +} +func (x fastReflection_MsgDeleteProductDetailsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgDeleteProductDetailsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgDeleteProductDetailsResponse +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgDeleteProductDetailsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgDeleteProductDetailsResponse) New() protoreflect.Message { + return new(fastReflection_MsgDeleteProductDetailsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Interface() protoreflect.ProtoMessage { + return (*MsgDeleteProductDetailsResponse)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetailsResponse does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDeleteProductDetailsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_MsgDeleteProductDetailsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cardchain.cardchain.MsgDeleteProductDetailsResponse")) + } + panic(fmt.Errorf("message cardchain.cardchain.MsgDeleteProductDetailsResponse does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_MsgDeleteProductDetailsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cardchain.cardchain.MsgDeleteProductDetailsResponse", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_MsgDeleteProductDetailsResponse) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_MsgDeleteProductDetailsResponse) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_MsgDeleteProductDetailsResponse) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_MsgDeleteProductDetailsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgDeleteProductDetailsResponse) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgDeleteProductDetailsResponse) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*MsgDeleteProductDetailsResponse) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDeleteProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgDeleteProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -46772,44 +49500,284 @@ func (x *MsgEncounterClose) GetEncounterId() uint64 { return 0 } -func (x *MsgEncounterClose) GetUser() string { +func (x *MsgEncounterClose) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +func (x *MsgEncounterClose) GetWon() bool { + if x != nil { + return x.Won + } + return false +} + +type MsgEncounterCloseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgEncounterCloseResponse) Reset() { + *x = MsgEncounterCloseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgEncounterCloseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgEncounterCloseResponse) ProtoMessage() {} + +// Deprecated: Use MsgEncounterCloseResponse.ProtoReflect.Descriptor instead. +func (*MsgEncounterCloseResponse) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_tx_proto_rawDescGZIP(), []int{93} +} + +type MsgCreateProductDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Desc string `protobuf:"bytes,3,opt,name=desc,proto3" json:"desc,omitempty"` +} + +func (x *MsgCreateProductDetails) Reset() { + *x = MsgCreateProductDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgCreateProductDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgCreateProductDetails) ProtoMessage() {} + +// Deprecated: Use MsgCreateProductDetails.ProtoReflect.Descriptor instead. +func (*MsgCreateProductDetails) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_tx_proto_rawDescGZIP(), []int{94} +} + +func (x *MsgCreateProductDetails) GetCreator() string { + if x != nil { + return x.Creator + } + return "" +} + +func (x *MsgCreateProductDetails) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MsgCreateProductDetails) GetDesc() string { + if x != nil { + return x.Desc + } + return "" +} + +type MsgCreateProductDetailsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *MsgCreateProductDetailsResponse) Reset() { + *x = MsgCreateProductDetailsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgCreateProductDetailsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgCreateProductDetailsResponse) ProtoMessage() {} + +// Deprecated: Use MsgCreateProductDetailsResponse.ProtoReflect.Descriptor instead. +func (*MsgCreateProductDetailsResponse) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_tx_proto_rawDescGZIP(), []int{95} +} + +func (x *MsgCreateProductDetailsResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type MsgUpdateProductDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Desc string `protobuf:"bytes,4,opt,name=desc,proto3" json:"desc,omitempty"` +} + +func (x *MsgUpdateProductDetails) Reset() { + *x = MsgUpdateProductDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgUpdateProductDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgUpdateProductDetails) ProtoMessage() {} + +// Deprecated: Use MsgUpdateProductDetails.ProtoReflect.Descriptor instead. +func (*MsgUpdateProductDetails) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_tx_proto_rawDescGZIP(), []int{96} +} + +func (x *MsgUpdateProductDetails) GetCreator() string { + if x != nil { + return x.Creator + } + return "" +} + +func (x *MsgUpdateProductDetails) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *MsgUpdateProductDetails) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MsgUpdateProductDetails) GetDesc() string { + if x != nil { + return x.Desc + } + return "" +} + +type MsgUpdateProductDetailsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgUpdateProductDetailsResponse) Reset() { + *x = MsgUpdateProductDetailsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgUpdateProductDetailsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgUpdateProductDetailsResponse) ProtoMessage() {} + +// Deprecated: Use MsgUpdateProductDetailsResponse.ProtoReflect.Descriptor instead. +func (*MsgUpdateProductDetailsResponse) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_tx_proto_rawDescGZIP(), []int{97} +} + +type MsgDeleteProductDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *MsgDeleteProductDetails) Reset() { + *x = MsgDeleteProductDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_cardchain_cardchain_tx_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgDeleteProductDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgDeleteProductDetails) ProtoMessage() {} + +// Deprecated: Use MsgDeleteProductDetails.ProtoReflect.Descriptor instead. +func (*MsgDeleteProductDetails) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_tx_proto_rawDescGZIP(), []int{98} +} + +func (x *MsgDeleteProductDetails) GetCreator() string { if x != nil { - return x.User + return x.Creator } return "" } -func (x *MsgEncounterClose) GetWon() bool { +func (x *MsgDeleteProductDetails) GetId() uint64 { if x != nil { - return x.Won + return x.Id } - return false + return 0 } -type MsgEncounterCloseResponse struct { +type MsgDeleteProductDetailsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MsgEncounterCloseResponse) Reset() { - *x = MsgEncounterCloseResponse{} +func (x *MsgDeleteProductDetailsResponse) Reset() { + *x = MsgDeleteProductDetailsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cardchain_cardchain_tx_proto_msgTypes[93] + mi := &file_cardchain_cardchain_tx_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MsgEncounterCloseResponse) String() string { +func (x *MsgDeleteProductDetailsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MsgEncounterCloseResponse) ProtoMessage() {} +func (*MsgDeleteProductDetailsResponse) ProtoMessage() {} -// Deprecated: Use MsgEncounterCloseResponse.ProtoReflect.Descriptor instead. -func (*MsgEncounterCloseResponse) Descriptor() ([]byte, []int) { - return file_cardchain_cardchain_tx_proto_rawDescGZIP(), []int{93} +// Deprecated: Use MsgDeleteProductDetailsResponse.ProtoReflect.Descriptor instead. +func (*MsgDeleteProductDetailsResponse) Descriptor() ([]byte, []int) { + return file_cardchain_cardchain_tx_proto_rawDescGZIP(), []int{99} } var File_cardchain_cardchain_tx_proto protoreflect.FileDescriptor @@ -46836,788 +49804,841 @@ var file_cardchain_cardchain_tx_proto_rawDesc = []byte{ 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, - 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x38, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x4d, - 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, - 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x0d, 0x4d, 0x73, 0x67, - 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x10, 0x4d, - 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, 0x79, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x03, 0x62, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x03, 0x62, 0x69, 0x64, 0x3a, 0x0c, 0x82, 0xe7, - 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x32, 0x0a, 0x18, 0x4d, 0x73, - 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0xc2, - 0x01, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xc3, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, + 0x38, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, + 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x72, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, - 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, - 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x22, 0x44, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, - 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, - 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x22, 0x6a, 0x0a, 0x0b, 0x4d, 0x73, 0x67, - 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x33, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x6f, 0x74, - 0x65, 0x52, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x3d, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, - 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, - 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x65, 0x64, 0x22, 0x6d, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, - 0x01, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x44, 0x6f, 0x6e, 0x61, 0x74, 0x65, + 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6e, 0x65, 0x77, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x3a, + 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x17, 0x0a, + 0x15, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, + 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x03, 0x62, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, 0xde, + 0x1f, 0x00, 0x52, 0x03, 0x62, 0x69, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x32, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x12, 0x4d, 0x73, + 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, - 0xde, 0x1f, 0x00, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, - 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x73, 0x67, - 0x43, 0x61, 0x72, 0x64, 0x44, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x75, 0x6c, 0x6c, 0x41, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x66, 0x75, 0x6c, 0x6c, 0x41, 0x72, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x43, - 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, - 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, - 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, - 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x3e, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x44, 0x65, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, - 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x44, 0x65, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xd2, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x73, 0x41, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x41, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x42, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, - 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x42, 0x12, 0x36, - 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x07, 0x6f, - 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, - 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, + 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x44, + 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x22, 0x6a, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, + 0x6f, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x33, 0x0a, + 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x76, 0x6f, + 0x74, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x22, 0x3d, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, + 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x22, + 0x6d, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, - 0x72, 0x64, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, - 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x72, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x3a, - 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x21, 0x0a, - 0x1f, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x72, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xa8, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x3a, 0x0c, 0x82, - 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, - 0x64, 0x41, 0x64, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, - 0x65, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, - 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x68, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, - 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x72, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, + 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x0d, 0x4d, 0x73, + 0x67, 0x43, 0x61, 0x72, 0x64, 0x44, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x37, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x44, + 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x83, 0x01, + 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x41, 0x64, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, + 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, + 0x75, 0x6c, 0x6c, 0x41, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x75, + 0x6c, 0x6c, 0x41, 0x72, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x6d, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x3a, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, + 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, + 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, + 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x3a, 0x0c, + 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, 0x0a, 0x1a, + 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x0a, 0x14, 0x4d, 0x73, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x3a, 0x0c, 0x82, 0xe7, + 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x0e, 0x4d, + 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x41, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x41, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x42, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x42, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x75, 0x74, + 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, + 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, + 0x18, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x0a, 0x10, 0x4d, 0x73, 0x67, + 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1a, 0x0a, - 0x18, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x0a, 0x14, 0x4d, 0x73, 0x67, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x41, 0x64, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, + 0x18, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x17, 0x4d, 0x73, 0x67, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x0c, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x73, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, + 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, + 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, + 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1e, + 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, + 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x3a, 0x0c, 0x82, + 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, + 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, + 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, + 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x18, + 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x0e, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x64, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, - 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x73, 0x65, 0x74, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x0a, - 0x10, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, + 0x79, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, + 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x75, + 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x64, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, - 0x41, 0x64, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, - 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x51, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, - 0x61, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x22, 0x43, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, - 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, - 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x12, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, - 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, 0xde, - 0x1f, 0x00, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, - 0x4f, 0x66, 0x66, 0x65, 0x72, 0x42, 0x75, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, - 0x65, 0x72, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, - 0x65, 0x72, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, - 0x12, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, + 0x43, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, + 0x6b, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, + 0x4f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x35, 0x0a, + 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, + 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x5b, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, + 0x42, 0x75, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x3a, - 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, 0x0a, - 0x1a, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x10, - 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, - 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, - 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x72, 0x61, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, - 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x52, 0x06, 0x72, 0x61, 0x72, 0x69, 0x74, - 0x79, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, - 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x18, - 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, - 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x4d, 0x73, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb1, 0x01, 0x0a, - 0x18, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, - 0x64, 0x12, 0x37, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x22, 0x22, 0x0a, 0x20, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, - 0x69, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, - 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, - 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcc, 0x01, 0x0a, - 0x0f, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x63, - 0x6f, 0x6d, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, - 0x76, 0x6f, 0x74, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x6f, 0x74, - 0x65, 0x52, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x3a, 0x0c, 0x82, - 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x4d, - 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, + 0x17, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x42, 0x75, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x6c, + 0x4f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, + 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x43, 0x61, + 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x3a, 0x0c, 0x82, - 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x4d, - 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, - 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, - 0x73, 0x69, 0x74, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x4c, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x42, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x62, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, - 0x69, 0x6f, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x69, - 0x6f, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x12, - 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x4f, 0x70, - 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, - 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, - 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x22, 0x36, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x07, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x4d, 0x73, 0x67, - 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x24, 0x0a, - 0x0d, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, - 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x3a, - 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x20, 0x0a, - 0x1e, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x76, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, - 0x74, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x10, 0x4d, - 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x6f, 0x74, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, - 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x42, - 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x69, - 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x65, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, - 0x70, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x42, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x42, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x65, 0x63, 0x6b, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, - 0x65, 0x63, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x64, 0x65, - 0x63, 0x6b, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x42, 0x64, 0x65, 0x63, 0x6b, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x22, 0x30, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, - 0x70, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, + 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x72, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, + 0x72, 0x69, 0x74, 0x79, 0x52, 0x06, 0x72, 0x61, 0x72, 0x69, 0x74, 0x79, 0x3a, 0x0c, 0x82, 0xe7, + 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, + 0x67, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x67, 0x67, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x43, + 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, + 0x76, 0x65, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x07, + 0x72, 0x65, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x72, 0x65, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x0c, 0x82, + 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x22, 0x0a, 0x20, 0x4d, + 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x59, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, + 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcc, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, + 0x36, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x07, + 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x76, 0x6f, 0x74, 0x65, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x0a, 0x76, 0x6f, + 0x74, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x53, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, + 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x52, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, - 0x6c, 0x69, 0x61, 0x73, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x52, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x45, 0x61, - 0x72, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x5a, 0x65, - 0x61, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x3a, + 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1e, 0x0a, + 0x1c, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, + 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x0a, + 0x10, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x69, 0x6f, 0x53, 0x65, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x62, + 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x62, 0x69, 0x6f, 0x3a, 0x0c, 0x82, + 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, + 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x42, 0x6f, + 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x73, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x3a, 0x0c, 0x82, + 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x36, 0x0a, 0x1a, 0x4d, + 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x63, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, + 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x73, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0d, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x42, + 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0x0a, 0x14, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x53, + 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, + 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x67, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, + 0x73, 0x74, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x3a, 0x0c, 0x82, + 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, + 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x7a, 0x65, 0x61, 0x6c, 0x79, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x7a, 0x65, 0x61, 0x6c, 0x79, 0x49, 0x64, 0x3a, 0x0c, - 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, - 0x4d, 0x73, 0x67, 0x5a, 0x65, 0x61, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x45, - 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x56, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x73, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, + 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x42, 0x0a, 0x18, 0x4d, 0x73, 0x67, + 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, + 0x69, 0x72, 0x64, 0x72, 0x6f, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x22, 0xae, 0x01, + 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x64, 0x72, 0x61, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, - 0x64, 0x72, 0x61, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x57, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x6e, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x44, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, - 0x0a, 0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x41, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x41, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x12, 0x20, 0x0a, 0x0b, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x65, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x65, 0x63, 0x6b, 0x12, 0x20, + 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x64, 0x65, 0x63, 0x6b, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x64, 0x65, 0x63, 0x6b, + 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x30, + 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, + 0x22, 0x61, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x22, 0x17, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x0a, 0x12, + 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x53, + 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, + 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, + 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x44, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x83, 0x01, 0x0a, - 0x11, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, - 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, - 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, - 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x77, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x03, 0x77, 0x6f, 0x6e, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, - 0xea, 0x26, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x62, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x6f, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x53, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x5a, 0x65, 0x61, 0x6c, 0x79, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x7a, 0x65, 0x61, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x7a, 0x65, 0x61, 0x6c, 0x79, 0x49, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x5a, 0x65, + 0x61, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x77, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x64, 0x72, 0x61, 0x77, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x57, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0a, 0x55, - 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x2a, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x61, 0x72, - 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, 0x79, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, + 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, + 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x0a, + 0x0e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x65, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x3a, + 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x18, 0x0a, + 0x16, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x45, + 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x6e, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x77, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x77, 0x6f, 0x6e, 0x3a, + 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1b, 0x0a, + 0x19, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x4d, 0x73, + 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x31, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x64, 0x65, 0x73, 0x63, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, + 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xde, 0x29, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x12, 0x62, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, - 0x79, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6b, 0x0a, 0x0f, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, - 0x64, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x2f, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, - 0x08, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x28, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, - 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x1a, 0x2c, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0a, 0x43, 0x61, 0x72, - 0x64, 0x44, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x61, 0x72, 0x64, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, 0x79, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x43, 0x61, 0x72, 0x64, 0x44, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x1a, 0x2a, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x44, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x42, 0x75, 0x79, 0x1a, 0x2d, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x65, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, + 0x0f, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, + 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, - 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, - 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x6e, 0x0a, 0x10, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, - 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, - 0x30, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, - 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x2f, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, - 0x0a, 0x11, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x63, 0x69, 0x6c, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x31, + 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x08, 0x43, 0x61, + 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, + 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x28, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x44, 0x6f, + 0x6e, 0x61, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, + 0x72, 0x64, 0x44, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x44, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, + 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x44, - 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5f, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x23, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x63, 0x69, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, + 0x0a, 0x10, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, + 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0x30, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, + 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, + 0x69, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x14, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x1a, - 0x34, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x12, 0x21, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5c, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x12, 0x22, + 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x11, 0x43, + 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, + 0x6c, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x31, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x44, 0x65, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, + 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x65, 0x0a, 0x0d, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, + 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x14, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x41, - 0x64, 0x64, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x1a, 0x34, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, + 0x21, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, - 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, - 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, - 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, + 0x0a, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x12, 0x22, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x1a, + 0x2a, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x6f, 0x72, 0x41, 0x64, 0x64, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x34, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x12, 0x23, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x53, + 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x25, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, - 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x1a, 0x2d, 0x2e, + 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x71, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x41, + 0x64, 0x64, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0b, - 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x64, 0x64, 0x12, 0x23, 0x2e, 0x63, 0x61, + 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x34, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x64, 0x64, - 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, - 0x72, 0x79, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, - 0x0e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x12, - 0x26, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x53, 0x65, 0x6c, 0x6c, 0x4f, - 0x66, 0x66, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, - 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, - 0x72, 0x42, 0x75, 0x79, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x42, 0x75, 0x79, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x72, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5f, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x12, 0x23, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x74, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x41, 0x64, 0x64, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, 0x64, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x42, 0x75, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x53, 0x65, 0x6c, 0x6c, - 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x27, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, - 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x1a, 0x2d, 0x2e, + 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x41, 0x64, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0b, 0x53, 0x65, 0x74, + 0x53, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x64, 0x64, 0x12, 0x23, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x64, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, - 0x79, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x15, - 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x15, 0x43, - 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, - 0x76, 0x65, 0x61, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x76, - 0x65, 0x61, 0x6c, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x76, 0x65, - 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x43, 0x6f, - 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x2e, 0x63, + 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x41, + 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x42, 0x6f, + 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, - 0x65, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x71, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x65, 0x62, - 0x73, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, + 0x6b, 0x42, 0x75, 0x79, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x6f, + 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, + 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x53, - 0x65, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x42, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x1a, 0x2d, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x69, - 0x6f, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, - 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x12, - 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, + 0x66, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x42, 0x75, + 0x79, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, + 0x66, 0x66, 0x65, 0x72, 0x42, 0x75, 0x79, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x42, 0x75, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, + 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, - 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x13, 0x42, 0x6f, 0x6f, - 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, - 0x72, 0x50, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x1a, 0x33, 0x2e, + 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x4f, + 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, + 0x53, 0x65, 0x74, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, + 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x52, 0x61, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x15, 0x43, 0x6f, 0x75, + 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x15, 0x43, 0x6f, 0x75, 0x6e, + 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x76, 0x65, 0x61, + 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, + 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x43, 0x6f, 0x75, 0x6e, 0x63, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x63, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, + 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, 0x1a, + 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x71, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, + 0x65, 0x53, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x1a, + 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x69, 0x6f, + 0x53, 0x65, 0x74, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x42, 0x69, 0x6f, 0x53, 0x65, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x69, 0x6f, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x42, 0x6f, 0x6f, + 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x27, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, + 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, + 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x13, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, + 0x72, 0x50, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x71, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, - 0x69, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, + 0x63, 0x6b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x71, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x72, 0x53, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x1a, + 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, + 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, + 0x65, 0x74, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, + 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x53, - 0x65, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, - 0x74, 0x6f, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x72, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, - 0x73, 0x74, 0x53, 0x65, 0x74, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x65, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x43, 0x61, 0x72, - 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x12, 0x25, 0x2e, 0x63, 0x61, 0x72, + 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x1a, 0x2d, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, + 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x21, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x56, - 0x6f, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x59, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x21, 0x2e, + 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x6e, 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x65, 0x6e, - 0x1a, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, - 0x70, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0a, 0x53, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x1a, 0x2a, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x53, 0x65, 0x74, 0x12, 0x27, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x6c, 0x69, - 0x61, 0x73, 0x53, 0x65, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x53, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x11, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x61, - 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x12, 0x22, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, - 0x45, 0x61, 0x72, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x5a, 0x65, 0x61, - 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x5a, 0x65, 0x61, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x1a, - 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x5a, 0x65, 0x61, 0x6c, 0x79, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, - 0x0f, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0b, 0x45, 0x6e, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x12, 0x23, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x53, 0x65, 0x74, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x1a, 0x2b, - 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x44, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x45, - 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, + 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x53, + 0x65, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x11, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x61, 0x72, + 0x6c, 0x79, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x5a, 0x65, 0x61, 0x6c, 0x79, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, + 0x5a, 0x65, 0x61, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x1a, 0x2c, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x5a, 0x65, 0x61, 0x6c, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0f, 0x45, 0x6e, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, - 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xcf, 0x01, 0x0a, - 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, 0x6d, - 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xca, - 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, + 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x0b, 0x45, 0x6e, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x12, 0x23, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, + 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x1a, 0x2b, 0x2e, 0x63, 0x61, + 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, + 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x14, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x1a, 0x34, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xcf, 0x01, + 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x44, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x47, 0x61, + 0x6d, 0x65, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0xca, 0x02, 0x13, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, + 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x72, 0x64, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -47632,7 +50653,7 @@ func file_cardchain_cardchain_tx_proto_rawDescGZIP() []byte { return file_cardchain_cardchain_tx_proto_rawDescData } -var file_cardchain_cardchain_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 95) +var file_cardchain_cardchain_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 101) var file_cardchain_cardchain_tx_proto_goTypes = []interface{}{ (*MsgUpdateParams)(nil), // 0: cardchain.cardchain.MsgUpdateParams (*MsgUpdateParamsResponse)(nil), // 1: cardchain.cardchain.MsgUpdateParamsResponse @@ -47728,27 +50749,33 @@ var file_cardchain_cardchain_tx_proto_goTypes = []interface{}{ (*MsgEncounterDoResponse)(nil), // 91: cardchain.cardchain.MsgEncounterDoResponse (*MsgEncounterClose)(nil), // 92: cardchain.cardchain.MsgEncounterClose (*MsgEncounterCloseResponse)(nil), // 93: cardchain.cardchain.MsgEncounterCloseResponse - nil, // 94: cardchain.cardchain.MsgEncounterCreate.ParametersEntry - (*Params)(nil), // 95: cardchain.cardchain.Params - (*v1beta1.Coin)(nil), // 96: cosmos.base.v1beta1.Coin - (*SingleVote)(nil), // 97: cardchain.cardchain.SingleVote - (Outcome)(0), // 98: cardchain.cardchain.Outcome - (CardRarity)(0), // 99: cardchain.cardchain.CardRarity - (Response)(0), // 100: cardchain.cardchain.Response + (*MsgCreateProductDetails)(nil), // 94: cardchain.cardchain.MsgCreateProductDetails + (*MsgCreateProductDetailsResponse)(nil), // 95: cardchain.cardchain.MsgCreateProductDetailsResponse + (*MsgUpdateProductDetails)(nil), // 96: cardchain.cardchain.MsgUpdateProductDetails + (*MsgUpdateProductDetailsResponse)(nil), // 97: cardchain.cardchain.MsgUpdateProductDetailsResponse + (*MsgDeleteProductDetails)(nil), // 98: cardchain.cardchain.MsgDeleteProductDetails + (*MsgDeleteProductDetailsResponse)(nil), // 99: cardchain.cardchain.MsgDeleteProductDetailsResponse + nil, // 100: cardchain.cardchain.MsgEncounterCreate.ParametersEntry + (*Params)(nil), // 101: cardchain.cardchain.Params + (*v1beta1.Coin)(nil), // 102: cosmos.base.v1beta1.Coin + (*SingleVote)(nil), // 103: cardchain.cardchain.SingleVote + (Outcome)(0), // 104: cardchain.cardchain.Outcome + (CardRarity)(0), // 105: cardchain.cardchain.CardRarity + (Response)(0), // 106: cardchain.cardchain.Response } var file_cardchain_cardchain_tx_proto_depIdxs = []int32{ - 95, // 0: cardchain.cardchain.MsgUpdateParams.params:type_name -> cardchain.cardchain.Params - 96, // 1: cardchain.cardchain.MsgCardSchemeBuy.bid:type_name -> cosmos.base.v1beta1.Coin - 97, // 2: cardchain.cardchain.MsgCardVote.vote:type_name -> cardchain.cardchain.SingleVote - 96, // 3: cardchain.cardchain.MsgCardDonate.amount:type_name -> cosmos.base.v1beta1.Coin - 98, // 4: cardchain.cardchain.MsgMatchReport.outcome:type_name -> cardchain.cardchain.Outcome - 96, // 5: cardchain.cardchain.MsgSellOfferCreate.price:type_name -> cosmos.base.v1beta1.Coin - 99, // 6: cardchain.cardchain.MsgCardRaritySet.rarity:type_name -> cardchain.cardchain.CardRarity - 100, // 7: cardchain.cardchain.MsgCouncilResponseReveal.reponse:type_name -> cardchain.cardchain.Response - 98, // 8: cardchain.cardchain.MsgMatchConfirm.outcome:type_name -> cardchain.cardchain.Outcome - 97, // 9: cardchain.cardchain.MsgMatchConfirm.votedCards:type_name -> cardchain.cardchain.SingleVote - 97, // 10: cardchain.cardchain.MsgCardVoteMulti.votes:type_name -> cardchain.cardchain.SingleVote - 94, // 11: cardchain.cardchain.MsgEncounterCreate.parameters:type_name -> cardchain.cardchain.MsgEncounterCreate.ParametersEntry + 101, // 0: cardchain.cardchain.MsgUpdateParams.params:type_name -> cardchain.cardchain.Params + 102, // 1: cardchain.cardchain.MsgCardSchemeBuy.bid:type_name -> cosmos.base.v1beta1.Coin + 103, // 2: cardchain.cardchain.MsgCardVote.vote:type_name -> cardchain.cardchain.SingleVote + 102, // 3: cardchain.cardchain.MsgCardDonate.amount:type_name -> cosmos.base.v1beta1.Coin + 104, // 4: cardchain.cardchain.MsgMatchReport.outcome:type_name -> cardchain.cardchain.Outcome + 102, // 5: cardchain.cardchain.MsgSellOfferCreate.price:type_name -> cosmos.base.v1beta1.Coin + 105, // 6: cardchain.cardchain.MsgCardRaritySet.rarity:type_name -> cardchain.cardchain.CardRarity + 106, // 7: cardchain.cardchain.MsgCouncilResponseReveal.reponse:type_name -> cardchain.cardchain.Response + 104, // 8: cardchain.cardchain.MsgMatchConfirm.outcome:type_name -> cardchain.cardchain.Outcome + 103, // 9: cardchain.cardchain.MsgMatchConfirm.votedCards:type_name -> cardchain.cardchain.SingleVote + 103, // 10: cardchain.cardchain.MsgCardVoteMulti.votes:type_name -> cardchain.cardchain.SingleVote + 100, // 11: cardchain.cardchain.MsgEncounterCreate.parameters:type_name -> cardchain.cardchain.MsgEncounterCreate.ParametersEntry 0, // 12: cardchain.cardchain.Msg.UpdateParams:input_type -> cardchain.cardchain.MsgUpdateParams 2, // 13: cardchain.cardchain.Msg.UserCreate:input_type -> cardchain.cardchain.MsgUserCreate 4, // 14: cardchain.cardchain.Msg.CardSchemeBuy:input_type -> cardchain.cardchain.MsgCardSchemeBuy @@ -47796,55 +50823,61 @@ var file_cardchain_cardchain_tx_proto_depIdxs = []int32{ 88, // 56: cardchain.cardchain.Msg.EncounterCreate:input_type -> cardchain.cardchain.MsgEncounterCreate 90, // 57: cardchain.cardchain.Msg.EncounterDo:input_type -> cardchain.cardchain.MsgEncounterDo 92, // 58: cardchain.cardchain.Msg.EncounterClose:input_type -> cardchain.cardchain.MsgEncounterClose - 1, // 59: cardchain.cardchain.Msg.UpdateParams:output_type -> cardchain.cardchain.MsgUpdateParamsResponse - 3, // 60: cardchain.cardchain.Msg.UserCreate:output_type -> cardchain.cardchain.MsgUserCreateResponse - 5, // 61: cardchain.cardchain.Msg.CardSchemeBuy:output_type -> cardchain.cardchain.MsgCardSchemeBuyResponse - 7, // 62: cardchain.cardchain.Msg.CardSaveContent:output_type -> cardchain.cardchain.MsgCardSaveContentResponse - 9, // 63: cardchain.cardchain.Msg.CardVote:output_type -> cardchain.cardchain.MsgCardVoteResponse - 11, // 64: cardchain.cardchain.Msg.CardTransfer:output_type -> cardchain.cardchain.MsgCardTransferResponse - 13, // 65: cardchain.cardchain.Msg.CardDonate:output_type -> cardchain.cardchain.MsgCardDonateResponse - 15, // 66: cardchain.cardchain.Msg.CardArtworkAdd:output_type -> cardchain.cardchain.MsgCardArtworkAddResponse - 17, // 67: cardchain.cardchain.Msg.CardArtistChange:output_type -> cardchain.cardchain.MsgCardArtistChangeResponse - 19, // 68: cardchain.cardchain.Msg.CouncilRegister:output_type -> cardchain.cardchain.MsgCouncilRegisterResponse - 21, // 69: cardchain.cardchain.Msg.CouncilDeregister:output_type -> cardchain.cardchain.MsgCouncilDeregisterResponse - 23, // 70: cardchain.cardchain.Msg.MatchReport:output_type -> cardchain.cardchain.MsgMatchReportResponse - 25, // 71: cardchain.cardchain.Msg.CouncilCreate:output_type -> cardchain.cardchain.MsgCouncilCreateResponse - 27, // 72: cardchain.cardchain.Msg.MatchReporterAppoint:output_type -> cardchain.cardchain.MsgMatchReporterAppointResponse - 29, // 73: cardchain.cardchain.Msg.SetCreate:output_type -> cardchain.cardchain.MsgSetCreateResponse - 31, // 74: cardchain.cardchain.Msg.SetCardAdd:output_type -> cardchain.cardchain.MsgSetCardAddResponse - 33, // 75: cardchain.cardchain.Msg.SetCardRemove:output_type -> cardchain.cardchain.MsgSetCardRemoveResponse - 35, // 76: cardchain.cardchain.Msg.SetContributorAdd:output_type -> cardchain.cardchain.MsgSetContributorAddResponse - 37, // 77: cardchain.cardchain.Msg.SetContributorRemove:output_type -> cardchain.cardchain.MsgSetContributorRemoveResponse - 39, // 78: cardchain.cardchain.Msg.SetFinalize:output_type -> cardchain.cardchain.MsgSetFinalizeResponse - 41, // 79: cardchain.cardchain.Msg.SetArtworkAdd:output_type -> cardchain.cardchain.MsgSetArtworkAddResponse - 43, // 80: cardchain.cardchain.Msg.SetStoryAdd:output_type -> cardchain.cardchain.MsgSetStoryAddResponse - 45, // 81: cardchain.cardchain.Msg.BoosterPackBuy:output_type -> cardchain.cardchain.MsgBoosterPackBuyResponse - 47, // 82: cardchain.cardchain.Msg.SellOfferCreate:output_type -> cardchain.cardchain.MsgSellOfferCreateResponse - 49, // 83: cardchain.cardchain.Msg.SellOfferBuy:output_type -> cardchain.cardchain.MsgSellOfferBuyResponse - 51, // 84: cardchain.cardchain.Msg.SellOfferRemove:output_type -> cardchain.cardchain.MsgSellOfferRemoveResponse - 53, // 85: cardchain.cardchain.Msg.CardRaritySet:output_type -> cardchain.cardchain.MsgCardRaritySetResponse - 55, // 86: cardchain.cardchain.Msg.CouncilResponseCommit:output_type -> cardchain.cardchain.MsgCouncilResponseCommitResponse - 57, // 87: cardchain.cardchain.Msg.CouncilResponseReveal:output_type -> cardchain.cardchain.MsgCouncilResponseRevealResponse - 59, // 88: cardchain.cardchain.Msg.CouncilRestart:output_type -> cardchain.cardchain.MsgCouncilRestartResponse - 61, // 89: cardchain.cardchain.Msg.MatchConfirm:output_type -> cardchain.cardchain.MsgMatchConfirmResponse - 63, // 90: cardchain.cardchain.Msg.ProfileCardSet:output_type -> cardchain.cardchain.MsgProfileCardSetResponse - 65, // 91: cardchain.cardchain.Msg.ProfileWebsiteSet:output_type -> cardchain.cardchain.MsgProfileWebsiteSetResponse - 67, // 92: cardchain.cardchain.Msg.ProfileBioSet:output_type -> cardchain.cardchain.MsgProfileBioSetResponse - 69, // 93: cardchain.cardchain.Msg.BoosterPackOpen:output_type -> cardchain.cardchain.MsgBoosterPackOpenResponse - 71, // 94: cardchain.cardchain.Msg.BoosterPackTransfer:output_type -> cardchain.cardchain.MsgBoosterPackTransferResponse - 73, // 95: cardchain.cardchain.Msg.SetStoryWriterSet:output_type -> cardchain.cardchain.MsgSetStoryWriterSetResponse - 75, // 96: cardchain.cardchain.Msg.SetArtistSet:output_type -> cardchain.cardchain.MsgSetArtistSetResponse - 77, // 97: cardchain.cardchain.Msg.CardVoteMulti:output_type -> cardchain.cardchain.MsgCardVoteMultiResponse - 79, // 98: cardchain.cardchain.Msg.MatchOpen:output_type -> cardchain.cardchain.MsgMatchOpenResponse - 81, // 99: cardchain.cardchain.Msg.SetNameSet:output_type -> cardchain.cardchain.MsgSetNameSetResponse - 83, // 100: cardchain.cardchain.Msg.ProfileAliasSet:output_type -> cardchain.cardchain.MsgProfileAliasSetResponse - 85, // 101: cardchain.cardchain.Msg.EarlyAccessInvite:output_type -> cardchain.cardchain.MsgEarlyAccessInviteResponse - 87, // 102: cardchain.cardchain.Msg.ZealyConnect:output_type -> cardchain.cardchain.MsgZealyConnectResponse - 89, // 103: cardchain.cardchain.Msg.EncounterCreate:output_type -> cardchain.cardchain.MsgEncounterCreateResponse - 91, // 104: cardchain.cardchain.Msg.EncounterDo:output_type -> cardchain.cardchain.MsgEncounterDoResponse - 93, // 105: cardchain.cardchain.Msg.EncounterClose:output_type -> cardchain.cardchain.MsgEncounterCloseResponse - 59, // [59:106] is the sub-list for method output_type - 12, // [12:59] is the sub-list for method input_type + 94, // 59: cardchain.cardchain.Msg.CreateProductDetails:input_type -> cardchain.cardchain.MsgCreateProductDetails + 96, // 60: cardchain.cardchain.Msg.UpdateProductDetails:input_type -> cardchain.cardchain.MsgUpdateProductDetails + 98, // 61: cardchain.cardchain.Msg.DeleteProductDetails:input_type -> cardchain.cardchain.MsgDeleteProductDetails + 1, // 62: cardchain.cardchain.Msg.UpdateParams:output_type -> cardchain.cardchain.MsgUpdateParamsResponse + 3, // 63: cardchain.cardchain.Msg.UserCreate:output_type -> cardchain.cardchain.MsgUserCreateResponse + 5, // 64: cardchain.cardchain.Msg.CardSchemeBuy:output_type -> cardchain.cardchain.MsgCardSchemeBuyResponse + 7, // 65: cardchain.cardchain.Msg.CardSaveContent:output_type -> cardchain.cardchain.MsgCardSaveContentResponse + 9, // 66: cardchain.cardchain.Msg.CardVote:output_type -> cardchain.cardchain.MsgCardVoteResponse + 11, // 67: cardchain.cardchain.Msg.CardTransfer:output_type -> cardchain.cardchain.MsgCardTransferResponse + 13, // 68: cardchain.cardchain.Msg.CardDonate:output_type -> cardchain.cardchain.MsgCardDonateResponse + 15, // 69: cardchain.cardchain.Msg.CardArtworkAdd:output_type -> cardchain.cardchain.MsgCardArtworkAddResponse + 17, // 70: cardchain.cardchain.Msg.CardArtistChange:output_type -> cardchain.cardchain.MsgCardArtistChangeResponse + 19, // 71: cardchain.cardchain.Msg.CouncilRegister:output_type -> cardchain.cardchain.MsgCouncilRegisterResponse + 21, // 72: cardchain.cardchain.Msg.CouncilDeregister:output_type -> cardchain.cardchain.MsgCouncilDeregisterResponse + 23, // 73: cardchain.cardchain.Msg.MatchReport:output_type -> cardchain.cardchain.MsgMatchReportResponse + 25, // 74: cardchain.cardchain.Msg.CouncilCreate:output_type -> cardchain.cardchain.MsgCouncilCreateResponse + 27, // 75: cardchain.cardchain.Msg.MatchReporterAppoint:output_type -> cardchain.cardchain.MsgMatchReporterAppointResponse + 29, // 76: cardchain.cardchain.Msg.SetCreate:output_type -> cardchain.cardchain.MsgSetCreateResponse + 31, // 77: cardchain.cardchain.Msg.SetCardAdd:output_type -> cardchain.cardchain.MsgSetCardAddResponse + 33, // 78: cardchain.cardchain.Msg.SetCardRemove:output_type -> cardchain.cardchain.MsgSetCardRemoveResponse + 35, // 79: cardchain.cardchain.Msg.SetContributorAdd:output_type -> cardchain.cardchain.MsgSetContributorAddResponse + 37, // 80: cardchain.cardchain.Msg.SetContributorRemove:output_type -> cardchain.cardchain.MsgSetContributorRemoveResponse + 39, // 81: cardchain.cardchain.Msg.SetFinalize:output_type -> cardchain.cardchain.MsgSetFinalizeResponse + 41, // 82: cardchain.cardchain.Msg.SetArtworkAdd:output_type -> cardchain.cardchain.MsgSetArtworkAddResponse + 43, // 83: cardchain.cardchain.Msg.SetStoryAdd:output_type -> cardchain.cardchain.MsgSetStoryAddResponse + 45, // 84: cardchain.cardchain.Msg.BoosterPackBuy:output_type -> cardchain.cardchain.MsgBoosterPackBuyResponse + 47, // 85: cardchain.cardchain.Msg.SellOfferCreate:output_type -> cardchain.cardchain.MsgSellOfferCreateResponse + 49, // 86: cardchain.cardchain.Msg.SellOfferBuy:output_type -> cardchain.cardchain.MsgSellOfferBuyResponse + 51, // 87: cardchain.cardchain.Msg.SellOfferRemove:output_type -> cardchain.cardchain.MsgSellOfferRemoveResponse + 53, // 88: cardchain.cardchain.Msg.CardRaritySet:output_type -> cardchain.cardchain.MsgCardRaritySetResponse + 55, // 89: cardchain.cardchain.Msg.CouncilResponseCommit:output_type -> cardchain.cardchain.MsgCouncilResponseCommitResponse + 57, // 90: cardchain.cardchain.Msg.CouncilResponseReveal:output_type -> cardchain.cardchain.MsgCouncilResponseRevealResponse + 59, // 91: cardchain.cardchain.Msg.CouncilRestart:output_type -> cardchain.cardchain.MsgCouncilRestartResponse + 61, // 92: cardchain.cardchain.Msg.MatchConfirm:output_type -> cardchain.cardchain.MsgMatchConfirmResponse + 63, // 93: cardchain.cardchain.Msg.ProfileCardSet:output_type -> cardchain.cardchain.MsgProfileCardSetResponse + 65, // 94: cardchain.cardchain.Msg.ProfileWebsiteSet:output_type -> cardchain.cardchain.MsgProfileWebsiteSetResponse + 67, // 95: cardchain.cardchain.Msg.ProfileBioSet:output_type -> cardchain.cardchain.MsgProfileBioSetResponse + 69, // 96: cardchain.cardchain.Msg.BoosterPackOpen:output_type -> cardchain.cardchain.MsgBoosterPackOpenResponse + 71, // 97: cardchain.cardchain.Msg.BoosterPackTransfer:output_type -> cardchain.cardchain.MsgBoosterPackTransferResponse + 73, // 98: cardchain.cardchain.Msg.SetStoryWriterSet:output_type -> cardchain.cardchain.MsgSetStoryWriterSetResponse + 75, // 99: cardchain.cardchain.Msg.SetArtistSet:output_type -> cardchain.cardchain.MsgSetArtistSetResponse + 77, // 100: cardchain.cardchain.Msg.CardVoteMulti:output_type -> cardchain.cardchain.MsgCardVoteMultiResponse + 79, // 101: cardchain.cardchain.Msg.MatchOpen:output_type -> cardchain.cardchain.MsgMatchOpenResponse + 81, // 102: cardchain.cardchain.Msg.SetNameSet:output_type -> cardchain.cardchain.MsgSetNameSetResponse + 83, // 103: cardchain.cardchain.Msg.ProfileAliasSet:output_type -> cardchain.cardchain.MsgProfileAliasSetResponse + 85, // 104: cardchain.cardchain.Msg.EarlyAccessInvite:output_type -> cardchain.cardchain.MsgEarlyAccessInviteResponse + 87, // 105: cardchain.cardchain.Msg.ZealyConnect:output_type -> cardchain.cardchain.MsgZealyConnectResponse + 89, // 106: cardchain.cardchain.Msg.EncounterCreate:output_type -> cardchain.cardchain.MsgEncounterCreateResponse + 91, // 107: cardchain.cardchain.Msg.EncounterDo:output_type -> cardchain.cardchain.MsgEncounterDoResponse + 93, // 108: cardchain.cardchain.Msg.EncounterClose:output_type -> cardchain.cardchain.MsgEncounterCloseResponse + 95, // 109: cardchain.cardchain.Msg.CreateProductDetails:output_type -> cardchain.cardchain.MsgCreateProductDetailsResponse + 97, // 110: cardchain.cardchain.Msg.UpdateProductDetails:output_type -> cardchain.cardchain.MsgUpdateProductDetailsResponse + 99, // 111: cardchain.cardchain.Msg.DeleteProductDetails:output_type -> cardchain.cardchain.MsgDeleteProductDetailsResponse + 62, // [62:112] is the sub-list for method output_type + 12, // [12:62] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name 12, // [12:12] is the sub-list for extension extendee 0, // [0:12] is the sub-list for field type_name @@ -47860,6 +50893,7 @@ func file_cardchain_cardchain_tx_proto_init() { file_cardchain_cardchain_match_proto_init() file_cardchain_cardchain_council_proto_init() file_cardchain_cardchain_card_proto_init() + file_cardchain_cardchain_product_details_proto_init() if !protoimpl.UnsafeEnabled { file_cardchain_cardchain_tx_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgUpdateParams); i { @@ -48989,6 +52023,78 @@ func file_cardchain_cardchain_tx_proto_init() { return nil } } + file_cardchain_cardchain_tx_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgCreateProductDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_tx_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgCreateProductDetailsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_tx_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgUpdateProductDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_tx_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgUpdateProductDetailsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_tx_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgDeleteProductDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cardchain_cardchain_tx_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgDeleteProductDetailsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -48996,7 +52102,7 @@ func file_cardchain_cardchain_tx_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cardchain_cardchain_tx_proto_rawDesc, NumEnums: 0, - NumMessages: 95, + NumMessages: 101, NumExtensions: 0, NumServices: 1, }, diff --git a/api/cardchain/cardchain/tx_grpc.pb.go b/api/cardchain/cardchain/tx_grpc.pb.go index 3a84c3e1..bf094045 100644 --- a/api/cardchain/cardchain/tx_grpc.pb.go +++ b/api/cardchain/cardchain/tx_grpc.pb.go @@ -66,6 +66,9 @@ const ( Msg_EncounterCreate_FullMethodName = "/cardchain.cardchain.Msg/EncounterCreate" Msg_EncounterDo_FullMethodName = "/cardchain.cardchain.Msg/EncounterDo" Msg_EncounterClose_FullMethodName = "/cardchain.cardchain.Msg/EncounterClose" + Msg_CreateProductDetails_FullMethodName = "/cardchain.cardchain.Msg/CreateProductDetails" + Msg_UpdateProductDetails_FullMethodName = "/cardchain.cardchain.Msg/UpdateProductDetails" + Msg_DeleteProductDetails_FullMethodName = "/cardchain.cardchain.Msg/DeleteProductDetails" ) // MsgClient is the client API for Msg service. @@ -121,6 +124,9 @@ type MsgClient interface { EncounterCreate(ctx context.Context, in *MsgEncounterCreate, opts ...grpc.CallOption) (*MsgEncounterCreateResponse, error) EncounterDo(ctx context.Context, in *MsgEncounterDo, opts ...grpc.CallOption) (*MsgEncounterDoResponse, error) EncounterClose(ctx context.Context, in *MsgEncounterClose, opts ...grpc.CallOption) (*MsgEncounterCloseResponse, error) + CreateProductDetails(ctx context.Context, in *MsgCreateProductDetails, opts ...grpc.CallOption) (*MsgCreateProductDetailsResponse, error) + UpdateProductDetails(ctx context.Context, in *MsgUpdateProductDetails, opts ...grpc.CallOption) (*MsgUpdateProductDetailsResponse, error) + DeleteProductDetails(ctx context.Context, in *MsgDeleteProductDetails, opts ...grpc.CallOption) (*MsgDeleteProductDetailsResponse, error) } type msgClient struct { @@ -554,6 +560,33 @@ func (c *msgClient) EncounterClose(ctx context.Context, in *MsgEncounterClose, o return out, nil } +func (c *msgClient) CreateProductDetails(ctx context.Context, in *MsgCreateProductDetails, opts ...grpc.CallOption) (*MsgCreateProductDetailsResponse, error) { + out := new(MsgCreateProductDetailsResponse) + err := c.cc.Invoke(ctx, Msg_CreateProductDetails_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdateProductDetails(ctx context.Context, in *MsgUpdateProductDetails, opts ...grpc.CallOption) (*MsgUpdateProductDetailsResponse, error) { + out := new(MsgUpdateProductDetailsResponse) + err := c.cc.Invoke(ctx, Msg_UpdateProductDetails_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) DeleteProductDetails(ctx context.Context, in *MsgDeleteProductDetails, opts ...grpc.CallOption) (*MsgDeleteProductDetailsResponse, error) { + out := new(MsgDeleteProductDetailsResponse) + err := c.cc.Invoke(ctx, Msg_DeleteProductDetails_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. // All implementations must embed UnimplementedMsgServer // for forward compatibility @@ -607,6 +640,9 @@ type MsgServer interface { EncounterCreate(context.Context, *MsgEncounterCreate) (*MsgEncounterCreateResponse, error) EncounterDo(context.Context, *MsgEncounterDo) (*MsgEncounterDoResponse, error) EncounterClose(context.Context, *MsgEncounterClose) (*MsgEncounterCloseResponse, error) + CreateProductDetails(context.Context, *MsgCreateProductDetails) (*MsgCreateProductDetailsResponse, error) + UpdateProductDetails(context.Context, *MsgUpdateProductDetails) (*MsgUpdateProductDetailsResponse, error) + DeleteProductDetails(context.Context, *MsgDeleteProductDetails) (*MsgDeleteProductDetailsResponse, error) mustEmbedUnimplementedMsgServer() } @@ -755,6 +791,15 @@ func (UnimplementedMsgServer) EncounterDo(context.Context, *MsgEncounterDo) (*Ms func (UnimplementedMsgServer) EncounterClose(context.Context, *MsgEncounterClose) (*MsgEncounterCloseResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EncounterClose not implemented") } +func (UnimplementedMsgServer) CreateProductDetails(context.Context, *MsgCreateProductDetails) (*MsgCreateProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateProductDetails not implemented") +} +func (UnimplementedMsgServer) UpdateProductDetails(context.Context, *MsgUpdateProductDetails) (*MsgUpdateProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateProductDetails not implemented") +} +func (UnimplementedMsgServer) DeleteProductDetails(context.Context, *MsgDeleteProductDetails) (*MsgDeleteProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteProductDetails not implemented") +} func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {} // UnsafeMsgServer may be embedded to opt out of forward compatibility for this service. @@ -1614,6 +1659,60 @@ func _Msg_EncounterClose_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _Msg_CreateProductDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgCreateProductDetails) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).CreateProductDetails(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_CreateProductDetails_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).CreateProductDetails(ctx, req.(*MsgCreateProductDetails)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdateProductDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateProductDetails) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateProductDetails(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_UpdateProductDetails_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateProductDetails(ctx, req.(*MsgUpdateProductDetails)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_DeleteProductDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgDeleteProductDetails) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).DeleteProductDetails(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_DeleteProductDetails_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).DeleteProductDetails(ctx, req.(*MsgDeleteProductDetails)) + } + return interceptor(ctx, in, info, handler) +} + // Msg_ServiceDesc is the grpc.ServiceDesc for Msg service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1809,6 +1908,18 @@ var Msg_ServiceDesc = grpc.ServiceDesc{ MethodName: "EncounterClose", Handler: _Msg_EncounterClose_Handler, }, + { + MethodName: "CreateProductDetails", + Handler: _Msg_CreateProductDetails_Handler, + }, + { + MethodName: "UpdateProductDetails", + Handler: _Msg_UpdateProductDetails_Handler, + }, + { + MethodName: "DeleteProductDetails", + Handler: _Msg_DeleteProductDetails_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cardchain/cardchain/tx.proto", diff --git a/docs/static/openapi.yml b/docs/static/openapi.yml index 246516b2..3bd41838 100644 --- a/docs/static/openapi.yml +++ b/docs/static/openapi.yml @@ -1 +1 @@ -{"id":"github.com/DecentralCardGame/cardchain","consumes":["application/json"],"produces":["application/json"],"swagger":"2.0","info":{"description":"Chain github.com/DecentralCardGame/cardchain REST API","title":"HTTP API Console","contact":{"name":"github.com/DecentralCardGame/cardchain"},"version":"version not set"},"paths":{"/DecentralCardGame/cardchain/cardchain/params":{"get":{"tags":["Query"],"summary":"Parameters queries the parameters of the module.","operationId":"GithubComDecentralCardGamecardchainQuery_Params","responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.QueryParamsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/BoosterPackBuy":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_BoosterPackBuy","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackBuy"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackBuyResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/BoosterPackOpen":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_BoosterPackOpen","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackOpen"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackOpenResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/BoosterPackTransfer":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_BoosterPackTransfer","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackTransfer"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackTransferResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardArtistChange":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardArtistChange","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardArtistChange"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardArtistChangeResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardArtworkAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardArtworkAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardArtworkAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardArtworkAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardDonate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardDonate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardDonate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardDonateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardRaritySet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardRaritySet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardRaritySet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardRaritySetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardSaveContent":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardSaveContent","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardSaveContent"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardSaveContentResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardSchemeBuy":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardSchemeBuy","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardSchemeBuy"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardSchemeBuyResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardTransfer":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardTransfer","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardTransfer"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardTransferResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardVote":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardVote","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardVote"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardVoteResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardVoteMulti":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardVoteMulti","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardVoteMulti"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardVoteMultiResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilDeregister":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilDeregister","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilDeregister"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilDeregisterResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilRegister":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilRegister","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilRegister"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilRegisterResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilResponseCommit":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilResponseCommit","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilResponseCommit"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilResponseCommitResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilResponseReveal":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilResponseReveal","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilResponseReveal"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilResponseRevealResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilRestart":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilRestart","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilRestart"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilRestartResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/EarlyAccessInvite":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_EarlyAccessInvite","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEarlyAccessInvite"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEarlyAccessInviteResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/EncounterClose":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_EncounterClose","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterClose"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterCloseResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/EncounterCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_EncounterCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/EncounterDo":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_EncounterDo","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterDo"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterDoResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/MatchConfirm":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_MatchConfirm","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchConfirm"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchConfirmResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/MatchOpen":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_MatchOpen","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchOpen"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchOpenResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/MatchReport":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_MatchReport","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchReport"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchReportResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/MatchReporterAppoint":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_MatchReporterAppoint","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchReporterAppoint"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchReporterAppointResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ProfileAliasSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ProfileAliasSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileAliasSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileAliasSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ProfileBioSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ProfileBioSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileBioSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileBioSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ProfileCardSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ProfileCardSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileCardSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileCardSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ProfileWebsiteSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ProfileWebsiteSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileWebsiteSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileWebsiteSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SellOfferBuy":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SellOfferBuy","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferBuy"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferBuyResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SellOfferCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SellOfferCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SellOfferRemove":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SellOfferRemove","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferRemove"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferRemoveResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetArtistSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetArtistSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetArtistSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetArtistSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetArtworkAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetArtworkAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetArtworkAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetArtworkAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetCardAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetCardAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCardAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCardAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetCardRemove":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetCardRemove","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCardRemove"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCardRemoveResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetContributorAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetContributorAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetContributorAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetContributorAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetContributorRemove":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetContributorRemove","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetContributorRemove"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetContributorRemoveResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetFinalize":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetFinalize","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetFinalize"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetFinalizeResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetNameSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetNameSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetNameSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetNameSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetStoryAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetStoryAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetStoryAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetStoryAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetStoryWriterSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetStoryWriterSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetStoryWriterSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetStoryWriterSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/UpdateParams":{"post":{"tags":["Msg"],"summary":"UpdateParams defines a (governance) operation for updating the module\nparameters. The authority defaults to the x/gov module account.","operationId":"GithubComDecentralCardGamecardchainMsg_UpdateParams","parameters":[{"description":"MsgUpdateParams is the Msg/UpdateParams request type.","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUpdateParams"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUpdateParamsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/UserCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_UserCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUserCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUserCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ZealyConnect":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ZealyConnect","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgZealyConnect"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgZealyConnectResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}}},"definitions":{"cardchain.cardchain.CardRarity":{"type":"string","default":"common","enum":["common","uncommon","rare","exceptional","unique"]},"cardchain.cardchain.MsgBoosterPackBuy":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgBoosterPackBuyResponse":{"type":"object","properties":{"airdropClaimed":{"type":"boolean"}}},"cardchain.cardchain.MsgBoosterPackOpen":{"type":"object","properties":{"boosterPackId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgBoosterPackOpenResponse":{"type":"object","properties":{"cardIds":{"type":"array","items":{"type":"string","format":"uint64"}}}},"cardchain.cardchain.MsgBoosterPackTransfer":{"type":"object","properties":{"boosterPackId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"receiver":{"type":"string"}}},"cardchain.cardchain.MsgBoosterPackTransferResponse":{"type":"object"},"cardchain.cardchain.MsgCardArtistChange":{"type":"object","properties":{"artist":{"type":"string"},"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCardArtistChangeResponse":{"type":"object"},"cardchain.cardchain.MsgCardArtworkAdd":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"fullArt":{"type":"boolean"},"image":{"type":"string","format":"byte"}}},"cardchain.cardchain.MsgCardArtworkAddResponse":{"type":"object"},"cardchain.cardchain.MsgCardDonate":{"type":"object","properties":{"amount":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCardDonateResponse":{"type":"object"},"cardchain.cardchain.MsgCardRaritySet":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"rarity":{"$ref":"#/definitions/cardchain.cardchain.CardRarity"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgCardRaritySetResponse":{"type":"object"},"cardchain.cardchain.MsgCardSaveContent":{"type":"object","properties":{"artist":{"type":"string"},"balanceAnchor":{"type":"boolean"},"cardId":{"type":"string","format":"uint64"},"content":{"type":"string","format":"byte"},"creator":{"type":"string"},"notes":{"type":"string"}}},"cardchain.cardchain.MsgCardSaveContentResponse":{"type":"object","properties":{"airdropClaimed":{"type":"boolean"}}},"cardchain.cardchain.MsgCardSchemeBuy":{"type":"object","properties":{"bid":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCardSchemeBuyResponse":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgCardTransfer":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"receiver":{"type":"string"}}},"cardchain.cardchain.MsgCardTransferResponse":{"type":"object"},"cardchain.cardchain.MsgCardVote":{"type":"object","properties":{"creator":{"type":"string"},"vote":{"$ref":"#/definitions/cardchain.cardchain.SingleVote"}}},"cardchain.cardchain.MsgCardVoteMulti":{"type":"object","properties":{"creator":{"type":"string"},"votes":{"type":"array","items":{"type":"object","$ref":"#/definitions/cardchain.cardchain.SingleVote"}}}},"cardchain.cardchain.MsgCardVoteMultiResponse":{"type":"object","properties":{"airdropClaimed":{"type":"boolean"}}},"cardchain.cardchain.MsgCardVoteResponse":{"type":"object","properties":{"airdropClaimed":{"type":"boolean"}}},"cardchain.cardchain.MsgCouncilCreate":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCouncilCreateResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilDeregister":{"type":"object","properties":{"creator":{"type":"string"}}},"cardchain.cardchain.MsgCouncilDeregisterResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilRegister":{"type":"object","properties":{"creator":{"type":"string"}}},"cardchain.cardchain.MsgCouncilRegisterResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilResponseCommit":{"type":"object","properties":{"councilId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"reponse":{"type":"string"},"suggestion":{"type":"string"}}},"cardchain.cardchain.MsgCouncilResponseCommitResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilResponseReveal":{"type":"object","properties":{"councilId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"reponse":{"$ref":"#/definitions/cardchain.cardchain.Response"},"secret":{"type":"string"}}},"cardchain.cardchain.MsgCouncilResponseRevealResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilRestart":{"type":"object","properties":{"councilId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCouncilRestartResponse":{"type":"object"},"cardchain.cardchain.MsgEarlyAccessInvite":{"type":"object","properties":{"creator":{"type":"string"},"user":{"type":"string"}}},"cardchain.cardchain.MsgEarlyAccessInviteResponse":{"type":"object"},"cardchain.cardchain.MsgEncounterClose":{"type":"object","properties":{"creator":{"type":"string"},"encounterId":{"type":"string","format":"uint64"},"user":{"type":"string"},"won":{"type":"boolean"}}},"cardchain.cardchain.MsgEncounterCloseResponse":{"type":"object"},"cardchain.cardchain.MsgEncounterCreate":{"type":"object","properties":{"creator":{"type":"string"},"drawlist":{"type":"array","items":{"type":"string","format":"uint64"}},"image":{"type":"string","format":"byte"},"name":{"type":"string"},"parameters":{"type":"object","additionalProperties":{"type":"string"}}}},"cardchain.cardchain.MsgEncounterCreateResponse":{"type":"object"},"cardchain.cardchain.MsgEncounterDo":{"type":"object","properties":{"creator":{"type":"string"},"encounterId":{"type":"string","format":"uint64"},"user":{"type":"string"}}},"cardchain.cardchain.MsgEncounterDoResponse":{"type":"object"},"cardchain.cardchain.MsgMatchConfirm":{"type":"object","properties":{"creator":{"type":"string"},"matchId":{"type":"string","format":"uint64"},"outcome":{"$ref":"#/definitions/cardchain.cardchain.Outcome"},"votedCards":{"type":"array","items":{"type":"object","$ref":"#/definitions/cardchain.cardchain.SingleVote"}}}},"cardchain.cardchain.MsgMatchConfirmResponse":{"type":"object"},"cardchain.cardchain.MsgMatchOpen":{"type":"object","properties":{"creator":{"type":"string"},"playerA":{"type":"string"},"playerAdeck":{"type":"array","items":{"type":"string","format":"uint64"}},"playerB":{"type":"string"},"playerBdeck":{"type":"array","items":{"type":"string","format":"uint64"}}}},"cardchain.cardchain.MsgMatchOpenResponse":{"type":"object","properties":{"matchId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgMatchReport":{"type":"object","properties":{"creator":{"type":"string"},"matchId":{"type":"string","format":"uint64"},"outcome":{"$ref":"#/definitions/cardchain.cardchain.Outcome"},"playedCardsA":{"type":"array","items":{"type":"string","format":"uint64"}},"playedCardsB":{"type":"array","items":{"type":"string","format":"uint64"}}}},"cardchain.cardchain.MsgMatchReportResponse":{"type":"object"},"cardchain.cardchain.MsgMatchReporterAppoint":{"type":"object","properties":{"creator":{"type":"string"},"reporter":{"type":"string"}}},"cardchain.cardchain.MsgMatchReporterAppointResponse":{"type":"object"},"cardchain.cardchain.MsgProfileAliasSet":{"type":"object","properties":{"alias":{"type":"string"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgProfileAliasSetResponse":{"type":"object"},"cardchain.cardchain.MsgProfileBioSet":{"type":"object","properties":{"bio":{"type":"string"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgProfileBioSetResponse":{"type":"object"},"cardchain.cardchain.MsgProfileCardSet":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgProfileCardSetResponse":{"type":"object"},"cardchain.cardchain.MsgProfileWebsiteSet":{"type":"object","properties":{"creator":{"type":"string"},"website":{"type":"string"}}},"cardchain.cardchain.MsgProfileWebsiteSetResponse":{"type":"object"},"cardchain.cardchain.MsgSellOfferBuy":{"type":"object","properties":{"creator":{"type":"string"},"sellOfferId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSellOfferBuyResponse":{"type":"object"},"cardchain.cardchain.MsgSellOfferCreate":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"price":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"}}},"cardchain.cardchain.MsgSellOfferCreateResponse":{"type":"object"},"cardchain.cardchain.MsgSellOfferRemove":{"type":"object","properties":{"creator":{"type":"string"},"sellOfferId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSellOfferRemoveResponse":{"type":"object"},"cardchain.cardchain.MsgSetArtistSet":{"type":"object","properties":{"artist":{"type":"string"},"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetArtistSetResponse":{"type":"object"},"cardchain.cardchain.MsgSetArtworkAdd":{"type":"object","properties":{"creator":{"type":"string"},"image":{"type":"string","format":"byte"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetArtworkAddResponse":{"type":"object"},"cardchain.cardchain.MsgSetCardAdd":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetCardAddResponse":{"type":"object"},"cardchain.cardchain.MsgSetCardRemove":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetCardRemoveResponse":{"type":"object"},"cardchain.cardchain.MsgSetContributorAdd":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"},"user":{"type":"string"}}},"cardchain.cardchain.MsgSetContributorAddResponse":{"type":"object"},"cardchain.cardchain.MsgSetContributorRemove":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"},"user":{"type":"string"}}},"cardchain.cardchain.MsgSetContributorRemoveResponse":{"type":"object"},"cardchain.cardchain.MsgSetCreate":{"type":"object","properties":{"artist":{"type":"string"},"contributors":{"type":"array","items":{"type":"string"}},"creator":{"type":"string"},"name":{"type":"string"},"storyWriter":{"type":"string"}}},"cardchain.cardchain.MsgSetCreateResponse":{"type":"object"},"cardchain.cardchain.MsgSetFinalize":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetFinalizeResponse":{"type":"object"},"cardchain.cardchain.MsgSetNameSet":{"type":"object","properties":{"creator":{"type":"string"},"name":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetNameSetResponse":{"type":"object"},"cardchain.cardchain.MsgSetStoryAdd":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"},"story":{"type":"string"}}},"cardchain.cardchain.MsgSetStoryAddResponse":{"type":"object"},"cardchain.cardchain.MsgSetStoryWriterSet":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"},"storyWriter":{"type":"string"}}},"cardchain.cardchain.MsgSetStoryWriterSetResponse":{"type":"object"},"cardchain.cardchain.MsgUpdateParams":{"description":"MsgUpdateParams is the Msg/UpdateParams request type.","type":"object","properties":{"authority":{"description":"authority is the address that controls the module (defaults to x/gov unless\noverwritten).","type":"string"},"params":{"description":"NOTE: All parameters must be supplied.","$ref":"#/definitions/cardchain.cardchain.Params"}}},"cardchain.cardchain.MsgUpdateParamsResponse":{"description":"MsgUpdateParamsResponse defines the response structure for executing a\nMsgUpdateParams message.","type":"object"},"cardchain.cardchain.MsgUserCreate":{"type":"object","properties":{"alias":{"type":"string"},"creator":{"type":"string"},"newUser":{"type":"string"}}},"cardchain.cardchain.MsgUserCreateResponse":{"type":"object"},"cardchain.cardchain.MsgZealyConnect":{"type":"object","properties":{"creator":{"type":"string"},"zealyId":{"type":"string"}}},"cardchain.cardchain.MsgZealyConnectResponse":{"type":"object"},"cardchain.cardchain.Outcome":{"type":"string","default":"AWon","enum":["AWon","BWon","Draw","Aborted"]},"cardchain.cardchain.Params":{"description":"Params defines the parameters for the module.","type":"object"},"cardchain.cardchain.QueryParamsResponse":{"description":"QueryParamsResponse is response type for the Query/Params RPC method.","type":"object","properties":{"params":{"description":"params holds all the parameters of this module.","$ref":"#/definitions/cardchain.cardchain.Params"}}},"cardchain.cardchain.Response":{"type":"string","default":"Yes","enum":["Yes","No","Suggestion"]},"cardchain.cardchain.SingleVote":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"voteType":{"$ref":"#/definitions/cardchain.cardchain.VoteType"}}},"cardchain.cardchain.VoteType":{"type":"string","default":"fairEnough","enum":["fairEnough","inappropriate","overpowered","underpowered"]},"cosmos.base.v1beta1.Coin":{"description":"Coin defines a token with a denomination and an amount.\n\nNOTE: The amount field is an Int which implements the custom method\nsignatures required by gogoproto.","type":"object","properties":{"amount":{"type":"string"},"denom":{"type":"string"}}},"google.protobuf.Any":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"google.rpc.Status":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"details":{"type":"array","items":{"type":"object","$ref":"#/definitions/google.protobuf.Any"}},"message":{"type":"string"}}}},"tags":[{"name":"Query"},{"name":"Msg"}]} \ No newline at end of file +{"id":"github.com/DecentralCardGame/cardchain","consumes":["application/json"],"produces":["application/json"],"swagger":"2.0","info":{"description":"Chain github.com/DecentralCardGame/cardchain REST API","title":"HTTP API Console","contact":{"name":"github.com/DecentralCardGame/cardchain"},"version":"version not set"},"paths":{"/DecentralCardGame/cardchain/cardchain/params":{"get":{"tags":["Query"],"summary":"Parameters queries the parameters of the module.","operationId":"GithubComDecentralCardGamecardchainQuery_Params","responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.QueryParamsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/DecentralCardGame/cardchain/cardchain/product_details":{"get":{"tags":["Query"],"operationId":"GithubComDecentralCardGamecardchainQuery_ProductDetailsAll","parameters":[{"type":"string","format":"byte","description":"key is a value returned in PageResponse.next_key to begin\nquerying the next page most efficiently. Only one of offset or key\nshould be set.","name":"pagination.key","in":"query"},{"type":"string","format":"uint64","description":"offset is a numeric offset that can be used when key is unavailable.\nIt is less efficient than using key. Only one of offset or key should\nbe set.","name":"pagination.offset","in":"query"},{"type":"string","format":"uint64","description":"limit is the total number of results to be returned in the result page.\nIf left empty it will default to a value to be set by each app.","name":"pagination.limit","in":"query"},{"type":"boolean","description":"count_total is set to true to indicate that the result set should include\na count of the total number of items available for pagination in UIs.\ncount_total is only respected when offset is used. It is ignored when key\nis set.","name":"pagination.count_total","in":"query"},{"type":"boolean","description":"reverse is set to true if results are to be returned in the descending order.\n\nSince: cosmos-sdk 0.43","name":"pagination.reverse","in":"query"}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.QueryAllProductDetailsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/DecentralCardGame/cardchain/cardchain/product_details/{id}":{"get":{"tags":["Query"],"summary":"Queries a list of ProductDetails items.","operationId":"GithubComDecentralCardGamecardchainQuery_ProductDetails","parameters":[{"type":"string","format":"uint64","name":"id","in":"path","required":true}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.QueryGetProductDetailsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/BoosterPackBuy":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_BoosterPackBuy","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackBuy"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackBuyResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/BoosterPackOpen":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_BoosterPackOpen","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackOpen"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackOpenResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/BoosterPackTransfer":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_BoosterPackTransfer","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackTransfer"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgBoosterPackTransferResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardArtistChange":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardArtistChange","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardArtistChange"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardArtistChangeResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardArtworkAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardArtworkAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardArtworkAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardArtworkAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardDonate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardDonate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardDonate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardDonateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardRaritySet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardRaritySet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardRaritySet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardRaritySetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardSaveContent":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardSaveContent","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardSaveContent"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardSaveContentResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardSchemeBuy":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardSchemeBuy","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardSchemeBuy"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardSchemeBuyResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardTransfer":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardTransfer","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardTransfer"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardTransferResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardVote":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardVote","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardVote"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardVoteResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CardVoteMulti":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CardVoteMulti","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardVoteMulti"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCardVoteMultiResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilDeregister":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilDeregister","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilDeregister"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilDeregisterResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilRegister":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilRegister","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilRegister"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilRegisterResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilResponseCommit":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilResponseCommit","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilResponseCommit"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilResponseCommitResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilResponseReveal":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilResponseReveal","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilResponseReveal"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilResponseRevealResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CouncilRestart":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CouncilRestart","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilRestart"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCouncilRestartResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/CreateProductDetails":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_CreateProductDetails","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCreateProductDetails"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgCreateProductDetailsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/DeleteProductDetails":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_DeleteProductDetails","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgDeleteProductDetails"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgDeleteProductDetailsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/EarlyAccessInvite":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_EarlyAccessInvite","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEarlyAccessInvite"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEarlyAccessInviteResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/EncounterClose":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_EncounterClose","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterClose"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterCloseResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/EncounterCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_EncounterCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/EncounterDo":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_EncounterDo","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterDo"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgEncounterDoResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/MatchConfirm":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_MatchConfirm","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchConfirm"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchConfirmResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/MatchOpen":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_MatchOpen","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchOpen"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchOpenResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/MatchReport":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_MatchReport","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchReport"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchReportResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/MatchReporterAppoint":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_MatchReporterAppoint","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchReporterAppoint"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgMatchReporterAppointResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ProfileAliasSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ProfileAliasSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileAliasSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileAliasSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ProfileBioSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ProfileBioSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileBioSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileBioSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ProfileCardSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ProfileCardSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileCardSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileCardSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ProfileWebsiteSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ProfileWebsiteSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileWebsiteSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgProfileWebsiteSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SellOfferBuy":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SellOfferBuy","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferBuy"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferBuyResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SellOfferCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SellOfferCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SellOfferRemove":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SellOfferRemove","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferRemove"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSellOfferRemoveResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetArtistSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetArtistSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetArtistSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetArtistSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetArtworkAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetArtworkAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetArtworkAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetArtworkAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetCardAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetCardAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCardAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCardAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetCardRemove":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetCardRemove","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCardRemove"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCardRemoveResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetContributorAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetContributorAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetContributorAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetContributorAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetContributorRemove":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetContributorRemove","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetContributorRemove"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetContributorRemoveResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetFinalize":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetFinalize","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetFinalize"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetFinalizeResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetNameSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetNameSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetNameSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetNameSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetStoryAdd":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetStoryAdd","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetStoryAdd"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetStoryAddResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/SetStoryWriterSet":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_SetStoryWriterSet","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetStoryWriterSet"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgSetStoryWriterSetResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/UpdateParams":{"post":{"tags":["Msg"],"summary":"UpdateParams defines a (governance) operation for updating the module\nparameters. The authority defaults to the x/gov module account.","operationId":"GithubComDecentralCardGamecardchainMsg_UpdateParams","parameters":[{"description":"MsgUpdateParams is the Msg/UpdateParams request type.","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUpdateParams"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUpdateParamsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/UpdateProductDetails":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_UpdateProductDetails","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUpdateProductDetails"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUpdateProductDetailsResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/UserCreate":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_UserCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUserCreate"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgUserCreateResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}},"/cardchain.cardchain.Msg/ZealyConnect":{"post":{"tags":["Msg"],"operationId":"GithubComDecentralCardGamecardchainMsg_ZealyConnect","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/cardchain.cardchain.MsgZealyConnect"}}],"responses":{"200":{"description":"A successful response.","schema":{"$ref":"#/definitions/cardchain.cardchain.MsgZealyConnectResponse"}},"default":{"description":"An unexpected error response.","schema":{"$ref":"#/definitions/google.rpc.Status"}}}}}},"definitions":{"cardchain.cardchain.CardRarity":{"type":"string","default":"common","enum":["common","uncommon","rare","exceptional","unique"]},"cardchain.cardchain.MsgBoosterPackBuy":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgBoosterPackBuyResponse":{"type":"object","properties":{"airdropClaimed":{"type":"boolean"}}},"cardchain.cardchain.MsgBoosterPackOpen":{"type":"object","properties":{"boosterPackId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgBoosterPackOpenResponse":{"type":"object","properties":{"cardIds":{"type":"array","items":{"type":"string","format":"uint64"}}}},"cardchain.cardchain.MsgBoosterPackTransfer":{"type":"object","properties":{"boosterPackId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"receiver":{"type":"string"}}},"cardchain.cardchain.MsgBoosterPackTransferResponse":{"type":"object"},"cardchain.cardchain.MsgCardArtistChange":{"type":"object","properties":{"artist":{"type":"string"},"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCardArtistChangeResponse":{"type":"object"},"cardchain.cardchain.MsgCardArtworkAdd":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"fullArt":{"type":"boolean"},"image":{"type":"string","format":"byte"}}},"cardchain.cardchain.MsgCardArtworkAddResponse":{"type":"object"},"cardchain.cardchain.MsgCardDonate":{"type":"object","properties":{"amount":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCardDonateResponse":{"type":"object"},"cardchain.cardchain.MsgCardRaritySet":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"rarity":{"$ref":"#/definitions/cardchain.cardchain.CardRarity"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgCardRaritySetResponse":{"type":"object"},"cardchain.cardchain.MsgCardSaveContent":{"type":"object","properties":{"artist":{"type":"string"},"balanceAnchor":{"type":"boolean"},"cardId":{"type":"string","format":"uint64"},"content":{"type":"string","format":"byte"},"creator":{"type":"string"},"notes":{"type":"string"}}},"cardchain.cardchain.MsgCardSaveContentResponse":{"type":"object","properties":{"airdropClaimed":{"type":"boolean"}}},"cardchain.cardchain.MsgCardSchemeBuy":{"type":"object","properties":{"bid":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCardSchemeBuyResponse":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgCardTransfer":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"receiver":{"type":"string"}}},"cardchain.cardchain.MsgCardTransferResponse":{"type":"object"},"cardchain.cardchain.MsgCardVote":{"type":"object","properties":{"creator":{"type":"string"},"vote":{"$ref":"#/definitions/cardchain.cardchain.SingleVote"}}},"cardchain.cardchain.MsgCardVoteMulti":{"type":"object","properties":{"creator":{"type":"string"},"votes":{"type":"array","items":{"type":"object","$ref":"#/definitions/cardchain.cardchain.SingleVote"}}}},"cardchain.cardchain.MsgCardVoteMultiResponse":{"type":"object","properties":{"airdropClaimed":{"type":"boolean"}}},"cardchain.cardchain.MsgCardVoteResponse":{"type":"object","properties":{"airdropClaimed":{"type":"boolean"}}},"cardchain.cardchain.MsgCouncilCreate":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCouncilCreateResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilDeregister":{"type":"object","properties":{"creator":{"type":"string"}}},"cardchain.cardchain.MsgCouncilDeregisterResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilRegister":{"type":"object","properties":{"creator":{"type":"string"}}},"cardchain.cardchain.MsgCouncilRegisterResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilResponseCommit":{"type":"object","properties":{"councilId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"reponse":{"type":"string"},"suggestion":{"type":"string"}}},"cardchain.cardchain.MsgCouncilResponseCommitResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilResponseReveal":{"type":"object","properties":{"councilId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"reponse":{"$ref":"#/definitions/cardchain.cardchain.Response"},"secret":{"type":"string"}}},"cardchain.cardchain.MsgCouncilResponseRevealResponse":{"type":"object"},"cardchain.cardchain.MsgCouncilRestart":{"type":"object","properties":{"councilId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgCouncilRestartResponse":{"type":"object"},"cardchain.cardchain.MsgCreateProductDetails":{"type":"object","properties":{"creator":{"type":"string"},"desc":{"type":"string"},"name":{"type":"string"}}},"cardchain.cardchain.MsgCreateProductDetailsResponse":{"type":"object","properties":{"id":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgDeleteProductDetails":{"type":"object","properties":{"creator":{"type":"string"},"id":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgDeleteProductDetailsResponse":{"type":"object"},"cardchain.cardchain.MsgEarlyAccessInvite":{"type":"object","properties":{"creator":{"type":"string"},"user":{"type":"string"}}},"cardchain.cardchain.MsgEarlyAccessInviteResponse":{"type":"object"},"cardchain.cardchain.MsgEncounterClose":{"type":"object","properties":{"creator":{"type":"string"},"encounterId":{"type":"string","format":"uint64"},"user":{"type":"string"},"won":{"type":"boolean"}}},"cardchain.cardchain.MsgEncounterCloseResponse":{"type":"object"},"cardchain.cardchain.MsgEncounterCreate":{"type":"object","properties":{"creator":{"type":"string"},"drawlist":{"type":"array","items":{"type":"string","format":"uint64"}},"image":{"type":"string","format":"byte"},"name":{"type":"string"},"parameters":{"type":"object","additionalProperties":{"type":"string"}}}},"cardchain.cardchain.MsgEncounterCreateResponse":{"type":"object"},"cardchain.cardchain.MsgEncounterDo":{"type":"object","properties":{"creator":{"type":"string"},"encounterId":{"type":"string","format":"uint64"},"user":{"type":"string"}}},"cardchain.cardchain.MsgEncounterDoResponse":{"type":"object"},"cardchain.cardchain.MsgMatchConfirm":{"type":"object","properties":{"creator":{"type":"string"},"matchId":{"type":"string","format":"uint64"},"outcome":{"$ref":"#/definitions/cardchain.cardchain.Outcome"},"votedCards":{"type":"array","items":{"type":"object","$ref":"#/definitions/cardchain.cardchain.SingleVote"}}}},"cardchain.cardchain.MsgMatchConfirmResponse":{"type":"object"},"cardchain.cardchain.MsgMatchOpen":{"type":"object","properties":{"creator":{"type":"string"},"playerA":{"type":"string"},"playerAdeck":{"type":"array","items":{"type":"string","format":"uint64"}},"playerB":{"type":"string"},"playerBdeck":{"type":"array","items":{"type":"string","format":"uint64"}}}},"cardchain.cardchain.MsgMatchOpenResponse":{"type":"object","properties":{"matchId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgMatchReport":{"type":"object","properties":{"creator":{"type":"string"},"matchId":{"type":"string","format":"uint64"},"outcome":{"$ref":"#/definitions/cardchain.cardchain.Outcome"},"playedCardsA":{"type":"array","items":{"type":"string","format":"uint64"}},"playedCardsB":{"type":"array","items":{"type":"string","format":"uint64"}}}},"cardchain.cardchain.MsgMatchReportResponse":{"type":"object"},"cardchain.cardchain.MsgMatchReporterAppoint":{"type":"object","properties":{"creator":{"type":"string"},"reporter":{"type":"string"}}},"cardchain.cardchain.MsgMatchReporterAppointResponse":{"type":"object"},"cardchain.cardchain.MsgProfileAliasSet":{"type":"object","properties":{"alias":{"type":"string"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgProfileAliasSetResponse":{"type":"object"},"cardchain.cardchain.MsgProfileBioSet":{"type":"object","properties":{"bio":{"type":"string"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgProfileBioSetResponse":{"type":"object"},"cardchain.cardchain.MsgProfileCardSet":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"}}},"cardchain.cardchain.MsgProfileCardSetResponse":{"type":"object"},"cardchain.cardchain.MsgProfileWebsiteSet":{"type":"object","properties":{"creator":{"type":"string"},"website":{"type":"string"}}},"cardchain.cardchain.MsgProfileWebsiteSetResponse":{"type":"object"},"cardchain.cardchain.MsgSellOfferBuy":{"type":"object","properties":{"creator":{"type":"string"},"sellOfferId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSellOfferBuyResponse":{"type":"object"},"cardchain.cardchain.MsgSellOfferCreate":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"price":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"}}},"cardchain.cardchain.MsgSellOfferCreateResponse":{"type":"object"},"cardchain.cardchain.MsgSellOfferRemove":{"type":"object","properties":{"creator":{"type":"string"},"sellOfferId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSellOfferRemoveResponse":{"type":"object"},"cardchain.cardchain.MsgSetArtistSet":{"type":"object","properties":{"artist":{"type":"string"},"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetArtistSetResponse":{"type":"object"},"cardchain.cardchain.MsgSetArtworkAdd":{"type":"object","properties":{"creator":{"type":"string"},"image":{"type":"string","format":"byte"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetArtworkAddResponse":{"type":"object"},"cardchain.cardchain.MsgSetCardAdd":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetCardAddResponse":{"type":"object"},"cardchain.cardchain.MsgSetCardRemove":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetCardRemoveResponse":{"type":"object"},"cardchain.cardchain.MsgSetContributorAdd":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"},"user":{"type":"string"}}},"cardchain.cardchain.MsgSetContributorAddResponse":{"type":"object"},"cardchain.cardchain.MsgSetContributorRemove":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"},"user":{"type":"string"}}},"cardchain.cardchain.MsgSetContributorRemoveResponse":{"type":"object"},"cardchain.cardchain.MsgSetCreate":{"type":"object","properties":{"artist":{"type":"string"},"contributors":{"type":"array","items":{"type":"string"}},"creator":{"type":"string"},"name":{"type":"string"},"storyWriter":{"type":"string"}}},"cardchain.cardchain.MsgSetCreateResponse":{"type":"object"},"cardchain.cardchain.MsgSetFinalize":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetFinalizeResponse":{"type":"object"},"cardchain.cardchain.MsgSetNameSet":{"type":"object","properties":{"creator":{"type":"string"},"name":{"type":"string"},"setId":{"type":"string","format":"uint64"}}},"cardchain.cardchain.MsgSetNameSetResponse":{"type":"object"},"cardchain.cardchain.MsgSetStoryAdd":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"},"story":{"type":"string"}}},"cardchain.cardchain.MsgSetStoryAddResponse":{"type":"object"},"cardchain.cardchain.MsgSetStoryWriterSet":{"type":"object","properties":{"creator":{"type":"string"},"setId":{"type":"string","format":"uint64"},"storyWriter":{"type":"string"}}},"cardchain.cardchain.MsgSetStoryWriterSetResponse":{"type":"object"},"cardchain.cardchain.MsgUpdateParams":{"description":"MsgUpdateParams is the Msg/UpdateParams request type.","type":"object","properties":{"authority":{"description":"authority is the address that controls the module (defaults to x/gov unless\noverwritten).","type":"string"},"params":{"description":"NOTE: All parameters must be supplied.","$ref":"#/definitions/cardchain.cardchain.Params"}}},"cardchain.cardchain.MsgUpdateParamsResponse":{"description":"MsgUpdateParamsResponse defines the response structure for executing a\nMsgUpdateParams message.","type":"object"},"cardchain.cardchain.MsgUpdateProductDetails":{"type":"object","properties":{"creator":{"type":"string"},"desc":{"type":"string"},"id":{"type":"string","format":"uint64"},"name":{"type":"string"}}},"cardchain.cardchain.MsgUpdateProductDetailsResponse":{"type":"object"},"cardchain.cardchain.MsgUserCreate":{"type":"object","properties":{"alias":{"type":"string"},"creator":{"type":"string"},"newUser":{"type":"string"}}},"cardchain.cardchain.MsgUserCreateResponse":{"type":"object"},"cardchain.cardchain.MsgZealyConnect":{"type":"object","properties":{"creator":{"type":"string"},"zealyId":{"type":"string"}}},"cardchain.cardchain.MsgZealyConnectResponse":{"type":"object"},"cardchain.cardchain.Outcome":{"type":"string","default":"AWon","enum":["AWon","BWon","Draw","Aborted"]},"cardchain.cardchain.Params":{"description":"Params defines the parameters for the module.","type":"object","properties":{"activeSetsAmount":{"type":"string","format":"uint64"},"airDropMaxBlockHeight":{"type":"string","format":"int64"},"airDropValue":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"cardAuctionPriceReductionPeriod":{"type":"string","format":"int64"},"collateralDeposit":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"commonsPerPack":{"type":"string","format":"uint64"},"exceptionalDropRatio":{"type":"string","format":"uint64"},"gameVoteRatio":{"type":"string","format":"int64"},"hourlyFaucet":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"inflationRate":{"type":"string"},"matchWorkerDelay":{"type":"string","format":"uint64"},"rareDropRatio":{"type":"string","format":"uint64"},"raresPerPack":{"type":"string","format":"uint64"},"setCreationFee":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"setPrice":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"setSize":{"type":"string","format":"uint64"},"trialPeriod":{"type":"string","format":"uint64"},"trialVoteReward":{"$ref":"#/definitions/cosmos.base.v1beta1.Coin"},"unCommonsPerPack":{"type":"string","format":"uint64"},"uniqueDropRatio":{"type":"string","format":"uint64"},"votePoolFraction":{"type":"string","format":"int64"},"votingRewardCap":{"type":"string","format":"int64"},"votingRightsExpirationTime":{"type":"string","format":"int64"},"winnerReward":{"type":"string","format":"int64"}}},"cardchain.cardchain.ProductDetails":{"type":"object","properties":{"creator":{"type":"string"},"desc":{"type":"string"},"id":{"type":"string","format":"uint64"},"name":{"type":"string"}}},"cardchain.cardchain.QueryAllProductDetailsResponse":{"type":"object","properties":{"ProductDetails":{"type":"array","items":{"type":"object","$ref":"#/definitions/cardchain.cardchain.ProductDetails"}},"pagination":{"$ref":"#/definitions/cosmos.base.query.v1beta1.PageResponse"}}},"cardchain.cardchain.QueryGetProductDetailsResponse":{"type":"object","properties":{"ProductDetails":{"$ref":"#/definitions/cardchain.cardchain.ProductDetails"}}},"cardchain.cardchain.QueryParamsResponse":{"description":"QueryParamsResponse is response type for the Query/Params RPC method.","type":"object","properties":{"params":{"description":"params holds all the parameters of this module.","$ref":"#/definitions/cardchain.cardchain.Params"}}},"cardchain.cardchain.Response":{"type":"string","default":"Yes","enum":["Yes","No","Suggestion"]},"cardchain.cardchain.SingleVote":{"type":"object","properties":{"cardId":{"type":"string","format":"uint64"},"voteType":{"$ref":"#/definitions/cardchain.cardchain.VoteType"}}},"cardchain.cardchain.VoteType":{"type":"string","default":"fairEnough","enum":["fairEnough","inappropriate","overpowered","underpowered"]},"cosmos.base.query.v1beta1.PageRequest":{"description":"message SomeRequest {\n Foo some_parameter = 1;\n PageRequest pagination = 2;\n }","type":"object","title":"PageRequest is to be embedded in gRPC request messages for efficient\npagination. Ex:","properties":{"count_total":{"description":"count_total is set to true to indicate that the result set should include\na count of the total number of items available for pagination in UIs.\ncount_total is only respected when offset is used. It is ignored when key\nis set.","type":"boolean"},"key":{"description":"key is a value returned in PageResponse.next_key to begin\nquerying the next page most efficiently. Only one of offset or key\nshould be set.","type":"string","format":"byte"},"limit":{"description":"limit is the total number of results to be returned in the result page.\nIf left empty it will default to a value to be set by each app.","type":"string","format":"uint64"},"offset":{"description":"offset is a numeric offset that can be used when key is unavailable.\nIt is less efficient than using key. Only one of offset or key should\nbe set.","type":"string","format":"uint64"},"reverse":{"description":"reverse is set to true if results are to be returned in the descending order.\n\nSince: cosmos-sdk 0.43","type":"boolean"}}},"cosmos.base.query.v1beta1.PageResponse":{"description":"PageResponse is to be embedded in gRPC response messages where the\ncorresponding request message has used PageRequest.\n\n message SomeResponse {\n repeated Bar results = 1;\n PageResponse page = 2;\n }","type":"object","properties":{"next_key":{"description":"next_key is the key to be passed to PageRequest.key to\nquery the next page most efficiently. It will be empty if\nthere are no more results.","type":"string","format":"byte"},"total":{"type":"string","format":"uint64","title":"total is total number of results available if PageRequest.count_total\nwas set, its value is undefined otherwise"}}},"cosmos.base.v1beta1.Coin":{"description":"Coin defines a token with a denomination and an amount.\n\nNOTE: The amount field is an Int which implements the custom method\nsignatures required by gogoproto.","type":"object","properties":{"amount":{"type":"string"},"denom":{"type":"string"}}},"google.protobuf.Any":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"google.rpc.Status":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"details":{"type":"array","items":{"type":"object","$ref":"#/definitions/google.protobuf.Any"}},"message":{"type":"string"}}}},"tags":[{"name":"Query"},{"name":"Msg"}]} \ No newline at end of file diff --git a/proto/cardchain/cardchain/encounter.proto b/proto/cardchain/cardchain/encounter.proto new file mode 100644 index 00000000..8d2016ce --- /dev/null +++ b/proto/cardchain/cardchain/encounter.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; +package cardchain.cardchain; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; + +message Encounter { + uint64 id = 1; + repeated uint64 drawlist = 2; + bool proven = 3; + string owner = 4; + map parameters = 5; + uint64 imageId = 6; + string name = 7; +} + +message EncounterWithImage { + Encounter encounter = 1; + bytes image = 2; +} diff --git a/proto/cardchain/cardchain/genesis.proto b/proto/cardchain/cardchain/genesis.proto index d62f3326..56a95537 100644 --- a/proto/cardchain/cardchain/genesis.proto +++ b/proto/cardchain/cardchain/genesis.proto @@ -1,17 +1,20 @@ syntax = "proto3"; + package cardchain.cardchain; import "amino/amino.proto"; import "gogoproto/gogo.proto"; import "cardchain/cardchain/params.proto"; +import "cardchain/cardchain/product_details.proto"; option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; // GenesisState defines the cardchain module's genesis state. message GenesisState { + // params defines all the parameters of the module. - Params params = 1 [ - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true - ]; + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated ProductDetails productDetailsList = 2 [(gogoproto.nullable) = false] ; + uint64 productDetailsCount = 3; } + diff --git a/proto/cardchain/cardchain/num.proto b/proto/cardchain/cardchain/image.proto similarity index 78% rename from proto/cardchain/cardchain/num.proto rename to proto/cardchain/cardchain/image.proto index 7febf57f..9cf70269 100644 --- a/proto/cardchain/cardchain/num.proto +++ b/proto/cardchain/cardchain/image.proto @@ -3,4 +3,4 @@ package cardchain.cardchain; option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; -message Num { uint64 num = 1; } +message Image { bytes image = 1; } diff --git a/proto/cardchain/cardchain/params.proto b/proto/cardchain/cardchain/params.proto index 01ceece7..d27cc8ae 100644 --- a/proto/cardchain/cardchain/params.proto +++ b/proto/cardchain/cardchain/params.proto @@ -3,6 +3,7 @@ package cardchain.cardchain; import "amino/amino.proto"; import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; @@ -11,5 +12,30 @@ message Params { option (amino.name) = "cardchain/x/cardchain/Params"; option (gogoproto.equal) = true; - -} \ No newline at end of file + int64 votingRightsExpirationTime = 1; + uint64 setSize = 2; + cosmos.base.v1beta1.Coin setPrice = 3 [ (gogoproto.nullable) = false ]; + uint64 activeSetsAmount = 4; + cosmos.base.v1beta1.Coin setCreationFee = 5 [ (gogoproto.nullable) = false ]; + cosmos.base.v1beta1.Coin collateralDeposit = 6 + [ (gogoproto.nullable) = false ]; + int64 winnerReward = 7; + cosmos.base.v1beta1.Coin hourlyFaucet = 9 [ (gogoproto.nullable) = false ]; + string inflationRate = 10; + uint64 raresPerPack = 11; + uint64 commonsPerPack = 12; + uint64 unCommonsPerPack = 13; + uint64 trialPeriod = 14; + int64 gameVoteRatio = 15; + int64 cardAuctionPriceReductionPeriod = 16; + cosmos.base.v1beta1.Coin airDropValue = 17 [ (gogoproto.nullable) = false ]; + int64 airDropMaxBlockHeight = 18; + cosmos.base.v1beta1.Coin trialVoteReward = 19 + [ (gogoproto.nullable) = false ]; + int64 votePoolFraction = 20; + int64 votingRewardCap = 8; + uint64 matchWorkerDelay = 21; + uint64 rareDropRatio = 22; + uint64 exceptionalDropRatio = 23; + uint64 uniqueDropRatio = 24; +} diff --git a/proto/cardchain/cardchain/product_details.proto b/proto/cardchain/cardchain/product_details.proto new file mode 100644 index 00000000..7907599a --- /dev/null +++ b/proto/cardchain/cardchain/product_details.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; +package cardchain.cardchain; + +option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; + +message ProductDetails { + uint64 id = 1; + string name = 2; + string desc = 3; + string creator = 4; +} diff --git a/proto/cardchain/cardchain/query.proto b/proto/cardchain/cardchain/query.proto index d915c4a5..013a39e7 100644 --- a/proto/cardchain/cardchain/query.proto +++ b/proto/cardchain/cardchain/query.proto @@ -1,4 +1,5 @@ syntax = "proto3"; + package cardchain.cardchain; import "amino/amino.proto"; @@ -6,25 +7,53 @@ import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "cardchain/cardchain/params.proto"; +import "cardchain/cardchain/product_details.proto"; option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; // Query defines the gRPC querier service. service Query { + // Parameters queries the parameters of the module. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + rpc Params (QueryParamsRequest) returns (QueryParamsResponse) { option (google.api.http).get = "/DecentralCardGame/cardchain/cardchain/params"; + + } + + // Queries a list of ProductDetails items. + rpc ProductDetails (QueryGetProductDetailsRequest) returns (QueryGetProductDetailsResponse) { + option (google.api.http).get = "/DecentralCardGame/cardchain/cardchain/product_details/{id}"; + + } + rpc ProductDetailsAll (QueryAllProductDetailsRequest) returns (QueryAllProductDetailsResponse) { + option (google.api.http).get = "/DecentralCardGame/cardchain/cardchain/product_details"; + } } - // QueryParamsRequest is request type for the Query/Params RPC method. message QueryParamsRequest {} // QueryParamsResponse is response type for the Query/Params RPC method. message QueryParamsResponse { + // params holds all the parameters of this module. - Params params = 1 [ - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true - ]; -} \ No newline at end of file + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +message QueryGetProductDetailsRequest { + uint64 id = 1; +} + +message QueryGetProductDetailsResponse { + ProductDetails ProductDetails = 1 [(gogoproto.nullable) = false]; +} + +message QueryAllProductDetailsRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +message QueryAllProductDetailsResponse { + repeated ProductDetails ProductDetails = 1 [(gogoproto.nullable) = false]; + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + diff --git a/proto/cardchain/cardchain/running_average.proto b/proto/cardchain/cardchain/running_average.proto new file mode 100644 index 00000000..c98f892d --- /dev/null +++ b/proto/cardchain/cardchain/running_average.proto @@ -0,0 +1,6 @@ +syntax = "proto3"; +package cardchain.cardchain; + +option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; + +message RunningAverage { repeated int64 arr = 1; } diff --git a/proto/cardchain/cardchain/sell_offer.proto b/proto/cardchain/cardchain/sell_offer.proto new file mode 100644 index 00000000..98b383ff --- /dev/null +++ b/proto/cardchain/cardchain/sell_offer.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; +package cardchain.cardchain; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; + +message SellOffer { + + string seller = 1; + string buyer = 2; + uint64 card = 3; + cosmos.base.v1beta1.Coin price = 4 [ (gogoproto.nullable) = false ]; + SellOfferStatus status = 5; +} + +enum SellOfferStatus { + open = 0; + sold = 1; + removed = 2; +} diff --git a/proto/cardchain/cardchain/server.proto b/proto/cardchain/cardchain/server.proto new file mode 100644 index 00000000..25b0874b --- /dev/null +++ b/proto/cardchain/cardchain/server.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +package cardchain.cardchain; + +option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; + +message Server { + string reporter = 1; + uint64 invalidReports = 2; + uint64 validReports = 3; +} diff --git a/proto/cardchain/cardchain/set.proto b/proto/cardchain/cardchain/set.proto new file mode 100644 index 00000000..3cd3ea84 --- /dev/null +++ b/proto/cardchain/cardchain/set.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; +package cardchain.cardchain; + +import "cosmos/base/v1beta1/coin.proto"; + +option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; + +message Set { + string name = 1; + repeated uint64 cards = 2; + string artist = 3; + string storyWriter = 4; + repeated string contributors = 5; + string story = 6; + uint64 artworkId = 7; + CStatus status = 8; + int64 timeStamp = 9; + repeated AddrWithQuantity contributorsDistribution = 10; + repeated InnerRarities Rarities = 11; +} + +message InnerRarities { repeated uint64 R = 1; } + +message OutpSet { + Set set = 1; + bytes artwork = 2; +} + +enum CStatus { + design = 0; + finalized = 1; + active = 2; + archived = 3; +} + +message AddrWithQuantity { + string addr = 1; + uint32 q = 2; + cosmos.base.v1beta1.Coin payment = 3; +} diff --git a/proto/cardchain/cardchain/tx.proto b/proto/cardchain/cardchain/tx.proto index 3088eb3a..2a0cd8d2 100644 --- a/proto/cardchain/cardchain/tx.proto +++ b/proto/cardchain/cardchain/tx.proto @@ -12,88 +12,80 @@ import "cardchain/cardchain/voting.proto"; import "cardchain/cardchain/match.proto"; import "cardchain/cardchain/council.proto"; import "cardchain/cardchain/card.proto"; +import "cardchain/cardchain/product_details.proto"; option go_package = "github.com/DecentralCardGame/cardchain/x/cardchain/types"; // Msg defines the Msg service. service Msg { option (cosmos.msg.v1.service) = true; - + // UpdateParams defines a (governance) operation for updating the module // parameters. The authority defaults to the x/gov module account. - rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); - rpc UserCreate(MsgUserCreate) returns (MsgUserCreateResponse); - rpc CardSchemeBuy(MsgCardSchemeBuy) returns (MsgCardSchemeBuyResponse); - rpc CardSaveContent(MsgCardSaveContent) returns (MsgCardSaveContentResponse); - rpc CardVote(MsgCardVote) returns (MsgCardVoteResponse); - rpc CardTransfer(MsgCardTransfer) returns (MsgCardTransferResponse); - rpc CardDonate(MsgCardDonate) returns (MsgCardDonateResponse); - rpc CardArtworkAdd(MsgCardArtworkAdd) returns (MsgCardArtworkAddResponse); - rpc CardArtistChange(MsgCardArtistChange) - returns (MsgCardArtistChangeResponse); - rpc CouncilRegister(MsgCouncilRegister) returns (MsgCouncilRegisterResponse); - rpc CouncilDeregister(MsgCouncilDeregister) - returns (MsgCouncilDeregisterResponse); - rpc MatchReport(MsgMatchReport) returns (MsgMatchReportResponse); - rpc CouncilCreate(MsgCouncilCreate) returns (MsgCouncilCreateResponse); - rpc MatchReporterAppoint(MsgMatchReporterAppoint) - returns (MsgMatchReporterAppointResponse); - rpc SetCreate(MsgSetCreate) returns (MsgSetCreateResponse); - rpc SetCardAdd(MsgSetCardAdd) returns (MsgSetCardAddResponse); - rpc SetCardRemove(MsgSetCardRemove) returns (MsgSetCardRemoveResponse); - rpc SetContributorAdd(MsgSetContributorAdd) - returns (MsgSetContributorAddResponse); - rpc SetContributorRemove(MsgSetContributorRemove) - returns (MsgSetContributorRemoveResponse); - rpc SetFinalize(MsgSetFinalize) returns (MsgSetFinalizeResponse); - rpc SetArtworkAdd(MsgSetArtworkAdd) returns (MsgSetArtworkAddResponse); - rpc SetStoryAdd(MsgSetStoryAdd) returns (MsgSetStoryAddResponse); - rpc BoosterPackBuy(MsgBoosterPackBuy) returns (MsgBoosterPackBuyResponse); - rpc SellOfferCreate(MsgSellOfferCreate) returns (MsgSellOfferCreateResponse); - rpc SellOfferBuy(MsgSellOfferBuy) returns (MsgSellOfferBuyResponse); - rpc SellOfferRemove(MsgSellOfferRemove) returns (MsgSellOfferRemoveResponse); - rpc CardRaritySet(MsgCardRaritySet) returns (MsgCardRaritySetResponse); - rpc CouncilResponseCommit(MsgCouncilResponseCommit) - returns (MsgCouncilResponseCommitResponse); - rpc CouncilResponseReveal(MsgCouncilResponseReveal) - returns (MsgCouncilResponseRevealResponse); - rpc CouncilRestart(MsgCouncilRestart) returns (MsgCouncilRestartResponse); - rpc MatchConfirm(MsgMatchConfirm) returns (MsgMatchConfirmResponse); - rpc ProfileCardSet(MsgProfileCardSet) returns (MsgProfileCardSetResponse); - rpc ProfileWebsiteSet(MsgProfileWebsiteSet) - returns (MsgProfileWebsiteSetResponse); - rpc ProfileBioSet(MsgProfileBioSet) returns (MsgProfileBioSetResponse); - rpc BoosterPackOpen(MsgBoosterPackOpen) returns (MsgBoosterPackOpenResponse); - rpc BoosterPackTransfer(MsgBoosterPackTransfer) - returns (MsgBoosterPackTransferResponse); - rpc SetStoryWriterSet(MsgSetStoryWriterSet) - returns (MsgSetStoryWriterSetResponse); - rpc SetArtistSet(MsgSetArtistSet) returns (MsgSetArtistSetResponse); - rpc CardVoteMulti(MsgCardVoteMulti) returns (MsgCardVoteMultiResponse); - rpc MatchOpen(MsgMatchOpen) returns (MsgMatchOpenResponse); - rpc SetNameSet(MsgSetNameSet) returns (MsgSetNameSetResponse); - rpc ProfileAliasSet(MsgProfileAliasSet) returns (MsgProfileAliasSetResponse); - rpc EarlyAccessInvite(MsgEarlyAccessInvite) - returns (MsgEarlyAccessInviteResponse); - rpc ZealyConnect(MsgZealyConnect) returns (MsgZealyConnectResponse); - rpc EncounterCreate(MsgEncounterCreate) returns (MsgEncounterCreateResponse); - rpc EncounterDo(MsgEncounterDo) returns (MsgEncounterDoResponse); - rpc EncounterClose(MsgEncounterClose) returns (MsgEncounterCloseResponse); + rpc UpdateParams (MsgUpdateParams ) returns (MsgUpdateParamsResponse ); + rpc UserCreate (MsgUserCreate ) returns (MsgUserCreateResponse ); + rpc CardSchemeBuy (MsgCardSchemeBuy ) returns (MsgCardSchemeBuyResponse ); + rpc CardSaveContent (MsgCardSaveContent ) returns (MsgCardSaveContentResponse ); + rpc CardVote (MsgCardVote ) returns (MsgCardVoteResponse ); + rpc CardTransfer (MsgCardTransfer ) returns (MsgCardTransferResponse ); + rpc CardDonate (MsgCardDonate ) returns (MsgCardDonateResponse ); + rpc CardArtworkAdd (MsgCardArtworkAdd ) returns (MsgCardArtworkAddResponse ); + rpc CardArtistChange (MsgCardArtistChange ) returns (MsgCardArtistChangeResponse ); + rpc CouncilRegister (MsgCouncilRegister ) returns (MsgCouncilRegisterResponse ); + rpc CouncilDeregister (MsgCouncilDeregister ) returns (MsgCouncilDeregisterResponse ); + rpc MatchReport (MsgMatchReport ) returns (MsgMatchReportResponse ); + rpc CouncilCreate (MsgCouncilCreate ) returns (MsgCouncilCreateResponse ); + rpc MatchReporterAppoint (MsgMatchReporterAppoint ) returns (MsgMatchReporterAppointResponse ); + rpc SetCreate (MsgSetCreate ) returns (MsgSetCreateResponse ); + rpc SetCardAdd (MsgSetCardAdd ) returns (MsgSetCardAddResponse ); + rpc SetCardRemove (MsgSetCardRemove ) returns (MsgSetCardRemoveResponse ); + rpc SetContributorAdd (MsgSetContributorAdd ) returns (MsgSetContributorAddResponse ); + rpc SetContributorRemove (MsgSetContributorRemove ) returns (MsgSetContributorRemoveResponse ); + rpc SetFinalize (MsgSetFinalize ) returns (MsgSetFinalizeResponse ); + rpc SetArtworkAdd (MsgSetArtworkAdd ) returns (MsgSetArtworkAddResponse ); + rpc SetStoryAdd (MsgSetStoryAdd ) returns (MsgSetStoryAddResponse ); + rpc BoosterPackBuy (MsgBoosterPackBuy ) returns (MsgBoosterPackBuyResponse ); + rpc SellOfferCreate (MsgSellOfferCreate ) returns (MsgSellOfferCreateResponse ); + rpc SellOfferBuy (MsgSellOfferBuy ) returns (MsgSellOfferBuyResponse ); + rpc SellOfferRemove (MsgSellOfferRemove ) returns (MsgSellOfferRemoveResponse ); + rpc CardRaritySet (MsgCardRaritySet ) returns (MsgCardRaritySetResponse ); + rpc CouncilResponseCommit (MsgCouncilResponseCommit) returns (MsgCouncilResponseCommitResponse); + rpc CouncilResponseReveal (MsgCouncilResponseReveal) returns (MsgCouncilResponseRevealResponse); + rpc CouncilRestart (MsgCouncilRestart ) returns (MsgCouncilRestartResponse ); + rpc MatchConfirm (MsgMatchConfirm ) returns (MsgMatchConfirmResponse ); + rpc ProfileCardSet (MsgProfileCardSet ) returns (MsgProfileCardSetResponse ); + rpc ProfileWebsiteSet (MsgProfileWebsiteSet ) returns (MsgProfileWebsiteSetResponse ); + rpc ProfileBioSet (MsgProfileBioSet ) returns (MsgProfileBioSetResponse ); + rpc BoosterPackOpen (MsgBoosterPackOpen ) returns (MsgBoosterPackOpenResponse ); + rpc BoosterPackTransfer (MsgBoosterPackTransfer ) returns (MsgBoosterPackTransferResponse ); + rpc SetStoryWriterSet (MsgSetStoryWriterSet ) returns (MsgSetStoryWriterSetResponse ); + rpc SetArtistSet (MsgSetArtistSet ) returns (MsgSetArtistSetResponse ); + rpc CardVoteMulti (MsgCardVoteMulti ) returns (MsgCardVoteMultiResponse ); + rpc MatchOpen (MsgMatchOpen ) returns (MsgMatchOpenResponse ); + rpc SetNameSet (MsgSetNameSet ) returns (MsgSetNameSetResponse ); + rpc ProfileAliasSet (MsgProfileAliasSet ) returns (MsgProfileAliasSetResponse ); + rpc EarlyAccessInvite (MsgEarlyAccessInvite ) returns (MsgEarlyAccessInviteResponse ); + rpc ZealyConnect (MsgZealyConnect ) returns (MsgZealyConnectResponse ); + rpc EncounterCreate (MsgEncounterCreate ) returns (MsgEncounterCreateResponse ); + rpc EncounterDo (MsgEncounterDo ) returns (MsgEncounterDoResponse ); + rpc EncounterClose (MsgEncounterClose ) returns (MsgEncounterCloseResponse ); + rpc CreateProductDetails (MsgCreateProductDetails ) returns (MsgCreateProductDetailsResponse ); + rpc UpdateProductDetails (MsgUpdateProductDetails ) returns (MsgUpdateProductDetailsResponse ); + rpc DeleteProductDetails (MsgDeleteProductDetails ) returns (MsgDeleteProductDetailsResponse ); } // MsgUpdateParams is the Msg/UpdateParams request type. message MsgUpdateParams { - option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "cardchain/x/cardchain/MsgUpdateParams"; - + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cardchain/x/cardchain/MsgUpdateParams"; + // authority is the address that controls the module (defaults to x/gov unless // overwritten). - string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; // params defines the module parameters to update. - + // NOTE: All parameters must be supplied. - Params params = 2 - [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true ]; + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } // MsgUpdateParamsResponse defines the response structure for executing a @@ -104,43 +96,49 @@ message MsgUserCreate { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; string newUser = 2; - string alias = 3; + string alias = 3; } message MsgUserCreateResponse {} message MsgCardSchemeBuy { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - cosmos.base.v1beta1.Coin bid = 2 [ (gogoproto.nullable) = false ]; + string creator = 1; + cosmos.base.v1beta1.Coin bid = 2 [(gogoproto.nullable) = false]; } -message MsgCardSchemeBuyResponse { uint64 cardId = 1; } +message MsgCardSchemeBuyResponse { + uint64 cardId = 1; +} message MsgCardSaveContent { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 cardId = 2; - bytes content = 3; - string notes = 4; - string artist = 5; - bool balanceAnchor = 6; + string creator = 1; + uint64 cardId = 2; + bytes content = 3; + string notes = 4; + string artist = 5; + bool balanceAnchor = 6; } -message MsgCardSaveContentResponse { bool airdropClaimed = 1; } +message MsgCardSaveContentResponse { + bool airdropClaimed = 1; +} message MsgCardVote { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - SingleVote vote = 2; + string creator = 1; + SingleVote vote = 2; } -message MsgCardVoteResponse { bool airdropClaimed = 1; } +message MsgCardVoteResponse { + bool airdropClaimed = 1; +} message MsgCardTransfer { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 cardId = 2; + string creator = 1; + uint64 cardId = 2; string receiver = 3; } @@ -148,9 +146,9 @@ message MsgCardTransferResponse {} message MsgCardDonate { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 cardId = 2; - cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false ]; + string creator = 1; + uint64 cardId = 2; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; } message MsgCardDonateResponse {} @@ -158,9 +156,9 @@ message MsgCardDonateResponse {} message MsgCardArtworkAdd { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 cardId = 2; - bytes image = 3; - bool fullArt = 4; + uint64 cardId = 2; + bytes image = 3; + bool fullArt = 4; } message MsgCardArtworkAddResponse {} @@ -168,8 +166,8 @@ message MsgCardArtworkAddResponse {} message MsgCardArtistChange { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 cardId = 2; - string artist = 3; + uint64 cardId = 2; + string artist = 3; } message MsgCardArtistChangeResponse {} @@ -190,11 +188,11 @@ message MsgCouncilDeregisterResponse {} message MsgMatchReport { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 matchId = 2; - repeated uint64 playedCardsA = 3; - repeated uint64 playedCardsB = 4; - Outcome outcome = 5; + string creator = 1; + uint64 matchId = 2; + repeated uint64 playedCardsA = 3; + repeated uint64 playedCardsB = 4; + Outcome outcome = 5; } message MsgMatchReportResponse {} @@ -202,14 +200,14 @@ message MsgMatchReportResponse {} message MsgCouncilCreate { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 cardId = 2; + uint64 cardId = 2; } message MsgCouncilCreateResponse {} message MsgMatchReporterAppoint { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; + string creator = 1; string reporter = 2; } @@ -217,10 +215,10 @@ message MsgMatchReporterAppointResponse {} message MsgSetCreate { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - string name = 2; - string artist = 3; - string storyWriter = 4; + string creator = 1; + string name = 2; + string artist = 3; + string storyWriter = 4; repeated string contributors = 5; } @@ -229,8 +227,8 @@ message MsgSetCreateResponse {} message MsgSetCardAdd { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; - uint64 cardId = 3; + uint64 setId = 2; + uint64 cardId = 3; } message MsgSetCardAddResponse {} @@ -238,8 +236,8 @@ message MsgSetCardAddResponse {} message MsgSetCardRemove { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; - uint64 cardId = 3; + uint64 setId = 2; + uint64 cardId = 3; } message MsgSetCardRemoveResponse {} @@ -247,8 +245,8 @@ message MsgSetCardRemoveResponse {} message MsgSetContributorAdd { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; - string user = 3; + uint64 setId = 2; + string user = 3; } message MsgSetContributorAddResponse {} @@ -256,8 +254,8 @@ message MsgSetContributorAddResponse {} message MsgSetContributorRemove { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; - string user = 3; + uint64 setId = 2; + string user = 3; } message MsgSetContributorRemoveResponse {} @@ -265,7 +263,7 @@ message MsgSetContributorRemoveResponse {} message MsgSetFinalize { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; + uint64 setId = 2; } message MsgSetFinalizeResponse {} @@ -273,8 +271,8 @@ message MsgSetFinalizeResponse {} message MsgSetArtworkAdd { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; - bytes image = 3; + uint64 setId = 2; + bytes image = 3; } message MsgSetArtworkAddResponse {} @@ -282,8 +280,8 @@ message MsgSetArtworkAddResponse {} message MsgSetStoryAdd { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; - string story = 3; + uint64 setId = 2; + string story = 3; } message MsgSetStoryAddResponse {} @@ -291,23 +289,25 @@ message MsgSetStoryAddResponse {} message MsgBoosterPackBuy { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; + uint64 setId = 2; } -message MsgBoosterPackBuyResponse { bool airdropClaimed = 1; } +message MsgBoosterPackBuyResponse { + bool airdropClaimed = 1; +} message MsgSellOfferCreate { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 cardId = 2; - cosmos.base.v1beta1.Coin price = 3 [ (gogoproto.nullable) = false ]; + string creator = 1; + uint64 cardId = 2; + cosmos.base.v1beta1.Coin price = 3 [(gogoproto.nullable) = false]; } message MsgSellOfferCreateResponse {} message MsgSellOfferBuy { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; + string creator = 1; uint64 sellOfferId = 2; } @@ -315,7 +315,7 @@ message MsgSellOfferBuyResponse {} message MsgSellOfferRemove { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; + string creator = 1; uint64 sellOfferId = 2; } @@ -323,19 +323,19 @@ message MsgSellOfferRemoveResponse {} message MsgCardRaritySet { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 cardId = 2; - uint64 setId = 3; - CardRarity rarity = 4; + string creator = 1; + uint64 cardId = 2; + uint64 setId = 3; + CardRarity rarity = 4; } message MsgCardRaritySetResponse {} message MsgCouncilResponseCommit { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 councilId = 2; - string reponse = 3; + string creator = 1; + uint64 councilId = 2; + string reponse = 3; string suggestion = 4; } @@ -343,17 +343,17 @@ message MsgCouncilResponseCommitResponse {} message MsgCouncilResponseReveal { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 councilId = 2; - Response reponse = 3; - string secret = 4; + string creator = 1; + uint64 councilId = 2; + Response reponse = 3; + string secret = 4; } message MsgCouncilResponseRevealResponse {} message MsgCouncilRestart { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; + string creator = 1; uint64 councilId = 2; } @@ -361,9 +361,9 @@ message MsgCouncilRestartResponse {} message MsgMatchConfirm { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 matchId = 2; - Outcome outcome = 3; + string creator = 1; + uint64 matchId = 2; + Outcome outcome = 3; repeated SingleVote votedCards = 4; } @@ -372,7 +372,7 @@ message MsgMatchConfirmResponse {} message MsgProfileCardSet { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 cardId = 2; + uint64 cardId = 2; } message MsgProfileCardSetResponse {} @@ -388,32 +388,34 @@ message MsgProfileWebsiteSetResponse {} message MsgProfileBioSet { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - string bio = 2; + string bio = 2; } message MsgProfileBioSetResponse {} message MsgBoosterPackOpen { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; + string creator = 1; uint64 boosterPackId = 2; } -message MsgBoosterPackOpenResponse { repeated uint64 cardIds = 1; } +message MsgBoosterPackOpenResponse { + repeated uint64 cardIds = 1; +} message MsgBoosterPackTransfer { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; + string creator = 1; uint64 boosterPackId = 2; - string receiver = 3; + string receiver = 3; } message MsgBoosterPackTransferResponse {} message MsgSetStoryWriterSet { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - uint64 setId = 2; + string creator = 1; + uint64 setId = 2; string storyWriter = 3; } @@ -422,36 +424,40 @@ message MsgSetStoryWriterSetResponse {} message MsgSetArtistSet { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; - string artist = 3; + uint64 setId = 2; + string artist = 3; } message MsgSetArtistSetResponse {} message MsgCardVoteMulti { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - repeated SingleVote votes = 2; + string creator = 1; + repeated SingleVote votes = 2; } -message MsgCardVoteMultiResponse { bool airdropClaimed = 1; } +message MsgCardVoteMultiResponse { + bool airdropClaimed = 1; +} message MsgMatchOpen { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - string playerA = 2; - string playerB = 3; + string creator = 1; + string playerA = 2; + string playerB = 3; repeated uint64 playerAdeck = 4; repeated uint64 playerBdeck = 5; } -message MsgMatchOpenResponse { uint64 matchId = 1; } +message MsgMatchOpenResponse { + uint64 matchId = 1; +} message MsgSetNameSet { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - uint64 setId = 2; - string name = 3; + uint64 setId = 2; + string name = 3; } message MsgSetNameSetResponse {} @@ -459,7 +465,7 @@ message MsgSetNameSetResponse {} message MsgProfileAliasSet { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - string alias = 2; + string alias = 2; } message MsgProfileAliasSetResponse {} @@ -467,7 +473,7 @@ message MsgProfileAliasSetResponse {} message MsgEarlyAccessInvite { option (cosmos.msg.v1.signer) = "creator"; string creator = 1; - string user = 2; + string user = 2; } message MsgEarlyAccessInviteResponse {} @@ -482,30 +488,60 @@ message MsgZealyConnectResponse {} message MsgEncounterCreate { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; - string name = 2; - repeated uint64 drawlist = 3; - map parameters = 4; - bytes image = 5; + string creator = 1; + string name = 2; + repeated uint64 drawlist = 3; + map parameters = 4; + bytes image = 5; } message MsgEncounterCreateResponse {} message MsgEncounterDo { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; + string creator = 1; uint64 encounterId = 2; - string user = 3; + string user = 3; } message MsgEncounterDoResponse {} message MsgEncounterClose { option (cosmos.msg.v1.signer) = "creator"; - string creator = 1; + string creator = 1; uint64 encounterId = 2; - string user = 3; - bool won = 4; + string user = 3; + bool won = 4; } message MsgEncounterCloseResponse {} + +message MsgCreateProductDetails { + option (cosmos.msg.v1.signer) = "creator"; + string creator = 1; + string name = 2; + string desc = 3; +} + +message MsgCreateProductDetailsResponse { + uint64 id = 1; +} + +message MsgUpdateProductDetails { + option (cosmos.msg.v1.signer) = "creator"; + string creator = 1; + uint64 id = 2; + string name = 3; + string desc = 4; +} + +message MsgUpdateProductDetailsResponse {} + +message MsgDeleteProductDetails { + option (cosmos.msg.v1.signer) = "creator"; + string creator = 1; + uint64 id = 2; +} + +message MsgDeleteProductDetailsResponse {} + diff --git a/types/generic_type_keeper/generic_type_keeper.go b/types/generic_type_keeper/generic_type_keeper.go index e66d36c1..c2a596b1 100644 --- a/types/generic_type_keeper/generic_type_keeper.go +++ b/types/generic_type_keeper/generic_type_keeper.go @@ -1,11 +1,15 @@ package generic_type_keeper import ( - "fmt" + "encoding/binary" + "cosmossdk.io/core/store" + "cosmossdk.io/store/prefix" storetypes "cosmossdk.io/store/types" "github.com/DecentralCardGame/cardchain/x/cardchain/types" + db "github.com/cosmos/cosmos-db" "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/runtime" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/gogoproto/proto" ) @@ -43,29 +47,52 @@ func GetEmpty[A any]() *A { } type GenericTypeKeeper[T proto.Message] struct { - Key storetypes.StoreKey - InternalKey storetypes.StoreKey - cdc codec.BinaryCodec - name string - getEmpty func() T // This is needed because codec.ProtoMarshaler always refers to a pointer, but for cdc.Unmarshal to work the passed pointer can't be nil, but when initializing a pointer it's nil + storeService store.KVStoreService + key string + cdc codec.BinaryCodec + getEmpty func() T // This is needed because codec.ProtoMarshaler always refers to a pointer, but for cdc.Unmarshal to work the passed pointer can't be nil, but when initializing a pointer it's nil } // NewGTK Returns a new GenericTypeKeeper -func NewGTK[T proto.Message](key storetypes.StoreKey, internalKey storetypes.StoreKey, cdc codec.BinaryCodec, getEmpty func() T) GenericTypeKeeper[T] { +func NewGTK[T proto.Message](key string, storeService store.KVStoreService, cdc codec.BinaryCodec, getEmpty func() T) GenericTypeKeeper[T] { gtk := GenericTypeKeeper[T]{ - Key: key, - InternalKey: internalKey, - cdc: cdc, - name: fmt.Sprintf("%T", getEmpty()), - getEmpty: getEmpty, + key: key, + cdc: cdc, + getEmpty: getEmpty, + storeService: storeService, } return gtk } +func (gtk GenericTypeKeeper[T]) valueKey() string { + return gtk.key + "/value/" +} + +func (gtk GenericTypeKeeper[T]) countKey() string { + return gtk.key + "/count/" +} + +func (gtk GenericTypeKeeper[T]) getIDBytes(id uint64) []byte { + bz := types.KeyPrefix(types.ProductDetailsKey) + bz = append(bz, []byte("/")...) + bz = binary.BigEndian.AppendUint64(bz, id) + return bz +} + +func (gtk GenericTypeKeeper[T]) getValueStore(ctx sdk.Context) prefix.Store { + storeAdapter := runtime.KVStoreAdapter(gtk.storeService.OpenKVStore(ctx)) + return prefix.NewStore(storeAdapter, types.KeyPrefix(gtk.valueKey())) +} + +func (gtk GenericTypeKeeper[T]) getCountStore(ctx sdk.Context) prefix.Store { + storeAdapter := runtime.KVStoreAdapter(gtk.storeService.OpenKVStore(ctx)) + return prefix.NewStore(storeAdapter, []byte{}) +} + // Get Gets an object from store func (gtk GenericTypeKeeper[T]) Get(ctx sdk.Context, id uint64) T { - store := ctx.KVStore(gtk.Key) - bz := store.Get(sdk.Uint64ToBigEndian(id)) + store := gtk.getValueStore(ctx) + bz := store.Get(gtk.getIDBytes(id)) gotten := gtk.getEmpty() gtk.cdc.MustUnmarshal(bz, gotten) @@ -74,34 +101,54 @@ func (gtk GenericTypeKeeper[T]) Get(ctx sdk.Context, id uint64) T { // Set Sets an object in store func (gtk GenericTypeKeeper[T]) Set(ctx sdk.Context, id uint64, new T) { - store := ctx.KVStore(gtk.Key) - store.Set(sdk.Uint64ToBigEndian(id), gtk.cdc.MustMarshal(new)) + store := gtk.getValueStore(ctx) + store.Set(gtk.getIDBytes(id), gtk.cdc.MustMarshal(new)) num := gtk.GetNum(ctx) if id == num { gtk.setNum(ctx, num+1) } } +// Append Sets a new object +func (gtk GenericTypeKeeper[T]) Append(ctx sdk.Context, new T) (count uint64) { + store := gtk.getValueStore(ctx) + count = gtk.GetNum(ctx) + + store.Set(gtk.getIDBytes(count), gtk.cdc.MustMarshal(new)) + + gtk.setNum(ctx, count+1) + + return +} + // GetNum Returns the number of items stored, way more performant than GetNumber func (gtk GenericTypeKeeper[T]) GetNum(ctx sdk.Context) uint64 { - store := ctx.KVStore(gtk.InternalKey) - bz := store.Get([]byte(gtk.name)) - var num types.Num - gtk.cdc.MustUnmarshal(bz, &num) - return num.Num + store := gtk.getCountStore(ctx) + byteKey := types.KeyPrefix(gtk.countKey()) + bz := store.Get(byteKey) + + // Count doesn't exist: no element + if bz == nil { + return 0 + } + + // Parse bytes + return binary.BigEndian.Uint64(bz) } // setNum Sets thenumber of items stored -func (gtk GenericTypeKeeper[T]) setNum(ctx sdk.Context, _num uint64) { - store := ctx.KVStore(gtk.InternalKey) - var num = types.Num{Num: _num} - store.Set([]byte(gtk.name), gtk.cdc.MustMarshal(&num)) +func (gtk GenericTypeKeeper[T]) setNum(ctx sdk.Context, count uint64) { + store := gtk.getCountStore(ctx) + byteKey := types.KeyPrefix(gtk.countKey()) + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, count) + store.Set(byteKey, bz) } // GetIterator Returns an iterator for all objects -func (gtk GenericTypeKeeper[T]) GetIterator(ctx sdk.Context) storetypes.Iterator { - store := ctx.KVStore(gtk.Key) - return storetypes.KVStorePrefixIterator(store, nil) +func (gtk GenericTypeKeeper[T]) GetIterator(ctx sdk.Context) db.Iterator { + store := gtk.getValueStore(ctx) + return storetypes.KVStorePrefixIterator(store, []byte{}) } // GetAll Gets all objs from store -- use GetItemIterator instead @@ -128,7 +175,8 @@ func (gtk GenericTypeKeeper[T]) GetItemIterator(ctx sdk.Context) ItemIterator[T] } } -// GetNumber Gets the number of all objs in store -- deprecated, don't use +// GetNumber Gets the number of all objs in store +// Deprecated: don't use func (gtk GenericTypeKeeper[T]) GetNumber(ctx sdk.Context) (id uint64) { iterator := gtk.GetIterator(ctx) for ; iterator.Valid(); iterator.Next() { diff --git a/types/generic_type_keeper/keyworded_generic_type_keeper.go b/types/generic_type_keeper/keyworded_generic_type_keeper.go index 13f0616c..b506b3d8 100644 --- a/types/generic_type_keeper/keyworded_generic_type_keeper.go +++ b/types/generic_type_keeper/keyworded_generic_type_keeper.go @@ -3,7 +3,7 @@ package generic_type_keeper import ( "slices" - storetypes "cosmossdk.io/store/types" + "cosmossdk.io/core/store" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/gogoproto/proto" @@ -15,36 +15,30 @@ type KeywordedGenericTypeKeeper[T proto.Message] struct { } // NewKGTK Returns a new KeywordedGenericTypeKeeper -func NewKGTK[T proto.Message](key storetypes.StoreKey, internalKey storetypes.StoreKey, cdc codec.BinaryCodec, getEmpty func() T, keywords []string) KeywordedGenericTypeKeeper[T] { - gtk := KeywordedGenericTypeKeeper[T]{ - GenericTypeKeeper: NewGTK[T](key, internalKey, cdc, getEmpty), +func NewKGTK[T proto.Message](key string, storeService store.KVStoreService, cdc codec.BinaryCodec, getEmpty func() T, keywords []string) KeywordedGenericTypeKeeper[T] { + return KeywordedGenericTypeKeeper[T]{ + GenericTypeKeeper: NewGTK[T](key, storeService, cdc, getEmpty), KeyWords: keywords, } - return gtk } -// Get Gets an object from store -func (gtk KeywordedGenericTypeKeeper[T]) Get(ctx sdk.Context, keyword string) T { - if !slices.Contains(gtk.KeyWords, keyword) { +func (gtk KeywordedGenericTypeKeeper[T]) getUintID(keyword string) uint64 { + id := slices.Index(gtk.KeyWords, keyword) + if id == -1 { panic("Unknown keyword: " + keyword) } - store := ctx.KVStore(gtk.Key) - bz := store.Get([]byte(keyword)) + return uint64(id) +} - gotten := gtk.getEmpty() - gtk.cdc.MustUnmarshal(bz, gotten) - return gotten +// Get Gets an object from store +func (gtk KeywordedGenericTypeKeeper[T]) Get(ctx sdk.Context, keyword string) T { + return gtk.GenericTypeKeeper.Get(ctx, gtk.getUintID(keyword)) } // Set Sets an object in store func (gtk KeywordedGenericTypeKeeper[T]) Set(ctx sdk.Context, keyword string, new T) { - if !slices.Contains(gtk.KeyWords, keyword) { - panic("Unknown keyword: " + keyword) - } - - store := ctx.KVStore(gtk.Key) - store.Set([]byte(keyword), gtk.cdc.MustMarshal(new)) + gtk.GenericTypeKeeper.Set(ctx, gtk.getUintID(keyword), new) } // GetAll Gets all objs from store @@ -54,8 +48,3 @@ func (gtk KeywordedGenericTypeKeeper[T]) GetAll(ctx sdk.Context) (all []T) { } return } - -// GetNumber Gets the number of all objs in store -func (gtk KeywordedGenericTypeKeeper[T]) GetNumber(ctx sdk.Context) (id uint64) { - return uint64(len(gtk.KeyWords)) -} diff --git a/x/cardchain/keeper/incentives.go b/x/cardchain/keeper/incentives.go new file mode 100644 index 00000000..769ab3bb --- /dev/null +++ b/x/cardchain/keeper/incentives.go @@ -0,0 +1,49 @@ +package keeper + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// Keys to access RunningAverages +const ( + Games24ValueKey = "games/24h" + Votes24ValueKey = "votes/24h" +) + +// GetWinnerIncentives calculates incentives for the winners pool +func (k Keeper) GetWinnerIncentives(ctx sdk.Context) float32 { + games := float32(k.GetGames(ctx)) + votes := float32(k.GetVotes(ctx)) + gVR := float32(k.GetParams(ctx).GameVoteRatio) / 100 + return games / (votes*gVR + games) +} + +// GetBalancerIncentives calculates incentives for the ballancers pool +func (k Keeper) GetBalancerIncentives(ctx sdk.Context) float32 { + games := float32(k.GetGames(ctx)) + votes := float32(k.GetVotes(ctx)) + gVR := float32(k.GetParams(ctx).GameVoteRatio) / 100 + return (votes * gVR) / (votes*gVR + games) +} + +// GetRunningAverageTotal Sums up a certain running average +func (k Keeper) GetRunningAverageTotal(ctx sdk.Context, key string) (num int64) { + runningAverage := k.RunningAverages.Get(ctx, key) + for _, val := range runningAverage.Arr { + num += val + } + if num == 0 { + num = 1 + } + return +} + +// GetGames Gets the number of games played in the last 24 hours +func (k Keeper) GetGames(ctx sdk.Context) int64 { + return k.GetRunningAverageTotal(ctx, Games24ValueKey) +} + +// GetVotes Gets the number of votes made in the last 24 hours +func (k Keeper) GetVotes(ctx sdk.Context) int64 { + return k.GetRunningAverageTotal(ctx, Votes24ValueKey) +} diff --git a/x/cardchain/keeper/incentives_test.go b/x/cardchain/keeper/incentives_test.go new file mode 100644 index 00000000..65c2ccef --- /dev/null +++ b/x/cardchain/keeper/incentives_test.go @@ -0,0 +1,27 @@ +package keeper_test + +import ( + "testing" + + testkeeper "github.com/DecentralCardGame/cardchain/testutil/keeper" + "github.com/DecentralCardGame/cardchain/x/cardchain/keeper" + "github.com/DecentralCardGame/cardchain/x/cardchain/types" + "github.com/stretchr/testify/require" +) + +func TestIncentives(t *testing.T) { + k, ctx := testkeeper.CardchainKeeper(t) + runningAverage := types.RunningAverage{Arr: []int64{1, 5, 7}} + var clearRunningAverage types.RunningAverage + params := types.DefaultParams() + + k.SetParams(ctx, params) + k.RunningAverages.Set(ctx, keeper.Games24ValueKey, &runningAverage) + + require.EqualValues(t, runningAverage, *k.RunningAverages.Get(ctx, keeper.Games24ValueKey)) + require.EqualValues(t, []*types.RunningAverage{&runningAverage, &clearRunningAverage}, k.RunningAverages.GetAll(ctx)) + require.EqualValues(t, 13, k.GetGames(ctx)) + require.EqualValues(t, 1, k.GetVotes(ctx)) + require.EqualValues(t, float32(0.98484848484848484848484848484848), k.GetWinnerIncentives(ctx)) + require.EqualValues(t, float32(0.01515151515151515151515151515152), k.GetBalancerIncentives(ctx)) +} diff --git a/x/cardchain/keeper/keeper.go b/x/cardchain/keeper/keeper.go index b34191c6..d5ec4748 100644 --- a/x/cardchain/keeper/keeper.go +++ b/x/cardchain/keeper/keeper.go @@ -8,6 +8,7 @@ import ( "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" + gtk "github.com/DecentralCardGame/cardchain/types/generic_type_keeper" "github.com/DecentralCardGame/cardchain/x/cardchain/types" ) @@ -17,6 +18,17 @@ type ( storeService store.KVStoreService logger log.Logger + Cards gtk.GenericTypeKeeper[*types.Card] + Councils gtk.GenericTypeKeeper[*types.Council] + SellOffers gtk.GenericTypeKeeper[*types.SellOffer] + Sets gtk.GenericTypeKeeper[*types.Set] + Matches gtk.GenericTypeKeeper[*types.Match] + Servers gtk.GenericTypeKeeper[*types.Server] + RunningAverages gtk.KeywordedGenericTypeKeeper[*types.RunningAverage] + Pools gtk.KeywordedGenericTypeKeeper[*sdk.Coin] + Images gtk.GenericTypeKeeper[*types.Image] + Encounters gtk.GenericTypeKeeper[*types.Encounter] + // the address capable of executing a MsgUpdateParams message. Typically, this // should be the x/gov module account. authority string @@ -39,6 +51,17 @@ func NewKeeper( storeService: storeService, authority: authority, logger: logger, + + Cards: gtk.NewGTK[*types.Card]("Cards", storeService, cdc, gtk.GetEmpty[types.Card]), + Councils: gtk.NewGTK[*types.Council]("Councils", storeService, cdc, gtk.GetEmpty[types.Council]), + SellOffers: gtk.NewGTK[*types.SellOffer]("SellOffers", storeService, cdc, gtk.GetEmpty[types.SellOffer]), + Sets: gtk.NewGTK[*types.Set]("Sets", storeService, cdc, gtk.GetEmpty[types.Set]), + Matches: gtk.NewGTK[*types.Match]("Matches", storeService, cdc, gtk.GetEmpty[types.Match]), + RunningAverages: gtk.NewKGTK[*types.RunningAverage]("RunningAverages", storeService, cdc, gtk.GetEmpty[types.RunningAverage], []string{Games24ValueKey, Votes24ValueKey}), + Pools: gtk.NewKGTK[*sdk.Coin]("Pools", storeService, cdc, gtk.GetEmpty[sdk.Coin], []string{PublicPoolKey, WinnersPoolKey, BalancersPoolKey}), + Images: gtk.NewGTK[*types.Image]("Images", storeService, cdc, gtk.GetEmpty[types.Image]), + Servers: gtk.NewGTK[*types.Server]("Servers", storeService, cdc, gtk.GetEmpty[types.Server]), + Encounters: gtk.NewGTK[*types.Encounter]("Encounters", storeService, cdc, gtk.GetEmpty[types.Encounter]), } } diff --git a/x/cardchain/keeper/msg_server_product_details.go b/x/cardchain/keeper/msg_server_product_details.go new file mode 100644 index 00000000..6bfc9311 --- /dev/null +++ b/x/cardchain/keeper/msg_server_product_details.go @@ -0,0 +1,75 @@ +package keeper + +import ( + "context" + "fmt" + + errorsmod "cosmossdk.io/errors" + "github.com/DecentralCardGame/cardchain/x/cardchain/types" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +func (k msgServer) CreateProductDetails(goCtx context.Context, msg *types.MsgCreateProductDetails) (*types.MsgCreateProductDetailsResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + var productDetails = types.ProductDetails{ + Creator: msg.Creator, + Name: msg.Name, + Desc: msg.Desc, + } + + id := k.AppendProductDetails( + ctx, + productDetails, + ) + + return &types.MsgCreateProductDetailsResponse{ + Id: id, + }, nil +} + +func (k msgServer) UpdateProductDetails(goCtx context.Context, msg *types.MsgUpdateProductDetails) (*types.MsgUpdateProductDetailsResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + var productDetails = types.ProductDetails{ + Creator: msg.Creator, + Id: msg.Id, + Name: msg.Name, + Desc: msg.Desc, + } + + // Checks that the element exists + val, found := k.GetProductDetails(ctx, msg.Id) + if !found { + return nil, errorsmod.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + // Checks if the msg creator is the same as the current owner + if msg.Creator != val.Creator { + return nil, errorsmod.Wrap(sdkerrors.ErrUnauthorized, "incorrect owner") + } + + k.SetProductDetails(ctx, productDetails) + + return &types.MsgUpdateProductDetailsResponse{}, nil +} + +func (k msgServer) DeleteProductDetails(goCtx context.Context, msg *types.MsgDeleteProductDetails) (*types.MsgDeleteProductDetailsResponse, error) { + ctx := sdk.UnwrapSDKContext(goCtx) + + // Checks that the element exists + val, found := k.GetProductDetails(ctx, msg.Id) + if !found { + return nil, errorsmod.Wrap(sdkerrors.ErrKeyNotFound, fmt.Sprintf("key %d doesn't exist", msg.Id)) + } + + // Checks if the msg creator is the same as the current owner + if msg.Creator != val.Creator { + return nil, errorsmod.Wrap(sdkerrors.ErrUnauthorized, "incorrect owner") + } + + k.RemoveProductDetails(ctx, msg.Id) + + return &types.MsgDeleteProductDetailsResponse{}, nil +} diff --git a/x/cardchain/keeper/msg_server_product_details_test.go b/x/cardchain/keeper/msg_server_product_details_test.go new file mode 100644 index 00000000..290e9cb5 --- /dev/null +++ b/x/cardchain/keeper/msg_server_product_details_test.go @@ -0,0 +1,104 @@ +package keeper_test + +import ( + "testing" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stretchr/testify/require" + + "github.com/DecentralCardGame/cardchain/x/cardchain/types" +) + +func TestProductDetailsMsgServerCreate(t *testing.T) { + _, srv, ctx := setupMsgServer(t) + wctx := sdk.UnwrapSDKContext(ctx) + + creator := "A" + for i := 0; i < 5; i++ { + resp, err := srv.CreateProductDetails(wctx, &types.MsgCreateProductDetails{Creator: creator}) + require.NoError(t, err) + require.Equal(t, i, int(resp.Id)) + } +} + +func TestProductDetailsMsgServerUpdate(t *testing.T) { + creator := "A" + + tests := []struct { + desc string + request *types.MsgUpdateProductDetails + err error + }{ + { + desc: "Completed", + request: &types.MsgUpdateProductDetails{Creator: creator}, + }, + { + desc: "Unauthorized", + request: &types.MsgUpdateProductDetails{Creator: "B"}, + err: sdkerrors.ErrUnauthorized, + }, + { + desc: "Unauthorized", + request: &types.MsgUpdateProductDetails{Creator: creator, Id: 10}, + err: sdkerrors.ErrKeyNotFound, + }, + } + for _, tc := range tests { + t.Run(tc.desc, func(t *testing.T) { + _, srv, ctx := setupMsgServer(t) + wctx := sdk.UnwrapSDKContext(ctx) + + _, err := srv.CreateProductDetails(wctx, &types.MsgCreateProductDetails{Creator: creator}) + require.NoError(t, err) + + _, err = srv.UpdateProductDetails(wctx, tc.request) + if tc.err != nil { + require.ErrorIs(t, err, tc.err) + } else { + require.NoError(t, err) + } + }) + } +} + +func TestProductDetailsMsgServerDelete(t *testing.T) { + creator := "A" + + tests := []struct { + desc string + request *types.MsgDeleteProductDetails + err error + }{ + { + desc: "Completed", + request: &types.MsgDeleteProductDetails{Creator: creator}, + }, + { + desc: "Unauthorized", + request: &types.MsgDeleteProductDetails{Creator: "B"}, + err: sdkerrors.ErrUnauthorized, + }, + { + desc: "KeyNotFound", + request: &types.MsgDeleteProductDetails{Creator: creator, Id: 10}, + err: sdkerrors.ErrKeyNotFound, + }, + } + for _, tc := range tests { + t.Run(tc.desc, func(t *testing.T) { + _, srv, ctx := setupMsgServer(t) + wctx := sdk.UnwrapSDKContext(ctx) + + _, err := srv.CreateProductDetails(wctx, &types.MsgCreateProductDetails{Creator: creator}) + require.NoError(t, err) + _, err = srv.DeleteProductDetails(wctx, tc.request) + if tc.err != nil { + require.ErrorIs(t, err, tc.err) + } else { + require.NoError(t, err) + } + }) + } +} diff --git a/x/cardchain/keeper/pools.go b/x/cardchain/keeper/pools.go new file mode 100644 index 00000000..e3def4d7 --- /dev/null +++ b/x/cardchain/keeper/pools.go @@ -0,0 +1,35 @@ +package keeper + +import ( + "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// Keys to access pools +const ( + PublicPoolKey = "public" + WinnersPoolKey = "winners" + BalancersPoolKey = "balancers" +) + +// AddPoolCredits Adds ucredits to a pool +func (k Keeper) AddPoolCredits(ctx sdk.Context, poolName string, amount sdk.Coin) { + pool := k.Pools.Get(ctx, poolName) + newPool := pool.Add(amount) + k.Pools.Set(ctx, poolName, &newPool) +} + +// SubPoolCredits Subtracts ucredits from a pool +func (k Keeper) SubPoolCredits(ctx sdk.Context, poolName string, amount sdk.Coin) { + pool := k.Pools.Get(ctx, poolName) + newPool := pool.Sub(amount) + k.Pools.Set(ctx, poolName, &newPool) +} + +// DistributeHourlyFaucet distributes hourly faucet +func (k Keeper) DistributeHourlyFaucet(ctx sdk.Context) { + pool := k.Pools.Get(ctx, PublicPoolKey) + if pool.Amount.LT(math.NewInt(1_000_000_000_000_000)) { + k.AddPoolCredits(ctx, PublicPoolKey, k.GetParams(ctx).HourlyFaucet) + } +} diff --git a/x/cardchain/keeper/pools_test.go b/x/cardchain/keeper/pools_test.go new file mode 100644 index 00000000..c8a15c80 --- /dev/null +++ b/x/cardchain/keeper/pools_test.go @@ -0,0 +1,36 @@ +package keeper_test + +import ( + "testing" + + testkeeper "github.com/DecentralCardGame/cardchain/testutil/keeper" + // "github.com/DecentralCardGame/Cardchain/x/cardchain/types" + "github.com/DecentralCardGame/cardchain/x/cardchain/keeper" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stretchr/testify/require" +) + +func SetUpPools(ctx sdk.Context, k keeper.Keeper) (sdk.Coin, sdk.Coin, sdk.Coin) { + pool := sdk.NewInt64Coin("ucredits", 10) + pool1 := sdk.NewInt64Coin("ucredits", 2000000) + pool2 := sdk.NewInt64Coin("ucredits", 12) + k.Pools.Set(ctx, keeper.PublicPoolKey, &pool) + k.Pools.Set(ctx, keeper.WinnersPoolKey, &pool1) + k.Pools.Set(ctx, keeper.BalancersPoolKey, &pool2) + + return pool, pool1, pool2 +} + +func TestPools(t *testing.T) { + k, ctx := testkeeper.CardchainKeeper(t) + pool, pool1, pool2 := SetUpPools(ctx, *k) + + require.EqualValues(t, pool, *k.Pools.Get(ctx, keeper.PublicPoolKey)) + require.EqualValues(t, []*sdk.Coin{&pool, &pool1, &pool2}, k.Pools.GetAll(ctx)) + + k.AddPoolCredits(ctx, keeper.PublicPoolKey, sdk.NewInt64Coin("ucredits", 2)) + require.EqualValues(t, sdk.NewInt64Coin("ucredits", 12), *k.Pools.Get(ctx, keeper.PublicPoolKey)) + + k.SubPoolCredits(ctx, keeper.PublicPoolKey, sdk.NewInt64Coin("ucredits", 3)) + require.EqualValues(t, sdk.NewInt64Coin("ucredits", 9), *k.Pools.Get(ctx, keeper.PublicPoolKey)) +} diff --git a/x/cardchain/keeper/product_details.go b/x/cardchain/keeper/product_details.go new file mode 100644 index 00000000..8f791498 --- /dev/null +++ b/x/cardchain/keeper/product_details.go @@ -0,0 +1,111 @@ +package keeper + +import ( + "context" + "encoding/binary" + + "cosmossdk.io/store/prefix" + storetypes "cosmossdk.io/store/types" + "github.com/DecentralCardGame/cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/runtime" +) + +// GetProductDetailsCount get the total number of productDetails +func (k Keeper) GetProductDetailsCount(ctx context.Context) uint64 { + storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + store := prefix.NewStore(storeAdapter, []byte{}) + byteKey := types.KeyPrefix(types.ProductDetailsCountKey) + bz := store.Get(byteKey) + + // Count doesn't exist: no element + if bz == nil { + return 0 + } + + // Parse bytes + return binary.BigEndian.Uint64(bz) +} + +// SetProductDetailsCount set the total number of productDetails +func (k Keeper) SetProductDetailsCount(ctx context.Context, count uint64) { + storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + store := prefix.NewStore(storeAdapter, []byte{}) + byteKey := types.KeyPrefix(types.ProductDetailsCountKey) + bz := make([]byte, 8) + binary.BigEndian.PutUint64(bz, count) + store.Set(byteKey, bz) +} + +// AppendProductDetails appends a productDetails in the store with a new id and update the count +func (k Keeper) AppendProductDetails( + ctx context.Context, + productDetails types.ProductDetails, +) uint64 { + // Create the productDetails + count := k.GetProductDetailsCount(ctx) + + // Set the ID of the appended value + productDetails.Id = count + + storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.ProductDetailsKey)) + appendedValue := k.cdc.MustMarshal(&productDetails) + store.Set(GetProductDetailsIDBytes(productDetails.Id), appendedValue) + + // Update productDetails count + k.SetProductDetailsCount(ctx, count+1) + + return count +} + +// SetProductDetails set a specific productDetails in the store +func (k Keeper) SetProductDetails(ctx context.Context, productDetails types.ProductDetails) { + storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.ProductDetailsKey)) + b := k.cdc.MustMarshal(&productDetails) + store.Set(GetProductDetailsIDBytes(productDetails.Id), b) +} + +// GetProductDetails returns a productDetails from its id +func (k Keeper) GetProductDetails(ctx context.Context, id uint64) (val types.ProductDetails, found bool) { + storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.ProductDetailsKey)) + b := store.Get(GetProductDetailsIDBytes(id)) + if b == nil { + return val, false + } + k.cdc.MustUnmarshal(b, &val) + return val, true +} + +// RemoveProductDetails removes a productDetails from the store +func (k Keeper) RemoveProductDetails(ctx context.Context, id uint64) { + storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.ProductDetailsKey)) + store.Delete(GetProductDetailsIDBytes(id)) +} + +// GetAllProductDetails returns all productDetails +func (k Keeper) GetAllProductDetails(ctx context.Context) (list []types.ProductDetails) { + storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.ProductDetailsKey)) + iterator := storetypes.KVStorePrefixIterator(store, []byte{}) + + defer iterator.Close() + + for ; iterator.Valid(); iterator.Next() { + var val types.ProductDetails + k.cdc.MustUnmarshal(iterator.Value(), &val) + list = append(list, val) + } + + return +} + +// GetProductDetailsIDBytes returns the byte representation of the ID +func GetProductDetailsIDBytes(id uint64) []byte { + bz := types.KeyPrefix(types.ProductDetailsKey) + bz = append(bz, []byte("/")...) + bz = binary.BigEndian.AppendUint64(bz, id) + return bz +} diff --git a/x/cardchain/keeper/product_details_test.go b/x/cardchain/keeper/product_details_test.go new file mode 100644 index 00000000..ed5ba113 --- /dev/null +++ b/x/cardchain/keeper/product_details_test.go @@ -0,0 +1,59 @@ +package keeper_test + +import ( + "context" + "testing" + + keepertest "github.com/DecentralCardGame/cardchain/testutil/keeper" + "github.com/DecentralCardGame/cardchain/testutil/nullify" + "github.com/DecentralCardGame/cardchain/x/cardchain/keeper" + "github.com/DecentralCardGame/cardchain/x/cardchain/types" + "github.com/stretchr/testify/require" +) + +func createNProductDetails(keeper keeper.Keeper, ctx context.Context, n int) []types.ProductDetails { + items := make([]types.ProductDetails, n) + for i := range items { + items[i].Id = keeper.AppendProductDetails(ctx, items[i]) + } + return items +} + +func TestProductDetailsGet(t *testing.T) { + keeper, ctx := keepertest.CardchainKeeper(t) + items := createNProductDetails(keeper, ctx, 10) + for _, item := range items { + got, found := keeper.GetProductDetails(ctx, item.Id) + require.True(t, found) + require.Equal(t, + nullify.Fill(&item), + nullify.Fill(&got), + ) + } +} + +func TestProductDetailsRemove(t *testing.T) { + keeper, ctx := keepertest.CardchainKeeper(t) + items := createNProductDetails(keeper, ctx, 10) + for _, item := range items { + keeper.RemoveProductDetails(ctx, item.Id) + _, found := keeper.GetProductDetails(ctx, item.Id) + require.False(t, found) + } +} + +func TestProductDetailsGetAll(t *testing.T) { + keeper, ctx := keepertest.CardchainKeeper(t) + items := createNProductDetails(keeper, ctx, 10) + require.ElementsMatch(t, + nullify.Fill(items), + nullify.Fill(keeper.GetAllProductDetails(ctx)), + ) +} + +func TestProductDetailsCount(t *testing.T) { + keeper, ctx := keepertest.CardchainKeeper(t) + items := createNProductDetails(keeper, ctx, 10) + count := uint64(len(items)) + require.Equal(t, count, keeper.GetProductDetailsCount(ctx)) +} diff --git a/x/cardchain/keeper/query_product_details.go b/x/cardchain/keeper/query_product_details.go new file mode 100644 index 00000000..b6e36e35 --- /dev/null +++ b/x/cardchain/keeper/query_product_details.go @@ -0,0 +1,53 @@ +package keeper + +import ( + "context" + + "cosmossdk.io/store/prefix" + "github.com/DecentralCardGame/cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/runtime" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/cosmos/cosmos-sdk/types/query" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (k Keeper) ProductDetailsAll(ctx context.Context, req *types.QueryAllProductDetailsRequest) (*types.QueryAllProductDetailsResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + var productDetailss []types.ProductDetails + + store := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) + productDetailsStore := prefix.NewStore(store, types.KeyPrefix(types.ProductDetailsKey)) + + pageRes, err := query.Paginate(productDetailsStore, req.Pagination, func(key []byte, value []byte) error { + var productDetails types.ProductDetails + if err := k.cdc.Unmarshal(value, &productDetails); err != nil { + return err + } + + productDetailss = append(productDetailss, productDetails) + return nil + }) + + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + return &types.QueryAllProductDetailsResponse{ProductDetails: productDetailss, Pagination: pageRes}, nil +} + +func (k Keeper) ProductDetails(ctx context.Context, req *types.QueryGetProductDetailsRequest) (*types.QueryGetProductDetailsResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + + productDetails, found := k.GetProductDetails(ctx, req.Id) + if !found { + return nil, sdkerrors.ErrKeyNotFound + } + + return &types.QueryGetProductDetailsResponse{ProductDetails: productDetails}, nil +} diff --git a/x/cardchain/keeper/query_product_details_test.go b/x/cardchain/keeper/query_product_details_test.go new file mode 100644 index 00000000..45727176 --- /dev/null +++ b/x/cardchain/keeper/query_product_details_test.go @@ -0,0 +1,115 @@ +package keeper_test + +import ( + "testing" + + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/cosmos/cosmos-sdk/types/query" + "github.com/stretchr/testify/require" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + keepertest "github.com/DecentralCardGame/cardchain/testutil/keeper" + "github.com/DecentralCardGame/cardchain/testutil/nullify" + "github.com/DecentralCardGame/cardchain/x/cardchain/types" +) + +func TestProductDetailsQuerySingle(t *testing.T) { + keeper, ctx := keepertest.CardchainKeeper(t) + msgs := createNProductDetails(keeper, ctx, 2) + tests := []struct { + desc string + request *types.QueryGetProductDetailsRequest + response *types.QueryGetProductDetailsResponse + err error + }{ + { + desc: "First", + request: &types.QueryGetProductDetailsRequest{Id: msgs[0].Id}, + response: &types.QueryGetProductDetailsResponse{ProductDetails: msgs[0]}, + }, + { + desc: "Second", + request: &types.QueryGetProductDetailsRequest{Id: msgs[1].Id}, + response: &types.QueryGetProductDetailsResponse{ProductDetails: msgs[1]}, + }, + { + desc: "KeyNotFound", + request: &types.QueryGetProductDetailsRequest{Id: uint64(len(msgs))}, + err: sdkerrors.ErrKeyNotFound, + }, + { + desc: "InvalidRequest", + err: status.Error(codes.InvalidArgument, "invalid request"), + }, + } + for _, tc := range tests { + t.Run(tc.desc, func(t *testing.T) { + response, err := keeper.ProductDetails(ctx, tc.request) + if tc.err != nil { + require.ErrorIs(t, err, tc.err) + } else { + require.NoError(t, err) + require.Equal(t, + nullify.Fill(tc.response), + nullify.Fill(response), + ) + } + }) + } +} + +func TestProductDetailsQueryPaginated(t *testing.T) { + keeper, ctx := keepertest.CardchainKeeper(t) + msgs := createNProductDetails(keeper, ctx, 5) + + request := func(next []byte, offset, limit uint64, total bool) *types.QueryAllProductDetailsRequest { + return &types.QueryAllProductDetailsRequest{ + Pagination: &query.PageRequest{ + Key: next, + Offset: offset, + Limit: limit, + CountTotal: total, + }, + } + } + t.Run("ByOffset", func(t *testing.T) { + step := 2 + for i := 0; i < len(msgs); i += step { + resp, err := keeper.ProductDetailsAll(ctx, request(nil, uint64(i), uint64(step), false)) + require.NoError(t, err) + require.LessOrEqual(t, len(resp.ProductDetails), step) + require.Subset(t, + nullify.Fill(msgs), + nullify.Fill(resp.ProductDetails), + ) + } + }) + t.Run("ByKey", func(t *testing.T) { + step := 2 + var next []byte + for i := 0; i < len(msgs); i += step { + resp, err := keeper.ProductDetailsAll(ctx, request(next, 0, uint64(step), false)) + require.NoError(t, err) + require.LessOrEqual(t, len(resp.ProductDetails), step) + require.Subset(t, + nullify.Fill(msgs), + nullify.Fill(resp.ProductDetails), + ) + next = resp.Pagination.NextKey + } + }) + t.Run("Total", func(t *testing.T) { + resp, err := keeper.ProductDetailsAll(ctx, request(nil, 0, 0, true)) + require.NoError(t, err) + require.Equal(t, len(msgs), int(resp.Pagination.Total)) + require.ElementsMatch(t, + nullify.Fill(msgs), + nullify.Fill(resp.ProductDetails), + ) + }) + t.Run("InvalidRequest", func(t *testing.T) { + _, err := keeper.ProductDetailsAll(ctx, nil) + require.ErrorIs(t, err, status.Error(codes.InvalidArgument, "invalid request")) + }) +} diff --git a/x/cardchain/module/autocli.go b/x/cardchain/module/autocli.go index ef5eebd1..6bad68a5 100644 --- a/x/cardchain/module/autocli.go +++ b/x/cardchain/module/autocli.go @@ -17,6 +17,17 @@ func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions { Use: "params", Short: "Shows the parameters of the module", }, + { + RpcMethod: "ProductDetailsAll", + Use: "list-product-details", + Short: "List all product-details", + }, + { + RpcMethod: "ProductDetails", + Use: "show-product-details [id]", + Short: "Shows a product-details by id", + PositionalArgs: []*autocliv1.PositionalArgDescriptor{{ProtoField: "id"}}, + }, // this line is used by ignite scaffolding # autocli/query }, }, @@ -304,6 +315,24 @@ func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions { Short: "Send a EncounterClose tx", PositionalArgs: []*autocliv1.PositionalArgDescriptor{{ProtoField: "encounterId"}, {ProtoField: "user"}, {ProtoField: "won"}}, }, + { + RpcMethod: "CreateProductDetails", + Use: "create-product-details [name] [desc]", + Short: "Create product-details", + PositionalArgs: []*autocliv1.PositionalArgDescriptor{{ProtoField: "name"}, {ProtoField: "desc"}}, + }, + { + RpcMethod: "UpdateProductDetails", + Use: "update-product-details [id] [name] [desc]", + Short: "Update product-details", + PositionalArgs: []*autocliv1.PositionalArgDescriptor{{ProtoField: "id"}, {ProtoField: "name"}, {ProtoField: "desc"}}, + }, + { + RpcMethod: "DeleteProductDetails", + Use: "delete-product-details [id]", + Short: "Delete product-details", + PositionalArgs: []*autocliv1.PositionalArgDescriptor{{ProtoField: "id"}}, + }, // this line is used by ignite scaffolding # autocli/tx }, }, diff --git a/x/cardchain/module/genesis.go b/x/cardchain/module/genesis.go index 38de003f..72c3b17d 100644 --- a/x/cardchain/module/genesis.go +++ b/x/cardchain/module/genesis.go @@ -9,6 +9,13 @@ import ( // InitGenesis initializes the module's state from a provided genesis state. func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) { + // Set all the productDetails + for _, elem := range genState.ProductDetailsList { + k.SetProductDetails(ctx, elem) + } + + // Set productDetails count + k.SetProductDetailsCount(ctx, genState.ProductDetailsCount) // this line is used by starport scaffolding # genesis/module/init if err := k.SetParams(ctx, genState.Params); err != nil { panic(err) @@ -20,6 +27,8 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { genesis := types.DefaultGenesis() genesis.Params = k.GetParams(ctx) + genesis.ProductDetailsList = k.GetAllProductDetails(ctx) + genesis.ProductDetailsCount = k.GetProductDetailsCount(ctx) // this line is used by starport scaffolding # genesis/module/export return genesis diff --git a/x/cardchain/module/genesis_test.go b/x/cardchain/module/genesis_test.go index 3817407a..ae49cc36 100644 --- a/x/cardchain/module/genesis_test.go +++ b/x/cardchain/module/genesis_test.go @@ -14,6 +14,15 @@ func TestGenesis(t *testing.T) { genesisState := types.GenesisState{ Params: types.DefaultParams(), + ProductDetailsList: []types.ProductDetails{ + { + Id: 0, + }, + { + Id: 1, + }, + }, + ProductDetailsCount: 2, // this line is used by starport scaffolding # genesis/test/state } @@ -25,5 +34,7 @@ func TestGenesis(t *testing.T) { nullify.Fill(&genesisState) nullify.Fill(got) + require.ElementsMatch(t, genesisState.ProductDetailsList, got.ProductDetailsList) + require.Equal(t, genesisState.ProductDetailsCount, got.ProductDetailsCount) // this line is used by starport scaffolding # genesis/test/assert } diff --git a/x/cardchain/module/simulation.go b/x/cardchain/module/simulation.go index 3105fa4a..985ee3b1 100644 --- a/x/cardchain/module/simulation.go +++ b/x/cardchain/module/simulation.go @@ -207,6 +207,18 @@ const ( // TODO: Determine the simulation weight value defaultWeightMsgEncounterClose int = 100 + opWeightMsgCreateProductDetails = "op_weight_msg_product_details" + // TODO: Determine the simulation weight value + defaultWeightMsgCreateProductDetails int = 100 + + opWeightMsgUpdateProductDetails = "op_weight_msg_product_details" + // TODO: Determine the simulation weight value + defaultWeightMsgUpdateProductDetails int = 100 + + opWeightMsgDeleteProductDetails = "op_weight_msg_product_details" + // TODO: Determine the simulation weight value + defaultWeightMsgDeleteProductDetails int = 100 + // this line is used by starport scaffolding # simapp/module/const ) @@ -218,6 +230,17 @@ func (AppModule) GenerateGenesisState(simState *module.SimulationState) { } cardchainGenesis := types.GenesisState{ Params: types.DefaultParams(), + ProductDetailsList: []types.ProductDetails{ + { + Id: 0, + Creator: sample.AccAddress(), + }, + { + Id: 1, + Creator: sample.AccAddress(), + }, + }, + ProductDetailsCount: 2, // this line is used by starport scaffolding # simapp/module/genesisState } simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&cardchainGenesis) @@ -736,6 +759,39 @@ func (am AppModule) WeightedOperations(simState module.SimulationState) []simtyp cardchainsimulation.SimulateMsgEncounterClose(am.accountKeeper, am.bankKeeper, am.keeper), )) + var weightMsgCreateProductDetails int + simState.AppParams.GetOrGenerate(opWeightMsgCreateProductDetails, &weightMsgCreateProductDetails, nil, + func(_ *rand.Rand) { + weightMsgCreateProductDetails = defaultWeightMsgCreateProductDetails + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgCreateProductDetails, + cardchainsimulation.SimulateMsgCreateProductDetails(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgUpdateProductDetails int + simState.AppParams.GetOrGenerate(opWeightMsgUpdateProductDetails, &weightMsgUpdateProductDetails, nil, + func(_ *rand.Rand) { + weightMsgUpdateProductDetails = defaultWeightMsgUpdateProductDetails + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgUpdateProductDetails, + cardchainsimulation.SimulateMsgUpdateProductDetails(am.accountKeeper, am.bankKeeper, am.keeper), + )) + + var weightMsgDeleteProductDetails int + simState.AppParams.GetOrGenerate(opWeightMsgDeleteProductDetails, &weightMsgDeleteProductDetails, nil, + func(_ *rand.Rand) { + weightMsgDeleteProductDetails = defaultWeightMsgDeleteProductDetails + }, + ) + operations = append(operations, simulation.NewWeightedOperation( + weightMsgDeleteProductDetails, + cardchainsimulation.SimulateMsgDeleteProductDetails(am.accountKeeper, am.bankKeeper, am.keeper), + )) + // this line is used by starport scaffolding # simapp/module/operation return operations @@ -1112,6 +1168,30 @@ func (am AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.Wei return nil }, ), + simulation.NewWeightedProposalMsg( + opWeightMsgCreateProductDetails, + defaultWeightMsgCreateProductDetails, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + cardchainsimulation.SimulateMsgCreateProductDetails(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), + simulation.NewWeightedProposalMsg( + opWeightMsgUpdateProductDetails, + defaultWeightMsgUpdateProductDetails, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + cardchainsimulation.SimulateMsgUpdateProductDetails(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), + simulation.NewWeightedProposalMsg( + opWeightMsgDeleteProductDetails, + defaultWeightMsgDeleteProductDetails, + func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg { + cardchainsimulation.SimulateMsgDeleteProductDetails(am.accountKeeper, am.bankKeeper, am.keeper) + return nil + }, + ), // this line is used by starport scaffolding # simapp/module/OpMsg } } diff --git a/x/cardchain/simulation/product_details.go b/x/cardchain/simulation/product_details.go new file mode 100644 index 00000000..d68cbe3a --- /dev/null +++ b/x/cardchain/simulation/product_details.go @@ -0,0 +1,131 @@ +package simulation + +import ( + "math/rand" + + "github.com/DecentralCardGame/cardchain/x/cardchain/keeper" + "github.com/DecentralCardGame/cardchain/x/cardchain/types" + "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" + moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" + "github.com/cosmos/cosmos-sdk/x/simulation" +) + +func SimulateMsgCreateProductDetails( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + simAccount, _ := simtypes.RandomAcc(r, accs) + + msg := &types.MsgCreateProductDetails{ + Creator: simAccount.Address.String(), + } + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: moduletestutil.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} + +func SimulateMsgUpdateProductDetails( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + var ( + simAccount = simtypes.Account{} + productDetails = types.ProductDetails{} + msg = &types.MsgUpdateProductDetails{} + allProductDetails = k.GetAllProductDetails(ctx) + found = false + ) + for _, obj := range allProductDetails { + simAccount, found = FindAccount(accs, obj.Creator) + if found { + productDetails = obj + break + } + } + if !found { + return simtypes.NoOpMsg(types.ModuleName, sdk.MsgTypeURL(msg), "productDetails creator not found"), nil, nil + } + msg.Creator = simAccount.Address.String() + msg.Id = productDetails.Id + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: moduletestutil.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} + +func SimulateMsgDeleteProductDetails( + ak types.AccountKeeper, + bk types.BankKeeper, + k keeper.Keeper, +) simtypes.Operation { + return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string, + ) (simtypes.OperationMsg, []simtypes.FutureOperation, error) { + var ( + simAccount = simtypes.Account{} + productDetails = types.ProductDetails{} + msg = &types.MsgDeleteProductDetails{} + allProductDetails = k.GetAllProductDetails(ctx) + found = false + ) + for _, obj := range allProductDetails { + simAccount, found = FindAccount(accs, obj.Creator) + if found { + productDetails = obj + break + } + } + if !found { + return simtypes.NoOpMsg(types.ModuleName, sdk.MsgTypeURL(msg), "productDetails creator not found"), nil, nil + } + msg.Creator = simAccount.Address.String() + msg.Id = productDetails.Id + + txCtx := simulation.OperationInput{ + R: r, + App: app, + TxGen: moduletestutil.MakeTestEncodingConfig().TxConfig, + Cdc: nil, + Msg: msg, + Context: ctx, + SimAccount: simAccount, + ModuleName: types.ModuleName, + CoinsSpentInMsg: sdk.NewCoins(), + AccountKeeper: ak, + Bankkeeper: bk, + } + return simulation.GenAndDeliverTxWithRandFees(txCtx) + } +} diff --git a/x/cardchain/types/codec.go b/x/cardchain/types/codec.go index 4da70096..b4338a17 100644 --- a/x/cardchain/types/codec.go +++ b/x/cardchain/types/codec.go @@ -146,6 +146,11 @@ func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { registry.RegisterImplementations((*sdk.Msg)(nil), &MsgEncounterClose{}, ) + registry.RegisterImplementations((*sdk.Msg)(nil), + &MsgCreateProductDetails{}, + &MsgUpdateProductDetails{}, + &MsgDeleteProductDetails{}, + ) // this line is used by starport scaffolding # 3 registry.RegisterImplementations((*sdk.Msg)(nil), diff --git a/x/cardchain/types/encounter.pb.go b/x/cardchain/types/encounter.pb.go new file mode 100644 index 00000000..5c6f1b54 --- /dev/null +++ b/x/cardchain/types/encounter.pb.go @@ -0,0 +1,996 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cardchain/cardchain/encounter.proto + +package types + +import ( + fmt "fmt" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type Encounter struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Drawlist []uint64 `protobuf:"varint,2,rep,packed,name=drawlist,proto3" json:"drawlist,omitempty"` + Proven bool `protobuf:"varint,3,opt,name=proven,proto3" json:"proven,omitempty"` + Owner string `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"` + Parameters map[string]string `protobuf:"bytes,5,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ImageId uint64 `protobuf:"varint,6,opt,name=imageId,proto3" json:"imageId,omitempty"` + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` +} + +func (m *Encounter) Reset() { *m = Encounter{} } +func (m *Encounter) String() string { return proto.CompactTextString(m) } +func (*Encounter) ProtoMessage() {} +func (*Encounter) Descriptor() ([]byte, []int) { + return fileDescriptor_d1555abf6f7ee418, []int{0} +} +func (m *Encounter) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Encounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Encounter.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Encounter) XXX_Merge(src proto.Message) { + xxx_messageInfo_Encounter.Merge(m, src) +} +func (m *Encounter) XXX_Size() int { + return m.Size() +} +func (m *Encounter) XXX_DiscardUnknown() { + xxx_messageInfo_Encounter.DiscardUnknown(m) +} + +var xxx_messageInfo_Encounter proto.InternalMessageInfo + +func (m *Encounter) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *Encounter) GetDrawlist() []uint64 { + if m != nil { + return m.Drawlist + } + return nil +} + +func (m *Encounter) GetProven() bool { + if m != nil { + return m.Proven + } + return false +} + +func (m *Encounter) GetOwner() string { + if m != nil { + return m.Owner + } + return "" +} + +func (m *Encounter) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *Encounter) GetImageId() uint64 { + if m != nil { + return m.ImageId + } + return 0 +} + +func (m *Encounter) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type EncounterWithImage struct { + Encounter *Encounter `protobuf:"bytes,1,opt,name=encounter,proto3" json:"encounter,omitempty"` + Image []byte `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"` +} + +func (m *EncounterWithImage) Reset() { *m = EncounterWithImage{} } +func (m *EncounterWithImage) String() string { return proto.CompactTextString(m) } +func (*EncounterWithImage) ProtoMessage() {} +func (*EncounterWithImage) Descriptor() ([]byte, []int) { + return fileDescriptor_d1555abf6f7ee418, []int{1} +} +func (m *EncounterWithImage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EncounterWithImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EncounterWithImage.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EncounterWithImage) XXX_Merge(src proto.Message) { + xxx_messageInfo_EncounterWithImage.Merge(m, src) +} +func (m *EncounterWithImage) XXX_Size() int { + return m.Size() +} +func (m *EncounterWithImage) XXX_DiscardUnknown() { + xxx_messageInfo_EncounterWithImage.DiscardUnknown(m) +} + +var xxx_messageInfo_EncounterWithImage proto.InternalMessageInfo + +func (m *EncounterWithImage) GetEncounter() *Encounter { + if m != nil { + return m.Encounter + } + return nil +} + +func (m *EncounterWithImage) GetImage() []byte { + if m != nil { + return m.Image + } + return nil +} + +func init() { + proto.RegisterType((*Encounter)(nil), "cardchain.cardchain.Encounter") + proto.RegisterMapType((map[string]string)(nil), "cardchain.cardchain.Encounter.ParametersEntry") + proto.RegisterType((*EncounterWithImage)(nil), "cardchain.cardchain.EncounterWithImage") +} + +func init() { + proto.RegisterFile("cardchain/cardchain/encounter.proto", fileDescriptor_d1555abf6f7ee418) +} + +var fileDescriptor_d1555abf6f7ee418 = []byte{ + // 362 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xbf, 0x4e, 0xf3, 0x30, + 0x14, 0xc5, 0xeb, 0x24, 0xfd, 0x13, 0xf7, 0xd3, 0x07, 0x32, 0x15, 0xb2, 0x3a, 0x44, 0x51, 0x59, + 0x32, 0xa5, 0x52, 0x59, 0x2a, 0x04, 0x0b, 0x50, 0xa1, 0x2e, 0x08, 0x79, 0x41, 0x62, 0x73, 0x13, + 0x2b, 0x89, 0x68, 0xec, 0xc8, 0x75, 0x5b, 0xfa, 0x16, 0x3c, 0x03, 0x4f, 0xc3, 0xd8, 0x91, 0x11, + 0xb5, 0x2f, 0x82, 0xe2, 0x50, 0xb7, 0x42, 0x88, 0xed, 0x1c, 0x5d, 0xdf, 0x7b, 0x7e, 0xd7, 0x36, + 0x3c, 0x8b, 0xa8, 0x8c, 0xa3, 0x94, 0x66, 0xbc, 0xbf, 0x57, 0x8c, 0x47, 0x62, 0xce, 0x15, 0x93, + 0x61, 0x21, 0x85, 0x12, 0xe8, 0xc4, 0x94, 0x42, 0xa3, 0xba, 0x9d, 0x44, 0x24, 0x42, 0xd7, 0xfb, + 0xa5, 0xaa, 0x8e, 0xf6, 0xde, 0x2c, 0xe8, 0x8e, 0x76, 0xed, 0xe8, 0x3f, 0xb4, 0xb2, 0x18, 0x03, + 0x1f, 0x04, 0x0e, 0xb1, 0xb2, 0x18, 0x75, 0x61, 0x2b, 0x96, 0x74, 0x39, 0xcd, 0x66, 0x0a, 0x5b, + 0xbe, 0x1d, 0x38, 0xc4, 0x78, 0x74, 0x0a, 0x1b, 0x85, 0x14, 0x0b, 0xc6, 0xb1, 0xed, 0x83, 0xa0, + 0x45, 0xbe, 0x1d, 0xea, 0xc0, 0xba, 0x58, 0x72, 0x26, 0xb1, 0xe3, 0x83, 0xc0, 0x25, 0x95, 0x41, + 0xf7, 0x10, 0x16, 0x54, 0xd2, 0x9c, 0x29, 0x26, 0x67, 0xb8, 0xee, 0xdb, 0x41, 0x7b, 0x10, 0x86, + 0xbf, 0x70, 0x86, 0x86, 0x26, 0x7c, 0x30, 0x0d, 0x23, 0xae, 0xe4, 0x8a, 0x1c, 0x4c, 0x40, 0x18, + 0x36, 0xb3, 0x9c, 0x26, 0x6c, 0x1c, 0xe3, 0x86, 0xc6, 0xdd, 0x59, 0x84, 0xa0, 0xc3, 0x69, 0xce, + 0x70, 0x53, 0xc7, 0x6b, 0xdd, 0xbd, 0x82, 0x47, 0x3f, 0x86, 0xa1, 0x63, 0x68, 0x3f, 0xb3, 0x95, + 0xde, 0xd5, 0x25, 0xa5, 0x2c, 0xc1, 0x17, 0x74, 0x3a, 0x67, 0xd8, 0xaa, 0xc0, 0xb5, 0xb9, 0xb0, + 0x86, 0xa0, 0x97, 0x42, 0x64, 0xa8, 0x1e, 0x33, 0x95, 0x8e, 0xcb, 0x28, 0x74, 0x09, 0x5d, 0x73, + 0xf1, 0x7a, 0x4e, 0x7b, 0xe0, 0xfd, 0xbd, 0x11, 0xd9, 0x37, 0x94, 0x69, 0x9a, 0x58, 0xa7, 0xfd, + 0x23, 0x95, 0xb9, 0x26, 0xef, 0x1b, 0x0f, 0xac, 0x37, 0x1e, 0xf8, 0xdc, 0x78, 0xe0, 0x75, 0xeb, + 0xd5, 0xd6, 0x5b, 0xaf, 0xf6, 0xb1, 0xf5, 0x6a, 0x4f, 0xc3, 0x24, 0x53, 0xe9, 0x7c, 0x12, 0x46, + 0x22, 0xef, 0xdf, 0xb2, 0x88, 0x71, 0x25, 0xe9, 0xf4, 0x86, 0xca, 0xf8, 0x8e, 0xe6, 0xec, 0xe0, + 0x2f, 0xbc, 0x1c, 0x68, 0xb5, 0x2a, 0xd8, 0x6c, 0xd2, 0xd0, 0x2f, 0x7d, 0xfe, 0x15, 0x00, 0x00, + 0xff, 0xff, 0xc7, 0x31, 0xc4, 0xfa, 0x3b, 0x02, 0x00, 0x00, +} + +func (m *Encounter) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Encounter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Encounter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintEncounter(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x3a + } + if m.ImageId != 0 { + i = encodeVarintEncounter(dAtA, i, uint64(m.ImageId)) + i-- + dAtA[i] = 0x30 + } + if len(m.Parameters) > 0 { + for k := range m.Parameters { + v := m.Parameters[k] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintEncounter(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(k) + copy(dAtA[i:], k) + i = encodeVarintEncounter(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = encodeVarintEncounter(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x2a + } + } + if len(m.Owner) > 0 { + i -= len(m.Owner) + copy(dAtA[i:], m.Owner) + i = encodeVarintEncounter(dAtA, i, uint64(len(m.Owner))) + i-- + dAtA[i] = 0x22 + } + if m.Proven { + i-- + if m.Proven { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(m.Drawlist) > 0 { + dAtA2 := make([]byte, len(m.Drawlist)*10) + var j1 int + for _, num := range m.Drawlist { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintEncounter(dAtA, i, uint64(j1)) + i-- + dAtA[i] = 0x12 + } + if m.Id != 0 { + i = encodeVarintEncounter(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *EncounterWithImage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EncounterWithImage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EncounterWithImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Image) > 0 { + i -= len(m.Image) + copy(dAtA[i:], m.Image) + i = encodeVarintEncounter(dAtA, i, uint64(len(m.Image))) + i-- + dAtA[i] = 0x12 + } + if m.Encounter != nil { + { + size, err := m.Encounter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEncounter(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintEncounter(dAtA []byte, offset int, v uint64) int { + offset -= sovEncounter(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Encounter) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovEncounter(uint64(m.Id)) + } + if len(m.Drawlist) > 0 { + l = 0 + for _, e := range m.Drawlist { + l += sovEncounter(uint64(e)) + } + n += 1 + sovEncounter(uint64(l)) + l + } + if m.Proven { + n += 2 + } + l = len(m.Owner) + if l > 0 { + n += 1 + l + sovEncounter(uint64(l)) + } + if len(m.Parameters) > 0 { + for k, v := range m.Parameters { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovEncounter(uint64(len(k))) + 1 + len(v) + sovEncounter(uint64(len(v))) + n += mapEntrySize + 1 + sovEncounter(uint64(mapEntrySize)) + } + } + if m.ImageId != 0 { + n += 1 + sovEncounter(uint64(m.ImageId)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovEncounter(uint64(l)) + } + return n +} + +func (m *EncounterWithImage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Encounter != nil { + l = m.Encounter.Size() + n += 1 + l + sovEncounter(uint64(l)) + } + l = len(m.Image) + if l > 0 { + n += 1 + l + sovEncounter(uint64(l)) + } + return n +} + +func sovEncounter(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozEncounter(x uint64) (n int) { + return sovEncounter(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Encounter) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Encounter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Encounter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Drawlist = append(m.Drawlist, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthEncounter + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthEncounter + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Drawlist) == 0 { + m.Drawlist = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Drawlist = append(m.Drawlist, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Drawlist", wireType) + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Proven", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Proven = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Owner", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEncounter + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEncounter + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Owner = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Parameters", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEncounter + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEncounter + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Parameters == nil { + m.Parameters = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthEncounter + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthEncounter + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthEncounter + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthEncounter + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipEncounter(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEncounter + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Parameters[mapkey] = mapvalue + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageId", wireType) + } + m.ImageId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ImageId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEncounter + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEncounter + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEncounter(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEncounter + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EncounterWithImage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EncounterWithImage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EncounterWithImage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Encounter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEncounter + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEncounter + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Encounter == nil { + m.Encounter = &Encounter{} + } + if err := m.Encounter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEncounter + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthEncounter + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthEncounter + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Image = append(m.Image[:0], dAtA[iNdEx:postIndex]...) + if m.Image == nil { + m.Image = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEncounter(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEncounter + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEncounter(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEncounter + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEncounter + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEncounter + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthEncounter + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupEncounter + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthEncounter + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthEncounter = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEncounter = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupEncounter = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/cardchain/types/genesis.go b/x/cardchain/types/genesis.go index 2c15cd92..188b81b7 100644 --- a/x/cardchain/types/genesis.go +++ b/x/cardchain/types/genesis.go @@ -1,6 +1,8 @@ package types -// this line is used by starport scaffolding # genesis/types/import +import ( + "fmt" +) // DefaultIndex is the default global index const DefaultIndex uint64 = 1 @@ -8,6 +10,7 @@ const DefaultIndex uint64 = 1 // DefaultGenesis returns the default genesis state func DefaultGenesis() *GenesisState { return &GenesisState{ + ProductDetailsList: []ProductDetails{}, // this line is used by starport scaffolding # genesis/types/default Params: DefaultParams(), } @@ -16,6 +19,18 @@ func DefaultGenesis() *GenesisState { // Validate performs basic genesis state validation returning an error upon any // failure. func (gs GenesisState) Validate() error { + // Check for duplicated ID in productDetails + productDetailsIdMap := make(map[uint64]bool) + productDetailsCount := gs.GetProductDetailsCount() + for _, elem := range gs.ProductDetailsList { + if _, ok := productDetailsIdMap[elem.Id]; ok { + return fmt.Errorf("duplicated id for productDetails") + } + if elem.Id >= productDetailsCount { + return fmt.Errorf("productDetails id should be lower or equal than the last id") + } + productDetailsIdMap[elem.Id] = true + } // this line is used by starport scaffolding # genesis/types/validate return gs.Params.Validate() diff --git a/x/cardchain/types/genesis.pb.go b/x/cardchain/types/genesis.pb.go index 0ea89648..4306f207 100644 --- a/x/cardchain/types/genesis.pb.go +++ b/x/cardchain/types/genesis.pb.go @@ -27,7 +27,9 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the cardchain module's genesis state. type GenesisState struct { // params defines all the parameters of the module. - Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + ProductDetailsList []ProductDetails `protobuf:"bytes,2,rep,name=productDetailsList,proto3" json:"productDetailsList"` + ProductDetailsCount uint64 `protobuf:"varint,3,opt,name=productDetailsCount,proto3" json:"productDetailsCount,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -70,6 +72,20 @@ func (m *GenesisState) GetParams() Params { return Params{} } +func (m *GenesisState) GetProductDetailsList() []ProductDetails { + if m != nil { + return m.ProductDetailsList + } + return nil +} + +func (m *GenesisState) GetProductDetailsCount() uint64 { + if m != nil { + return m.ProductDetailsCount + } + return 0 +} + func init() { proto.RegisterType((*GenesisState)(nil), "cardchain.cardchain.GenesisState") } @@ -77,21 +93,25 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/genesis.proto", fileDescriptor_c4e78aa6e403ddd4) } var fileDescriptor_c4e78aa6e403ddd4 = []byte{ - // 213 bytes of a gzipped FileDescriptorProto + // 287 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x4c, 0x4e, 0x2c, 0x4a, 0x49, 0xce, 0x48, 0xcc, 0xcc, 0xd3, 0x47, 0xb0, 0xd2, 0x53, 0xf3, 0x52, 0x8b, 0x33, 0x8b, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x84, 0xe1, 0x12, 0x7a, 0x70, 0x96, 0x94, 0x60, 0x62, 0x6e, 0x66, 0x5e, 0xbe, 0x3e, 0x98, 0x84, 0xa8, 0x93, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0x33, 0xf5, - 0x41, 0x2c, 0xa8, 0xa8, 0x02, 0x36, 0x0b, 0x0a, 0x12, 0x8b, 0x12, 0x73, 0xa1, 0xe6, 0x2b, 0xf9, - 0x71, 0xf1, 0xb8, 0x43, 0x2c, 0x0c, 0x2e, 0x49, 0x2c, 0x49, 0x15, 0xb2, 0xe3, 0x62, 0x83, 0xc8, - 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x49, 0xeb, 0x61, 0x71, 0x80, 0x5e, 0x00, 0x58, 0x89, - 0x13, 0xe7, 0x89, 0x7b, 0xf2, 0x0c, 0x2b, 0x9e, 0x6f, 0xd0, 0x62, 0x0c, 0x82, 0xea, 0x72, 0x0a, - 0x3a, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, 0x96, - 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0x8b, 0xf4, 0xcc, 0x92, 0x8c, - 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0x7d, 0x97, 0xd4, 0xe4, 0xd4, 0xbc, 0x92, 0xa2, 0xc4, 0x1c, - 0xe7, 0xc4, 0xa2, 0x14, 0xf7, 0xc4, 0xdc, 0x54, 0x24, 0xe7, 0x55, 0x20, 0xb1, 0x4b, 0x2a, 0x0b, - 0x52, 0x8b, 0x93, 0xd8, 0xc0, 0x4e, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x5c, 0x2a, - 0xef, 0x2f, 0x01, 0x00, 0x00, + 0x41, 0x2c, 0xa8, 0xa8, 0x02, 0x36, 0x0b, 0x0a, 0x12, 0x8b, 0x12, 0x73, 0xa1, 0xe6, 0x4b, 0x69, + 0x62, 0x55, 0x51, 0x94, 0x9f, 0x52, 0x9a, 0x5c, 0x12, 0x9f, 0x92, 0x5a, 0x92, 0x98, 0x99, 0x03, + 0x55, 0xaa, 0x74, 0x9b, 0x91, 0x8b, 0xc7, 0x1d, 0xe2, 0xb8, 0xe0, 0x92, 0xc4, 0x92, 0x54, 0x21, + 0x3b, 0x2e, 0x36, 0x88, 0x59, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xdc, 0x46, 0xd2, 0x7a, 0x58, 0x1c, + 0xab, 0x17, 0x00, 0x56, 0xe2, 0xc4, 0x79, 0xe2, 0x9e, 0x3c, 0xc3, 0x8a, 0xe7, 0x1b, 0xb4, 0x18, + 0x83, 0xa0, 0xba, 0x84, 0x22, 0xb9, 0x84, 0xa0, 0x36, 0xb9, 0x40, 0x2c, 0xf2, 0xc9, 0x2c, 0x2e, + 0x91, 0x60, 0x52, 0x60, 0xd6, 0xe0, 0x36, 0x52, 0xc6, 0x6e, 0x16, 0x8a, 0x72, 0x27, 0x16, 0x90, + 0x99, 0x41, 0x58, 0x0c, 0x11, 0x32, 0xe0, 0x12, 0x46, 0x15, 0x75, 0xce, 0x2f, 0xcd, 0x2b, 0x91, + 0x60, 0x56, 0x60, 0xd4, 0x60, 0x09, 0xc2, 0x26, 0xe5, 0x14, 0x74, 0xe2, 0x91, 0x1c, 0xe3, 0x85, + 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, + 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x16, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, + 0xfa, 0x2e, 0xa9, 0xc9, 0xa9, 0x79, 0x25, 0x45, 0x89, 0x39, 0xce, 0x89, 0x45, 0x29, 0xee, 0x89, + 0xb9, 0xa9, 0x48, 0xa1, 0x56, 0x81, 0xc4, 0x2e, 0xa9, 0x2c, 0x48, 0x2d, 0x4e, 0x62, 0x03, 0x07, + 0x9c, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x7f, 0xd4, 0x01, 0xe8, 0x01, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -114,6 +134,25 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.ProductDetailsCount != 0 { + i = encodeVarintGenesis(dAtA, i, uint64(m.ProductDetailsCount)) + i-- + dAtA[i] = 0x18 + } + if len(m.ProductDetailsList) > 0 { + for iNdEx := len(m.ProductDetailsList) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ProductDetailsList[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } { size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -146,6 +185,15 @@ func (m *GenesisState) Size() (n int) { _ = l l = m.Params.Size() n += 1 + l + sovGenesis(uint64(l)) + if len(m.ProductDetailsList) > 0 { + for _, e := range m.ProductDetailsList { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + if m.ProductDetailsCount != 0 { + n += 1 + sovGenesis(uint64(m.ProductDetailsCount)) + } return n } @@ -217,6 +265,59 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProductDetailsList", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProductDetailsList = append(m.ProductDetailsList, ProductDetails{}) + if err := m.ProductDetailsList[len(m.ProductDetailsList)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProductDetailsCount", wireType) + } + m.ProductDetailsCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ProductDetailsCount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/x/cardchain/types/genesis_test.go b/x/cardchain/types/genesis_test.go index ad6d812e..0fa8d038 100644 --- a/x/cardchain/types/genesis_test.go +++ b/x/cardchain/types/genesis_test.go @@ -19,13 +19,48 @@ func TestGenesisState_Validate(t *testing.T) { valid: true, }, { - desc: "valid genesis state", + desc: "valid genesis state", genState: &types.GenesisState{ + ProductDetailsList: []types.ProductDetails{ + { + Id: 0, + }, + { + Id: 1, + }, + }, + ProductDetailsCount: 2, // this line is used by starport scaffolding # types/genesis/validField }, valid: true, }, + { + desc: "duplicated productDetails", + genState: &types.GenesisState{ + ProductDetailsList: []types.ProductDetails{ + { + Id: 0, + }, + { + Id: 0, + }, + }, + }, + valid: false, + }, + { + desc: "invalid productDetails count", + genState: &types.GenesisState{ + ProductDetailsList: []types.ProductDetails{ + { + Id: 1, + }, + }, + ProductDetailsCount: 0, + }, + valid: false, + }, // this line is used by starport scaffolding # types/genesis/testcase } for _, tc := range tests { diff --git a/x/cardchain/types/image.pb.go b/x/cardchain/types/image.pb.go new file mode 100644 index 00000000..a4fe2647 --- /dev/null +++ b/x/cardchain/types/image.pb.go @@ -0,0 +1,316 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cardchain/cardchain/image.proto + +package types + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type Image struct { + Image []byte `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` +} + +func (m *Image) Reset() { *m = Image{} } +func (m *Image) String() string { return proto.CompactTextString(m) } +func (*Image) ProtoMessage() {} +func (*Image) Descriptor() ([]byte, []int) { + return fileDescriptor_b6b2c1057391213a, []int{0} +} +func (m *Image) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Image.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Image) XXX_Merge(src proto.Message) { + xxx_messageInfo_Image.Merge(m, src) +} +func (m *Image) XXX_Size() int { + return m.Size() +} +func (m *Image) XXX_DiscardUnknown() { + xxx_messageInfo_Image.DiscardUnknown(m) +} + +var xxx_messageInfo_Image proto.InternalMessageInfo + +func (m *Image) GetImage() []byte { + if m != nil { + return m.Image + } + return nil +} + +func init() { + proto.RegisterType((*Image)(nil), "cardchain.cardchain.Image") +} + +func init() { proto.RegisterFile("cardchain/cardchain/image.proto", fileDescriptor_b6b2c1057391213a) } + +var fileDescriptor_b6b2c1057391213a = []byte{ + // 150 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0x4e, 0x2c, 0x4a, + 0x49, 0xce, 0x48, 0xcc, 0xcc, 0xd3, 0x47, 0xb0, 0x32, 0x73, 0x13, 0xd3, 0x53, 0xf5, 0x0a, 0x8a, + 0xf2, 0x4b, 0xf2, 0x85, 0x84, 0xe1, 0xc2, 0x7a, 0x70, 0x96, 0x92, 0x2c, 0x17, 0xab, 0x27, 0x48, + 0x8d, 0x90, 0x08, 0x17, 0x2b, 0x58, 0xb1, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x4f, 0x10, 0x84, 0xe3, + 0x14, 0x74, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, + 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x16, 0xe9, 0x99, 0x25, + 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0x2e, 0xa9, 0xc9, 0xa9, 0x79, 0x25, 0x45, 0x89, + 0x39, 0xce, 0x89, 0x45, 0x29, 0xee, 0x89, 0xb9, 0xa9, 0x48, 0x2e, 0xa8, 0x40, 0x62, 0x97, 0x54, + 0x16, 0xa4, 0x16, 0x27, 0xb1, 0x81, 0x9d, 0x63, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xf9, 0xb4, + 0x9d, 0x6c, 0xb1, 0x00, 0x00, 0x00, +} + +func (m *Image) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Image) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Image) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Image) > 0 { + i -= len(m.Image) + copy(dAtA[i:], m.Image) + i = encodeVarintImage(dAtA, i, uint64(len(m.Image))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintImage(dAtA []byte, offset int, v uint64) int { + offset -= sovImage(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Image) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Image) + if l > 0 { + n += 1 + l + sovImage(uint64(l)) + } + return n +} + +func sovImage(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozImage(x uint64) (n int) { + return sovImage(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Image) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Image: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Image: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowImage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthImage + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthImage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Image = append(m.Image[:0], dAtA[iNdEx:postIndex]...) + if m.Image == nil { + m.Image = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipImage(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthImage + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipImage(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowImage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowImage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowImage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthImage + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupImage + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthImage + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthImage = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowImage = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupImage = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/cardchain/types/keys.go b/x/cardchain/types/keys.go index 817923e0..d0af59ea 100644 --- a/x/cardchain/types/keys.go +++ b/x/cardchain/types/keys.go @@ -18,3 +18,8 @@ var ( func KeyPrefix(p string) []byte { return []byte(p) } + +const ( + ProductDetailsKey = "ProductDetails/value/" + ProductDetailsCountKey = "ProductDetails/count/" +) diff --git a/x/cardchain/types/messages_product_details.go b/x/cardchain/types/messages_product_details.go new file mode 100644 index 00000000..c251fe2b --- /dev/null +++ b/x/cardchain/types/messages_product_details.go @@ -0,0 +1,61 @@ +package types + +import ( + errorsmod "cosmossdk.io/errors" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +var _ sdk.Msg = &MsgCreateProductDetails{} + +func NewMsgCreateProductDetails(creator string, name string, desc string) *MsgCreateProductDetails { + return &MsgCreateProductDetails{ + Creator: creator, + Name: name, + Desc: desc, + } +} + +func (msg *MsgCreateProductDetails) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} + +var _ sdk.Msg = &MsgUpdateProductDetails{} + +func NewMsgUpdateProductDetails(creator string, id uint64, name string, desc string) *MsgUpdateProductDetails { + return &MsgUpdateProductDetails{ + Id: id, + Creator: creator, + Name: name, + Desc: desc, + } +} + +func (msg *MsgUpdateProductDetails) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} + +var _ sdk.Msg = &MsgDeleteProductDetails{} + +func NewMsgDeleteProductDetails(creator string, id uint64) *MsgDeleteProductDetails { + return &MsgDeleteProductDetails{ + Id: id, + Creator: creator, + } +} + +func (msg *MsgDeleteProductDetails) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Creator) + if err != nil { + return errorsmod.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err) + } + return nil +} diff --git a/x/cardchain/types/messages_product_details_test.go b/x/cardchain/types/messages_product_details_test.go new file mode 100644 index 00000000..e42d4109 --- /dev/null +++ b/x/cardchain/types/messages_product_details_test.go @@ -0,0 +1,102 @@ +package types + +import ( + "testing" + + "github.com/DecentralCardGame/cardchain/testutil/sample" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stretchr/testify/require" +) + +func TestMsgCreateProductDetails_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgCreateProductDetails + err error + }{ + { + name: "invalid address", + msg: MsgCreateProductDetails{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgCreateProductDetails{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} + +func TestMsgUpdateProductDetails_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgUpdateProductDetails + err error + }{ + { + name: "invalid address", + msg: MsgUpdateProductDetails{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgUpdateProductDetails{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} + +func TestMsgDeleteProductDetails_ValidateBasic(t *testing.T) { + tests := []struct { + name string + msg MsgDeleteProductDetails + err error + }{ + { + name: "invalid address", + msg: MsgDeleteProductDetails{ + Creator: "invalid_address", + }, + err: sdkerrors.ErrInvalidAddress, + }, { + name: "valid address", + msg: MsgDeleteProductDetails{ + Creator: sample.AccAddress(), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := tt.msg.ValidateBasic() + if tt.err != nil { + require.ErrorIs(t, err, tt.err) + return + } + require.NoError(t, err) + }) + } +} diff --git a/x/cardchain/types/num.pb.go b/x/cardchain/types/num.pb.go index 8fdf4d8b..22b9719c 100644 --- a/x/cardchain/types/num.pb.go +++ b/x/cardchain/types/num.pb.go @@ -5,10 +5,11 @@ package types import ( fmt "fmt" - proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" + + proto "github.com/cosmos/gogoproto/proto" ) // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/cardchain/types/params.pb.go b/x/cardchain/types/params.pb.go index 419d1ea0..d9081e8f 100644 --- a/x/cardchain/types/params.pb.go +++ b/x/cardchain/types/params.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" @@ -26,6 +27,30 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // Params defines the parameters for the module. type Params struct { + VotingRightsExpirationTime int64 `protobuf:"varint,1,opt,name=votingRightsExpirationTime,proto3" json:"votingRightsExpirationTime,omitempty"` + SetSize uint64 `protobuf:"varint,2,opt,name=setSize,proto3" json:"setSize,omitempty"` + SetPrice types.Coin `protobuf:"bytes,3,opt,name=setPrice,proto3" json:"setPrice"` + ActiveSetsAmount uint64 `protobuf:"varint,4,opt,name=activeSetsAmount,proto3" json:"activeSetsAmount,omitempty"` + SetCreationFee types.Coin `protobuf:"bytes,5,opt,name=setCreationFee,proto3" json:"setCreationFee"` + CollateralDeposit types.Coin `protobuf:"bytes,6,opt,name=collateralDeposit,proto3" json:"collateralDeposit"` + WinnerReward int64 `protobuf:"varint,7,opt,name=winnerReward,proto3" json:"winnerReward,omitempty"` + HourlyFaucet types.Coin `protobuf:"bytes,9,opt,name=hourlyFaucet,proto3" json:"hourlyFaucet"` + InflationRate string `protobuf:"bytes,10,opt,name=inflationRate,proto3" json:"inflationRate,omitempty"` + RaresPerPack uint64 `protobuf:"varint,11,opt,name=raresPerPack,proto3" json:"raresPerPack,omitempty"` + CommonsPerPack uint64 `protobuf:"varint,12,opt,name=commonsPerPack,proto3" json:"commonsPerPack,omitempty"` + UnCommonsPerPack uint64 `protobuf:"varint,13,opt,name=unCommonsPerPack,proto3" json:"unCommonsPerPack,omitempty"` + TrialPeriod uint64 `protobuf:"varint,14,opt,name=trialPeriod,proto3" json:"trialPeriod,omitempty"` + GameVoteRatio int64 `protobuf:"varint,15,opt,name=gameVoteRatio,proto3" json:"gameVoteRatio,omitempty"` + CardAuctionPriceReductionPeriod int64 `protobuf:"varint,16,opt,name=cardAuctionPriceReductionPeriod,proto3" json:"cardAuctionPriceReductionPeriod,omitempty"` + AirDropValue types.Coin `protobuf:"bytes,17,opt,name=airDropValue,proto3" json:"airDropValue"` + AirDropMaxBlockHeight int64 `protobuf:"varint,18,opt,name=airDropMaxBlockHeight,proto3" json:"airDropMaxBlockHeight,omitempty"` + TrialVoteReward types.Coin `protobuf:"bytes,19,opt,name=trialVoteReward,proto3" json:"trialVoteReward"` + VotePoolFraction int64 `protobuf:"varint,20,opt,name=votePoolFraction,proto3" json:"votePoolFraction,omitempty"` + VotingRewardCap int64 `protobuf:"varint,8,opt,name=votingRewardCap,proto3" json:"votingRewardCap,omitempty"` + MatchWorkerDelay uint64 `protobuf:"varint,21,opt,name=matchWorkerDelay,proto3" json:"matchWorkerDelay,omitempty"` + RareDropRatio uint64 `protobuf:"varint,22,opt,name=rareDropRatio,proto3" json:"rareDropRatio,omitempty"` + ExceptionalDropRatio uint64 `protobuf:"varint,23,opt,name=exceptionalDropRatio,proto3" json:"exceptionalDropRatio,omitempty"` + UniqueDropRatio uint64 `protobuf:"varint,24,opt,name=uniqueDropRatio,proto3" json:"uniqueDropRatio,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -61,6 +86,174 @@ func (m *Params) XXX_DiscardUnknown() { var xxx_messageInfo_Params proto.InternalMessageInfo +func (m *Params) GetVotingRightsExpirationTime() int64 { + if m != nil { + return m.VotingRightsExpirationTime + } + return 0 +} + +func (m *Params) GetSetSize() uint64 { + if m != nil { + return m.SetSize + } + return 0 +} + +func (m *Params) GetSetPrice() types.Coin { + if m != nil { + return m.SetPrice + } + return types.Coin{} +} + +func (m *Params) GetActiveSetsAmount() uint64 { + if m != nil { + return m.ActiveSetsAmount + } + return 0 +} + +func (m *Params) GetSetCreationFee() types.Coin { + if m != nil { + return m.SetCreationFee + } + return types.Coin{} +} + +func (m *Params) GetCollateralDeposit() types.Coin { + if m != nil { + return m.CollateralDeposit + } + return types.Coin{} +} + +func (m *Params) GetWinnerReward() int64 { + if m != nil { + return m.WinnerReward + } + return 0 +} + +func (m *Params) GetHourlyFaucet() types.Coin { + if m != nil { + return m.HourlyFaucet + } + return types.Coin{} +} + +func (m *Params) GetInflationRate() string { + if m != nil { + return m.InflationRate + } + return "" +} + +func (m *Params) GetRaresPerPack() uint64 { + if m != nil { + return m.RaresPerPack + } + return 0 +} + +func (m *Params) GetCommonsPerPack() uint64 { + if m != nil { + return m.CommonsPerPack + } + return 0 +} + +func (m *Params) GetUnCommonsPerPack() uint64 { + if m != nil { + return m.UnCommonsPerPack + } + return 0 +} + +func (m *Params) GetTrialPeriod() uint64 { + if m != nil { + return m.TrialPeriod + } + return 0 +} + +func (m *Params) GetGameVoteRatio() int64 { + if m != nil { + return m.GameVoteRatio + } + return 0 +} + +func (m *Params) GetCardAuctionPriceReductionPeriod() int64 { + if m != nil { + return m.CardAuctionPriceReductionPeriod + } + return 0 +} + +func (m *Params) GetAirDropValue() types.Coin { + if m != nil { + return m.AirDropValue + } + return types.Coin{} +} + +func (m *Params) GetAirDropMaxBlockHeight() int64 { + if m != nil { + return m.AirDropMaxBlockHeight + } + return 0 +} + +func (m *Params) GetTrialVoteReward() types.Coin { + if m != nil { + return m.TrialVoteReward + } + return types.Coin{} +} + +func (m *Params) GetVotePoolFraction() int64 { + if m != nil { + return m.VotePoolFraction + } + return 0 +} + +func (m *Params) GetVotingRewardCap() int64 { + if m != nil { + return m.VotingRewardCap + } + return 0 +} + +func (m *Params) GetMatchWorkerDelay() uint64 { + if m != nil { + return m.MatchWorkerDelay + } + return 0 +} + +func (m *Params) GetRareDropRatio() uint64 { + if m != nil { + return m.RareDropRatio + } + return 0 +} + +func (m *Params) GetExceptionalDropRatio() uint64 { + if m != nil { + return m.ExceptionalDropRatio + } + return 0 +} + +func (m *Params) GetUniqueDropRatio() uint64 { + if m != nil { + return m.UniqueDropRatio + } + return 0 +} + func init() { proto.RegisterType((*Params)(nil), "cardchain.cardchain.Params") } @@ -68,19 +261,50 @@ func init() { func init() { proto.RegisterFile("cardchain/cardchain/params.proto", fileDescriptor_8843e481ee664a23) } var fileDescriptor_8843e481ee664a23 = []byte{ - // 178 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0x4e, 0x2c, 0x4a, - 0x49, 0xce, 0x48, 0xcc, 0xcc, 0xd3, 0x47, 0xb0, 0x0a, 0x12, 0x8b, 0x12, 0x73, 0x8b, 0xf5, 0x0a, - 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x84, 0xe1, 0xe2, 0x7a, 0x70, 0x96, 0x94, 0x60, 0x62, 0x6e, 0x66, - 0x5e, 0xbe, 0x3e, 0x98, 0x84, 0xa8, 0x93, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0x33, 0xf5, 0x41, - 0x2c, 0x88, 0xa8, 0x92, 0x3e, 0x17, 0x5b, 0x00, 0xd8, 0x34, 0x2b, 0xd5, 0x17, 0x0b, 0xe4, 0x19, - 0xbb, 0x9e, 0x6f, 0xd0, 0x92, 0x41, 0x58, 0x54, 0x81, 0x64, 0x29, 0x44, 0x99, 0x53, 0xd0, 0x89, - 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0xc3, - 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0x59, 0xa4, 0x67, 0x96, 0x64, 0x94, 0x26, - 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xbb, 0xa4, 0x26, 0xa7, 0xe6, 0x95, 0x14, 0x25, 0xe6, 0x38, 0x27, - 0x16, 0xa5, 0xb8, 0x27, 0xe6, 0xa6, 0xea, 0x63, 0x37, 0xb4, 0xa4, 0xb2, 0x20, 0xb5, 0x38, 0x89, - 0x0d, 0xec, 0x16, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x16, 0x3a, 0x1d, 0xed, 0x00, - 0x00, 0x00, + // 681 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcd, 0x6e, 0x13, 0x3d, + 0x14, 0xcd, 0x7c, 0xed, 0xd7, 0x1f, 0xf7, 0xdf, 0x6d, 0xc1, 0x54, 0x28, 0x8d, 0x2a, 0x40, 0x51, + 0x17, 0x19, 0xb5, 0xb0, 0x40, 0x20, 0x21, 0xb5, 0x09, 0x6d, 0x59, 0x54, 0x8a, 0xa6, 0xa8, 0x48, + 0xec, 0x6e, 0x9c, 0x4b, 0x62, 0x75, 0xc6, 0x1e, 0x3c, 0x9e, 0x34, 0xe5, 0x11, 0x58, 0xf1, 0x08, + 0x3c, 0x02, 0x8f, 0xd1, 0x65, 0x97, 0xac, 0x10, 0x6a, 0x17, 0xb0, 0xe3, 0x15, 0x90, 0x3d, 0x21, + 0x4d, 0xa6, 0x15, 0x64, 0x33, 0xf2, 0x1c, 0x9f, 0x73, 0xef, 0xb9, 0xf7, 0xda, 0x26, 0x25, 0x0e, + 0xba, 0xc9, 0xdb, 0x20, 0xa4, 0x7f, 0xbd, 0x8a, 0x41, 0x43, 0x94, 0x54, 0x62, 0xad, 0x8c, 0xa2, + 0xcb, 0x7d, 0xbc, 0xd2, 0x5f, 0xad, 0x2d, 0x41, 0x24, 0xa4, 0xf2, 0xdd, 0x37, 0xe3, 0xad, 0xad, + 0xb4, 0x54, 0x4b, 0xb9, 0xa5, 0x6f, 0x57, 0x3d, 0xb4, 0xc8, 0x55, 0x12, 0xa9, 0xc4, 0x6f, 0x40, + 0x82, 0x7e, 0x67, 0xab, 0x81, 0x06, 0xb6, 0x7c, 0xae, 0x84, 0xcc, 0xf6, 0x37, 0x7e, 0x4d, 0x93, + 0x89, 0xba, 0x4b, 0x47, 0x5f, 0x90, 0xb5, 0x8e, 0x32, 0x42, 0xb6, 0x02, 0xd1, 0x6a, 0x9b, 0xe4, + 0x65, 0x37, 0x16, 0x1a, 0x8c, 0x50, 0xf2, 0xb5, 0x88, 0x90, 0x79, 0x25, 0xaf, 0x3c, 0x16, 0xfc, + 0x85, 0x41, 0x19, 0x99, 0x4c, 0xd0, 0x1c, 0x89, 0x0f, 0xc8, 0xfe, 0x2b, 0x79, 0xe5, 0xf1, 0xe0, + 0xcf, 0x2f, 0x7d, 0x4e, 0xa6, 0x12, 0x34, 0x75, 0x2d, 0x38, 0xb2, 0xb1, 0x92, 0x57, 0x9e, 0xd9, + 0xbe, 0x57, 0xc9, 0x7c, 0x55, 0xac, 0xaf, 0x4a, 0xcf, 0x57, 0xa5, 0xaa, 0x84, 0xdc, 0x1d, 0x3f, + 0xff, 0xb6, 0x5e, 0x08, 0xfa, 0x02, 0xba, 0x49, 0x16, 0x81, 0x1b, 0xd1, 0xc1, 0x23, 0x34, 0xc9, + 0x4e, 0xa4, 0x52, 0x69, 0xd8, 0xb8, 0x8b, 0x7f, 0x03, 0xa7, 0xfb, 0x64, 0x3e, 0x41, 0x53, 0xd5, + 0xe8, 0x5c, 0xed, 0x21, 0xb2, 0xff, 0x47, 0x4b, 0x97, 0x93, 0xd1, 0x43, 0xb2, 0xc4, 0x55, 0x18, + 0x82, 0x41, 0x0d, 0x61, 0x0d, 0x63, 0x95, 0x08, 0xc3, 0x26, 0x46, 0x8b, 0x75, 0x53, 0x49, 0x37, + 0xc8, 0xec, 0xa9, 0x90, 0x12, 0x75, 0x80, 0xa7, 0xa0, 0x9b, 0x6c, 0xd2, 0x35, 0x73, 0x08, 0xa3, + 0x55, 0x32, 0xdb, 0x56, 0xa9, 0x0e, 0xcf, 0xf6, 0x20, 0xe5, 0x68, 0xd8, 0xf4, 0x68, 0xd9, 0x86, + 0x44, 0xf4, 0x01, 0x99, 0x13, 0xf2, 0x5d, 0xe8, 0xea, 0x08, 0xc0, 0x20, 0x23, 0x25, 0xaf, 0x3c, + 0x1d, 0x0c, 0x83, 0xd6, 0x8e, 0x06, 0x8d, 0x49, 0x1d, 0x75, 0x1d, 0xf8, 0x09, 0x9b, 0x71, 0xed, + 0x1c, 0xc2, 0xe8, 0x23, 0x32, 0xcf, 0x55, 0x14, 0x29, 0xd9, 0x67, 0xcd, 0x3a, 0x56, 0x0e, 0xb5, + 0xe3, 0x49, 0x65, 0x75, 0x98, 0x39, 0x97, 0x8d, 0x27, 0x8f, 0xd3, 0x12, 0x99, 0x31, 0x5a, 0x40, + 0x58, 0x47, 0x2d, 0x54, 0x93, 0xcd, 0x3b, 0xda, 0x20, 0x64, 0xfd, 0xb7, 0x20, 0xc2, 0x63, 0x65, + 0x30, 0xb0, 0x7e, 0xd9, 0x82, 0xeb, 0xd4, 0x30, 0x48, 0x0f, 0xc8, 0xba, 0xbd, 0x0a, 0x3b, 0x29, + 0xb7, 0x25, 0xb9, 0x63, 0x12, 0x60, 0xb3, 0xf7, 0x97, 0xc5, 0x5e, 0x74, 0xba, 0x7f, 0xd1, 0x6c, + 0xd3, 0x41, 0xe8, 0x9a, 0x56, 0xf1, 0x31, 0x84, 0x29, 0xb2, 0xa5, 0x11, 0x9b, 0x3e, 0x28, 0xa2, + 0x4f, 0xc8, 0x6a, 0xef, 0xff, 0x10, 0xba, 0xbb, 0xa1, 0xe2, 0x27, 0x07, 0x68, 0x2f, 0x08, 0xa3, + 0xce, 0xc4, 0xed, 0x9b, 0xf4, 0x15, 0x59, 0x70, 0x95, 0xbb, 0xb2, 0xb2, 0x63, 0xb1, 0x3c, 0x5a, + 0xf6, 0xbc, 0xce, 0xce, 0xa0, 0xa3, 0x0c, 0xd6, 0x95, 0x0a, 0xf7, 0x34, 0xb8, 0xfa, 0xd8, 0x8a, + 0xcb, 0x7d, 0x03, 0xa7, 0x65, 0xb2, 0xd0, 0xbb, 0xc3, 0x4e, 0x5b, 0x85, 0x98, 0x4d, 0x39, 0x6a, + 0x1e, 0xb6, 0x51, 0x23, 0x30, 0xbc, 0xfd, 0x46, 0xe9, 0x13, 0xd4, 0x35, 0x0c, 0xe1, 0x8c, 0xad, + 0x66, 0x93, 0xcd, 0xe3, 0x76, 0x6e, 0xf6, 0xf4, 0xd8, 0x32, 0xb3, 0xb9, 0xdd, 0x71, 0xc4, 0x61, + 0x90, 0x6e, 0x93, 0x15, 0xec, 0x72, 0x8c, 0xad, 0x11, 0x08, 0xaf, 0xc9, 0x77, 0x1d, 0xf9, 0xd6, + 0x3d, 0xeb, 0x37, 0x95, 0xe2, 0x7d, 0x3a, 0x10, 0x9b, 0x39, 0x7a, 0x1e, 0x7e, 0xf6, 0xf0, 0xe7, + 0xe7, 0x75, 0xef, 0xe3, 0x8f, 0x2f, 0x9b, 0xf7, 0xaf, 0x5f, 0xd2, 0xee, 0xc0, 0xab, 0x9a, 0x3d, + 0x73, 0xbb, 0xc1, 0xf9, 0x65, 0xd1, 0xbb, 0xb8, 0x2c, 0x7a, 0xdf, 0x2f, 0x8b, 0xde, 0xa7, 0xab, + 0x62, 0xe1, 0xe2, 0xaa, 0x58, 0xf8, 0x7a, 0x55, 0x2c, 0xbc, 0x7d, 0xda, 0x12, 0xa6, 0x9d, 0x36, + 0x2a, 0x5c, 0x45, 0x7e, 0x0d, 0x39, 0x4a, 0xa3, 0x21, 0xac, 0x82, 0x6e, 0xee, 0x43, 0x84, 0xfe, + 0xed, 0x41, 0xcd, 0x59, 0x8c, 0x49, 0x63, 0xc2, 0x3d, 0xa6, 0x8f, 0x7f, 0x07, 0x00, 0x00, 0xff, + 0xff, 0x78, 0x1e, 0x18, 0xc1, 0xce, 0x05, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -102,6 +326,78 @@ func (this *Params) Equal(that interface{}) bool { } else if this == nil { return false } + if this.VotingRightsExpirationTime != that1.VotingRightsExpirationTime { + return false + } + if this.SetSize != that1.SetSize { + return false + } + if !this.SetPrice.Equal(&that1.SetPrice) { + return false + } + if this.ActiveSetsAmount != that1.ActiveSetsAmount { + return false + } + if !this.SetCreationFee.Equal(&that1.SetCreationFee) { + return false + } + if !this.CollateralDeposit.Equal(&that1.CollateralDeposit) { + return false + } + if this.WinnerReward != that1.WinnerReward { + return false + } + if !this.HourlyFaucet.Equal(&that1.HourlyFaucet) { + return false + } + if this.InflationRate != that1.InflationRate { + return false + } + if this.RaresPerPack != that1.RaresPerPack { + return false + } + if this.CommonsPerPack != that1.CommonsPerPack { + return false + } + if this.UnCommonsPerPack != that1.UnCommonsPerPack { + return false + } + if this.TrialPeriod != that1.TrialPeriod { + return false + } + if this.GameVoteRatio != that1.GameVoteRatio { + return false + } + if this.CardAuctionPriceReductionPeriod != that1.CardAuctionPriceReductionPeriod { + return false + } + if !this.AirDropValue.Equal(&that1.AirDropValue) { + return false + } + if this.AirDropMaxBlockHeight != that1.AirDropMaxBlockHeight { + return false + } + if !this.TrialVoteReward.Equal(&that1.TrialVoteReward) { + return false + } + if this.VotePoolFraction != that1.VotePoolFraction { + return false + } + if this.VotingRewardCap != that1.VotingRewardCap { + return false + } + if this.MatchWorkerDelay != that1.MatchWorkerDelay { + return false + } + if this.RareDropRatio != that1.RareDropRatio { + return false + } + if this.ExceptionalDropRatio != that1.ExceptionalDropRatio { + return false + } + if this.UniqueDropRatio != that1.UniqueDropRatio { + return false + } return true } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -124,6 +420,176 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.UniqueDropRatio != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.UniqueDropRatio)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc0 + } + if m.ExceptionalDropRatio != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.ExceptionalDropRatio)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb8 + } + if m.RareDropRatio != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.RareDropRatio)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb0 + } + if m.MatchWorkerDelay != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.MatchWorkerDelay)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + } + if m.VotePoolFraction != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.VotePoolFraction)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa0 + } + { + size, err := m.TrialVoteReward.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + if m.AirDropMaxBlockHeight != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.AirDropMaxBlockHeight)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x90 + } + { + size, err := m.AirDropValue.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + if m.CardAuctionPriceReductionPeriod != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.CardAuctionPriceReductionPeriod)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x80 + } + if m.GameVoteRatio != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.GameVoteRatio)) + i-- + dAtA[i] = 0x78 + } + if m.TrialPeriod != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.TrialPeriod)) + i-- + dAtA[i] = 0x70 + } + if m.UnCommonsPerPack != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.UnCommonsPerPack)) + i-- + dAtA[i] = 0x68 + } + if m.CommonsPerPack != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.CommonsPerPack)) + i-- + dAtA[i] = 0x60 + } + if m.RaresPerPack != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.RaresPerPack)) + i-- + dAtA[i] = 0x58 + } + if len(m.InflationRate) > 0 { + i -= len(m.InflationRate) + copy(dAtA[i:], m.InflationRate) + i = encodeVarintParams(dAtA, i, uint64(len(m.InflationRate))) + i-- + dAtA[i] = 0x52 + } + { + size, err := m.HourlyFaucet.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + if m.VotingRewardCap != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.VotingRewardCap)) + i-- + dAtA[i] = 0x40 + } + if m.WinnerReward != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.WinnerReward)) + i-- + dAtA[i] = 0x38 + } + { + size, err := m.CollateralDeposit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + { + size, err := m.SetCreationFee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if m.ActiveSetsAmount != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.ActiveSetsAmount)) + i-- + dAtA[i] = 0x20 + } + { + size, err := m.SetPrice.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if m.SetSize != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.SetSize)) + i-- + dAtA[i] = 0x10 + } + if m.VotingRightsExpirationTime != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.VotingRightsExpirationTime)) + i-- + dAtA[i] = 0x8 + } return len(dAtA) - i, nil } @@ -144,6 +610,73 @@ func (m *Params) Size() (n int) { } var l int _ = l + if m.VotingRightsExpirationTime != 0 { + n += 1 + sovParams(uint64(m.VotingRightsExpirationTime)) + } + if m.SetSize != 0 { + n += 1 + sovParams(uint64(m.SetSize)) + } + l = m.SetPrice.Size() + n += 1 + l + sovParams(uint64(l)) + if m.ActiveSetsAmount != 0 { + n += 1 + sovParams(uint64(m.ActiveSetsAmount)) + } + l = m.SetCreationFee.Size() + n += 1 + l + sovParams(uint64(l)) + l = m.CollateralDeposit.Size() + n += 1 + l + sovParams(uint64(l)) + if m.WinnerReward != 0 { + n += 1 + sovParams(uint64(m.WinnerReward)) + } + if m.VotingRewardCap != 0 { + n += 1 + sovParams(uint64(m.VotingRewardCap)) + } + l = m.HourlyFaucet.Size() + n += 1 + l + sovParams(uint64(l)) + l = len(m.InflationRate) + if l > 0 { + n += 1 + l + sovParams(uint64(l)) + } + if m.RaresPerPack != 0 { + n += 1 + sovParams(uint64(m.RaresPerPack)) + } + if m.CommonsPerPack != 0 { + n += 1 + sovParams(uint64(m.CommonsPerPack)) + } + if m.UnCommonsPerPack != 0 { + n += 1 + sovParams(uint64(m.UnCommonsPerPack)) + } + if m.TrialPeriod != 0 { + n += 1 + sovParams(uint64(m.TrialPeriod)) + } + if m.GameVoteRatio != 0 { + n += 1 + sovParams(uint64(m.GameVoteRatio)) + } + if m.CardAuctionPriceReductionPeriod != 0 { + n += 2 + sovParams(uint64(m.CardAuctionPriceReductionPeriod)) + } + l = m.AirDropValue.Size() + n += 2 + l + sovParams(uint64(l)) + if m.AirDropMaxBlockHeight != 0 { + n += 2 + sovParams(uint64(m.AirDropMaxBlockHeight)) + } + l = m.TrialVoteReward.Size() + n += 2 + l + sovParams(uint64(l)) + if m.VotePoolFraction != 0 { + n += 2 + sovParams(uint64(m.VotePoolFraction)) + } + if m.MatchWorkerDelay != 0 { + n += 2 + sovParams(uint64(m.MatchWorkerDelay)) + } + if m.RareDropRatio != 0 { + n += 2 + sovParams(uint64(m.RareDropRatio)) + } + if m.ExceptionalDropRatio != 0 { + n += 2 + sovParams(uint64(m.ExceptionalDropRatio)) + } + if m.UniqueDropRatio != 0 { + n += 2 + sovParams(uint64(m.UniqueDropRatio)) + } return n } @@ -182,6 +715,559 @@ func (m *Params) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field VotingRightsExpirationTime", wireType) + } + m.VotingRightsExpirationTime = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.VotingRightsExpirationTime |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SetSize", wireType) + } + m.SetSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SetSize |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SetPrice", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SetPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveSetsAmount", wireType) + } + m.ActiveSetsAmount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ActiveSetsAmount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SetCreationFee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SetCreationFee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CollateralDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CollateralDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field WinnerReward", wireType) + } + m.WinnerReward = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.WinnerReward |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field VotingRewardCap", wireType) + } + m.VotingRewardCap = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.VotingRewardCap |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HourlyFaucet", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.HourlyFaucet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InflationRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.InflationRate = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RaresPerPack", wireType) + } + m.RaresPerPack = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RaresPerPack |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CommonsPerPack", wireType) + } + m.CommonsPerPack = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CommonsPerPack |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UnCommonsPerPack", wireType) + } + m.UnCommonsPerPack = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UnCommonsPerPack |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 14: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TrialPeriod", wireType) + } + m.TrialPeriod = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TrialPeriod |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 15: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GameVoteRatio", wireType) + } + m.GameVoteRatio = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GameVoteRatio |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 16: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CardAuctionPriceReductionPeriod", wireType) + } + m.CardAuctionPriceReductionPeriod = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CardAuctionPriceReductionPeriod |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AirDropValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AirDropValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 18: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AirDropMaxBlockHeight", wireType) + } + m.AirDropMaxBlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AirDropMaxBlockHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TrialVoteReward", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TrialVoteReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 20: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field VotePoolFraction", wireType) + } + m.VotePoolFraction = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.VotePoolFraction |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MatchWorkerDelay", wireType) + } + m.MatchWorkerDelay = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MatchWorkerDelay |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 22: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RareDropRatio", wireType) + } + m.RareDropRatio = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RareDropRatio |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 23: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExceptionalDropRatio", wireType) + } + m.ExceptionalDropRatio = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExceptionalDropRatio |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 24: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UniqueDropRatio", wireType) + } + m.UniqueDropRatio = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UniqueDropRatio |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipParams(dAtA[iNdEx:]) diff --git a/x/cardchain/types/product_details.pb.go b/x/cardchain/types/product_details.pb.go new file mode 100644 index 00000000..11fdabcb --- /dev/null +++ b/x/cardchain/types/product_details.pb.go @@ -0,0 +1,457 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cardchain/cardchain/product_details.proto + +package types + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type ProductDetails struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Desc string `protobuf:"bytes,3,opt,name=desc,proto3" json:"desc,omitempty"` + Creator string `protobuf:"bytes,4,opt,name=creator,proto3" json:"creator,omitempty"` +} + +func (m *ProductDetails) Reset() { *m = ProductDetails{} } +func (m *ProductDetails) String() string { return proto.CompactTextString(m) } +func (*ProductDetails) ProtoMessage() {} +func (*ProductDetails) Descriptor() ([]byte, []int) { + return fileDescriptor_6e8972558ee0ad96, []int{0} +} +func (m *ProductDetails) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProductDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProductDetails.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProductDetails) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductDetails.Merge(m, src) +} +func (m *ProductDetails) XXX_Size() int { + return m.Size() +} +func (m *ProductDetails) XXX_DiscardUnknown() { + xxx_messageInfo_ProductDetails.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductDetails proto.InternalMessageInfo + +func (m *ProductDetails) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *ProductDetails) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ProductDetails) GetDesc() string { + if m != nil { + return m.Desc + } + return "" +} + +func (m *ProductDetails) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func init() { + proto.RegisterType((*ProductDetails)(nil), "cardchain.cardchain.ProductDetails") +} + +func init() { + proto.RegisterFile("cardchain/cardchain/product_details.proto", fileDescriptor_6e8972558ee0ad96) +} + +var fileDescriptor_6e8972558ee0ad96 = []byte{ + // 209 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4c, 0x4e, 0x2c, 0x4a, + 0x49, 0xce, 0x48, 0xcc, 0xcc, 0xd3, 0x47, 0xb0, 0x0a, 0x8a, 0xf2, 0x53, 0x4a, 0x93, 0x4b, 0xe2, + 0x53, 0x52, 0x4b, 0x12, 0x33, 0x73, 0x8a, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x84, 0xe1, + 0x0a, 0xf4, 0xe0, 0x2c, 0xa5, 0x24, 0x2e, 0xbe, 0x00, 0x88, 0x6a, 0x17, 0x88, 0x62, 0x21, 0x3e, + 0x2e, 0xa6, 0xcc, 0x14, 0x09, 0x46, 0x05, 0x46, 0x0d, 0x96, 0x20, 0xa6, 0xcc, 0x14, 0x21, 0x21, + 0x2e, 0x96, 0xbc, 0xc4, 0xdc, 0x54, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x30, 0x1b, 0x24, + 0x96, 0x92, 0x5a, 0x9c, 0x2c, 0xc1, 0x0c, 0x11, 0x03, 0xb1, 0x85, 0x24, 0xb8, 0xd8, 0x93, 0x8b, + 0x52, 0x13, 0x4b, 0xf2, 0x8b, 0x24, 0x58, 0xc0, 0xc2, 0x30, 0xae, 0x53, 0xd0, 0x89, 0x47, 0x72, + 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, + 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0x59, 0xa4, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, + 0xe7, 0xe7, 0xea, 0xbb, 0xa4, 0x26, 0xa7, 0xe6, 0x95, 0x14, 0x25, 0xe6, 0x38, 0x27, 0x16, 0xa5, + 0xb8, 0x27, 0xe6, 0xa6, 0x22, 0x79, 0xa8, 0x02, 0x89, 0x5d, 0x52, 0x59, 0x90, 0x5a, 0x9c, 0xc4, + 0x06, 0xf6, 0x93, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xaf, 0x49, 0x05, 0x00, 0x01, 0x00, + 0x00, +} + +func (m *ProductDetails) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProductDetails) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProductDetails) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintProductDetails(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0x22 + } + if len(m.Desc) > 0 { + i -= len(m.Desc) + copy(dAtA[i:], m.Desc) + i = encodeVarintProductDetails(dAtA, i, uint64(len(m.Desc))) + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintProductDetails(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if m.Id != 0 { + i = encodeVarintProductDetails(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintProductDetails(dAtA []byte, offset int, v uint64) int { + offset -= sovProductDetails(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *ProductDetails) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovProductDetails(uint64(m.Id)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovProductDetails(uint64(l)) + } + l = len(m.Desc) + if l > 0 { + n += 1 + l + sovProductDetails(uint64(l)) + } + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovProductDetails(uint64(l)) + } + return n +} + +func sovProductDetails(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozProductDetails(x uint64) (n int) { + return sovProductDetails(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *ProductDetails) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProductDetails + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProductDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProductDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProductDetails + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProductDetails + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProductDetails + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProductDetails + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProductDetails + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProductDetails + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProductDetails + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Desc = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProductDetails + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthProductDetails + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProductDetails + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipProductDetails(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthProductDetails + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipProductDetails(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowProductDetails + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowProductDetails + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowProductDetails + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthProductDetails + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupProductDetails + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthProductDetails + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthProductDetails = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowProductDetails = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupProductDetails = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/cardchain/types/query.pb.go b/x/cardchain/types/query.pb.go index 6d858f55..c1e3686e 100644 --- a/x/cardchain/types/query.pb.go +++ b/x/cardchain/types/query.pb.go @@ -6,7 +6,7 @@ package types import ( context "context" fmt "fmt" - _ "github.com/cosmos/cosmos-sdk/types/query" + query "github.com/cosmos/cosmos-sdk/types/query" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" @@ -114,36 +114,237 @@ func (m *QueryParamsResponse) GetParams() Params { return Params{} } +type QueryGetProductDetailsRequest struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *QueryGetProductDetailsRequest) Reset() { *m = QueryGetProductDetailsRequest{} } +func (m *QueryGetProductDetailsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryGetProductDetailsRequest) ProtoMessage() {} +func (*QueryGetProductDetailsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{2} +} +func (m *QueryGetProductDetailsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGetProductDetailsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGetProductDetailsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGetProductDetailsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetProductDetailsRequest.Merge(m, src) +} +func (m *QueryGetProductDetailsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryGetProductDetailsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetProductDetailsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGetProductDetailsRequest proto.InternalMessageInfo + +func (m *QueryGetProductDetailsRequest) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type QueryGetProductDetailsResponse struct { + ProductDetails ProductDetails `protobuf:"bytes,1,opt,name=ProductDetails,proto3" json:"ProductDetails"` +} + +func (m *QueryGetProductDetailsResponse) Reset() { *m = QueryGetProductDetailsResponse{} } +func (m *QueryGetProductDetailsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryGetProductDetailsResponse) ProtoMessage() {} +func (*QueryGetProductDetailsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{3} +} +func (m *QueryGetProductDetailsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGetProductDetailsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGetProductDetailsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGetProductDetailsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetProductDetailsResponse.Merge(m, src) +} +func (m *QueryGetProductDetailsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryGetProductDetailsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetProductDetailsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGetProductDetailsResponse proto.InternalMessageInfo + +func (m *QueryGetProductDetailsResponse) GetProductDetails() ProductDetails { + if m != nil { + return m.ProductDetails + } + return ProductDetails{} +} + +type QueryAllProductDetailsRequest struct { + Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryAllProductDetailsRequest) Reset() { *m = QueryAllProductDetailsRequest{} } +func (m *QueryAllProductDetailsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryAllProductDetailsRequest) ProtoMessage() {} +func (*QueryAllProductDetailsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{4} +} +func (m *QueryAllProductDetailsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAllProductDetailsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAllProductDetailsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAllProductDetailsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllProductDetailsRequest.Merge(m, src) +} +func (m *QueryAllProductDetailsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryAllProductDetailsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllProductDetailsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAllProductDetailsRequest proto.InternalMessageInfo + +func (m *QueryAllProductDetailsRequest) GetPagination() *query.PageRequest { + if m != nil { + return m.Pagination + } + return nil +} + +type QueryAllProductDetailsResponse struct { + ProductDetails []ProductDetails `protobuf:"bytes,1,rep,name=ProductDetails,proto3" json:"ProductDetails"` + Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryAllProductDetailsResponse) Reset() { *m = QueryAllProductDetailsResponse{} } +func (m *QueryAllProductDetailsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAllProductDetailsResponse) ProtoMessage() {} +func (*QueryAllProductDetailsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e1bdbfeb9d7f6cfd, []int{5} +} +func (m *QueryAllProductDetailsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAllProductDetailsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAllProductDetailsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAllProductDetailsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllProductDetailsResponse.Merge(m, src) +} +func (m *QueryAllProductDetailsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryAllProductDetailsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllProductDetailsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAllProductDetailsResponse proto.InternalMessageInfo + +func (m *QueryAllProductDetailsResponse) GetProductDetails() []ProductDetails { + if m != nil { + return m.ProductDetails + } + return nil +} + +func (m *QueryAllProductDetailsResponse) GetPagination() *query.PageResponse { + if m != nil { + return m.Pagination + } + return nil +} + func init() { proto.RegisterType((*QueryParamsRequest)(nil), "cardchain.cardchain.QueryParamsRequest") proto.RegisterType((*QueryParamsResponse)(nil), "cardchain.cardchain.QueryParamsResponse") + proto.RegisterType((*QueryGetProductDetailsRequest)(nil), "cardchain.cardchain.QueryGetProductDetailsRequest") + proto.RegisterType((*QueryGetProductDetailsResponse)(nil), "cardchain.cardchain.QueryGetProductDetailsResponse") + proto.RegisterType((*QueryAllProductDetailsRequest)(nil), "cardchain.cardchain.QueryAllProductDetailsRequest") + proto.RegisterType((*QueryAllProductDetailsResponse)(nil), "cardchain.cardchain.QueryAllProductDetailsResponse") } func init() { proto.RegisterFile("cardchain/cardchain/query.proto", fileDescriptor_e1bdbfeb9d7f6cfd) } var fileDescriptor_e1bdbfeb9d7f6cfd = []byte{ - // 326 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0x4e, 0x2c, 0x4a, - 0x49, 0xce, 0x48, 0xcc, 0xcc, 0xd3, 0x47, 0xb0, 0x0a, 0x4b, 0x53, 0x8b, 0x2a, 0xf5, 0x0a, 0x8a, - 0xf2, 0x4b, 0xf2, 0x85, 0x84, 0xe1, 0xc2, 0x7a, 0x70, 0x96, 0x94, 0x60, 0x62, 0x6e, 0x66, 0x5e, - 0xbe, 0x3e, 0x98, 0x84, 0xa8, 0x93, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0x33, 0xf5, 0x41, 0x2c, - 0xa8, 0xa8, 0x4c, 0x7a, 0x7e, 0x7e, 0x7a, 0x4e, 0xaa, 0x7e, 0x62, 0x41, 0xa6, 0x7e, 0x62, 0x5e, - 0x5e, 0x7e, 0x49, 0x62, 0x49, 0x66, 0x7e, 0x5e, 0x31, 0x54, 0x56, 0x2b, 0x39, 0xbf, 0x38, 0x37, - 0xbf, 0x58, 0x3f, 0x29, 0xb1, 0x38, 0x15, 0x62, 0xa9, 0x7e, 0x99, 0x61, 0x52, 0x6a, 0x49, 0xa2, - 0xa1, 0x7e, 0x41, 0x62, 0x7a, 0x66, 0x1e, 0x58, 0x31, 0x54, 0xad, 0x02, 0x36, 0x87, 0x16, 0x24, - 0x16, 0x25, 0xe6, 0x42, 0x4d, 0x53, 0x12, 0xe1, 0x12, 0x0a, 0x04, 0x99, 0x11, 0x00, 0x16, 0x0c, - 0x4a, 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0x51, 0x0a, 0xe5, 0x12, 0x46, 0x11, 0x2d, 0x2e, 0xc8, 0xcf, - 0x2b, 0x4e, 0x15, 0xb2, 0xe3, 0x62, 0x83, 0x68, 0x96, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x36, 0x92, - 0xd6, 0xc3, 0xe2, 0x4f, 0x3d, 0x88, 0x26, 0x27, 0xce, 0x13, 0xf7, 0xe4, 0x19, 0x56, 0x3c, 0xdf, - 0xa0, 0xc5, 0x18, 0x04, 0xd5, 0x65, 0x34, 0x87, 0x91, 0x8b, 0x15, 0x6c, 0xae, 0xd0, 0x24, 0x46, - 0x2e, 0x36, 0x88, 0x3a, 0x21, 0x75, 0xac, 0x86, 0x60, 0x3a, 0x4a, 0x4a, 0x83, 0xb0, 0x42, 0x88, - 0x3b, 0x95, 0x4c, 0x9b, 0x2e, 0x3f, 0x99, 0xcc, 0xa4, 0x2f, 0xa4, 0xab, 0xef, 0x92, 0x9a, 0x9c, - 0x9a, 0x57, 0x52, 0x94, 0x98, 0xe3, 0x9c, 0x58, 0x94, 0xe2, 0x9e, 0x98, 0x9b, 0xaa, 0x8f, 0x3b, - 0x44, 0x9c, 0x82, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, - 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0xca, 0x22, 0x3d, - 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, 0x17, 0xaf, 0x91, 0x15, 0x48, 0xec, 0x92, 0xca, - 0x82, 0xd4, 0xe2, 0x24, 0x36, 0x70, 0x30, 0x1b, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x4c, 0x87, - 0x0a, 0x82, 0x33, 0x02, 0x00, 0x00, + // 531 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x41, 0x6b, 0x14, 0x31, + 0x14, 0xc7, 0x37, 0xeb, 0xba, 0x60, 0x84, 0x42, 0xd3, 0x1e, 0x64, 0xd5, 0x69, 0x19, 0xc1, 0xd6, + 0x82, 0x09, 0xdd, 0xa2, 0x14, 0xc4, 0x42, 0xb7, 0xc5, 0xbd, 0x6e, 0x07, 0xbc, 0x78, 0x91, 0xec, + 0x4c, 0x98, 0x06, 0x66, 0x92, 0xe9, 0x24, 0x2b, 0x16, 0xf1, 0xe2, 0x27, 0x10, 0xbd, 0xfa, 0x01, + 0x3c, 0xfa, 0x01, 0x8a, 0xe7, 0x1e, 0x0b, 0x5e, 0x3c, 0x89, 0xec, 0x0a, 0x7e, 0x0d, 0xd9, 0x24, + 0xb6, 0x3b, 0x75, 0x66, 0xaa, 0xf6, 0xb2, 0x3c, 0x32, 0xef, 0xbd, 0xff, 0xef, 0x9f, 0xf7, 0xb2, + 0x70, 0x29, 0xa4, 0x79, 0x14, 0xee, 0x53, 0x2e, 0xc8, 0x59, 0x74, 0x30, 0x62, 0xf9, 0x21, 0xce, + 0x72, 0xa9, 0x25, 0x5a, 0x38, 0x3d, 0xc6, 0xa7, 0x51, 0x67, 0x9e, 0xa6, 0x5c, 0x48, 0x62, 0x7e, + 0x6d, 0x5e, 0x67, 0x31, 0x96, 0xb1, 0x34, 0x21, 0x99, 0x46, 0xee, 0xf4, 0x56, 0x2c, 0x65, 0x9c, + 0x30, 0x42, 0x33, 0x4e, 0xa8, 0x10, 0x52, 0x53, 0xcd, 0xa5, 0x50, 0xee, 0xeb, 0x5a, 0x28, 0x55, + 0x2a, 0x15, 0x19, 0x52, 0xc5, 0xac, 0x28, 0x79, 0xb1, 0x3e, 0x64, 0x9a, 0xae, 0x93, 0x8c, 0xc6, + 0x5c, 0x98, 0x64, 0x97, 0xbb, 0x5c, 0x06, 0x9a, 0xd1, 0x9c, 0xa6, 0xbf, 0xbb, 0xdd, 0x2b, 0xcd, + 0xc8, 0x65, 0x34, 0x0a, 0xf5, 0xf3, 0x88, 0x69, 0xca, 0x13, 0x97, 0xea, 0x2f, 0x42, 0xb4, 0x37, + 0x95, 0x1b, 0x98, 0xfa, 0x80, 0x1d, 0x8c, 0x98, 0xd2, 0xfe, 0x53, 0xb8, 0x50, 0x38, 0x55, 0x99, + 0x14, 0x8a, 0xa1, 0x2d, 0xd8, 0xb6, 0x3a, 0x37, 0xc0, 0x32, 0x58, 0xbd, 0xde, 0xbd, 0x89, 0x4b, + 0xae, 0x04, 0xdb, 0xa2, 0xde, 0xb5, 0xe3, 0x6f, 0x4b, 0x8d, 0x8f, 0x3f, 0x3f, 0xad, 0x81, 0xc0, + 0x55, 0xf9, 0x04, 0xde, 0x36, 0x6d, 0xfb, 0x4c, 0x0f, 0x2c, 0xcd, 0xae, 0x85, 0x71, 0xba, 0x68, + 0x0e, 0x36, 0x79, 0x64, 0x9a, 0xb7, 0x82, 0x26, 0x8f, 0x7c, 0x05, 0xbd, 0xaa, 0x02, 0x87, 0xb4, + 0x07, 0xe7, 0x8a, 0x5f, 0x1c, 0xda, 0x9d, 0x72, 0xb4, 0x42, 0x6a, 0xaf, 0x35, 0x45, 0x0c, 0xce, + 0x35, 0xf0, 0x63, 0x47, 0xb9, 0x9d, 0x24, 0xe5, 0x94, 0x4f, 0x20, 0x3c, 0x1b, 0x8a, 0xd3, 0xbb, + 0x8b, 0xed, 0x04, 0xf1, 0x74, 0x82, 0xd8, 0xae, 0x8d, 0x9b, 0x20, 0x1e, 0xd0, 0x98, 0xb9, 0xda, + 0x60, 0xa6, 0xd2, 0x3f, 0x02, 0xce, 0x5e, 0x89, 0x52, 0x8d, 0xbd, 0x2b, 0x97, 0xb2, 0x87, 0xfa, + 0x05, 0xfa, 0xa6, 0xa1, 0x5f, 0xb9, 0x90, 0xde, 0xf2, 0xcc, 0xe2, 0x77, 0x3f, 0xb4, 0xe0, 0x55, + 0x83, 0x8f, 0xde, 0x01, 0xd8, 0xb6, 0x53, 0x47, 0x2b, 0xa5, 0x60, 0x7f, 0xae, 0x58, 0x67, 0xf5, + 0xe2, 0x44, 0xab, 0xe9, 0x3f, 0x78, 0xf3, 0xe5, 0xc7, 0xfb, 0x26, 0x41, 0xf7, 0xc9, 0x2e, 0x0b, + 0x99, 0xd0, 0x39, 0x4d, 0x76, 0x68, 0x1e, 0xf5, 0x69, 0xca, 0x48, 0xf5, 0x53, 0x40, 0x9f, 0xc1, + 0xf9, 0xbb, 0x43, 0xdd, 0x6a, 0xcd, 0xaa, 0x95, 0xec, 0x6c, 0xfc, 0x53, 0x8d, 0x43, 0xde, 0x31, + 0xc8, 0x8f, 0xd1, 0xa3, 0xbf, 0x45, 0x2e, 0xbe, 0x4d, 0xf2, 0x8a, 0x47, 0xaf, 0xd1, 0x11, 0x80, + 0xf3, 0xc5, 0xfe, 0xdb, 0x49, 0x52, 0xe7, 0xa1, 0x6a, 0x61, 0xeb, 0x3c, 0x54, 0xae, 0x9e, 0xbf, + 0x65, 0x3c, 0x6c, 0xa2, 0x87, 0xff, 0xe7, 0xa1, 0x17, 0x1c, 0x8f, 0x3d, 0x70, 0x32, 0xf6, 0xc0, + 0xf7, 0xb1, 0x07, 0xde, 0x4e, 0xbc, 0xc6, 0xc9, 0xc4, 0x6b, 0x7c, 0x9d, 0x78, 0x8d, 0x67, 0x9b, + 0x31, 0xd7, 0xfb, 0xa3, 0x21, 0x0e, 0x65, 0x5a, 0xdb, 0xfb, 0xe5, 0x4c, 0xac, 0x0f, 0x33, 0xa6, + 0x86, 0x6d, 0xf3, 0xa7, 0xb5, 0xf1, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xa1, 0x12, 0x63, 0x46, 0xac, + 0x05, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -160,6 +361,9 @@ const _ = grpc.SupportPackageIsVersion4 type QueryClient interface { // Parameters queries the parameters of the module. Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // Queries a list of ProductDetails items. + ProductDetails(ctx context.Context, in *QueryGetProductDetailsRequest, opts ...grpc.CallOption) (*QueryGetProductDetailsResponse, error) + ProductDetailsAll(ctx context.Context, in *QueryAllProductDetailsRequest, opts ...grpc.CallOption) (*QueryAllProductDetailsResponse, error) } type queryClient struct { @@ -179,10 +383,31 @@ func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts . return out, nil } +func (c *queryClient) ProductDetails(ctx context.Context, in *QueryGetProductDetailsRequest, opts ...grpc.CallOption) (*QueryGetProductDetailsResponse, error) { + out := new(QueryGetProductDetailsResponse) + err := c.cc.Invoke(ctx, "/cardchain.cardchain.Query/ProductDetails", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) ProductDetailsAll(ctx context.Context, in *QueryAllProductDetailsRequest, opts ...grpc.CallOption) (*QueryAllProductDetailsResponse, error) { + out := new(QueryAllProductDetailsResponse) + err := c.cc.Invoke(ctx, "/cardchain.cardchain.Query/ProductDetailsAll", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Parameters queries the parameters of the module. Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // Queries a list of ProductDetails items. + ProductDetails(context.Context, *QueryGetProductDetailsRequest) (*QueryGetProductDetailsResponse, error) + ProductDetailsAll(context.Context, *QueryAllProductDetailsRequest) (*QueryAllProductDetailsResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -192,6 +417,12 @@ type UnimplementedQueryServer struct { func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } +func (*UnimplementedQueryServer) ProductDetails(ctx context.Context, req *QueryGetProductDetailsRequest) (*QueryGetProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProductDetails not implemented") +} +func (*UnimplementedQueryServer) ProductDetailsAll(ctx context.Context, req *QueryAllProductDetailsRequest) (*QueryAllProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProductDetailsAll not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -215,6 +446,42 @@ func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } +func _Query_ProductDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetProductDetailsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ProductDetails(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cardchain.cardchain.Query/ProductDetails", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ProductDetails(ctx, req.(*QueryGetProductDetailsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_ProductDetailsAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAllProductDetailsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ProductDetailsAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cardchain.cardchain.Query/ProductDetailsAll", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ProductDetailsAll(ctx, req.(*QueryAllProductDetailsRequest)) + } + return interceptor(ctx, in, info, handler) +} + var Query_serviceDesc = _Query_serviceDesc var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "cardchain.cardchain.Query", @@ -224,6 +491,14 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "Params", Handler: _Query_Params_Handler, }, + { + MethodName: "ProductDetails", + Handler: _Query_ProductDetails_Handler, + }, + { + MethodName: "ProductDetailsAll", + Handler: _Query_ProductDetailsAll_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cardchain/cardchain/query.proto", @@ -285,6 +560,151 @@ func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *QueryGetProductDetailsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGetProductDetailsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGetProductDetailsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *QueryGetProductDetailsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGetProductDetailsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGetProductDetailsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.ProductDetails.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryAllProductDetailsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAllProductDetailsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAllProductDetailsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryAllProductDetailsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAllProductDetailsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAllProductDetailsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.ProductDetails) > 0 { + for iNdEx := len(m.ProductDetails) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ProductDetails[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -316,7 +736,62 @@ func (m *QueryParamsResponse) Size() (n int) { return n } -func sovQuery(x uint64) (n int) { +func (m *QueryGetProductDetailsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovQuery(uint64(m.Id)) + } + return n +} + +func (m *QueryGetProductDetailsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ProductDetails.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryAllProductDetailsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryAllProductDetailsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ProductDetails) > 0 { + for _, e := range m.ProductDetails { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } func sozQuery(x uint64) (n int) { @@ -455,6 +930,364 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryGetProductDetailsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGetProductDetailsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGetProductDetailsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryGetProductDetailsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGetProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGetProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProductDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ProductDetails.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryAllProductDetailsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryAllProductDetailsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAllProductDetailsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageRequest{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryAllProductDetailsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryAllProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAllProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProductDetails", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProductDetails = append(m.ProductDetails, ProductDetails{}) + if err := m.ProductDetails[len(m.ProductDetails)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageResponse{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/cardchain/types/query.pb.gw.go b/x/cardchain/types/query.pb.gw.go index cefb3ebc..7db501f8 100644 --- a/x/cardchain/types/query.pb.gw.go +++ b/x/cardchain/types/query.pb.gw.go @@ -51,6 +51,96 @@ func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshal } +func request_Query_ProductDetails_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetProductDetailsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := client.ProductDetails(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_ProductDetails_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetProductDetailsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.Uint64(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + msg, err := server.ProductDetails(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_Query_ProductDetailsAll_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Query_ProductDetailsAll_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAllProductDetailsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_ProductDetailsAll_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ProductDetailsAll(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_ProductDetailsAll_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAllProductDetailsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_ProductDetailsAll_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ProductDetailsAll(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -80,6 +170,52 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_ProductDetails_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_ProductDetails_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ProductDetails_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_ProductDetailsAll_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_ProductDetailsAll_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ProductDetailsAll_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -141,13 +277,61 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_ProductDetails_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_ProductDetails_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ProductDetails_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_ProductDetailsAll_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_ProductDetailsAll_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_ProductDetailsAll_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } var ( pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 1, 2, 2}, []string{"DecentralCardGame", "cardchain", "params"}, "", runtime.AssumeColonVerbOpt(false))) + + pattern_Query_ProductDetails_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"DecentralCardGame", "cardchain", "product_details", "id"}, "", runtime.AssumeColonVerbOpt(false))) + + pattern_Query_ProductDetailsAll_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 1, 2, 2}, []string{"DecentralCardGame", "cardchain", "product_details"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( forward_Query_Params_0 = runtime.ForwardResponseMessage + + forward_Query_ProductDetails_0 = runtime.ForwardResponseMessage + + forward_Query_ProductDetailsAll_0 = runtime.ForwardResponseMessage ) diff --git a/x/cardchain/types/running_average.pb.go b/x/cardchain/types/running_average.pb.go new file mode 100644 index 00000000..21f80b8f --- /dev/null +++ b/x/cardchain/types/running_average.pb.go @@ -0,0 +1,376 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cardchain/cardchain/running_average.proto + +package types + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type RunningAverage struct { + Arr []int64 `protobuf:"varint,1,rep,packed,name=arr,proto3" json:"arr,omitempty"` +} + +func (m *RunningAverage) Reset() { *m = RunningAverage{} } +func (m *RunningAverage) String() string { return proto.CompactTextString(m) } +func (*RunningAverage) ProtoMessage() {} +func (*RunningAverage) Descriptor() ([]byte, []int) { + return fileDescriptor_a520f579564035a6, []int{0} +} +func (m *RunningAverage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RunningAverage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RunningAverage.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RunningAverage) XXX_Merge(src proto.Message) { + xxx_messageInfo_RunningAverage.Merge(m, src) +} +func (m *RunningAverage) XXX_Size() int { + return m.Size() +} +func (m *RunningAverage) XXX_DiscardUnknown() { + xxx_messageInfo_RunningAverage.DiscardUnknown(m) +} + +var xxx_messageInfo_RunningAverage proto.InternalMessageInfo + +func (m *RunningAverage) GetArr() []int64 { + if m != nil { + return m.Arr + } + return nil +} + +func init() { + proto.RegisterType((*RunningAverage)(nil), "cardchain.cardchain.RunningAverage") +} + +func init() { + proto.RegisterFile("cardchain/cardchain/running_average.proto", fileDescriptor_a520f579564035a6) +} + +var fileDescriptor_a520f579564035a6 = []byte{ + // 164 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4c, 0x4e, 0x2c, 0x4a, + 0x49, 0xce, 0x48, 0xcc, 0xcc, 0xd3, 0x47, 0xb0, 0x8a, 0x4a, 0xf3, 0xf2, 0x32, 0xf3, 0xd2, 0xe3, + 0x13, 0xcb, 0x52, 0x8b, 0x12, 0xd3, 0x53, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x84, 0xe1, + 0x0a, 0xf4, 0xe0, 0x2c, 0x25, 0x25, 0x2e, 0xbe, 0x20, 0x88, 0x6a, 0x47, 0x88, 0x62, 0x21, 0x01, + 0x2e, 0xe6, 0xc4, 0xa2, 0x22, 0x09, 0x46, 0x05, 0x66, 0x0d, 0xe6, 0x20, 0x10, 0xd3, 0x29, 0xe8, + 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, + 0xe1, 0xc2, 0x63, 0x39, 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0xa2, 0x2c, 0xd2, 0x33, 0x4b, 0x32, 0x4a, + 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x5d, 0x52, 0x93, 0x53, 0xf3, 0x4a, 0x8a, 0x12, 0x73, 0x9c, + 0x13, 0x8b, 0x52, 0xdc, 0x13, 0x73, 0x53, 0x91, 0x1c, 0x54, 0x81, 0xc4, 0x2e, 0xa9, 0x2c, 0x48, + 0x2d, 0x4e, 0x62, 0x03, 0xbb, 0xc9, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x90, 0xa5, 0xa6, + 0xc0, 0x00, 0x00, 0x00, +} + +func (m *RunningAverage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RunningAverage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RunningAverage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Arr) > 0 { + dAtA2 := make([]byte, len(m.Arr)*10) + var j1 int + for _, num1 := range m.Arr { + num := uint64(num1) + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintRunningAverage(dAtA, i, uint64(j1)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintRunningAverage(dAtA []byte, offset int, v uint64) int { + offset -= sovRunningAverage(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *RunningAverage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Arr) > 0 { + l = 0 + for _, e := range m.Arr { + l += sovRunningAverage(uint64(e)) + } + n += 1 + sovRunningAverage(uint64(l)) + l + } + return n +} + +func sovRunningAverage(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozRunningAverage(x uint64) (n int) { + return sovRunningAverage(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *RunningAverage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRunningAverage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RunningAverage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RunningAverage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 0 { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRunningAverage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Arr = append(m.Arr, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRunningAverage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthRunningAverage + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthRunningAverage + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Arr) == 0 { + m.Arr = make([]int64, 0, elementCount) + } + for iNdEx < postIndex { + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRunningAverage + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Arr = append(m.Arr, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Arr", wireType) + } + default: + iNdEx = preIndex + skippy, err := skipRunningAverage(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRunningAverage + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipRunningAverage(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRunningAverage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRunningAverage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRunningAverage + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthRunningAverage + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupRunningAverage + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthRunningAverage + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthRunningAverage = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowRunningAverage = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupRunningAverage = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/cardchain/types/sell_offer.pb.go b/x/cardchain/types/sell_offer.pb.go new file mode 100644 index 00000000..32a2be10 --- /dev/null +++ b/x/cardchain/types/sell_offer.pb.go @@ -0,0 +1,532 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cardchain/cardchain/sell_offer.proto + +package types + +import ( + fmt "fmt" + types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type SellOfferStatus int32 + +const ( + SellOfferStatus_open SellOfferStatus = 0 + SellOfferStatus_sold SellOfferStatus = 1 + SellOfferStatus_removed SellOfferStatus = 2 +) + +var SellOfferStatus_name = map[int32]string{ + 0: "open", + 1: "sold", + 2: "removed", +} + +var SellOfferStatus_value = map[string]int32{ + "open": 0, + "sold": 1, + "removed": 2, +} + +func (x SellOfferStatus) String() string { + return proto.EnumName(SellOfferStatus_name, int32(x)) +} + +func (SellOfferStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_18dbd9a8240e28bf, []int{0} +} + +type SellOffer struct { + Seller string `protobuf:"bytes,1,opt,name=seller,proto3" json:"seller,omitempty"` + Buyer string `protobuf:"bytes,2,opt,name=buyer,proto3" json:"buyer,omitempty"` + Card uint64 `protobuf:"varint,3,opt,name=card,proto3" json:"card,omitempty"` + Price types.Coin `protobuf:"bytes,4,opt,name=price,proto3" json:"price"` + Status SellOfferStatus `protobuf:"varint,5,opt,name=status,proto3,enum=cardchain.cardchain.SellOfferStatus" json:"status,omitempty"` +} + +func (m *SellOffer) Reset() { *m = SellOffer{} } +func (m *SellOffer) String() string { return proto.CompactTextString(m) } +func (*SellOffer) ProtoMessage() {} +func (*SellOffer) Descriptor() ([]byte, []int) { + return fileDescriptor_18dbd9a8240e28bf, []int{0} +} +func (m *SellOffer) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SellOffer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SellOffer.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SellOffer) XXX_Merge(src proto.Message) { + xxx_messageInfo_SellOffer.Merge(m, src) +} +func (m *SellOffer) XXX_Size() int { + return m.Size() +} +func (m *SellOffer) XXX_DiscardUnknown() { + xxx_messageInfo_SellOffer.DiscardUnknown(m) +} + +var xxx_messageInfo_SellOffer proto.InternalMessageInfo + +func (m *SellOffer) GetSeller() string { + if m != nil { + return m.Seller + } + return "" +} + +func (m *SellOffer) GetBuyer() string { + if m != nil { + return m.Buyer + } + return "" +} + +func (m *SellOffer) GetCard() uint64 { + if m != nil { + return m.Card + } + return 0 +} + +func (m *SellOffer) GetPrice() types.Coin { + if m != nil { + return m.Price + } + return types.Coin{} +} + +func (m *SellOffer) GetStatus() SellOfferStatus { + if m != nil { + return m.Status + } + return SellOfferStatus_open +} + +func init() { + proto.RegisterEnum("cardchain.cardchain.SellOfferStatus", SellOfferStatus_name, SellOfferStatus_value) + proto.RegisterType((*SellOffer)(nil), "cardchain.cardchain.SellOffer") +} + +func init() { + proto.RegisterFile("cardchain/cardchain/sell_offer.proto", fileDescriptor_18dbd9a8240e28bf) +} + +var fileDescriptor_18dbd9a8240e28bf = []byte{ + // 330 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0x3f, 0x4f, 0xc2, 0x40, + 0x18, 0xc6, 0x7b, 0x58, 0x50, 0x8e, 0x44, 0xc9, 0x49, 0x4c, 0x65, 0x38, 0x1b, 0xc3, 0xd0, 0x38, + 0x5c, 0x03, 0xc6, 0xc4, 0xc1, 0x09, 0x4c, 0x1c, 0x4d, 0xca, 0xe6, 0x62, 0xae, 0xd7, 0x17, 0x68, + 0xd2, 0xf6, 0x9a, 0xbb, 0x83, 0xc8, 0xb7, 0xf0, 0x33, 0x39, 0x31, 0x32, 0x3a, 0x19, 0x03, 0x5f, + 0xc4, 0xb4, 0x25, 0x48, 0x8c, 0xdb, 0xef, 0xed, 0xf3, 0xf4, 0x7e, 0xf7, 0x07, 0xf7, 0x04, 0x57, + 0x91, 0x98, 0xf1, 0x38, 0xf3, 0x7f, 0x49, 0x43, 0x92, 0xbc, 0xca, 0xc9, 0x04, 0x14, 0xcb, 0x95, + 0x34, 0x92, 0x9c, 0xef, 0x33, 0xb6, 0xa7, 0x6e, 0x67, 0x2a, 0xa7, 0xb2, 0xcc, 0xfd, 0x82, 0xaa, + 0x6a, 0x97, 0x0a, 0xa9, 0x53, 0xa9, 0xfd, 0x90, 0x6b, 0xf0, 0x17, 0xfd, 0x10, 0x0c, 0xef, 0xfb, + 0x42, 0xc6, 0x59, 0x95, 0x5f, 0x7f, 0x20, 0xdc, 0x1c, 0x43, 0x92, 0x3c, 0x17, 0xcb, 0x93, 0x0b, + 0xdc, 0x28, 0x64, 0xa0, 0x1c, 0xe4, 0x22, 0xaf, 0x19, 0xec, 0x26, 0xd2, 0xc1, 0xf5, 0x70, 0xbe, + 0x04, 0xe5, 0xd4, 0xca, 0xcf, 0xd5, 0x40, 0x08, 0xb6, 0x0b, 0xbd, 0x73, 0xe4, 0x22, 0xcf, 0x0e, + 0x4a, 0x26, 0x77, 0xb8, 0x9e, 0xab, 0x58, 0x80, 0x63, 0xbb, 0xc8, 0x6b, 0x0d, 0x2e, 0x59, 0xe5, + 0x67, 0x85, 0x9f, 0xed, 0xfc, 0x6c, 0x24, 0xe3, 0x6c, 0x68, 0xaf, 0xbe, 0xae, 0xac, 0xa0, 0x6a, + 0x93, 0x07, 0xdc, 0xd0, 0x86, 0x9b, 0xb9, 0x76, 0xea, 0x2e, 0xf2, 0x4e, 0x07, 0x3d, 0xf6, 0xcf, + 0x11, 0xd9, 0x7e, 0xa3, 0xe3, 0xb2, 0x1b, 0xec, 0xfe, 0xb9, 0x19, 0xe0, 0xb3, 0x3f, 0x11, 0x39, + 0xc1, 0xb6, 0xcc, 0x21, 0x6b, 0x5b, 0x05, 0x69, 0x99, 0x44, 0x6d, 0x44, 0x5a, 0xf8, 0x58, 0x41, + 0x2a, 0x17, 0x10, 0xb5, 0x6b, 0xc3, 0x60, 0xb5, 0xa1, 0x68, 0xbd, 0xa1, 0xe8, 0x7b, 0x43, 0xd1, + 0xfb, 0x96, 0x5a, 0xeb, 0x2d, 0xb5, 0x3e, 0xb7, 0xd4, 0x7a, 0xb9, 0x9f, 0xc6, 0x66, 0x36, 0x0f, + 0x99, 0x90, 0xa9, 0xff, 0x08, 0x02, 0x32, 0xa3, 0x78, 0x32, 0xe2, 0x2a, 0x7a, 0xe2, 0x29, 0x1c, + 0x3c, 0xcb, 0xdb, 0x01, 0x9b, 0x65, 0x0e, 0x3a, 0x6c, 0x94, 0x77, 0x7a, 0xfb, 0x13, 0x00, 0x00, + 0xff, 0xff, 0x07, 0xeb, 0x06, 0xee, 0xc6, 0x01, 0x00, 0x00, +} + +func (m *SellOffer) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SellOffer) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SellOffer) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Status != 0 { + i = encodeVarintSellOffer(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x28 + } + { + size, err := m.Price.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSellOffer(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if m.Card != 0 { + i = encodeVarintSellOffer(dAtA, i, uint64(m.Card)) + i-- + dAtA[i] = 0x18 + } + if len(m.Buyer) > 0 { + i -= len(m.Buyer) + copy(dAtA[i:], m.Buyer) + i = encodeVarintSellOffer(dAtA, i, uint64(len(m.Buyer))) + i-- + dAtA[i] = 0x12 + } + if len(m.Seller) > 0 { + i -= len(m.Seller) + copy(dAtA[i:], m.Seller) + i = encodeVarintSellOffer(dAtA, i, uint64(len(m.Seller))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintSellOffer(dAtA []byte, offset int, v uint64) int { + offset -= sovSellOffer(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *SellOffer) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Seller) + if l > 0 { + n += 1 + l + sovSellOffer(uint64(l)) + } + l = len(m.Buyer) + if l > 0 { + n += 1 + l + sovSellOffer(uint64(l)) + } + if m.Card != 0 { + n += 1 + sovSellOffer(uint64(m.Card)) + } + l = m.Price.Size() + n += 1 + l + sovSellOffer(uint64(l)) + if m.Status != 0 { + n += 1 + sovSellOffer(uint64(m.Status)) + } + return n +} + +func sovSellOffer(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozSellOffer(x uint64) (n int) { + return sovSellOffer(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *SellOffer) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSellOffer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SellOffer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SellOffer: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Seller", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSellOffer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSellOffer + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSellOffer + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Seller = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Buyer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSellOffer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSellOffer + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSellOffer + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Buyer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Card", wireType) + } + m.Card = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSellOffer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Card |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSellOffer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSellOffer + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSellOffer + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSellOffer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= SellOfferStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipSellOffer(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSellOffer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipSellOffer(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSellOffer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSellOffer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSellOffer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthSellOffer + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupSellOffer + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthSellOffer + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthSellOffer = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowSellOffer = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupSellOffer = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/cardchain/types/server.pb.go b/x/cardchain/types/server.pb.go new file mode 100644 index 00000000..ea0ae809 --- /dev/null +++ b/x/cardchain/types/server.pb.go @@ -0,0 +1,386 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cardchain/cardchain/server.proto + +package types + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type Server struct { + Reporter string `protobuf:"bytes,1,opt,name=reporter,proto3" json:"reporter,omitempty"` + InvalidReports uint64 `protobuf:"varint,2,opt,name=invalidReports,proto3" json:"invalidReports,omitempty"` + ValidReports uint64 `protobuf:"varint,3,opt,name=validReports,proto3" json:"validReports,omitempty"` +} + +func (m *Server) Reset() { *m = Server{} } +func (m *Server) String() string { return proto.CompactTextString(m) } +func (*Server) ProtoMessage() {} +func (*Server) Descriptor() ([]byte, []int) { + return fileDescriptor_0c97a602669201df, []int{0} +} +func (m *Server) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Server) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Server.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Server) XXX_Merge(src proto.Message) { + xxx_messageInfo_Server.Merge(m, src) +} +func (m *Server) XXX_Size() int { + return m.Size() +} +func (m *Server) XXX_DiscardUnknown() { + xxx_messageInfo_Server.DiscardUnknown(m) +} + +var xxx_messageInfo_Server proto.InternalMessageInfo + +func (m *Server) GetReporter() string { + if m != nil { + return m.Reporter + } + return "" +} + +func (m *Server) GetInvalidReports() uint64 { + if m != nil { + return m.InvalidReports + } + return 0 +} + +func (m *Server) GetValidReports() uint64 { + if m != nil { + return m.ValidReports + } + return 0 +} + +func init() { + proto.RegisterType((*Server)(nil), "cardchain.cardchain.Server") +} + +func init() { proto.RegisterFile("cardchain/cardchain/server.proto", fileDescriptor_0c97a602669201df) } + +var fileDescriptor_0c97a602669201df = []byte{ + // 192 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0x4e, 0x2c, 0x4a, + 0x49, 0xce, 0x48, 0xcc, 0xcc, 0xd3, 0x47, 0xb0, 0x8a, 0x53, 0x8b, 0xca, 0x52, 0x8b, 0xf4, 0x0a, + 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x84, 0xe1, 0xe2, 0x7a, 0x70, 0x96, 0x52, 0x01, 0x17, 0x5b, 0x30, + 0x58, 0x91, 0x90, 0x14, 0x17, 0x47, 0x51, 0x6a, 0x41, 0x7e, 0x51, 0x49, 0x6a, 0x91, 0x04, 0xa3, + 0x02, 0xa3, 0x06, 0x67, 0x10, 0x9c, 0x2f, 0xa4, 0xc6, 0xc5, 0x97, 0x99, 0x57, 0x96, 0x98, 0x93, + 0x99, 0x12, 0x04, 0x16, 0x2a, 0x96, 0x60, 0x52, 0x60, 0xd4, 0x60, 0x09, 0x42, 0x13, 0x15, 0x52, + 0xe2, 0xe2, 0x41, 0x51, 0xc5, 0x0c, 0x56, 0x85, 0x22, 0xe6, 0x14, 0x74, 0xe2, 0x91, 0x1c, 0xe3, + 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, + 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x16, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, + 0xb9, 0xfa, 0x2e, 0xa9, 0xc9, 0xa9, 0x79, 0x25, 0x45, 0x89, 0x39, 0xce, 0x89, 0x45, 0x29, 0xee, + 0x89, 0xb9, 0xa9, 0x48, 0xbe, 0xaa, 0x40, 0x62, 0x97, 0x54, 0x16, 0xa4, 0x16, 0x27, 0xb1, 0x81, + 0x7d, 0x68, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x59, 0xff, 0xe4, 0x9f, 0x05, 0x01, 0x00, 0x00, +} + +func (m *Server) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Server) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Server) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ValidReports != 0 { + i = encodeVarintServer(dAtA, i, uint64(m.ValidReports)) + i-- + dAtA[i] = 0x18 + } + if m.InvalidReports != 0 { + i = encodeVarintServer(dAtA, i, uint64(m.InvalidReports)) + i-- + dAtA[i] = 0x10 + } + if len(m.Reporter) > 0 { + i -= len(m.Reporter) + copy(dAtA[i:], m.Reporter) + i = encodeVarintServer(dAtA, i, uint64(len(m.Reporter))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintServer(dAtA []byte, offset int, v uint64) int { + offset -= sovServer(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Server) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Reporter) + if l > 0 { + n += 1 + l + sovServer(uint64(l)) + } + if m.InvalidReports != 0 { + n += 1 + sovServer(uint64(m.InvalidReports)) + } + if m.ValidReports != 0 { + n += 1 + sovServer(uint64(m.ValidReports)) + } + return n +} + +func sovServer(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozServer(x uint64) (n int) { + return sovServer(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Server) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowServer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Server: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Server: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reporter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowServer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthServer + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthServer + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reporter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field InvalidReports", wireType) + } + m.InvalidReports = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowServer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.InvalidReports |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidReports", wireType) + } + m.ValidReports = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowServer + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ValidReports |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipServer(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthServer + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipServer(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowServer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowServer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowServer + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthServer + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupServer + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthServer + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthServer = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowServer = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupServer = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/cardchain/types/set.pb.go b/x/cardchain/types/set.pb.go new file mode 100644 index 00000000..c3d8340f --- /dev/null +++ b/x/cardchain/types/set.pb.go @@ -0,0 +1,1642 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cardchain/cardchain/set.proto + +package types + +import ( + fmt "fmt" + types "github.com/cosmos/cosmos-sdk/types" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type CStatus int32 + +const ( + CStatus_design CStatus = 0 + CStatus_finalized CStatus = 1 + CStatus_active CStatus = 2 + CStatus_archived CStatus = 3 +) + +var CStatus_name = map[int32]string{ + 0: "design", + 1: "finalized", + 2: "active", + 3: "archived", +} + +var CStatus_value = map[string]int32{ + "design": 0, + "finalized": 1, + "active": 2, + "archived": 3, +} + +func (x CStatus) String() string { + return proto.EnumName(CStatus_name, int32(x)) +} + +func (CStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_4433f04964645edd, []int{0} +} + +type Set struct { + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Cards []uint64 `protobuf:"varint,2,rep,packed,name=cards,proto3" json:"cards,omitempty"` + Artist string `protobuf:"bytes,3,opt,name=artist,proto3" json:"artist,omitempty"` + StoryWriter string `protobuf:"bytes,4,opt,name=storyWriter,proto3" json:"storyWriter,omitempty"` + Contributors []string `protobuf:"bytes,5,rep,name=contributors,proto3" json:"contributors,omitempty"` + Story string `protobuf:"bytes,6,opt,name=story,proto3" json:"story,omitempty"` + ArtworkId uint64 `protobuf:"varint,7,opt,name=artworkId,proto3" json:"artworkId,omitempty"` + Status CStatus `protobuf:"varint,8,opt,name=status,proto3,enum=cardchain.cardchain.CStatus" json:"status,omitempty"` + TimeStamp int64 `protobuf:"varint,9,opt,name=timeStamp,proto3" json:"timeStamp,omitempty"` + ContributorsDistribution []*AddrWithQuantity `protobuf:"bytes,10,rep,name=contributorsDistribution,proto3" json:"contributorsDistribution,omitempty"` + Rarities []*InnerRarities `protobuf:"bytes,11,rep,name=Rarities,proto3" json:"Rarities,omitempty"` +} + +func (m *Set) Reset() { *m = Set{} } +func (m *Set) String() string { return proto.CompactTextString(m) } +func (*Set) ProtoMessage() {} +func (*Set) Descriptor() ([]byte, []int) { + return fileDescriptor_4433f04964645edd, []int{0} +} +func (m *Set) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Set) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Set.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Set) XXX_Merge(src proto.Message) { + xxx_messageInfo_Set.Merge(m, src) +} +func (m *Set) XXX_Size() int { + return m.Size() +} +func (m *Set) XXX_DiscardUnknown() { + xxx_messageInfo_Set.DiscardUnknown(m) +} + +var xxx_messageInfo_Set proto.InternalMessageInfo + +func (m *Set) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Set) GetCards() []uint64 { + if m != nil { + return m.Cards + } + return nil +} + +func (m *Set) GetArtist() string { + if m != nil { + return m.Artist + } + return "" +} + +func (m *Set) GetStoryWriter() string { + if m != nil { + return m.StoryWriter + } + return "" +} + +func (m *Set) GetContributors() []string { + if m != nil { + return m.Contributors + } + return nil +} + +func (m *Set) GetStory() string { + if m != nil { + return m.Story + } + return "" +} + +func (m *Set) GetArtworkId() uint64 { + if m != nil { + return m.ArtworkId + } + return 0 +} + +func (m *Set) GetStatus() CStatus { + if m != nil { + return m.Status + } + return CStatus_design +} + +func (m *Set) GetTimeStamp() int64 { + if m != nil { + return m.TimeStamp + } + return 0 +} + +func (m *Set) GetContributorsDistribution() []*AddrWithQuantity { + if m != nil { + return m.ContributorsDistribution + } + return nil +} + +func (m *Set) GetRarities() []*InnerRarities { + if m != nil { + return m.Rarities + } + return nil +} + +type InnerRarities struct { + R []uint64 `protobuf:"varint,1,rep,packed,name=R,proto3" json:"R,omitempty"` +} + +func (m *InnerRarities) Reset() { *m = InnerRarities{} } +func (m *InnerRarities) String() string { return proto.CompactTextString(m) } +func (*InnerRarities) ProtoMessage() {} +func (*InnerRarities) Descriptor() ([]byte, []int) { + return fileDescriptor_4433f04964645edd, []int{1} +} +func (m *InnerRarities) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *InnerRarities) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_InnerRarities.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *InnerRarities) XXX_Merge(src proto.Message) { + xxx_messageInfo_InnerRarities.Merge(m, src) +} +func (m *InnerRarities) XXX_Size() int { + return m.Size() +} +func (m *InnerRarities) XXX_DiscardUnknown() { + xxx_messageInfo_InnerRarities.DiscardUnknown(m) +} + +var xxx_messageInfo_InnerRarities proto.InternalMessageInfo + +func (m *InnerRarities) GetR() []uint64 { + if m != nil { + return m.R + } + return nil +} + +type OutpSet struct { + Set *Set `protobuf:"bytes,1,opt,name=set,proto3" json:"set,omitempty"` + Artwork []byte `protobuf:"bytes,2,opt,name=artwork,proto3" json:"artwork,omitempty"` +} + +func (m *OutpSet) Reset() { *m = OutpSet{} } +func (m *OutpSet) String() string { return proto.CompactTextString(m) } +func (*OutpSet) ProtoMessage() {} +func (*OutpSet) Descriptor() ([]byte, []int) { + return fileDescriptor_4433f04964645edd, []int{2} +} +func (m *OutpSet) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OutpSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OutpSet.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OutpSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutpSet.Merge(m, src) +} +func (m *OutpSet) XXX_Size() int { + return m.Size() +} +func (m *OutpSet) XXX_DiscardUnknown() { + xxx_messageInfo_OutpSet.DiscardUnknown(m) +} + +var xxx_messageInfo_OutpSet proto.InternalMessageInfo + +func (m *OutpSet) GetSet() *Set { + if m != nil { + return m.Set + } + return nil +} + +func (m *OutpSet) GetArtwork() []byte { + if m != nil { + return m.Artwork + } + return nil +} + +type AddrWithQuantity struct { + Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` + Q uint32 `protobuf:"varint,2,opt,name=q,proto3" json:"q,omitempty"` + Payment *types.Coin `protobuf:"bytes,3,opt,name=payment,proto3" json:"payment,omitempty"` +} + +func (m *AddrWithQuantity) Reset() { *m = AddrWithQuantity{} } +func (m *AddrWithQuantity) String() string { return proto.CompactTextString(m) } +func (*AddrWithQuantity) ProtoMessage() {} +func (*AddrWithQuantity) Descriptor() ([]byte, []int) { + return fileDescriptor_4433f04964645edd, []int{3} +} +func (m *AddrWithQuantity) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddrWithQuantity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddrWithQuantity.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddrWithQuantity) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddrWithQuantity.Merge(m, src) +} +func (m *AddrWithQuantity) XXX_Size() int { + return m.Size() +} +func (m *AddrWithQuantity) XXX_DiscardUnknown() { + xxx_messageInfo_AddrWithQuantity.DiscardUnknown(m) +} + +var xxx_messageInfo_AddrWithQuantity proto.InternalMessageInfo + +func (m *AddrWithQuantity) GetAddr() string { + if m != nil { + return m.Addr + } + return "" +} + +func (m *AddrWithQuantity) GetQ() uint32 { + if m != nil { + return m.Q + } + return 0 +} + +func (m *AddrWithQuantity) GetPayment() *types.Coin { + if m != nil { + return m.Payment + } + return nil +} + +func init() { + proto.RegisterEnum("cardchain.cardchain.CStatus", CStatus_name, CStatus_value) + proto.RegisterType((*Set)(nil), "cardchain.cardchain.Set") + proto.RegisterType((*InnerRarities)(nil), "cardchain.cardchain.InnerRarities") + proto.RegisterType((*OutpSet)(nil), "cardchain.cardchain.OutpSet") + proto.RegisterType((*AddrWithQuantity)(nil), "cardchain.cardchain.AddrWithQuantity") +} + +func init() { proto.RegisterFile("cardchain/cardchain/set.proto", fileDescriptor_4433f04964645edd) } + +var fileDescriptor_4433f04964645edd = []byte{ + // 533 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x53, 0xcd, 0x6e, 0x13, 0x31, + 0x10, 0x8e, 0xb3, 0x69, 0x7e, 0x26, 0x09, 0x8a, 0x0c, 0x42, 0x06, 0xb5, 0xab, 0xd5, 0x4a, 0x48, + 0xab, 0x1e, 0x36, 0x6a, 0xca, 0x81, 0x53, 0x25, 0x48, 0x25, 0xd4, 0x53, 0x85, 0x73, 0xa8, 0xc4, + 0xcd, 0xd9, 0x35, 0x8d, 0x45, 0xd7, 0x4e, 0xed, 0x49, 0x20, 0x3c, 0x05, 0x8f, 0xc3, 0x23, 0x70, + 0xec, 0x91, 0x23, 0x4a, 0x5e, 0x04, 0xed, 0x6e, 0xfe, 0x8a, 0xd2, 0xdb, 0x37, 0x33, 0xdf, 0x7c, + 0x63, 0x7b, 0x3e, 0xc3, 0x49, 0x22, 0x6c, 0x9a, 0x4c, 0x84, 0xd2, 0xfd, 0x1d, 0x72, 0x12, 0xe3, + 0xa9, 0x35, 0x68, 0xe8, 0xf3, 0x6d, 0x32, 0xde, 0xa2, 0xd7, 0x7e, 0x62, 0x5c, 0x66, 0x5c, 0x7f, + 0x2c, 0x9c, 0xec, 0xcf, 0xcf, 0xc6, 0x12, 0xc5, 0x59, 0x3f, 0x31, 0x4a, 0x97, 0x4d, 0xe1, 0x2f, + 0x0f, 0xbc, 0x91, 0x44, 0x4a, 0xa1, 0xa6, 0x45, 0x26, 0x19, 0x09, 0x48, 0xd4, 0xe2, 0x05, 0xa6, + 0x2f, 0xe0, 0x28, 0x17, 0x72, 0xac, 0x1a, 0x78, 0x51, 0x8d, 0x97, 0x01, 0x7d, 0x09, 0x75, 0x61, + 0x51, 0x39, 0x64, 0x5e, 0xc1, 0x5d, 0x47, 0x34, 0x80, 0xb6, 0x43, 0x63, 0x17, 0x37, 0x56, 0xa1, + 0xb4, 0xac, 0x56, 0x14, 0xf7, 0x53, 0x34, 0x84, 0x4e, 0x62, 0x34, 0x5a, 0x35, 0x9e, 0xa1, 0xb1, + 0x8e, 0x1d, 0x05, 0x5e, 0xd4, 0xe2, 0x8f, 0x72, 0xf9, 0xcc, 0xa2, 0x85, 0xd5, 0x8b, 0xfe, 0x32, + 0xa0, 0xc7, 0xd0, 0x12, 0x16, 0xbf, 0x19, 0xfb, 0xf5, 0x2a, 0x65, 0x8d, 0x80, 0x44, 0x35, 0xbe, + 0x4b, 0xd0, 0xb7, 0x50, 0x77, 0x28, 0x70, 0xe6, 0x58, 0x33, 0x20, 0xd1, 0xb3, 0xc1, 0x71, 0x7c, + 0xe0, 0x25, 0xe2, 0xe1, 0xa8, 0xe0, 0xf0, 0x35, 0x37, 0xd7, 0x44, 0x95, 0xc9, 0x11, 0x8a, 0x6c, + 0xca, 0x5a, 0x01, 0x89, 0x3c, 0xbe, 0x4b, 0x50, 0x01, 0x6c, 0xff, 0x5c, 0x97, 0xca, 0x95, 0x58, + 0x19, 0xcd, 0x20, 0xf0, 0xa2, 0xf6, 0xe0, 0xcd, 0xc1, 0x29, 0xef, 0xd3, 0xd4, 0xde, 0x28, 0x9c, + 0x7c, 0x9a, 0x09, 0x8d, 0x0a, 0x17, 0xfc, 0x49, 0x19, 0x7a, 0x01, 0x4d, 0x2e, 0xac, 0x42, 0x25, + 0x1d, 0x6b, 0x17, 0x92, 0xe1, 0x41, 0xc9, 0x2b, 0xad, 0xa5, 0xdd, 0x30, 0xf9, 0xb6, 0x27, 0x3c, + 0x81, 0xee, 0xa3, 0x12, 0xed, 0x00, 0xe1, 0x8c, 0x14, 0xbb, 0x22, 0x3c, 0xbc, 0x86, 0xc6, 0xf5, + 0x0c, 0xa7, 0xf9, 0x72, 0x4f, 0xc1, 0x73, 0x12, 0x8b, 0xdd, 0xb6, 0x07, 0xec, 0xe0, 0x90, 0x91, + 0x44, 0x9e, 0x93, 0x28, 0x83, 0xc6, 0xfa, 0x65, 0x59, 0x35, 0x20, 0x51, 0x87, 0x6f, 0xc2, 0x50, + 0x41, 0xef, 0xff, 0xdb, 0xe5, 0xb6, 0x11, 0x69, 0x6a, 0x37, 0xb6, 0xc9, 0x71, 0x7e, 0x8c, 0xfb, + 0xa2, 0xb7, 0xcb, 0xc9, 0x3d, 0x3d, 0x87, 0xc6, 0x54, 0x2c, 0x32, 0xa9, 0x4b, 0xbf, 0xb4, 0x07, + 0xaf, 0xe2, 0xd2, 0x92, 0x71, 0x6e, 0xc9, 0x78, 0x6d, 0xc9, 0x78, 0x68, 0x94, 0xe6, 0x1b, 0xe6, + 0xe9, 0x05, 0x34, 0xd6, 0xeb, 0xa2, 0x00, 0xf5, 0x54, 0x3a, 0x75, 0xab, 0x7b, 0x15, 0xda, 0x85, + 0xd6, 0x17, 0xa5, 0xc5, 0x9d, 0xfa, 0x21, 0xd3, 0x1e, 0xc9, 0x4b, 0x22, 0x41, 0x35, 0x97, 0xbd, + 0x2a, 0xed, 0x40, 0x53, 0xd8, 0x64, 0xa2, 0xe6, 0x32, 0xed, 0x79, 0x1f, 0xf8, 0xef, 0xa5, 0x4f, + 0x1e, 0x96, 0x3e, 0xf9, 0xbb, 0xf4, 0xc9, 0xcf, 0x95, 0x5f, 0x79, 0x58, 0xf9, 0x95, 0x3f, 0x2b, + 0xbf, 0xf2, 0xf9, 0xdd, 0xad, 0xc2, 0xc9, 0x6c, 0x1c, 0x27, 0x26, 0xeb, 0x5f, 0xca, 0x44, 0x6a, + 0xb4, 0xe2, 0x6e, 0x28, 0x6c, 0xfa, 0x51, 0x64, 0x72, 0xef, 0x5b, 0x7d, 0xdf, 0xc3, 0xb8, 0x98, + 0x4a, 0x37, 0xae, 0x17, 0x1f, 0xe6, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x49, 0xb7, 0x11, + 0x92, 0x86, 0x03, 0x00, 0x00, +} + +func (m *Set) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Set) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Set) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Rarities) > 0 { + for iNdEx := len(m.Rarities) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Rarities[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSet(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } + } + if len(m.ContributorsDistribution) > 0 { + for iNdEx := len(m.ContributorsDistribution) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ContributorsDistribution[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSet(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + } + if m.TimeStamp != 0 { + i = encodeVarintSet(dAtA, i, uint64(m.TimeStamp)) + i-- + dAtA[i] = 0x48 + } + if m.Status != 0 { + i = encodeVarintSet(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x40 + } + if m.ArtworkId != 0 { + i = encodeVarintSet(dAtA, i, uint64(m.ArtworkId)) + i-- + dAtA[i] = 0x38 + } + if len(m.Story) > 0 { + i -= len(m.Story) + copy(dAtA[i:], m.Story) + i = encodeVarintSet(dAtA, i, uint64(len(m.Story))) + i-- + dAtA[i] = 0x32 + } + if len(m.Contributors) > 0 { + for iNdEx := len(m.Contributors) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Contributors[iNdEx]) + copy(dAtA[i:], m.Contributors[iNdEx]) + i = encodeVarintSet(dAtA, i, uint64(len(m.Contributors[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if len(m.StoryWriter) > 0 { + i -= len(m.StoryWriter) + copy(dAtA[i:], m.StoryWriter) + i = encodeVarintSet(dAtA, i, uint64(len(m.StoryWriter))) + i-- + dAtA[i] = 0x22 + } + if len(m.Artist) > 0 { + i -= len(m.Artist) + copy(dAtA[i:], m.Artist) + i = encodeVarintSet(dAtA, i, uint64(len(m.Artist))) + i-- + dAtA[i] = 0x1a + } + if len(m.Cards) > 0 { + dAtA2 := make([]byte, len(m.Cards)*10) + var j1 int + for _, num := range m.Cards { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintSet(dAtA, i, uint64(j1)) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintSet(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *InnerRarities) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *InnerRarities) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *InnerRarities) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.R) > 0 { + dAtA4 := make([]byte, len(m.R)*10) + var j3 int + for _, num := range m.R { + for num >= 1<<7 { + dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j3++ + } + dAtA4[j3] = uint8(num) + j3++ + } + i -= j3 + copy(dAtA[i:], dAtA4[:j3]) + i = encodeVarintSet(dAtA, i, uint64(j3)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *OutpSet) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OutpSet) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OutpSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Artwork) > 0 { + i -= len(m.Artwork) + copy(dAtA[i:], m.Artwork) + i = encodeVarintSet(dAtA, i, uint64(len(m.Artwork))) + i-- + dAtA[i] = 0x12 + } + if m.Set != nil { + { + size, err := m.Set.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSet(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AddrWithQuantity) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AddrWithQuantity) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddrWithQuantity) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Payment != nil { + { + size, err := m.Payment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintSet(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Q != 0 { + i = encodeVarintSet(dAtA, i, uint64(m.Q)) + i-- + dAtA[i] = 0x10 + } + if len(m.Addr) > 0 { + i -= len(m.Addr) + copy(dAtA[i:], m.Addr) + i = encodeVarintSet(dAtA, i, uint64(len(m.Addr))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintSet(dAtA []byte, offset int, v uint64) int { + offset -= sovSet(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Set) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + if l > 0 { + n += 1 + l + sovSet(uint64(l)) + } + if len(m.Cards) > 0 { + l = 0 + for _, e := range m.Cards { + l += sovSet(uint64(e)) + } + n += 1 + sovSet(uint64(l)) + l + } + l = len(m.Artist) + if l > 0 { + n += 1 + l + sovSet(uint64(l)) + } + l = len(m.StoryWriter) + if l > 0 { + n += 1 + l + sovSet(uint64(l)) + } + if len(m.Contributors) > 0 { + for _, s := range m.Contributors { + l = len(s) + n += 1 + l + sovSet(uint64(l)) + } + } + l = len(m.Story) + if l > 0 { + n += 1 + l + sovSet(uint64(l)) + } + if m.ArtworkId != 0 { + n += 1 + sovSet(uint64(m.ArtworkId)) + } + if m.Status != 0 { + n += 1 + sovSet(uint64(m.Status)) + } + if m.TimeStamp != 0 { + n += 1 + sovSet(uint64(m.TimeStamp)) + } + if len(m.ContributorsDistribution) > 0 { + for _, e := range m.ContributorsDistribution { + l = e.Size() + n += 1 + l + sovSet(uint64(l)) + } + } + if len(m.Rarities) > 0 { + for _, e := range m.Rarities { + l = e.Size() + n += 1 + l + sovSet(uint64(l)) + } + } + return n +} + +func (m *InnerRarities) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.R) > 0 { + l = 0 + for _, e := range m.R { + l += sovSet(uint64(e)) + } + n += 1 + sovSet(uint64(l)) + l + } + return n +} + +func (m *OutpSet) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Set != nil { + l = m.Set.Size() + n += 1 + l + sovSet(uint64(l)) + } + l = len(m.Artwork) + if l > 0 { + n += 1 + l + sovSet(uint64(l)) + } + return n +} + +func (m *AddrWithQuantity) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Addr) + if l > 0 { + n += 1 + l + sovSet(uint64(l)) + } + if m.Q != 0 { + n += 1 + sovSet(uint64(m.Q)) + } + if m.Payment != nil { + l = m.Payment.Size() + n += 1 + l + sovSet(uint64(l)) + } + return n +} + +func sovSet(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozSet(x uint64) (n int) { + return sovSet(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Set) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Set: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Set: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Cards = append(m.Cards, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Cards) == 0 { + m.Cards = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Cards = append(m.Cards, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Cards", wireType) + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Artist", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Artist = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StoryWriter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StoryWriter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Contributors", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Contributors = append(m.Contributors, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Story", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Story = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ArtworkId", wireType) + } + m.ArtworkId = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ArtworkId |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= CStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeStamp", wireType) + } + m.TimeStamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TimeStamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContributorsDistribution", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContributorsDistribution = append(m.ContributorsDistribution, &AddrWithQuantity{}) + if err := m.ContributorsDistribution[len(m.ContributorsDistribution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rarities", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rarities = append(m.Rarities, &InnerRarities{}) + if err := m.Rarities[len(m.Rarities)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSet(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSet + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *InnerRarities) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: InnerRarities: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: InnerRarities: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.R = append(m.R, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.R) == 0 { + m.R = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.R = append(m.R, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field R", wireType) + } + default: + iNdEx = preIndex + skippy, err := skipSet(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSet + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OutpSet) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OutpSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OutpSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Set", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Set == nil { + m.Set = &Set{} + } + if err := m.Set.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Artwork", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Artwork = append(m.Artwork[:0], dAtA[iNdEx:postIndex]...) + if m.Artwork == nil { + m.Artwork = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSet(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSet + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AddrWithQuantity) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AddrWithQuantity: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AddrWithQuantity: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Addr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Q", wireType) + } + m.Q = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Q |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowSet + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthSet + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthSet + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Payment == nil { + m.Payment = &types.Coin{} + } + if err := m.Payment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipSet(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthSet + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipSet(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSet + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSet + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowSet + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthSet + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupSet + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthSet + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthSet = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowSet = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupSet = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/cardchain/types/tx.pb.go b/x/cardchain/types/tx.pb.go index 61d27bef..a21c325a 100644 --- a/x/cardchain/types/tx.pb.go +++ b/x/cardchain/types/tx.pb.go @@ -4566,6 +4566,302 @@ func (m *MsgEncounterCloseResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgEncounterCloseResponse proto.InternalMessageInfo +type MsgCreateProductDetails struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Desc string `protobuf:"bytes,3,opt,name=desc,proto3" json:"desc,omitempty"` +} + +func (m *MsgCreateProductDetails) Reset() { *m = MsgCreateProductDetails{} } +func (m *MsgCreateProductDetails) String() string { return proto.CompactTextString(m) } +func (*MsgCreateProductDetails) ProtoMessage() {} +func (*MsgCreateProductDetails) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{94} +} +func (m *MsgCreateProductDetails) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreateProductDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreateProductDetails.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreateProductDetails) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreateProductDetails.Merge(m, src) +} +func (m *MsgCreateProductDetails) XXX_Size() int { + return m.Size() +} +func (m *MsgCreateProductDetails) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreateProductDetails.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreateProductDetails proto.InternalMessageInfo + +func (m *MsgCreateProductDetails) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgCreateProductDetails) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *MsgCreateProductDetails) GetDesc() string { + if m != nil { + return m.Desc + } + return "" +} + +type MsgCreateProductDetailsResponse struct { + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *MsgCreateProductDetailsResponse) Reset() { *m = MsgCreateProductDetailsResponse{} } +func (m *MsgCreateProductDetailsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgCreateProductDetailsResponse) ProtoMessage() {} +func (*MsgCreateProductDetailsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{95} +} +func (m *MsgCreateProductDetailsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreateProductDetailsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreateProductDetailsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreateProductDetailsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreateProductDetailsResponse.Merge(m, src) +} +func (m *MsgCreateProductDetailsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgCreateProductDetailsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreateProductDetailsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreateProductDetailsResponse proto.InternalMessageInfo + +func (m *MsgCreateProductDetailsResponse) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type MsgUpdateProductDetails struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Desc string `protobuf:"bytes,4,opt,name=desc,proto3" json:"desc,omitempty"` +} + +func (m *MsgUpdateProductDetails) Reset() { *m = MsgUpdateProductDetails{} } +func (m *MsgUpdateProductDetails) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateProductDetails) ProtoMessage() {} +func (*MsgUpdateProductDetails) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{96} +} +func (m *MsgUpdateProductDetails) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateProductDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateProductDetails.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateProductDetails) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateProductDetails.Merge(m, src) +} +func (m *MsgUpdateProductDetails) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateProductDetails) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateProductDetails.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateProductDetails proto.InternalMessageInfo + +func (m *MsgUpdateProductDetails) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgUpdateProductDetails) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +func (m *MsgUpdateProductDetails) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *MsgUpdateProductDetails) GetDesc() string { + if m != nil { + return m.Desc + } + return "" +} + +type MsgUpdateProductDetailsResponse struct { +} + +func (m *MsgUpdateProductDetailsResponse) Reset() { *m = MsgUpdateProductDetailsResponse{} } +func (m *MsgUpdateProductDetailsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateProductDetailsResponse) ProtoMessage() {} +func (*MsgUpdateProductDetailsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{97} +} +func (m *MsgUpdateProductDetailsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateProductDetailsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateProductDetailsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateProductDetailsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateProductDetailsResponse.Merge(m, src) +} +func (m *MsgUpdateProductDetailsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateProductDetailsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateProductDetailsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateProductDetailsResponse proto.InternalMessageInfo + +type MsgDeleteProductDetails struct { + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (m *MsgDeleteProductDetails) Reset() { *m = MsgDeleteProductDetails{} } +func (m *MsgDeleteProductDetails) String() string { return proto.CompactTextString(m) } +func (*MsgDeleteProductDetails) ProtoMessage() {} +func (*MsgDeleteProductDetails) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{98} +} +func (m *MsgDeleteProductDetails) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDeleteProductDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDeleteProductDetails.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDeleteProductDetails) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDeleteProductDetails.Merge(m, src) +} +func (m *MsgDeleteProductDetails) XXX_Size() int { + return m.Size() +} +func (m *MsgDeleteProductDetails) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDeleteProductDetails.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDeleteProductDetails proto.InternalMessageInfo + +func (m *MsgDeleteProductDetails) GetCreator() string { + if m != nil { + return m.Creator + } + return "" +} + +func (m *MsgDeleteProductDetails) GetId() uint64 { + if m != nil { + return m.Id + } + return 0 +} + +type MsgDeleteProductDetailsResponse struct { +} + +func (m *MsgDeleteProductDetailsResponse) Reset() { *m = MsgDeleteProductDetailsResponse{} } +func (m *MsgDeleteProductDetailsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgDeleteProductDetailsResponse) ProtoMessage() {} +func (*MsgDeleteProductDetailsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_3b4a3aba0ac94bc8, []int{99} +} +func (m *MsgDeleteProductDetailsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDeleteProductDetailsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDeleteProductDetailsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDeleteProductDetailsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDeleteProductDetailsResponse.Merge(m, src) +} +func (m *MsgDeleteProductDetailsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgDeleteProductDetailsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDeleteProductDetailsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDeleteProductDetailsResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgUpdateParams)(nil), "cardchain.cardchain.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "cardchain.cardchain.MsgUpdateParamsResponse") @@ -4662,184 +4958,199 @@ func init() { proto.RegisterType((*MsgEncounterDoResponse)(nil), "cardchain.cardchain.MsgEncounterDoResponse") proto.RegisterType((*MsgEncounterClose)(nil), "cardchain.cardchain.MsgEncounterClose") proto.RegisterType((*MsgEncounterCloseResponse)(nil), "cardchain.cardchain.MsgEncounterCloseResponse") + proto.RegisterType((*MsgCreateProductDetails)(nil), "cardchain.cardchain.MsgCreateProductDetails") + proto.RegisterType((*MsgCreateProductDetailsResponse)(nil), "cardchain.cardchain.MsgCreateProductDetailsResponse") + proto.RegisterType((*MsgUpdateProductDetails)(nil), "cardchain.cardchain.MsgUpdateProductDetails") + proto.RegisterType((*MsgUpdateProductDetailsResponse)(nil), "cardchain.cardchain.MsgUpdateProductDetailsResponse") + proto.RegisterType((*MsgDeleteProductDetails)(nil), "cardchain.cardchain.MsgDeleteProductDetails") + proto.RegisterType((*MsgDeleteProductDetailsResponse)(nil), "cardchain.cardchain.MsgDeleteProductDetailsResponse") } func init() { proto.RegisterFile("cardchain/cardchain/tx.proto", fileDescriptor_3b4a3aba0ac94bc8) } var fileDescriptor_3b4a3aba0ac94bc8 = []byte{ - // 2743 bytes of a gzipped FileDescriptorProto + // 2881 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x5b, 0xcd, 0x6f, 0x14, 0xc9, - 0x15, 0xa7, 0x3d, 0xb6, 0xb1, 0x0b, 0x63, 0x96, 0xc6, 0x0b, 0x43, 0xc3, 0x1a, 0x33, 0xd8, 0x60, - 0x58, 0xf0, 0x2c, 0xb0, 0x7c, 0x08, 0x65, 0x37, 0xf2, 0xd8, 0x24, 0x5a, 0x29, 0x5e, 0x48, 0x3b, - 0x59, 0xc2, 0xe6, 0x63, 0xd5, 0xd3, 0x53, 0x1e, 0x77, 0xdc, 0xd3, 0x35, 0xdb, 0xdd, 0x33, 0x5e, - 0x23, 0x45, 0x8a, 0x36, 0x97, 0x28, 0xb9, 0xe4, 0x9c, 0x5b, 0x6e, 0x7b, 0x8a, 0x88, 0x94, 0xbf, - 0x20, 0xb9, 0xec, 0x21, 0x87, 0xd5, 0x9e, 0x72, 0x8a, 0x22, 0x38, 0x20, 0xe5, 0xaf, 0x88, 0xea, - 0xa3, 0xab, 0xab, 0x6b, 0xaa, 0xaa, 0x7b, 0x46, 0xc9, 0x05, 0xa6, 0xaa, 0x7f, 0xf5, 0xbe, 0xea, - 0x55, 0xbd, 0x57, 0xef, 0x01, 0xb8, 0xe8, 0x7b, 0x71, 0xc7, 0xdf, 0xf7, 0x82, 0xa8, 0x99, 0xff, - 0x4a, 0xbf, 0xd8, 0xe8, 0xc7, 0x28, 0x45, 0xf6, 0x19, 0x3e, 0xb7, 0xc1, 0x7f, 0x39, 0xa7, 0xbd, - 0x5e, 0x10, 0xa1, 0x26, 0xf9, 0x93, 0xe2, 0x9c, 0x73, 0x3e, 0x4a, 0x7a, 0x28, 0x69, 0xf6, 0x92, - 0x6e, 0x73, 0x78, 0x1b, 0xff, 0xc5, 0x3e, 0x9c, 0xa7, 0x1f, 0x3e, 0x23, 0xa3, 0x26, 0x1d, 0xb0, - 0x4f, 0x4b, 0x5d, 0xd4, 0x45, 0x74, 0x1e, 0xff, 0x62, 0xb3, 0x2b, 0x2a, 0x79, 0xfa, 0x5e, 0xec, - 0xf5, 0xb2, 0x75, 0xcb, 0x8c, 0x57, 0xdb, 0x4b, 0x60, 0x73, 0x78, 0xbb, 0x0d, 0x53, 0xef, 0x76, - 0xd3, 0x47, 0x41, 0x64, 0xa2, 0x30, 0x44, 0x69, 0x10, 0x65, 0x42, 0x5d, 0x52, 0x21, 0x7a, 0x5e, - 0xea, 0xef, 0x33, 0xc0, 0x65, 0x15, 0xc0, 0x47, 0x83, 0xc8, 0x0f, 0x42, 0x2e, 0x85, 0x0a, 0xe2, - 0xc5, 0x1d, 0xfa, 0xbd, 0xf1, 0x77, 0x0b, 0x9c, 0xda, 0x49, 0xba, 0x3f, 0xee, 0x77, 0xbc, 0x14, - 0x3e, 0x25, 0xf2, 0xdb, 0xf7, 0xc1, 0xbc, 0x37, 0x48, 0xf7, 0x51, 0x1c, 0xa4, 0x47, 0x75, 0x6b, - 0xc5, 0x5a, 0x9f, 0x6f, 0xd5, 0xbf, 0xfd, 0xeb, 0xad, 0x25, 0x66, 0x96, 0xcd, 0x4e, 0x27, 0x86, - 0x49, 0xb2, 0x9b, 0xc6, 0x41, 0xd4, 0x75, 0x73, 0xa8, 0xfd, 0x21, 0x98, 0xa5, 0x16, 0xa8, 0x4f, - 0xad, 0x58, 0xeb, 0x27, 0xee, 0x5c, 0xd8, 0x50, 0x6c, 0xcb, 0x06, 0x65, 0xd2, 0x9a, 0xff, 0xfa, - 0x5f, 0x97, 0x8e, 0x7d, 0xf5, 0xe6, 0xe5, 0x0d, 0xcb, 0x65, 0xab, 0x1e, 0x3d, 0xfc, 0xf2, 0xcd, - 0xcb, 0x1b, 0x39, 0xbd, 0xdf, 0xbd, 0x79, 0x79, 0x63, 0x2d, 0x17, 0xfa, 0x0b, 0x41, 0x01, 0x49, - 0xe2, 0xc6, 0x79, 0x70, 0x4e, 0x9a, 0x72, 0x61, 0xd2, 0x47, 0x51, 0x02, 0x1b, 0x5d, 0x70, 0x12, - 0x7f, 0x4a, 0x60, 0xbc, 0x15, 0x43, 0x2f, 0x85, 0x76, 0x1d, 0x1c, 0xf7, 0xf1, 0x2f, 0x14, 0x53, - 0xdd, 0xdc, 0x6c, 0x88, 0xbf, 0x44, 0xf0, 0x10, 0x43, 0x89, 0x02, 0xf3, 0x6e, 0x36, 0xb4, 0x97, - 0xc0, 0x8c, 0x17, 0x06, 0x5e, 0x52, 0xaf, 0x91, 0x79, 0x3a, 0x78, 0xb4, 0x80, 0xe5, 0xcd, 0x56, - 0x37, 0xce, 0x81, 0xb7, 0x0b, 0x8c, 0xb8, 0x04, 0x3d, 0xf0, 0xd6, 0x4e, 0xd2, 0xdd, 0xf2, 0xe2, - 0xce, 0xae, 0xbf, 0x0f, 0x7b, 0xb0, 0x35, 0x38, 0x32, 0x08, 0x71, 0x1b, 0xd4, 0xda, 0x41, 0x87, - 0x59, 0xf0, 0xfc, 0x06, 0xb3, 0x39, 0x76, 0xa2, 0x0d, 0xe6, 0x44, 0x1b, 0x5b, 0x28, 0x88, 0x5a, - 0xd3, 0xd8, 0x7e, 0x2e, 0xc6, 0x4a, 0x72, 0xdc, 0x01, 0x75, 0x99, 0x5d, 0x26, 0x8a, 0x7d, 0x16, - 0xcc, 0x62, 0x23, 0x7e, 0xd4, 0x21, 0x5c, 0xa7, 0x5d, 0x36, 0x6a, 0xfc, 0xcd, 0x02, 0x76, 0xb6, - 0xc8, 0x1b, 0xc2, 0x2d, 0x14, 0xa5, 0x30, 0x4a, 0x0d, 0x52, 0xe6, 0x84, 0xa6, 0x44, 0x42, 0x64, - 0x05, 0x5d, 0x4c, 0x4c, 0xb5, 0xe0, 0x66, 0x43, 0x6c, 0xc2, 0x08, 0xa5, 0x30, 0xa9, 0x4f, 0x53, - 0x13, 0x92, 0x01, 0xa6, 0xe3, 0xc5, 0x69, 0x90, 0xa4, 0xf5, 0x19, 0x32, 0xcd, 0x46, 0xf6, 0x2a, - 0x38, 0xd9, 0xf6, 0x42, 0x2f, 0xf2, 0xe1, 0x66, 0xe4, 0xef, 0xa3, 0xb8, 0x3e, 0xbb, 0x62, 0xad, - 0xcf, 0xb9, 0xc5, 0x49, 0x49, 0xf1, 0x6d, 0xe0, 0x8c, 0xea, 0xc0, 0x55, 0xbf, 0x0a, 0x16, 0xbd, - 0x20, 0xee, 0xc4, 0xa8, 0xbf, 0x15, 0x7a, 0x41, 0x0f, 0x52, 0x13, 0xcc, 0xb9, 0xd2, 0x6c, 0xe3, - 0x97, 0xe0, 0x04, 0xa3, 0xf2, 0x09, 0x32, 0x7a, 0xcb, 0x5d, 0x30, 0x3d, 0x44, 0x29, 0x64, 0x3b, - 0x75, 0x49, 0xe9, 0xeb, 0xbb, 0x41, 0xd4, 0x0d, 0x21, 0x26, 0xe4, 0x12, 0xb0, 0x24, 0xf1, 0x07, - 0xe0, 0x8c, 0xc0, 0x6b, 0x6c, 0x51, 0x7b, 0xe4, 0xe8, 0xe2, 0xe5, 0x3f, 0x8a, 0xbd, 0x28, 0xd9, - 0x83, 0xf1, 0x04, 0x3b, 0xe6, 0x80, 0xb9, 0x18, 0xfa, 0x30, 0x18, 0xc2, 0x98, 0x79, 0x37, 0x1f, - 0x4b, 0xd2, 0xd2, 0x43, 0x26, 0xb2, 0xe3, 0x2e, 0xfe, 0x5b, 0x8b, 0x9c, 0x32, 0xfc, 0x6d, 0x1b, - 0x45, 0xe6, 0x53, 0xa6, 0x13, 0xe4, 0x01, 0x98, 0xf5, 0x7a, 0x68, 0xc0, 0x3c, 0xa7, 0x82, 0xef, - 0x33, 0xb8, 0xf2, 0x18, 0xe6, 0x92, 0x70, 0x19, 0x7f, 0x63, 0x81, 0xd3, 0xec, 0xcb, 0x66, 0x9c, - 0x1e, 0xa2, 0xf8, 0x60, 0xb3, 0xd3, 0x99, 0x40, 0xce, 0x25, 0x30, 0x13, 0xf4, 0xbc, 0x2e, 0x64, - 0x0e, 0x4e, 0x07, 0x98, 0xce, 0xde, 0x20, 0x0c, 0x37, 0xe3, 0x94, 0x38, 0xf8, 0x9c, 0x9b, 0x0d, - 0x25, 0xf1, 0x2e, 0x80, 0xf3, 0x23, 0x42, 0x08, 0x37, 0xc5, 0x99, 0xfc, 0x63, 0x90, 0xa4, 0x5b, - 0xfb, 0x5e, 0xd4, 0x9d, 0xc4, 0x96, 0xf9, 0xb1, 0xaa, 0x89, 0xc7, 0x4a, 0x92, 0xe5, 0x1d, 0x70, - 0x41, 0xc1, 0x8e, 0x4b, 0xf3, 0x1d, 0x7a, 0x27, 0xd0, 0x70, 0xe2, 0xc2, 0x6e, 0x90, 0xa4, 0x26, - 0x0f, 0x93, 0x88, 0x5f, 0xa4, 0xa7, 0xb1, 0xb8, 0x9a, 0xd3, 0xfe, 0x10, 0x2c, 0xe5, 0x5f, 0xb7, - 0x61, 0x3c, 0x2e, 0xf5, 0x65, 0x70, 0x51, 0xb5, 0x9e, 0xd3, 0xff, 0xd6, 0x02, 0x8b, 0x3b, 0x49, - 0x77, 0x07, 0x07, 0x4b, 0x17, 0xf6, 0x51, 0x9c, 0x9a, 0xef, 0x7d, 0x12, 0x55, 0xb9, 0x19, 0xb3, - 0xa1, 0xdd, 0x00, 0x0b, 0xfd, 0xd0, 0x3b, 0x82, 0x1d, 0x6c, 0xa4, 0x64, 0xb3, 0x5e, 0x5b, 0xa9, - 0xad, 0x4f, 0xbb, 0x85, 0x39, 0x09, 0xd3, 0xaa, 0x4f, 0x8f, 0x60, 0x5a, 0xf6, 0x7d, 0x70, 0x1c, - 0x0d, 0x52, 0x1f, 0xf5, 0x20, 0xb9, 0xe7, 0x16, 0xef, 0x5c, 0x54, 0x5e, 0x17, 0x4f, 0x28, 0xc6, - 0xcd, 0xc0, 0x92, 0xd2, 0x75, 0x70, 0xb6, 0xa8, 0x13, 0x57, 0xd7, 0xa5, 0x21, 0x86, 0x9a, 0xa3, - 0x34, 0xce, 0x69, 0xbc, 0x46, 0xe2, 0xe6, 0xd0, 0x38, 0x22, 0xd2, 0xe4, 0xfc, 0x7e, 0x4e, 0xae, - 0x02, 0x41, 0x12, 0x18, 0x6f, 0xf6, 0xfb, 0x28, 0x30, 0xc6, 0x0c, 0x72, 0xd3, 0x50, 0x30, 0x8b, - 0xaf, 0x7c, 0x2c, 0xb1, 0xbe, 0x0c, 0x2e, 0x69, 0xc8, 0x73, 0x09, 0xbe, 0xb2, 0xc0, 0xc2, 0x4e, - 0xd2, 0xdd, 0x85, 0x69, 0xa9, 0xba, 0x36, 0x98, 0x8e, 0xbc, 0x1e, 0x64, 0x3c, 0xc9, 0x6f, 0xdd, - 0x01, 0xb1, 0x57, 0xc0, 0x89, 0x24, 0x45, 0xf1, 0xd1, 0xb3, 0x38, 0xc0, 0x62, 0xd2, 0x58, 0x25, - 0x4e, 0xe1, 0xed, 0xc6, 0x21, 0x2d, 0x0e, 0xda, 0x83, 0x14, 0xc5, 0x49, 0x7d, 0x66, 0xa5, 0xb6, - 0x3e, 0xef, 0x16, 0xe6, 0x24, 0x6d, 0xce, 0x12, 0x5f, 0xe7, 0x92, 0x72, 0x15, 0x20, 0xb9, 0x33, - 0xf1, 0x3c, 0x3e, 0x81, 0xc6, 0xbb, 0x68, 0x09, 0xcc, 0x24, 0x30, 0xe5, 0x1b, 0x46, 0x07, 0xc2, - 0x3e, 0xd6, 0x0c, 0xfb, 0x48, 0x2f, 0xc4, 0x9c, 0x0d, 0xe7, 0xbf, 0x4f, 0x9c, 0x86, 0x7d, 0x70, - 0x61, 0x0f, 0x0d, 0xe1, 0xff, 0x49, 0x04, 0xea, 0x4a, 0x05, 0x4e, 0x82, 0x14, 0x99, 0x75, 0x72, - 0x0b, 0x4e, 0x62, 0x0c, 0x1b, 0x4c, 0x0f, 0x12, 0x1e, 0xc3, 0xc8, 0x6f, 0xe5, 0x9d, 0x31, 0xc2, - 0x89, 0x4b, 0x72, 0x40, 0x9c, 0xba, 0xf8, 0x7d, 0x42, 0xb3, 0x94, 0x0b, 0x43, 0x5d, 0x5c, 0xc5, - 0x8c, 0xcb, 0xf3, 0x31, 0xb9, 0xc2, 0x76, 0x61, 0xfa, 0xbd, 0x20, 0xf2, 0xc2, 0xe0, 0xc5, 0xd8, - 0x62, 0x28, 0xaf, 0x0f, 0x81, 0x1e, 0xe7, 0xb4, 0x97, 0x79, 0x42, 0xa5, 0xc0, 0xa8, 0x56, 0x59, - 0x19, 0x16, 0x75, 0x7e, 0xa0, 0x88, 0x7d, 0x9d, 0x4c, 0xdb, 0x5d, 0x7c, 0xd8, 0x26, 0x94, 0x80, - 0x1c, 0xd4, 0x2c, 0x49, 0x27, 0x03, 0x9d, 0x0d, 0x32, 0x2e, 0x9c, 0xff, 0x0f, 0x49, 0x76, 0xd0, - 0x42, 0x08, 0xc7, 0x91, 0xa7, 0x9e, 0x7f, 0x60, 0x4e, 0xd3, 0xab, 0x18, 0x7c, 0x8b, 0xc4, 0xfa, - 0x22, 0xc9, 0xb1, 0x93, 0xbc, 0xdf, 0xd3, 0xd4, 0x7c, 0x17, 0x86, 0xe1, 0x93, 0xbd, 0xbd, 0x0a, - 0xaf, 0x18, 0x5d, 0x4e, 0x70, 0x0f, 0xcc, 0xf4, 0xe3, 0xc0, 0x87, 0x55, 0xd3, 0x2b, 0x8a, 0x56, - 0x46, 0x75, 0x49, 0x18, 0x6e, 0xc3, 0x9f, 0x92, 0x84, 0x94, 0x7f, 0x35, 0x5b, 0x10, 0x5f, 0xb5, - 0x19, 0x92, 0x0b, 0x2b, 0x4e, 0x29, 0xd3, 0x4f, 0x91, 0x38, 0xe7, 0xfb, 0x8b, 0xa2, 0x89, 0x4a, - 0x0f, 0xed, 0xb8, 0xac, 0x25, 0xad, 0xa5, 0x73, 0xfa, 0x27, 0x8b, 0x3f, 0xf0, 0x5c, 0x0f, 0x3f, - 0x5c, 0x77, 0x61, 0x3a, 0x59, 0x5e, 0x49, 0x3d, 0xaa, 0x26, 0x3a, 0xf5, 0x03, 0x30, 0x1b, 0x13, - 0xa2, 0x24, 0x16, 0x2d, 0x6a, 0xde, 0x19, 0x39, 0x6f, 0x97, 0xc1, 0xd5, 0xc1, 0x5c, 0x14, 0x91, - 0xcb, 0xff, 0x47, 0x4b, 0x8c, 0xf4, 0xd9, 0xf4, 0x16, 0xea, 0xf5, 0x02, 0x93, 0x1e, 0x17, 0xc1, - 0x3c, 0x2b, 0x35, 0x70, 0x55, 0xf2, 0x09, 0xbc, 0x0e, 0x07, 0xf7, 0x28, 0x81, 0xec, 0x38, 0x66, - 0x43, 0x7b, 0x19, 0x80, 0x64, 0xd0, 0xed, 0xc2, 0x24, 0x0d, 0x50, 0xc4, 0x22, 0xac, 0x30, 0x23, - 0x09, 0xde, 0x00, 0x2b, 0x3a, 0xd9, 0xb8, 0x02, 0x7f, 0x51, 0x2a, 0xe0, 0xc2, 0x21, 0xf4, 0xc2, - 0x89, 0x15, 0x78, 0x50, 0x54, 0x60, 0xf1, 0xce, 0x3b, 0x4a, 0xcb, 0x73, 0x6e, 0x5c, 0xbf, 0xb3, - 0x60, 0x36, 0x81, 0x7e, 0x0c, 0x53, 0xa6, 0x1b, 0x1b, 0x55, 0xd1, 0x8b, 0x8a, 0xcc, 0xf5, 0x7a, - 0x4e, 0x1f, 0x2c, 0x1c, 0x93, 0x7a, 0xf1, 0xc4, 0x1b, 0xa2, 0x7e, 0x86, 0x14, 0x48, 0x73, 0xbe, - 0xff, 0xa0, 0x35, 0x21, 0x92, 0x7f, 0x6d, 0xa1, 0x68, 0x2f, 0x88, 0x7b, 0x13, 0x65, 0xcf, 0x42, - 0xd6, 0x5b, 0x1b, 0x23, 0xeb, 0xb5, 0xbf, 0x0b, 0x00, 0x7e, 0x2c, 0xd3, 0xe4, 0x99, 0xe4, 0xd3, - 0x15, 0xde, 0xd7, 0xc2, 0x12, 0xe5, 0xc5, 0x21, 0x6a, 0xc3, 0x35, 0xdd, 0x25, 0x16, 0x7e, 0x1a, - 0xa3, 0xbd, 0x20, 0x84, 0xa4, 0x72, 0x30, 0xc9, 0xd1, 0x55, 0xda, 0xb6, 0x48, 0x94, 0x73, 0xfc, - 0x09, 0x49, 0x77, 0xd8, 0xc7, 0x67, 0xb0, 0x9d, 0x04, 0x29, 0x34, 0x33, 0xad, 0x83, 0xe3, 0x87, - 0x14, 0x97, 0x55, 0xa5, 0xd8, 0x50, 0x99, 0xde, 0x8c, 0x50, 0xe6, 0x9c, 0x7f, 0x40, 0x6e, 0x29, - 0xf6, 0xbd, 0x15, 0x20, 0x33, 0xd7, 0xb7, 0x40, 0xad, 0x1d, 0x20, 0xc6, 0x11, 0xff, 0x54, 0x5e, - 0x28, 0x05, 0x6a, 0x9c, 0x53, 0x9b, 0x5c, 0xc7, 0x42, 0xdc, 0x7b, 0xd2, 0x87, 0x91, 0x81, 0xd7, - 0x2a, 0x38, 0xd9, 0xce, 0xc1, 0xdc, 0xba, 0xc5, 0x49, 0x89, 0xff, 0x7d, 0x72, 0x25, 0x4b, 0x3c, - 0x78, 0x70, 0xc5, 0xbc, 0xc8, 0xd6, 0x24, 0x75, 0x8b, 0x3c, 0xc7, 0xb2, 0x61, 0xe3, 0x4b, 0x8b, - 0x64, 0x00, 0xc2, 0xc2, 0x0a, 0xb5, 0x93, 0x4a, 0x02, 0x8e, 0x51, 0x49, 0x59, 0x01, 0xcb, 0x6a, - 0x19, 0xb8, 0x09, 0x87, 0x59, 0x56, 0xbc, 0x9b, 0x3f, 0x3d, 0xcc, 0x1b, 0xa6, 0xce, 0x89, 0xa4, - 0xf7, 0x4c, 0x6d, 0xe4, 0x3d, 0xa3, 0xcb, 0x91, 0x8b, 0x7c, 0x85, 0x6a, 0xea, 0x29, 0x9e, 0xc1, - 0x05, 0x49, 0x3a, 0x89, 0x48, 0xd5, 0x6a, 0x13, 0x59, 0xb4, 0xcf, 0x19, 0x71, 0x19, 0x3e, 0xe7, - 0xe1, 0x16, 0x1f, 0xfc, 0x9d, 0x41, 0x98, 0x06, 0x06, 0x21, 0xee, 0x81, 0x99, 0x21, 0xa9, 0x3b, - 0x4e, 0x55, 0xbb, 0x47, 0x28, 0x5a, 0x92, 0xa6, 0xc5, 0xc3, 0x27, 0x67, 0x39, 0x76, 0x22, 0xf7, - 0x67, 0xfa, 0x62, 0x25, 0xf7, 0x50, 0xc9, 0x81, 0xa8, 0x83, 0xe3, 0xa4, 0x7c, 0x10, 0x6f, 0x66, - 0x47, 0x9e, 0x0d, 0xf3, 0x2f, 0xad, 0x2c, 0xac, 0xb2, 0x21, 0xde, 0x69, 0x06, 0xea, 0x40, 0xff, - 0x80, 0x55, 0x21, 0xc4, 0xa9, 0x1c, 0xd1, 0x22, 0x88, 0x19, 0x11, 0x41, 0xa6, 0x24, 0xa5, 0xdf, - 0x23, 0x3e, 0xc8, 0xe5, 0x15, 0x0f, 0x57, 0x76, 0xe1, 0x5b, 0x85, 0x0b, 0xbf, 0xe1, 0x65, 0x2f, - 0xda, 0x8f, 0xbd, 0x1e, 0x9c, 0xc4, 0x37, 0xb2, 0xa7, 0x7a, 0x2d, 0x7f, 0xaa, 0xeb, 0x5e, 0xb3, - 0x8c, 0x85, 0x50, 0x02, 0xb1, 0xf3, 0x0b, 0x69, 0x33, 0x0c, 0xbc, 0xa4, 0x54, 0x00, 0x5a, 0xd2, - 0x9f, 0xd2, 0x97, 0xf4, 0x69, 0xde, 0x27, 0xd1, 0x14, 0x38, 0x62, 0xfb, 0x3c, 0xf6, 0xe2, 0xf0, - 0x68, 0xd3, 0xf7, 0x61, 0x92, 0x7c, 0x14, 0x0d, 0x83, 0xb2, 0x4a, 0xc4, 0x20, 0xef, 0x2e, 0xe8, - 0xdf, 0xa8, 0x23, 0x34, 0x85, 0x80, 0x85, 0xcf, 0xdf, 0xa7, 0xd0, 0x0b, 0x8f, 0xb6, 0x50, 0x14, - 0x41, 0xbf, 0x24, 0x72, 0xbc, 0xc0, 0x48, 0x66, 0xe5, 0x79, 0x37, 0x1b, 0x2a, 0xcf, 0x9a, 0x48, - 0x34, 0xcf, 0x0d, 0xa7, 0x88, 0x59, 0x1f, 0x47, 0x38, 0x91, 0x48, 0x2b, 0xbc, 0x3e, 0x54, 0xc5, - 0x16, 0x07, 0xcc, 0x75, 0x62, 0xef, 0x30, 0xa4, 0x67, 0x1e, 0x7b, 0x1d, 0x1f, 0xdb, 0xcf, 0x00, - 0x20, 0xdd, 0x1f, 0x98, 0xc2, 0x38, 0x8b, 0xf5, 0x0f, 0x94, 0x67, 0x74, 0x54, 0x0c, 0xda, 0x4a, - 0x22, 0x2b, 0x1f, 0x47, 0x69, 0x7c, 0xe4, 0x0a, 0xa4, 0xf2, 0xf7, 0xe8, 0x8c, 0xf0, 0x1e, 0x75, - 0x3e, 0x00, 0xa7, 0xa4, 0x45, 0x38, 0xd2, 0x1d, 0x40, 0xd6, 0xe7, 0x72, 0xf1, 0x4f, 0xbc, 0x74, - 0xe8, 0x85, 0x83, 0x4c, 0x09, 0x3a, 0x78, 0x34, 0xf5, 0xd0, 0x52, 0xba, 0x87, 0x24, 0x14, 0x37, - 0x5d, 0x44, 0x1e, 0xb4, 0xfc, 0xeb, 0x36, 0x32, 0x3f, 0x48, 0x60, 0x06, 0xcc, 0x1f, 0x24, 0xc2, - 0x54, 0x85, 0x8a, 0x02, 0x7d, 0xda, 0x0a, 0xfc, 0xe4, 0xca, 0x77, 0x2e, 0x68, 0x88, 0x12, 0xf8, - 0xbf, 0x96, 0x06, 0xdb, 0xf1, 0x90, 0x25, 0xf4, 0x73, 0x2e, 0xfe, 0xa9, 0x4c, 0x8b, 0x8a, 0x42, - 0x64, 0x22, 0xde, 0xf9, 0xcf, 0x55, 0x50, 0xdb, 0x49, 0xba, 0x76, 0x1b, 0x2c, 0x14, 0x5a, 0x91, - 0xab, 0x3a, 0x57, 0x10, 0x51, 0xce, 0xcd, 0x2a, 0x28, 0x7e, 0x7f, 0xfd, 0x0c, 0x00, 0xa1, 0x1d, - 0xd8, 0xd0, 0xae, 0xe5, 0x18, 0xe7, 0x46, 0x39, 0x86, 0x53, 0x87, 0xe0, 0x64, 0xb1, 0xd5, 0xb7, - 0xa6, 0x5b, 0x5c, 0x80, 0x39, 0xb7, 0x2a, 0xc1, 0x38, 0x9b, 0x03, 0x70, 0x4a, 0xee, 0xd6, 0x5d, - 0x33, 0x52, 0xc8, 0x81, 0x4e, 0xb3, 0x22, 0x90, 0x33, 0xfb, 0x04, 0xcc, 0xf1, 0x86, 0xd8, 0x8a, - 0x69, 0x31, 0x46, 0x38, 0xeb, 0x65, 0x08, 0x4e, 0xb7, 0x0d, 0x16, 0x0a, 0xdd, 0xab, 0x55, 0xd3, - 0xca, 0x0c, 0xa5, 0xdf, 0x6d, 0x55, 0x6b, 0x0a, 0xef, 0xb6, 0xd0, 0x96, 0x6a, 0x98, 0xd6, 0x52, - 0x8c, 0x7e, 0xb7, 0x47, 0x9b, 0x4a, 0xf6, 0x3e, 0x58, 0x94, 0x1a, 0x4a, 0x57, 0x4d, 0xab, 0x73, - 0x9c, 0xb3, 0x51, 0x0d, 0xc7, 0x39, 0x45, 0xe0, 0xad, 0x91, 0xc6, 0xd0, 0x7a, 0x09, 0x0d, 0x8e, - 0x74, 0xde, 0xab, 0x8a, 0x2c, 0x38, 0x98, 0xd4, 0xfa, 0xd1, 0x3b, 0x58, 0x11, 0x68, 0x70, 0x30, - 0x75, 0x3b, 0xc8, 0xfe, 0x1c, 0x9c, 0x1e, 0xed, 0x05, 0x5d, 0x2f, 0xa1, 0x92, 0x43, 0x9d, 0xdb, - 0x95, 0xa1, 0x9c, 0xe5, 0x67, 0xe0, 0x84, 0xd8, 0x1d, 0xba, 0xa2, 0xa3, 0x20, 0x80, 0x9c, 0x77, - 0x2b, 0x80, 0x0a, 0x17, 0x41, 0xa1, 0x21, 0xb3, 0x56, 0x22, 0x24, 0xbb, 0x6c, 0x6e, 0x55, 0x82, - 0x71, 0x36, 0x2f, 0xc0, 0x92, 0xb2, 0x0f, 0x73, 0xb3, 0x82, 0xac, 0x1c, 0xed, 0xbc, 0x3f, 0x0e, - 0x9a, 0xf3, 0x7e, 0x0e, 0xe6, 0xf3, 0x06, 0xcc, 0x65, 0x1d, 0x09, 0x0e, 0x71, 0xae, 0x97, 0x42, - 0xc4, 0x63, 0x2b, 0x74, 0x46, 0x1a, 0xa6, 0x85, 0x14, 0xa3, 0x3f, 0xb6, 0xa3, 0xad, 0x0f, 0xbc, - 0x37, 0xc5, 0xbe, 0xc7, 0x5a, 0xc9, 0x62, 0x0a, 0xd3, 0xef, 0x8d, 0xb2, 0xb7, 0x81, 0xdd, 0x7a, - 0xb4, 0xb1, 0x61, 0x34, 0x42, 0x01, 0xaa, 0x77, 0x6b, 0x6d, 0x13, 0x03, 0xbb, 0x83, 0xb2, 0x83, - 0x71, 0xb3, 0x1a, 0x29, 0xa6, 0xe7, 0xfb, 0xe3, 0xa0, 0xc5, 0x23, 0x25, 0x76, 0x2b, 0xae, 0x18, - 0x88, 0x64, 0x20, 0xfd, 0x91, 0x52, 0xf4, 0x29, 0xd8, 0xb6, 0x09, 0x97, 0xad, 0x69, 0xdb, 0x84, - 0xbb, 0xf6, 0x56, 0x25, 0x98, 0xa4, 0x07, 0xef, 0x43, 0x98, 0xf4, 0xc8, 0x40, 0x46, 0x3d, 0xe4, - 0x5e, 0x03, 0x8e, 0x1a, 0x52, 0xa3, 0x41, 0x1b, 0x35, 0x8a, 0x38, 0x7d, 0xd4, 0xd0, 0x74, 0x19, - 0x0e, 0xc0, 0x29, 0xb9, 0x73, 0x70, 0x4d, 0x2f, 0x69, 0x01, 0xa8, 0xbf, 0xc5, 0x35, 0xe5, 0x7f, - 0x1c, 0xce, 0x0b, 0xb5, 0xff, 0xd5, 0x52, 0x02, 0x58, 0xa5, 0x9b, 0x55, 0x50, 0x4a, 0x85, 0x98, - 0x6b, 0x97, 0x2b, 0xc4, 0xbc, 0xba, 0x59, 0x11, 0x28, 0xe7, 0x72, 0x79, 0x55, 0xdf, 0x98, 0xcb, - 0x71, 0x98, 0x39, 0x97, 0x1b, 0x29, 0xc0, 0xdb, 0xbf, 0x02, 0x6f, 0xab, 0x8b, 0xef, 0xb7, 0x4a, - 0xe3, 0xa8, 0x08, 0x77, 0xee, 0x8d, 0x05, 0x37, 0xb0, 0x67, 0xa5, 0xf3, 0xaa, 0xec, 0x29, 0xbc, - 0x32, 0xfb, 0x62, 0x95, 0x9b, 0xa4, 0x50, 0xc5, 0x12, 0xf7, 0xd5, 0x72, 0x42, 0x18, 0x67, 0x48, - 0xa1, 0x94, 0x75, 0x6d, 0xec, 0x9f, 0x85, 0x9a, 0xf6, 0xaa, 0x31, 0xe8, 0x31, 0x94, 0x73, 0xb3, - 0x0a, 0x4a, 0xd4, 0x46, 0x2a, 0x27, 0x6b, 0xb5, 0x29, 0xe2, 0xf4, 0xda, 0xa8, 0x2b, 0xc9, 0x38, - 0xb8, 0x8c, 0x96, 0x91, 0xaf, 0x97, 0x10, 0xc9, 0xa1, 0xfa, 0xe0, 0xa2, 0x2d, 0x21, 0xe3, 0xf3, - 0x50, 0xac, 0x1f, 0xaf, 0x95, 0xd0, 0xa0, 0x30, 0xfd, 0x79, 0x50, 0xd6, 0x8f, 0xf1, 0x19, 0x97, - 0x8b, 0xc7, 0xd7, 0x2a, 0xdc, 0x7b, 0x18, 0xa8, 0x3f, 0xe3, 0xba, 0x52, 0xf1, 0x21, 0x38, 0xa3, - 0x2a, 0x06, 0xbf, 0x5b, 0x81, 0x0e, 0x7f, 0x91, 0xdc, 0x1d, 0x03, 0x2c, 0x25, 0x07, 0x52, 0x7d, - 0xf7, 0x7a, 0x59, 0x18, 0xe1, 0x50, 0x63, 0x72, 0xa0, 0xae, 0xde, 0xd2, 0x0b, 0x5a, 0x28, 0xdd, - 0xae, 0x9a, 0xe3, 0x22, 0x45, 0x99, 0x2e, 0xe8, 0xd1, 0xea, 0x6c, 0x76, 0x67, 0xe6, 0xa5, 0xd9, - 0xb5, 0xb2, 0xe7, 0x20, 0x81, 0x99, 0xef, 0xcc, 0xd1, 0xaa, 0xeb, 0x73, 0x30, 0x9f, 0x57, 0x52, - 0x2f, 0x1b, 0x8f, 0x28, 0xf1, 0x8b, 0xeb, 0xa5, 0x10, 0x29, 0xf5, 0xcc, 0x4a, 0x98, 0xa6, 0xd4, - 0x93, 0x61, 0x8c, 0xa9, 0xa7, 0x54, 0xa7, 0xc4, 0xce, 0x2d, 0x17, 0x29, 0xaf, 0x95, 0x1c, 0x8f, - 0x0c, 0xa8, 0x77, 0x6e, 0x4d, 0x89, 0x12, 0xfb, 0xd8, 0x68, 0x7d, 0x52, 0x6b, 0x8a, 0x11, 0xa8, - 0xde, 0xc7, 0xb4, 0x15, 0x4a, 0xec, 0x63, 0x85, 0xf2, 0xa4, 0xd6, 0xc7, 0x44, 0x94, 0xde, 0xc7, - 0x54, 0x55, 0x49, 0x6c, 0x43, 0xb9, 0x22, 0x79, 0xad, 0x62, 0xcd, 0x50, 0x6f, 0x43, 0x4d, 0x1d, - 0x0f, 0x67, 0x83, 0x62, 0x11, 0xef, 0x4a, 0xe9, 0xfa, 0x6d, 0xa4, 0xcf, 0x06, 0x15, 0xe5, 0x39, - 0x1c, 0x32, 0xa4, 0xd2, 0xdc, 0xd5, 0x72, 0x19, 0x31, 0x4e, 0x1f, 0x32, 0xd4, 0x55, 0x36, 0x67, - 0xe6, 0xd7, 0x6f, 0x5e, 0xde, 0xb0, 0x5a, 0xee, 0xd7, 0xaf, 0x96, 0xad, 0x6f, 0x5e, 0x2d, 0x5b, - 0xff, 0x7e, 0xb5, 0x6c, 0xfd, 0xe1, 0xf5, 0xf2, 0xb1, 0x6f, 0x5e, 0x2f, 0x1f, 0xfb, 0xe7, 0xeb, - 0xe5, 0x63, 0x9f, 0x3e, 0xec, 0x06, 0xe9, 0xfe, 0xa0, 0xbd, 0xe1, 0xa3, 0x5e, 0x73, 0x1b, 0xfa, - 0x30, 0x4a, 0x63, 0x2f, 0xc4, 0x07, 0xf0, 0xfb, 0x5e, 0x0f, 0x36, 0xd5, 0xff, 0x16, 0x3f, 0x3d, - 0xea, 0xc3, 0xa4, 0x3d, 0x4b, 0xfe, 0x3b, 0xc1, 0xdd, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x35, - 0xdc, 0x34, 0xd7, 0xa8, 0x31, 0x00, 0x00, + 0x15, 0x67, 0x3c, 0xb6, 0xb1, 0x0b, 0x63, 0xa0, 0xf1, 0xc2, 0xd0, 0xb0, 0xc6, 0x0c, 0x36, 0xd8, + 0x2c, 0x78, 0xd6, 0x66, 0xf9, 0x10, 0xca, 0x6e, 0xe4, 0xb1, 0x49, 0xb4, 0x52, 0xbc, 0x90, 0x76, + 0xb2, 0x84, 0xcd, 0x07, 0xea, 0xe9, 0x29, 0x8f, 0x3b, 0xee, 0xe9, 0x9a, 0xed, 0xee, 0x19, 0xaf, + 0x91, 0x22, 0x45, 0x9b, 0x4b, 0x94, 0x5c, 0x72, 0xce, 0x2d, 0xb7, 0x3d, 0x45, 0x44, 0xca, 0x5f, + 0x90, 0x5c, 0xf6, 0x90, 0xc3, 0x6a, 0x4f, 0x39, 0xad, 0x22, 0x38, 0xf0, 0x6f, 0x44, 0xf5, 0xd1, + 0xd5, 0xd5, 0x35, 0x55, 0xd5, 0x3d, 0xa3, 0xe4, 0x02, 0x53, 0xd5, 0xbf, 0x7a, 0x1f, 0x55, 0xaf, + 0xde, 0x7b, 0xf5, 0x9e, 0x0c, 0xae, 0x78, 0x6e, 0xd4, 0xf6, 0x0e, 0x5c, 0x3f, 0x6c, 0x64, 0xbf, + 0x92, 0x2f, 0xd6, 0x7b, 0x11, 0x4a, 0x90, 0x75, 0x9e, 0xcf, 0xad, 0xf3, 0x5f, 0xf6, 0x39, 0xb7, + 0xeb, 0x87, 0xa8, 0x41, 0xfe, 0xa5, 0x38, 0xfb, 0xa2, 0x87, 0xe2, 0x2e, 0x8a, 0x1b, 0xdd, 0xb8, + 0xd3, 0x18, 0x6c, 0xe0, 0xff, 0xd8, 0x87, 0x4b, 0xf4, 0xc3, 0x0b, 0x32, 0x6a, 0xd0, 0x01, 0xfb, + 0xb4, 0xd0, 0x41, 0x1d, 0x44, 0xe7, 0xf1, 0x2f, 0x36, 0xbb, 0xa4, 0x92, 0xa7, 0xe7, 0x46, 0x6e, + 0x37, 0x5d, 0xb7, 0xc8, 0x78, 0xb5, 0xdc, 0x18, 0x36, 0x06, 0x1b, 0x2d, 0x98, 0xb8, 0x1b, 0x0d, + 0x0f, 0xf9, 0xa1, 0x89, 0xc2, 0x00, 0x25, 0x7e, 0x98, 0x0a, 0x75, 0x55, 0x85, 0xe8, 0xba, 0x89, + 0x77, 0xc0, 0x00, 0xd7, 0x54, 0x00, 0x0f, 0xf5, 0x43, 0xcf, 0x0f, 0xb8, 0x14, 0x2a, 0x88, 0x1b, + 0xb5, 0xd9, 0xf7, 0x35, 0xa5, 0x1e, 0x11, 0x6a, 0xf7, 0xbd, 0xe4, 0x45, 0x1b, 0x26, 0xae, 0x1f, + 0x30, 0x85, 0xea, 0xff, 0xac, 0x80, 0x33, 0xbb, 0x71, 0xe7, 0xa7, 0xbd, 0xb6, 0x9b, 0xc0, 0xa7, + 0x44, 0x55, 0xeb, 0x3e, 0x98, 0x75, 0xfb, 0xc9, 0x01, 0x8a, 0xfc, 0xe4, 0xb8, 0x56, 0x59, 0xaa, + 0xac, 0xce, 0x36, 0x6b, 0xdf, 0xfe, 0xfd, 0xce, 0x02, 0xdb, 0xc1, 0xad, 0x76, 0x3b, 0x82, 0x71, + 0xbc, 0x97, 0x44, 0x7e, 0xd8, 0x71, 0x32, 0xa8, 0xf5, 0x11, 0x98, 0xa6, 0x9b, 0x55, 0x9b, 0x58, + 0xaa, 0xac, 0x9e, 0xda, 0xbc, 0xbc, 0xae, 0x38, 0xc1, 0x75, 0xca, 0xa4, 0x39, 0xfb, 0xf5, 0x77, + 0x57, 0x4f, 0x7c, 0xf5, 0xf6, 0xd5, 0xad, 0x8a, 0xc3, 0x56, 0x3d, 0x7a, 0xf8, 0xe5, 0xdb, 0x57, + 0xb7, 0x32, 0x7a, 0x7f, 0x78, 0xfb, 0xea, 0xd6, 0x4a, 0x26, 0xff, 0x17, 0x82, 0x2e, 0x92, 0xc4, + 0xf5, 0x4b, 0xe0, 0xa2, 0x34, 0xe5, 0xc0, 0xb8, 0x87, 0xc2, 0x18, 0xd6, 0x3b, 0xe0, 0x34, 0xfe, + 0x14, 0xc3, 0x68, 0x3b, 0x82, 0x6e, 0x02, 0xad, 0x1a, 0x38, 0xe9, 0xe1, 0x5f, 0x28, 0xa2, 0xba, + 0x39, 0xe9, 0x10, 0x7f, 0x09, 0xe1, 0x11, 0x86, 0x12, 0x05, 0x66, 0x9d, 0x74, 0x68, 0x2d, 0x80, + 0x29, 0x37, 0xf0, 0xdd, 0xb8, 0x56, 0x25, 0xf3, 0x74, 0xf0, 0x68, 0x0e, 0xcb, 0x9b, 0xae, 0xae, + 0x5f, 0x04, 0xef, 0xe4, 0x18, 0x71, 0x09, 0xba, 0xe0, 0xec, 0x6e, 0xdc, 0xd9, 0x76, 0xa3, 0xf6, + 0x9e, 0x77, 0x00, 0xbb, 0xb0, 0xd9, 0x3f, 0x36, 0x08, 0xb1, 0x01, 0xaa, 0x2d, 0xbf, 0xcd, 0x76, + 0xf0, 0xd2, 0x3a, 0xdb, 0x73, 0x6c, 0x6f, 0xeb, 0xcc, 0xde, 0xd6, 0xb7, 0x91, 0x1f, 0x36, 0x27, + 0xf1, 0xfe, 0x39, 0x18, 0x2b, 0xc9, 0xb1, 0x09, 0x6a, 0x32, 0xbb, 0x54, 0x14, 0xeb, 0x02, 0x98, + 0xc6, 0x9b, 0xf8, 0x71, 0x9b, 0x70, 0x9d, 0x74, 0xd8, 0xa8, 0xfe, 0x8f, 0x0a, 0xb0, 0xd2, 0x45, + 0xee, 0x00, 0x6e, 0xa3, 0x30, 0x81, 0x61, 0x62, 0x90, 0x32, 0x23, 0x34, 0x21, 0x12, 0x22, 0x2b, + 0xe8, 0x62, 0xb2, 0x55, 0x73, 0x4e, 0x3a, 0xc4, 0x5b, 0x18, 0xa2, 0x04, 0xc6, 0xb5, 0x49, 0xba, + 0x85, 0x64, 0x80, 0xe9, 0xb8, 0x51, 0xe2, 0xc7, 0x49, 0x6d, 0x8a, 0x4c, 0xb3, 0x91, 0xb5, 0x0c, + 0x4e, 0xb7, 0xdc, 0xc0, 0x0d, 0x3d, 0xb8, 0x15, 0x7a, 0x07, 0x28, 0xaa, 0x4d, 0x2f, 0x55, 0x56, + 0x67, 0x9c, 0xfc, 0xa4, 0xa4, 0xf8, 0x0e, 0xb0, 0x87, 0x75, 0xe0, 0xaa, 0xdf, 0x00, 0xf3, 0xae, + 0x1f, 0xb5, 0x23, 0xd4, 0xdb, 0x0e, 0x5c, 0xbf, 0x0b, 0xe9, 0x16, 0xcc, 0x38, 0xd2, 0x6c, 0xfd, + 0xd7, 0xe0, 0x14, 0xa3, 0xf2, 0x29, 0x32, 0x5a, 0xcb, 0x5d, 0x30, 0x39, 0x40, 0x09, 0x64, 0x27, + 0x75, 0x55, 0x69, 0xeb, 0x7b, 0x7e, 0xd8, 0x09, 0x20, 0x26, 0xe4, 0x10, 0xb0, 0x24, 0xf1, 0x87, + 0xe0, 0xbc, 0xc0, 0x6b, 0x64, 0x51, 0xbb, 0xe4, 0xea, 0xe2, 0xe5, 0x3f, 0x89, 0xdc, 0x30, 0xde, + 0x87, 0xd1, 0x18, 0x27, 0x66, 0x83, 0x99, 0x08, 0x7a, 0xd0, 0x1f, 0xc0, 0x88, 0x59, 0x37, 0x1f, + 0x4b, 0xd2, 0xd2, 0x4b, 0x26, 0xb2, 0xe3, 0x26, 0xfe, 0xfb, 0x0a, 0xb9, 0x65, 0xf8, 0xdb, 0x0e, + 0x0a, 0xcd, 0xb7, 0x4c, 0x27, 0xc8, 0x03, 0x30, 0xed, 0x76, 0x51, 0x9f, 0x59, 0x4e, 0x09, 0xdb, + 0x67, 0x70, 0xe5, 0x35, 0xcc, 0x24, 0xe1, 0x32, 0xfe, 0xae, 0x02, 0xce, 0xb1, 0x2f, 0x5b, 0x51, + 0x72, 0x84, 0xa2, 0xc3, 0xad, 0x76, 0x7b, 0x0c, 0x39, 0x17, 0xc0, 0x94, 0xdf, 0x75, 0x3b, 0x90, + 0x19, 0x38, 0x1d, 0x60, 0x3a, 0xfb, 0xfd, 0x20, 0xd8, 0x8a, 0x12, 0x62, 0xe0, 0x33, 0x4e, 0x3a, + 0x94, 0xc4, 0xbb, 0x0c, 0x2e, 0x0d, 0x09, 0x21, 0x78, 0x8a, 0xf3, 0xd9, 0x47, 0x3f, 0x4e, 0xb6, + 0x0f, 0xdc, 0xb0, 0x33, 0xce, 0x5e, 0x66, 0xd7, 0xaa, 0x2a, 0x5e, 0x2b, 0x49, 0x96, 0x77, 0xc1, + 0x65, 0x05, 0x3b, 0x2e, 0xcd, 0xf7, 0xa8, 0x4f, 0xa0, 0x91, 0xc7, 0x81, 0x1d, 0x3f, 0x4e, 0x4c, + 0x16, 0x26, 0x11, 0xbf, 0x42, 0x6f, 0x63, 0x7e, 0x35, 0xa7, 0xfd, 0x11, 0x58, 0xc8, 0xbe, 0xee, + 0xc0, 0x68, 0x54, 0xea, 0x8b, 0xe0, 0x8a, 0x6a, 0x3d, 0xa7, 0xff, 0x6d, 0x05, 0xcc, 0xef, 0xc6, + 0x9d, 0x5d, 0x1c, 0x57, 0x1d, 0xd8, 0x43, 0x51, 0x62, 0xf6, 0xfb, 0x24, 0x00, 0xf3, 0x6d, 0x4c, + 0x87, 0x56, 0x1d, 0xcc, 0xf5, 0x02, 0xf7, 0x18, 0xb6, 0xf1, 0x26, 0xc5, 0x5b, 0xb5, 0xea, 0x52, + 0x75, 0x75, 0xd2, 0xc9, 0xcd, 0x49, 0x98, 0x66, 0x6d, 0x72, 0x08, 0xd3, 0xb4, 0xee, 0x83, 0x93, + 0xa8, 0x9f, 0x78, 0xa8, 0x0b, 0x89, 0x9f, 0x9b, 0xdf, 0xbc, 0xa2, 0x74, 0x17, 0x4f, 0x28, 0xc6, + 0x49, 0xc1, 0x92, 0xd2, 0x35, 0x70, 0x21, 0xaf, 0x13, 0x57, 0xd7, 0xa1, 0x21, 0x86, 0x6e, 0x47, + 0x61, 0x9c, 0xd3, 0x58, 0x8d, 0xc4, 0xcd, 0xa6, 0x71, 0x44, 0xa4, 0xc9, 0xf9, 0xfd, 0x92, 0xb8, + 0x02, 0x41, 0x12, 0x18, 0x6d, 0xf5, 0x7a, 0xc8, 0x37, 0xc6, 0x0c, 0xe2, 0x69, 0x28, 0x98, 0xc5, + 0x57, 0x3e, 0x96, 0x58, 0x5f, 0x03, 0x57, 0x35, 0xe4, 0xb9, 0x04, 0x5f, 0x55, 0xc0, 0xdc, 0x6e, + 0xdc, 0xd9, 0x83, 0x49, 0xa1, 0xba, 0x16, 0x98, 0x0c, 0xdd, 0x2e, 0x64, 0x3c, 0xc9, 0x6f, 0xdd, + 0x05, 0xb1, 0x96, 0xc0, 0xa9, 0x38, 0x41, 0xd1, 0xf1, 0xb3, 0xc8, 0xc7, 0x62, 0xd2, 0x58, 0x25, + 0x4e, 0xe1, 0xe3, 0xc6, 0x21, 0x2d, 0xf2, 0x5b, 0xfd, 0x04, 0x45, 0x71, 0x6d, 0x6a, 0xa9, 0xba, + 0x3a, 0xeb, 0xe4, 0xe6, 0x24, 0x6d, 0x2e, 0x10, 0x5b, 0xe7, 0x92, 0x72, 0x15, 0x20, 0xf1, 0x99, + 0x78, 0x1e, 0xdf, 0x40, 0xa3, 0x2f, 0x5a, 0x00, 0x53, 0x31, 0x4c, 0xf8, 0x81, 0xd1, 0x81, 0x70, + 0x8e, 0x55, 0xc3, 0x39, 0x52, 0x87, 0x98, 0xb1, 0xe1, 0xfc, 0x0f, 0x88, 0xd1, 0xb0, 0x0f, 0x0e, + 0xec, 0xa2, 0x01, 0xfc, 0x3f, 0x89, 0x40, 0x4d, 0x29, 0xc7, 0x49, 0x90, 0x22, 0xdd, 0x9d, 0x6c, + 0x07, 0xc7, 0xd9, 0x0c, 0x0b, 0x4c, 0xf6, 0x63, 0x1e, 0xc3, 0xc8, 0x6f, 0xa5, 0xcf, 0x18, 0xe2, + 0xc4, 0x25, 0x39, 0x24, 0x46, 0x9d, 0xff, 0x3e, 0xe6, 0xb6, 0x14, 0x0b, 0x43, 0x4d, 0x5c, 0xc5, + 0x8c, 0xcb, 0xf3, 0x09, 0x71, 0x61, 0x7b, 0x30, 0xf9, 0x81, 0x1f, 0xba, 0x81, 0xff, 0x72, 0x64, + 0x31, 0x94, 0xee, 0x43, 0xa0, 0xc7, 0x39, 0xed, 0xa7, 0x96, 0x50, 0x2a, 0x30, 0xaa, 0x55, 0x56, + 0x86, 0x45, 0x9d, 0x1d, 0x28, 0x62, 0x5f, 0x3b, 0xd5, 0x76, 0x0f, 0x5f, 0xb6, 0x31, 0x25, 0x20, + 0x17, 0x35, 0x4d, 0xd2, 0xc9, 0x40, 0xb7, 0x07, 0x29, 0x17, 0xce, 0xff, 0xc7, 0x24, 0x3b, 0x68, + 0x22, 0x84, 0xe3, 0xc8, 0x53, 0xd7, 0x3b, 0x34, 0xa7, 0xe9, 0x65, 0x36, 0x7c, 0x9b, 0xc4, 0xfa, + 0x3c, 0xc9, 0x91, 0x93, 0xbc, 0x3f, 0xd2, 0xd4, 0x7c, 0x0f, 0x06, 0xc1, 0x93, 0xfd, 0xfd, 0x12, + 0xaf, 0x18, 0x5d, 0x4e, 0x70, 0x0f, 0x4c, 0xf5, 0x22, 0xdf, 0x83, 0x65, 0xd3, 0x2b, 0x8a, 0x56, + 0x46, 0x75, 0x49, 0x18, 0xbe, 0x87, 0x3f, 0x27, 0x09, 0x29, 0xff, 0x6a, 0xde, 0x41, 0xec, 0x6a, + 0x53, 0x24, 0x17, 0x56, 0x9c, 0x52, 0xa6, 0x9f, 0x22, 0x71, 0xce, 0xf7, 0x57, 0xf9, 0x2d, 0x2a, + 0xbc, 0xb4, 0xa3, 0xb2, 0x96, 0xb4, 0x96, 0xee, 0xe9, 0x5f, 0x2a, 0xfc, 0x81, 0xe7, 0xb8, 0xf8, + 0xe1, 0xba, 0x07, 0x93, 0xf1, 0xf2, 0x4a, 0x6a, 0x51, 0x55, 0xd1, 0xa8, 0x1f, 0x80, 0xe9, 0x88, + 0x10, 0x25, 0xb1, 0x68, 0x5e, 0xf3, 0xce, 0xc8, 0x78, 0x3b, 0x0c, 0xae, 0x0e, 0xe6, 0xa2, 0x88, + 0x5c, 0xfe, 0x3f, 0x57, 0xc4, 0x48, 0x9f, 0x4e, 0x6f, 0xa3, 0x6e, 0xd7, 0x37, 0xe9, 0x71, 0x05, + 0xcc, 0xb2, 0xaa, 0x04, 0x57, 0x25, 0x9b, 0xc0, 0xeb, 0x70, 0x70, 0x0f, 0x63, 0xc8, 0xae, 0x63, + 0x3a, 0xb4, 0x16, 0x01, 0x88, 0xfb, 0x9d, 0x0e, 0x8c, 0x13, 0x1f, 0x85, 0x2c, 0xc2, 0x0a, 0x33, + 0x92, 0xe0, 0x75, 0xb0, 0xa4, 0x93, 0x8d, 0x2b, 0xf0, 0x37, 0xa5, 0x02, 0x0e, 0x1c, 0x40, 0x37, + 0x18, 0x5b, 0x81, 0x07, 0x79, 0x05, 0xe6, 0x37, 0xdf, 0x55, 0xee, 0x3c, 0xe7, 0xc6, 0xf5, 0xbb, + 0x00, 0xa6, 0x63, 0xe8, 0x45, 0x30, 0x61, 0xba, 0xb1, 0x51, 0x19, 0xbd, 0xa8, 0xc8, 0x5c, 0xaf, + 0xe7, 0xf4, 0xc1, 0xc2, 0x31, 0x89, 0x1b, 0x8d, 0x7d, 0x20, 0xea, 0x67, 0x48, 0x8e, 0x34, 0xe7, + 0xfb, 0x2f, 0x5a, 0x13, 0x22, 0xf9, 0xd7, 0x36, 0x0a, 0xf7, 0xfd, 0xa8, 0x3b, 0x56, 0xf6, 0x2c, + 0x64, 0xbd, 0xd5, 0x11, 0xb2, 0x5e, 0xeb, 0xfb, 0x00, 0xe0, 0xc7, 0x32, 0x4d, 0x9e, 0x49, 0x3e, + 0x5d, 0xe2, 0x7d, 0x2d, 0x2c, 0x51, 0x3a, 0x0e, 0x51, 0x1b, 0xae, 0xe9, 0x1e, 0xd9, 0xe1, 0xa7, + 0x11, 0xda, 0xf7, 0x03, 0x48, 0x2a, 0x07, 0xe3, 0x5c, 0x5d, 0xe5, 0xde, 0xe6, 0x89, 0x72, 0x8e, + 0x3f, 0x23, 0xe9, 0x0e, 0xfb, 0xf8, 0x0c, 0xb6, 0x62, 0x3f, 0x81, 0x66, 0xa6, 0x35, 0x70, 0xf2, + 0x88, 0xe2, 0xd2, 0xaa, 0x14, 0x1b, 0x2a, 0xd3, 0x9b, 0x21, 0xca, 0x9c, 0xf3, 0x8f, 0x88, 0x97, + 0x62, 0xdf, 0x9b, 0x3e, 0x32, 0x73, 0x3d, 0x0b, 0xaa, 0x2d, 0x1f, 0x31, 0x8e, 0xf8, 0xa7, 0xd2, + 0xa1, 0xe4, 0xa8, 0x71, 0x4e, 0x2d, 0xe2, 0x8e, 0x85, 0xb8, 0xf7, 0xa4, 0x07, 0x43, 0x03, 0xaf, + 0x65, 0x70, 0xba, 0x95, 0x81, 0xf9, 0xee, 0xe6, 0x27, 0x25, 0xfe, 0xf7, 0x89, 0x4b, 0x96, 0x78, + 0xf0, 0xe0, 0x8a, 0x79, 0x91, 0xa3, 0x89, 0x6b, 0x15, 0xf2, 0x1c, 0x4b, 0x87, 0xf5, 0x2f, 0x2b, + 0x24, 0x03, 0x10, 0x16, 0x96, 0xa8, 0x9d, 0x94, 0x12, 0x70, 0x84, 0x4a, 0xca, 0x12, 0x58, 0x54, + 0xcb, 0xc0, 0xb7, 0x70, 0x90, 0x66, 0xc5, 0x7b, 0xd9, 0xd3, 0xc3, 0x7c, 0x60, 0xea, 0x9c, 0x48, + 0x7a, 0xcf, 0x54, 0x87, 0xde, 0x33, 0xba, 0x1c, 0x39, 0xcf, 0x57, 0xa8, 0xa6, 0x9e, 0xe1, 0x19, + 0x9c, 0x1f, 0x27, 0xe3, 0x88, 0x54, 0xae, 0x36, 0x91, 0x46, 0xfb, 0x8c, 0x11, 0x97, 0xe1, 0x73, + 0x1e, 0x6e, 0xf1, 0xc5, 0xdf, 0xed, 0x07, 0x89, 0x6f, 0x10, 0xe2, 0x1e, 0x98, 0x1a, 0x90, 0xba, + 0xe3, 0x44, 0x39, 0x3f, 0x42, 0xd1, 0x92, 0x34, 0x4d, 0x1e, 0x3e, 0x39, 0xcb, 0x91, 0x13, 0xb9, + 0xbf, 0xd2, 0x17, 0x2b, 0xf1, 0x43, 0x05, 0x17, 0xa2, 0x06, 0x4e, 0x92, 0xf2, 0x41, 0xb4, 0x95, + 0x5e, 0x79, 0x36, 0xcc, 0xbe, 0x34, 0xd3, 0xb0, 0xca, 0x86, 0xf8, 0xa4, 0x19, 0xa8, 0x0d, 0xbd, + 0x43, 0x56, 0x85, 0x10, 0xa7, 0x32, 0x44, 0x93, 0x20, 0xa6, 0x44, 0x04, 0x99, 0x92, 0x94, 0x7e, + 0x9f, 0xd8, 0x20, 0x97, 0x57, 0xbc, 0x5c, 0xa9, 0xc3, 0xaf, 0xe4, 0x1c, 0x7e, 0xdd, 0x4d, 0x5f, + 0xb4, 0x9f, 0xb8, 0x5d, 0x38, 0x8e, 0x6d, 0xa4, 0x4f, 0xf5, 0x6a, 0xf6, 0x54, 0xd7, 0xbd, 0x66, + 0x19, 0x0b, 0xa1, 0x04, 0x62, 0x65, 0x0e, 0x69, 0x2b, 0xf0, 0xdd, 0xb8, 0x50, 0x00, 0x5a, 0xd2, + 0x9f, 0xd0, 0x97, 0xf4, 0x69, 0xde, 0x27, 0xd1, 0x14, 0x38, 0xe2, 0xfd, 0x79, 0xec, 0x46, 0xc1, + 0xf1, 0x96, 0xe7, 0xc1, 0x38, 0xfe, 0x38, 0x1c, 0xf8, 0x45, 0x95, 0x88, 0x7e, 0xd6, 0x5d, 0xd0, + 0xbf, 0x51, 0x87, 0x68, 0x0a, 0x01, 0x0b, 0xdf, 0xbf, 0xcf, 0xa0, 0x1b, 0x1c, 0x6f, 0xa3, 0x30, + 0x84, 0x5e, 0x41, 0xe4, 0x78, 0x89, 0x91, 0x6c, 0x97, 0x67, 0x9d, 0x74, 0xa8, 0xbc, 0x6b, 0x22, + 0xd1, 0x2c, 0x37, 0x9c, 0x20, 0xdb, 0xfa, 0x38, 0xc4, 0x89, 0x44, 0x52, 0xe2, 0xf5, 0xa1, 0x2a, + 0xb6, 0xd8, 0x60, 0xa6, 0x1d, 0xb9, 0x47, 0x01, 0xbd, 0xf3, 0xd8, 0xea, 0xf8, 0xd8, 0x7a, 0x06, + 0x00, 0xe9, 0xfe, 0xc0, 0x04, 0x46, 0x69, 0xac, 0x7f, 0xa0, 0xbc, 0xa3, 0xc3, 0x62, 0xd0, 0x56, + 0x12, 0x59, 0xf9, 0x38, 0x4c, 0xa2, 0x63, 0x47, 0x20, 0x95, 0xbd, 0x47, 0xa7, 0x84, 0xf7, 0xa8, + 0xfd, 0x21, 0x38, 0x23, 0x2d, 0xc2, 0x91, 0xee, 0x10, 0xb2, 0x3e, 0x97, 0x83, 0x7f, 0xe2, 0xa5, + 0x03, 0x37, 0xe8, 0xa7, 0x4a, 0xd0, 0xc1, 0xa3, 0x89, 0x87, 0x15, 0xa5, 0x79, 0x48, 0x42, 0xf1, + 0xad, 0x0b, 0xc9, 0x83, 0x96, 0x7f, 0xdd, 0x41, 0xe6, 0x07, 0x09, 0x4c, 0x81, 0xd9, 0x83, 0x44, + 0x98, 0x2a, 0x51, 0x51, 0xa0, 0x4f, 0x5b, 0x81, 0x9f, 0x5c, 0xf9, 0xce, 0x04, 0x0d, 0x50, 0x0c, + 0xff, 0xd7, 0xd2, 0xe0, 0x7d, 0x3c, 0x62, 0x09, 0xfd, 0x8c, 0x83, 0x7f, 0x2a, 0xd3, 0xa2, 0xbc, + 0x10, 0x5c, 0x44, 0x9f, 0xf6, 0x16, 0xc8, 0x0e, 0x3e, 0xa5, 0x8d, 0xca, 0x1d, 0xda, 0xa7, 0x1c, + 0xd1, 0xd6, 0x2c, 0x30, 0xd9, 0x86, 0xb1, 0x97, 0x4a, 0x86, 0x7f, 0x4b, 0x72, 0x6c, 0x90, 0xca, + 0x8b, 0x8a, 0x15, 0xf7, 0x70, 0xf3, 0x60, 0xc2, 0x4f, 0x9d, 0xdb, 0x84, 0xdf, 0xae, 0x1f, 0x8b, + 0xed, 0xc5, 0xb2, 0xd2, 0x51, 0x22, 0x13, 0x29, 0x11, 0x95, 0x6f, 0xe3, 0xd2, 0x4e, 0x6a, 0xa5, + 0xa5, 0x75, 0x22, 0x15, 0x6b, 0xa1, 0x72, 0x81, 0xa5, 0xdb, 0x81, 0x01, 0x1c, 0x5f, 0x3a, 0x25, + 0x57, 0x15, 0xc9, 0x94, 0xeb, 0xe6, 0x77, 0x6b, 0xa0, 0xba, 0x1b, 0x77, 0xac, 0x16, 0x98, 0xcb, + 0x35, 0x8f, 0x97, 0x75, 0x97, 0x57, 0x44, 0xd9, 0xb7, 0xcb, 0xa0, 0xf8, 0x79, 0xfc, 0x02, 0x00, + 0xa1, 0x81, 0x5b, 0xd7, 0xae, 0xe5, 0x18, 0xfb, 0x56, 0x31, 0x86, 0x53, 0x87, 0xe0, 0x74, 0xbe, + 0x39, 0xbb, 0xa2, 0x5b, 0x9c, 0x83, 0xd9, 0x77, 0x4a, 0xc1, 0x38, 0x9b, 0x43, 0x70, 0x46, 0xee, + 0xaf, 0xde, 0x34, 0x52, 0xc8, 0x80, 0x76, 0xa3, 0x24, 0x90, 0x33, 0xfb, 0x14, 0xcc, 0xf0, 0x16, + 0xe6, 0x92, 0x69, 0x31, 0x46, 0xd8, 0xab, 0x45, 0x08, 0x4e, 0xb7, 0x05, 0xe6, 0x72, 0xfd, 0xc6, + 0x65, 0xd3, 0xca, 0x14, 0xa5, 0x3f, 0x6d, 0x55, 0x33, 0x11, 0x9f, 0xb6, 0xd0, 0x48, 0xac, 0x9b, + 0xd6, 0x52, 0x8c, 0xfe, 0xb4, 0x87, 0xdb, 0x80, 0xd6, 0x01, 0x98, 0x97, 0x5a, 0x80, 0x37, 0x4c, + 0xab, 0x33, 0x9c, 0xbd, 0x5e, 0x0e, 0xc7, 0x39, 0x85, 0xe0, 0xec, 0x50, 0x2b, 0x6f, 0xb5, 0x80, + 0x06, 0x47, 0xda, 0xef, 0x97, 0x45, 0xe6, 0x0c, 0x4c, 0x6a, 0xd6, 0xe9, 0x0d, 0x2c, 0x0f, 0x34, + 0x18, 0x98, 0xba, 0x81, 0x67, 0x7d, 0x0e, 0xce, 0x0d, 0x77, 0xef, 0xd6, 0x0a, 0xa8, 0x64, 0x50, + 0x7b, 0xa3, 0x34, 0x94, 0xb3, 0x7c, 0x01, 0x4e, 0x89, 0xfd, 0xbc, 0xeb, 0x3a, 0x0a, 0x02, 0xc8, + 0x7e, 0xaf, 0x04, 0x28, 0xe7, 0x08, 0x72, 0x2d, 0xb4, 0x95, 0x02, 0x21, 0x99, 0xb3, 0xb9, 0x53, + 0x0a, 0xc6, 0xd9, 0xbc, 0x04, 0x0b, 0xca, 0xce, 0xd9, 0xed, 0x12, 0xb2, 0x72, 0xb4, 0xfd, 0xc1, + 0x28, 0x68, 0xce, 0xfb, 0x39, 0x98, 0xcd, 0x5a, 0x66, 0xd7, 0x74, 0x24, 0x38, 0xc4, 0x5e, 0x2b, + 0x84, 0x88, 0xd7, 0x56, 0xe8, 0x65, 0xd5, 0x4d, 0x0b, 0x29, 0x46, 0x7f, 0x6d, 0x87, 0x9b, 0x55, + 0xf8, 0x6c, 0xf2, 0x9d, 0xaa, 0x95, 0x82, 0xc5, 0x14, 0xa6, 0x3f, 0x1b, 0x65, 0x37, 0x0a, 0x9b, + 0xf5, 0x70, 0x2b, 0xca, 0xb8, 0x09, 0x39, 0xa8, 0xde, 0xac, 0xb5, 0x6d, 0x27, 0x6c, 0x0e, 0xca, + 0x9e, 0xd3, 0xed, 0x72, 0xa4, 0x98, 0x9e, 0x1f, 0x8c, 0x82, 0x16, 0xaf, 0x94, 0xd8, 0x5f, 0xba, + 0x6e, 0x20, 0x92, 0x82, 0xf4, 0x57, 0x4a, 0xd1, 0x59, 0x62, 0xc7, 0x26, 0x38, 0x5b, 0xd3, 0xb1, + 0x09, 0xbe, 0xf6, 0x4e, 0x29, 0x98, 0xa4, 0x07, 0xef, 0x1c, 0x99, 0xf4, 0x48, 0x41, 0x46, 0x3d, + 0xe4, 0xee, 0x10, 0x8e, 0x1a, 0x52, 0x6b, 0x48, 0x1b, 0x35, 0xf2, 0x38, 0x7d, 0xd4, 0xd0, 0xf4, + 0x85, 0x0e, 0xc1, 0x19, 0xb9, 0xd7, 0x73, 0x53, 0x2f, 0x69, 0x0e, 0xa8, 0xf7, 0xe2, 0x9a, 0x86, + 0x0d, 0x0e, 0xe7, 0xb9, 0x6e, 0xcd, 0x72, 0x21, 0x01, 0xac, 0xd2, 0xed, 0x32, 0x28, 0xa5, 0x42, + 0xcc, 0xb4, 0x8b, 0x15, 0x62, 0x56, 0xdd, 0x28, 0x09, 0x94, 0x73, 0xb9, 0xac, 0x0f, 0x63, 0xcc, + 0xe5, 0x38, 0xcc, 0x9c, 0xcb, 0x0d, 0xb5, 0x4c, 0xac, 0xdf, 0x80, 0x77, 0xd4, 0xed, 0x92, 0x3b, + 0x85, 0x71, 0x54, 0x84, 0xdb, 0xf7, 0x46, 0x82, 0x1b, 0xd8, 0xb3, 0x66, 0x47, 0x59, 0xf6, 0x14, + 0x5e, 0x9a, 0x7d, 0xbe, 0x2f, 0x41, 0x52, 0xa8, 0x7c, 0x53, 0xe2, 0x46, 0x31, 0x21, 0x8c, 0x33, + 0xa4, 0x50, 0xca, 0x4e, 0x04, 0xb6, 0xcf, 0x5c, 0x17, 0x62, 0xd9, 0x18, 0xf4, 0x18, 0xca, 0xbe, + 0x5d, 0x06, 0x25, 0x6a, 0x23, 0x35, 0x00, 0xb4, 0xda, 0xe4, 0x71, 0x7a, 0x6d, 0xd4, 0xb5, 0x7f, + 0x1c, 0x5c, 0x86, 0x0b, 0xff, 0x6b, 0x05, 0x44, 0x32, 0xa8, 0x3e, 0xb8, 0x68, 0x8b, 0xfe, 0xf8, + 0x3e, 0xe4, 0x2b, 0xfe, 0x2b, 0x05, 0x34, 0x28, 0x4c, 0x7f, 0x1f, 0x94, 0x15, 0x7f, 0x7c, 0xc7, + 0xe5, 0x72, 0xff, 0xcd, 0x12, 0x7e, 0x0f, 0x03, 0xf5, 0x77, 0x5c, 0x57, 0xdc, 0x3f, 0x02, 0xe7, + 0x55, 0xe5, 0xfb, 0xf7, 0x4a, 0xd0, 0xe1, 0x2f, 0x92, 0xbb, 0x23, 0x80, 0xa5, 0xe4, 0x40, 0xaa, + 0xc8, 0xaf, 0x15, 0x85, 0x11, 0x0e, 0x35, 0x26, 0x07, 0xea, 0x7a, 0x3b, 0x75, 0xd0, 0x42, 0xb1, + 0x7d, 0xd9, 0x1c, 0x17, 0x29, 0xca, 0xe4, 0xa0, 0x87, 0xeb, 0xe9, 0xa9, 0xcf, 0xcc, 0x8a, 0xe9, + 0x2b, 0x45, 0xcf, 0x41, 0x02, 0x33, 0xfb, 0xcc, 0xe1, 0x3a, 0xf9, 0x73, 0x30, 0x9b, 0xd5, 0xbe, + 0xaf, 0x19, 0xaf, 0x28, 0xb1, 0x8b, 0xb5, 0x42, 0x88, 0x94, 0x7a, 0xa6, 0x45, 0x67, 0x53, 0xea, + 0xc9, 0x30, 0xc6, 0xd4, 0x53, 0xaa, 0x2c, 0x63, 0xe3, 0x96, 0xcb, 0xca, 0x37, 0x0b, 0xae, 0x47, + 0x0a, 0xd4, 0x1b, 0xb7, 0xa6, 0xa8, 0x8c, 0x6d, 0x6c, 0xb8, 0xa2, 0xac, 0xdd, 0x8a, 0x21, 0xa8, + 0xde, 0xc6, 0xb4, 0x35, 0x65, 0x6c, 0x63, 0xb9, 0x82, 0xb2, 0xd6, 0xc6, 0x44, 0x94, 0xde, 0xc6, + 0x54, 0x75, 0x64, 0xbc, 0x87, 0x72, 0x0d, 0xf9, 0x66, 0xc9, 0x2a, 0xaf, 0x7e, 0x0f, 0x35, 0x95, + 0x57, 0x9c, 0x0d, 0x8a, 0x65, 0xd7, 0xeb, 0x85, 0xeb, 0x77, 0x90, 0x3e, 0x1b, 0x54, 0x14, 0x54, + 0x71, 0xc8, 0x90, 0x8a, 0xa9, 0x37, 0x8a, 0x65, 0xc4, 0x38, 0x7d, 0xc8, 0x50, 0xd7, 0x45, 0xf1, + 0xe3, 0x40, 0x59, 0x14, 0xd5, 0x57, 0x54, 0x14, 0x68, 0xfd, 0xe3, 0xc0, 0x58, 0x05, 0x7d, 0x09, + 0x16, 0x94, 0x25, 0xcf, 0xa2, 0xda, 0x5d, 0x49, 0xde, 0xa6, 0x9a, 0x26, 0xe6, 0xad, 0x2c, 0x68, + 0x6a, 0x79, 0xab, 0xd0, 0x7a, 0xde, 0xa6, 0xca, 0xa6, 0x3d, 0xf5, 0xdb, 0xb7, 0xaf, 0x6e, 0x55, + 0x9a, 0xce, 0xd7, 0xaf, 0x17, 0x2b, 0xdf, 0xbc, 0x5e, 0xac, 0xfc, 0xe7, 0xf5, 0x62, 0xe5, 0x4f, + 0x6f, 0x16, 0x4f, 0x7c, 0xf3, 0x66, 0xf1, 0xc4, 0xbf, 0xdf, 0x2c, 0x9e, 0xf8, 0xec, 0x61, 0xc7, + 0x4f, 0x0e, 0xfa, 0xad, 0x75, 0x0f, 0x75, 0x1b, 0x3b, 0xd0, 0x83, 0x61, 0x12, 0xb9, 0x01, 0x76, + 0x7a, 0x3f, 0x74, 0xbb, 0xb0, 0xa1, 0xfe, 0x8b, 0x95, 0xe4, 0xb8, 0x07, 0xe3, 0xd6, 0x34, 0xf9, + 0xa3, 0x9b, 0xbb, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x51, 0x8b, 0x18, 0xf9, 0x34, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4903,6 +5214,9 @@ type MsgClient interface { EncounterCreate(ctx context.Context, in *MsgEncounterCreate, opts ...grpc.CallOption) (*MsgEncounterCreateResponse, error) EncounterDo(ctx context.Context, in *MsgEncounterDo, opts ...grpc.CallOption) (*MsgEncounterDoResponse, error) EncounterClose(ctx context.Context, in *MsgEncounterClose, opts ...grpc.CallOption) (*MsgEncounterCloseResponse, error) + CreateProductDetails(ctx context.Context, in *MsgCreateProductDetails, opts ...grpc.CallOption) (*MsgCreateProductDetailsResponse, error) + UpdateProductDetails(ctx context.Context, in *MsgUpdateProductDetails, opts ...grpc.CallOption) (*MsgUpdateProductDetailsResponse, error) + DeleteProductDetails(ctx context.Context, in *MsgDeleteProductDetails, opts ...grpc.CallOption) (*MsgDeleteProductDetailsResponse, error) } type msgClient struct { @@ -5336,6 +5650,33 @@ func (c *msgClient) EncounterClose(ctx context.Context, in *MsgEncounterClose, o return out, nil } +func (c *msgClient) CreateProductDetails(ctx context.Context, in *MsgCreateProductDetails, opts ...grpc.CallOption) (*MsgCreateProductDetailsResponse, error) { + out := new(MsgCreateProductDetailsResponse) + err := c.cc.Invoke(ctx, "/cardchain.cardchain.Msg/CreateProductDetails", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdateProductDetails(ctx context.Context, in *MsgUpdateProductDetails, opts ...grpc.CallOption) (*MsgUpdateProductDetailsResponse, error) { + out := new(MsgUpdateProductDetailsResponse) + err := c.cc.Invoke(ctx, "/cardchain.cardchain.Msg/UpdateProductDetails", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) DeleteProductDetails(ctx context.Context, in *MsgDeleteProductDetails, opts ...grpc.CallOption) (*MsgDeleteProductDetailsResponse, error) { + out := new(MsgDeleteProductDetailsResponse) + err := c.cc.Invoke(ctx, "/cardchain.cardchain.Msg/DeleteProductDetails", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // UpdateParams defines a (governance) operation for updating the module @@ -5387,6 +5728,9 @@ type MsgServer interface { EncounterCreate(context.Context, *MsgEncounterCreate) (*MsgEncounterCreateResponse, error) EncounterDo(context.Context, *MsgEncounterDo) (*MsgEncounterDoResponse, error) EncounterClose(context.Context, *MsgEncounterClose) (*MsgEncounterCloseResponse, error) + CreateProductDetails(context.Context, *MsgCreateProductDetails) (*MsgCreateProductDetailsResponse, error) + UpdateProductDetails(context.Context, *MsgUpdateProductDetails) (*MsgUpdateProductDetailsResponse, error) + DeleteProductDetails(context.Context, *MsgDeleteProductDetails) (*MsgDeleteProductDetailsResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -5534,6 +5878,15 @@ func (*UnimplementedMsgServer) EncounterDo(ctx context.Context, req *MsgEncounte func (*UnimplementedMsgServer) EncounterClose(ctx context.Context, req *MsgEncounterClose) (*MsgEncounterCloseResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EncounterClose not implemented") } +func (*UnimplementedMsgServer) CreateProductDetails(ctx context.Context, req *MsgCreateProductDetails) (*MsgCreateProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateProductDetails not implemented") +} +func (*UnimplementedMsgServer) UpdateProductDetails(ctx context.Context, req *MsgUpdateProductDetails) (*MsgUpdateProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateProductDetails not implemented") +} +func (*UnimplementedMsgServer) DeleteProductDetails(ctx context.Context, req *MsgDeleteProductDetails) (*MsgDeleteProductDetailsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteProductDetails not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -6385,6 +6738,60 @@ func _Msg_EncounterClose_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _Msg_CreateProductDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgCreateProductDetails) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).CreateProductDetails(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cardchain.cardchain.Msg/CreateProductDetails", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).CreateProductDetails(ctx, req.(*MsgCreateProductDetails)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdateProductDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateProductDetails) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateProductDetails(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cardchain.cardchain.Msg/UpdateProductDetails", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateProductDetails(ctx, req.(*MsgUpdateProductDetails)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_DeleteProductDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgDeleteProductDetails) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).DeleteProductDetails(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cardchain.cardchain.Msg/DeleteProductDetails", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).DeleteProductDetails(ctx, req.(*MsgDeleteProductDetails)) + } + return interceptor(ctx, in, info, handler) +} + var Msg_serviceDesc = _Msg_serviceDesc var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "cardchain.cardchain.Msg", @@ -6578,6 +6985,18 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "EncounterClose", Handler: _Msg_EncounterClose_Handler, }, + { + MethodName: "CreateProductDetails", + Handler: _Msg_CreateProductDetails_Handler, + }, + { + MethodName: "UpdateProductDetails", + Handler: _Msg_UpdateProductDetails_Handler, + }, + { + MethodName: "DeleteProductDetails", + Handler: _Msg_DeleteProductDetails_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "cardchain/cardchain/tx.proto", @@ -9798,11 +10217,213 @@ func (m *MsgEncounterCloseResponse) MarshalToSizedBuffer(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func encodeVarintTx(dAtA []byte, offset int, v uint64) int { - offset -= sovTx(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) +func (m *MsgCreateProductDetails) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreateProductDetails) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreateProductDetails) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Desc) > 0 { + i -= len(m.Desc) + copy(dAtA[i:], m.Desc) + i = encodeVarintTx(dAtA, i, uint64(len(m.Desc))) + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintTx(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgCreateProductDetailsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreateProductDetailsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreateProductDetailsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateProductDetails) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateProductDetails) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateProductDetails) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Desc) > 0 { + i -= len(m.Desc) + copy(dAtA[i:], m.Desc) + i = encodeVarintTx(dAtA, i, uint64(len(m.Desc))) + i-- + dAtA[i] = 0x22 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintTx(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x1a + } + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x10 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateProductDetailsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateProductDetailsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateProductDetailsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgDeleteProductDetails) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDeleteProductDetails) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDeleteProductDetails) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Id != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Id)) + i-- + dAtA[i] = 0x10 + } + if len(m.Creator) > 0 { + i -= len(m.Creator) + copy(dAtA[i:], m.Creator) + i = encodeVarintTx(dAtA, i, uint64(len(m.Creator))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgDeleteProductDetailsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDeleteProductDetailsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDeleteProductDetailsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func encodeVarintTx(dAtA []byte, offset int, v uint64) int { + offset -= sovTx(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) v >>= 7 offset++ } @@ -11200,6 +11821,97 @@ func (m *MsgEncounterCloseResponse) Size() (n int) { return n } +func (m *MsgCreateProductDetails) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Desc) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgCreateProductDetailsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + return n +} + +func (m *MsgUpdateProductDetails) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Desc) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgUpdateProductDetailsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgDeleteProductDetails) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Creator) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Id != 0 { + n += 1 + sovTx(uint64(m.Id)) + } + return n +} + +func (m *MsgDeleteProductDetailsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func sovTx(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -20257,6 +20969,587 @@ func (m *MsgEncounterCloseResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgCreateProductDetails) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgCreateProductDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateProductDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Desc = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgCreateProductDetailsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgCreateProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdateProductDetails) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgUpdateProductDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateProductDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Desc", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Desc = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdateProductDetailsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgUpdateProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgDeleteProductDetails) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgDeleteProductDetails: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgDeleteProductDetails: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Creator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType) + } + m.Id = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Id |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgDeleteProductDetailsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgDeleteProductDetailsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgDeleteProductDetailsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTx(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0