diff --git a/api/regen/ecocredit/marketplace/v1/state.cosmos_orm.go b/api/regen/ecocredit/marketplace/v1/state.cosmos_orm.go index 437bf00cc2..78bc357bb1 100644 --- a/api/regen/ecocredit/marketplace/v1/state.cosmos_orm.go +++ b/api/regen/ecocredit/marketplace/v1/state.cosmos_orm.go @@ -480,10 +480,41 @@ func NewMarketTable(db ormtable.Schema) (MarketTable, error) { return marketTable{table.(ormtable.AutoIncrementTable)}, nil } +// singleton store +type FeeParamsTable interface { + Get(ctx context.Context) (*FeeParams, error) + Save(ctx context.Context, feeParams *FeeParams) error +} + +type feeParamsTable struct { + table ormtable.Table +} + +var _ FeeParamsTable = feeParamsTable{} + +func (x feeParamsTable) Get(ctx context.Context) (*FeeParams, error) { + feeParams := &FeeParams{} + _, err := x.table.Get(ctx, feeParams) + return feeParams, err +} + +func (x feeParamsTable) Save(ctx context.Context, feeParams *FeeParams) error { + return x.table.Save(ctx, feeParams) +} + +func NewFeeParamsTable(db ormtable.Schema) (FeeParamsTable, error) { + table := db.GetTable(&FeeParams{}) + if table == nil { + return nil, ormerrors.TableNotFound.Wrap(string((&FeeParams{}).ProtoReflect().Descriptor().FullName())) + } + return &feeParamsTable{table}, nil +} + type StateStore interface { SellOrderTable() SellOrderTable AllowedDenomTable() AllowedDenomTable MarketTable() MarketTable + FeeParamsTable() FeeParamsTable doNotImplement() } @@ -492,6 +523,7 @@ type stateStore struct { sellOrder SellOrderTable allowedDenom AllowedDenomTable market MarketTable + feeParams FeeParamsTable } func (x stateStore) SellOrderTable() SellOrderTable { @@ -506,6 +538,10 @@ func (x stateStore) MarketTable() MarketTable { return x.market } +func (x stateStore) FeeParamsTable() FeeParamsTable { + return x.feeParams +} + func (stateStore) doNotImplement() {} var _ StateStore = stateStore{} @@ -526,9 +562,15 @@ func NewStateStore(db ormtable.Schema) (StateStore, error) { return nil, err } + feeParamsTable, err := NewFeeParamsTable(db) + if err != nil { + return nil, err + } + return stateStore{ sellOrderTable, allowedDenomTable, marketTable, + feeParamsTable, }, nil } diff --git a/api/regen/ecocredit/marketplace/v1/state.pulsar.go b/api/regen/ecocredit/marketplace/v1/state.pulsar.go index b5e4d4f682..8e1c5a4c61 100644 --- a/api/regen/ecocredit/marketplace/v1/state.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/state.pulsar.go @@ -2007,6 +2007,490 @@ func (x *fastReflection_Market) ProtoMethods() *protoiface.Methods { } } +var ( + md_FeeParams protoreflect.MessageDescriptor + fd_FeeParams_buyer_percentage_fee protoreflect.FieldDescriptor + fd_FeeParams_seller_percentage_fee protoreflect.FieldDescriptor +) + +func init() { + file_regen_ecocredit_marketplace_v1_state_proto_init() + md_FeeParams = File_regen_ecocredit_marketplace_v1_state_proto.Messages().ByName("FeeParams") + fd_FeeParams_buyer_percentage_fee = md_FeeParams.Fields().ByName("buyer_percentage_fee") + fd_FeeParams_seller_percentage_fee = md_FeeParams.Fields().ByName("seller_percentage_fee") +} + +var _ protoreflect.Message = (*fastReflection_FeeParams)(nil) + +type fastReflection_FeeParams FeeParams + +func (x *FeeParams) ProtoReflect() protoreflect.Message { + return (*fastReflection_FeeParams)(x) +} + +func (x *FeeParams) slowProtoReflect() protoreflect.Message { + mi := &file_regen_ecocredit_marketplace_v1_state_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_FeeParams_messageType fastReflection_FeeParams_messageType +var _ protoreflect.MessageType = fastReflection_FeeParams_messageType{} + +type fastReflection_FeeParams_messageType struct{} + +func (x fastReflection_FeeParams_messageType) Zero() protoreflect.Message { + return (*fastReflection_FeeParams)(nil) +} +func (x fastReflection_FeeParams_messageType) New() protoreflect.Message { + return new(fastReflection_FeeParams) +} +func (x fastReflection_FeeParams_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_FeeParams +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_FeeParams) Descriptor() protoreflect.MessageDescriptor { + return md_FeeParams +} + +// 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_FeeParams) Type() protoreflect.MessageType { + return _fastReflection_FeeParams_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_FeeParams) New() protoreflect.Message { + return new(fastReflection_FeeParams) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_FeeParams) Interface() protoreflect.ProtoMessage { + return (*FeeParams)(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_FeeParams) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.BuyerPercentageFee != "" { + value := protoreflect.ValueOfString(x.BuyerPercentageFee) + if !f(fd_FeeParams_buyer_percentage_fee, value) { + return + } + } + if x.SellerPercentageFee != "" { + value := protoreflect.ValueOfString(x.SellerPercentageFee) + if !f(fd_FeeParams_seller_percentage_fee, 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_FeeParams) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.FeeParams.buyer_percentage_fee": + return x.BuyerPercentageFee != "" + case "regen.ecocredit.marketplace.v1.FeeParams.seller_percentage_fee": + return x.SellerPercentageFee != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.FeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.FeeParams 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_FeeParams) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.FeeParams.buyer_percentage_fee": + x.BuyerPercentageFee = "" + case "regen.ecocredit.marketplace.v1.FeeParams.seller_percentage_fee": + x.SellerPercentageFee = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.FeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.FeeParams 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_FeeParams) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "regen.ecocredit.marketplace.v1.FeeParams.buyer_percentage_fee": + value := x.BuyerPercentageFee + return protoreflect.ValueOfString(value) + case "regen.ecocredit.marketplace.v1.FeeParams.seller_percentage_fee": + value := x.SellerPercentageFee + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.FeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.FeeParams 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_FeeParams) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.FeeParams.buyer_percentage_fee": + x.BuyerPercentageFee = value.Interface().(string) + case "regen.ecocredit.marketplace.v1.FeeParams.seller_percentage_fee": + x.SellerPercentageFee = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.FeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.FeeParams 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_FeeParams) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.FeeParams.buyer_percentage_fee": + panic(fmt.Errorf("field buyer_percentage_fee of message regen.ecocredit.marketplace.v1.FeeParams is not mutable")) + case "regen.ecocredit.marketplace.v1.FeeParams.seller_percentage_fee": + panic(fmt.Errorf("field seller_percentage_fee of message regen.ecocredit.marketplace.v1.FeeParams is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.FeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.FeeParams 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_FeeParams) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.FeeParams.buyer_percentage_fee": + return protoreflect.ValueOfString("") + case "regen.ecocredit.marketplace.v1.FeeParams.seller_percentage_fee": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.FeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.FeeParams 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_FeeParams) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.marketplace.v1.FeeParams", 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_FeeParams) 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_FeeParams) 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_FeeParams) 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_FeeParams) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*FeeParams) + 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.BuyerPercentageFee) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.SellerPercentageFee) + 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().(*FeeParams) + 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.SellerPercentageFee) > 0 { + i -= len(x.SellerPercentageFee) + copy(dAtA[i:], x.SellerPercentageFee) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.SellerPercentageFee))) + i-- + dAtA[i] = 0x12 + } + if len(x.BuyerPercentageFee) > 0 { + i -= len(x.BuyerPercentageFee) + copy(dAtA[i:], x.BuyerPercentageFee) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BuyerPercentageFee))) + 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().(*FeeParams) + 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: FeeParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: FeeParams: 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 BuyerPercentageFee", 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.BuyerPercentageFee = 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 SellerPercentageFee", 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.SellerPercentageFee = 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 @@ -2292,6 +2776,62 @@ func (x *Market) GetPrecisionModifier() uint32 { return 0 } +// FeeParams represents the marketplace fee parameters. Fees will be charged in the +// same denom that the order is denominated in and deposited into the marketplace +// fee pool, except when the denom is regen, in which case the fees will be +// burned. Fees in the fee pool are expected to burned by governance in a manual +// process unless governance agrees to a different approach. +type FeeParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // buyer_percentage_fee is the decimal percentage fee charged to the buyer. + // The string 0.03 means a 3.0% fee. + // This fee will be added to the total price of a buy order and is denominated + // in the same denom as the buy order's bid denom. + BuyerPercentageFee string `protobuf:"bytes,1,opt,name=buyer_percentage_fee,json=buyerPercentageFee,proto3" json:"buyer_percentage_fee,omitempty"` + // seller_percentage_fee is the decimal percentage fee charged to the seller. + // The string 0.03 means a 3.0% fee. + // This fee will be subtracted from the total proceeds of a sell order distributed to the seller + // and is denominated in the same denom as the sell order's ask denom. + SellerPercentageFee string `protobuf:"bytes,2,opt,name=seller_percentage_fee,json=sellerPercentageFee,proto3" json:"seller_percentage_fee,omitempty"` +} + +func (x *FeeParams) Reset() { + *x = FeeParams{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_state_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeeParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeeParams) ProtoMessage() {} + +// Deprecated: Use FeeParams.ProtoReflect.Descriptor instead. +func (*FeeParams) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_state_proto_rawDescGZIP(), []int{3} +} + +func (x *FeeParams) GetBuyerPercentageFee() string { + if x != nil { + return x.BuyerPercentageFee + } + return "" +} + +func (x *FeeParams) GetSellerPercentageFee() string { + if x != nil { + return x.SellerPercentageFee + } + return "" +} + var File_regen_ecocredit_marketplace_v1_state_proto protoreflect.FileDescriptor var file_regen_ecocredit_marketplace_v1_state_proto_rawDesc = []byte{ @@ -2348,26 +2888,34 @@ var file_regen_ecocredit_marketplace_v1_state_proto_rawDesc = []byte{ 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x35, 0xf2, 0x9e, 0xd3, 0x8e, 0x03, 0x2f, 0x0a, 0x06, 0x0a, 0x02, 0x69, 0x64, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1d, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x2c, 0x62, 0x61, 0x6e, 0x6b, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x10, 0x01, 0x18, 0x01, 0x18, 0x04, 0x42, 0xa3, 0x02, 0x0a, - 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x56, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x45, 0x4d, 0xaa, - 0x02, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x56, 0x31, - 0xca, 0x02, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x5c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x2a, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x5c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x21, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x3a, 0x3a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x10, 0x01, 0x18, 0x01, 0x18, 0x04, 0x22, 0x7b, 0x0a, 0x09, + 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x75, 0x79, + 0x65, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x65, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x75, 0x79, 0x65, 0x72, 0x50, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x46, 0x65, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, + 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, + 0x5f, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x6c, 0x6c, + 0x65, 0x72, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x46, 0x65, 0x65, 0x3a, + 0x08, 0xfa, 0x9e, 0xd3, 0x8e, 0x03, 0x02, 0x08, 0x05, 0x42, 0xa3, 0x02, 0x0a, 0x22, 0x63, 0x6f, + 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x42, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x56, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6c, + 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, + 0x6c, 0x61, 0x63, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x45, 0x4d, 0xaa, 0x02, 0x1e, 0x52, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1e, + 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x2a, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x5c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x52, 0x65, + 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x3a, 0x3a, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2382,15 +2930,16 @@ func file_regen_ecocredit_marketplace_v1_state_proto_rawDescGZIP() []byte { return file_regen_ecocredit_marketplace_v1_state_proto_rawDescData } -var file_regen_ecocredit_marketplace_v1_state_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_regen_ecocredit_marketplace_v1_state_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_regen_ecocredit_marketplace_v1_state_proto_goTypes = []interface{}{ (*SellOrder)(nil), // 0: regen.ecocredit.marketplace.v1.SellOrder (*AllowedDenom)(nil), // 1: regen.ecocredit.marketplace.v1.AllowedDenom (*Market)(nil), // 2: regen.ecocredit.marketplace.v1.Market - (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp + (*FeeParams)(nil), // 3: regen.ecocredit.marketplace.v1.FeeParams + (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp } var file_regen_ecocredit_marketplace_v1_state_proto_depIdxs = []int32{ - 3, // 0: regen.ecocredit.marketplace.v1.SellOrder.expiration:type_name -> google.protobuf.Timestamp + 4, // 0: regen.ecocredit.marketplace.v1.SellOrder.expiration:type_name -> google.protobuf.Timestamp 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 @@ -2440,6 +2989,18 @@ func file_regen_ecocredit_marketplace_v1_state_proto_init() { return nil } } + file_regen_ecocredit_marketplace_v1_state_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeeParams); 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{ @@ -2447,7 +3008,7 @@ func file_regen_ecocredit_marketplace_v1_state_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_regen_ecocredit_marketplace_v1_state_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go index 8890dfbcda..917f9c6339 100644 --- a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go @@ -3,6 +3,7 @@ package marketplacev1 import ( fmt "fmt" + _ "github.com/cosmos/cosmos-proto" runtime "github.com/cosmos/cosmos-proto/runtime" v1beta1 "github.com/cosmos/cosmos-sdk/api/cosmos/base/v1beta1" _ "github.com/cosmos/cosmos-sdk/api/cosmos/msg/v1" @@ -602,7 +603,7 @@ func (x *MsgSell_Order) ProtoReflect() protoreflect.Message { } func (x *MsgSell_Order) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[12] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2392,7 +2393,7 @@ func (x *MsgUpdateSellOrders_Update) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateSellOrders_Update) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[13] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4790,6 +4791,7 @@ var ( fd_MsgBuyDirect_Order_disable_auto_retire protoreflect.FieldDescriptor fd_MsgBuyDirect_Order_retirement_jurisdiction protoreflect.FieldDescriptor fd_MsgBuyDirect_Order_retirement_reason protoreflect.FieldDescriptor + fd_MsgBuyDirect_Order_max_fee_amount protoreflect.FieldDescriptor ) func init() { @@ -4801,6 +4803,7 @@ func init() { fd_MsgBuyDirect_Order_disable_auto_retire = md_MsgBuyDirect_Order.Fields().ByName("disable_auto_retire") fd_MsgBuyDirect_Order_retirement_jurisdiction = md_MsgBuyDirect_Order.Fields().ByName("retirement_jurisdiction") fd_MsgBuyDirect_Order_retirement_reason = md_MsgBuyDirect_Order.Fields().ByName("retirement_reason") + fd_MsgBuyDirect_Order_max_fee_amount = md_MsgBuyDirect_Order.Fields().ByName("max_fee_amount") } var _ protoreflect.Message = (*fastReflection_MsgBuyDirect_Order)(nil) @@ -4812,7 +4815,7 @@ func (x *MsgBuyDirect_Order) ProtoReflect() protoreflect.Message { } func (x *MsgBuyDirect_Order) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[14] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4904,6 +4907,12 @@ func (x *fastReflection_MsgBuyDirect_Order) Range(f func(protoreflect.FieldDescr return } } + if x.MaxFeeAmount != "" { + value := protoreflect.ValueOfString(x.MaxFeeAmount) + if !f(fd_MsgBuyDirect_Order_max_fee_amount, value) { + return + } + } } // Has reports whether a field is populated. @@ -4931,6 +4940,8 @@ func (x *fastReflection_MsgBuyDirect_Order) Has(fd protoreflect.FieldDescriptor) return x.RetirementJurisdiction != "" case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.retirement_reason": return x.RetirementReason != "" + case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": + return x.MaxFeeAmount != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -4959,6 +4970,8 @@ func (x *fastReflection_MsgBuyDirect_Order) Clear(fd protoreflect.FieldDescripto x.RetirementJurisdiction = "" case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.retirement_reason": x.RetirementReason = "" + case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": + x.MaxFeeAmount = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -4993,6 +5006,9 @@ func (x *fastReflection_MsgBuyDirect_Order) Get(descriptor protoreflect.FieldDes case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.retirement_reason": value := x.RetirementReason return protoreflect.ValueOfString(value) + case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": + value := x.MaxFeeAmount + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5025,6 +5041,8 @@ func (x *fastReflection_MsgBuyDirect_Order) Set(fd protoreflect.FieldDescriptor, x.RetirementJurisdiction = value.Interface().(string) case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.retirement_reason": x.RetirementReason = value.Interface().(string) + case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": + x.MaxFeeAmount = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5060,6 +5078,8 @@ func (x *fastReflection_MsgBuyDirect_Order) Mutable(fd protoreflect.FieldDescrip panic(fmt.Errorf("field retirement_jurisdiction of message regen.ecocredit.marketplace.v1.MsgBuyDirect.Order is not mutable")) case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.retirement_reason": panic(fmt.Errorf("field retirement_reason of message regen.ecocredit.marketplace.v1.MsgBuyDirect.Order is not mutable")) + case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": + panic(fmt.Errorf("field max_fee_amount of message regen.ecocredit.marketplace.v1.MsgBuyDirect.Order is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5086,6 +5106,8 @@ func (x *fastReflection_MsgBuyDirect_Order) NewField(fd protoreflect.FieldDescri return protoreflect.ValueOfString("") case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.retirement_reason": return protoreflect.ValueOfString("") + case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5177,6 +5199,10 @@ func (x *fastReflection_MsgBuyDirect_Order) ProtoMethods() *protoiface.Methods { if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } + l = len(x.MaxFeeAmount) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -5206,6 +5232,13 @@ func (x *fastReflection_MsgBuyDirect_Order) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.MaxFeeAmount) > 0 { + i -= len(x.MaxFeeAmount) + copy(dAtA[i:], x.MaxFeeAmount) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MaxFeeAmount))) + i-- + dAtA[i] = 0x42 + } if len(x.RetirementReason) > 0 { i -= len(x.RetirementReason) copy(dAtA[i:], x.RetirementReason) @@ -5476,6 +5509,38 @@ func (x *fastReflection_MsgBuyDirect_Order) ProtoMethods() *protoiface.Methods { } x.RetirementReason = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 8: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MaxFeeAmount", 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.MaxFeeAmount = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -7659,153 +7724,1008 @@ func (x *fastReflection_MsgRemoveAllowedDenomResponse) ProtoMethods() *protoifac } } -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.27.0 -// protoc (unknown) -// source: regen/ecocredit/marketplace/v1/tx.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) +var ( + md_MsgGovSetFeeParams protoreflect.MessageDescriptor + fd_MsgGovSetFeeParams_authority protoreflect.FieldDescriptor + fd_MsgGovSetFeeParams_fees protoreflect.FieldDescriptor ) -// MsgSell is the Msg/Sell request type. -type MsgSell struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func init() { + file_regen_ecocredit_marketplace_v1_tx_proto_init() + md_MsgGovSetFeeParams = File_regen_ecocredit_marketplace_v1_tx_proto.Messages().ByName("MsgGovSetFeeParams") + fd_MsgGovSetFeeParams_authority = md_MsgGovSetFeeParams.Fields().ByName("authority") + fd_MsgGovSetFeeParams_fees = md_MsgGovSetFeeParams.Fields().ByName("fees") +} - // seller is the address of the account that is selling credits. - Seller string `protobuf:"bytes,1,opt,name=seller,proto3" json:"seller,omitempty"` - // orders are the sell orders being created. - Orders []*MsgSell_Order `protobuf:"bytes,2,rep,name=orders,proto3" json:"orders,omitempty"` +var _ protoreflect.Message = (*fastReflection_MsgGovSetFeeParams)(nil) + +type fastReflection_MsgGovSetFeeParams MsgGovSetFeeParams + +func (x *MsgGovSetFeeParams) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgGovSetFeeParams)(x) } -func (x *MsgSell) Reset() { - *x = MsgSell{} - if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[0] +func (x *MsgGovSetFeeParams) slowProtoReflect() protoreflect.Message { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } + return mi.MessageOf(x) } -func (x *MsgSell) String() string { - return protoimpl.X.MessageStringOf(x) -} +var _fastReflection_MsgGovSetFeeParams_messageType fastReflection_MsgGovSetFeeParams_messageType +var _ protoreflect.MessageType = fastReflection_MsgGovSetFeeParams_messageType{} -func (*MsgSell) ProtoMessage() {} +type fastReflection_MsgGovSetFeeParams_messageType struct{} -// Deprecated: Use MsgSell.ProtoReflect.Descriptor instead. -func (*MsgSell) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{0} +func (x fastReflection_MsgGovSetFeeParams_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgGovSetFeeParams)(nil) } - -func (x *MsgSell) GetSeller() string { - if x != nil { - return x.Seller - } - return "" +func (x fastReflection_MsgGovSetFeeParams_messageType) New() protoreflect.Message { + return new(fastReflection_MsgGovSetFeeParams) } - -func (x *MsgSell) GetOrders() []*MsgSell_Order { - if x != nil { - return x.Orders - } - return nil +func (x fastReflection_MsgGovSetFeeParams_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgGovSetFeeParams } -// MsgSellResponse is the Msg/Sell response type. -type MsgSellResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // sell_order_ids are the sell order IDs of the newly created sell orders. - SellOrderIds []uint64 `protobuf:"varint,1,rep,packed,name=sell_order_ids,json=sellOrderIds,proto3" json:"sell_order_ids,omitempty"` +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgGovSetFeeParams) Descriptor() protoreflect.MessageDescriptor { + return md_MsgGovSetFeeParams } -func (x *MsgSellResponse) Reset() { - *x = MsgSellResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +// 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_MsgGovSetFeeParams) Type() protoreflect.MessageType { + return _fastReflection_MsgGovSetFeeParams_messageType } -func (x *MsgSellResponse) String() string { - return protoimpl.X.MessageStringOf(x) +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgGovSetFeeParams) New() protoreflect.Message { + return new(fastReflection_MsgGovSetFeeParams) } -func (*MsgSellResponse) ProtoMessage() {} - -// Deprecated: Use MsgSellResponse.ProtoReflect.Descriptor instead. -func (*MsgSellResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{1} +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgGovSetFeeParams) Interface() protoreflect.ProtoMessage { + return (*MsgGovSetFeeParams)(x) } -func (x *MsgSellResponse) GetSellOrderIds() []uint64 { - if x != nil { - return x.SellOrderIds +// 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_MsgGovSetFeeParams) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_MsgGovSetFeeParams_authority, value) { + return + } + } + if x.Fees != nil { + value := protoreflect.ValueOfMessage(x.Fees.ProtoReflect()) + if !f(fd_MsgGovSetFeeParams_fees, value) { + return + } } - return nil -} - -// MsgUpdateSellOrders is the Msg/UpdateSellOrders request type. -type MsgUpdateSellOrders struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // seller is the address of the account that is selling credits. - Seller string `protobuf:"bytes,1,opt,name=seller,proto3" json:"seller,omitempty"` - // updates are updates to existing sell orders. - Updates []*MsgUpdateSellOrders_Update `protobuf:"bytes,2,rep,name=updates,proto3" json:"updates,omitempty"` } -func (x *MsgUpdateSellOrders) Reset() { - *x = MsgUpdateSellOrders{} - if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +// 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_MsgGovSetFeeParams) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.authority": + return x.Authority != "" + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees": + return x.Fees != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParams does not contain field %s", fd.FullName())) } } -func (x *MsgUpdateSellOrders) String() string { - return protoimpl.X.MessageStringOf(x) +// 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_MsgGovSetFeeParams) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.authority": + x.Authority = "" + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees": + x.Fees = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParams does not contain field %s", fd.FullName())) + } } -func (*MsgUpdateSellOrders) ProtoMessage() {} - -// Deprecated: Use MsgUpdateSellOrders.ProtoReflect.Descriptor instead. -func (*MsgUpdateSellOrders) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{2} +// 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_MsgGovSetFeeParams) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees": + value := x.Fees + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParams does not contain field %s", descriptor.FullName())) + } } -func (x *MsgUpdateSellOrders) GetSeller() string { - if x != nil { - return x.Seller +// 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_MsgGovSetFeeParams) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.authority": + x.Authority = value.Interface().(string) + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees": + x.Fees = value.Message().Interface().(*FeeParams) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParams does not contain field %s", fd.FullName())) } - return "" } -func (x *MsgUpdateSellOrders) GetUpdates() []*MsgUpdateSellOrders_Update { - if x != nil { - return x.Updates +// 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_MsgGovSetFeeParams) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees": + if x.Fees == nil { + x.Fees = new(FeeParams) + } + return protoreflect.ValueOfMessage(x.Fees.ProtoReflect()) + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.authority": + panic(fmt.Errorf("field authority of message regen.ecocredit.marketplace.v1.MsgGovSetFeeParams is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParams does not contain field %s", fd.FullName())) } - return nil } -// MsgUpdateSellOrdersResponse is the Msg/UpdateSellOrders response type. -type MsgUpdateSellOrdersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// 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_MsgGovSetFeeParams) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.authority": + return protoreflect.ValueOfString("") + case "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees": + m := new(FeeParams) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParams 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_MsgGovSetFeeParams) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.marketplace.v1.MsgGovSetFeeParams", 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_MsgGovSetFeeParams) 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_MsgGovSetFeeParams) 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_MsgGovSetFeeParams) 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_MsgGovSetFeeParams) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgGovSetFeeParams) + 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.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Fees != nil { + l = options.Size(x.Fees) + 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().(*MsgGovSetFeeParams) + 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.Fees != nil { + encoded, err := options.Marshal(x.Fees) + 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.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + 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().(*MsgGovSetFeeParams) + 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: MsgGovSetFeeParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgGovSetFeeParams: 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 Authority", 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.Authority = 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 Fees", 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.Fees == nil { + x.Fees = &FeeParams{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Fees); 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_MsgGovSetFeeParamsResponse protoreflect.MessageDescriptor +) + +func init() { + file_regen_ecocredit_marketplace_v1_tx_proto_init() + md_MsgGovSetFeeParamsResponse = File_regen_ecocredit_marketplace_v1_tx_proto.Messages().ByName("MsgGovSetFeeParamsResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgGovSetFeeParamsResponse)(nil) + +type fastReflection_MsgGovSetFeeParamsResponse MsgGovSetFeeParamsResponse + +func (x *MsgGovSetFeeParamsResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgGovSetFeeParamsResponse)(x) +} + +func (x *MsgGovSetFeeParamsResponse) slowProtoReflect() protoreflect.Message { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[13] + 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_MsgGovSetFeeParamsResponse_messageType fastReflection_MsgGovSetFeeParamsResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgGovSetFeeParamsResponse_messageType{} + +type fastReflection_MsgGovSetFeeParamsResponse_messageType struct{} + +func (x fastReflection_MsgGovSetFeeParamsResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgGovSetFeeParamsResponse)(nil) +} +func (x fastReflection_MsgGovSetFeeParamsResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgGovSetFeeParamsResponse) +} +func (x fastReflection_MsgGovSetFeeParamsResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgGovSetFeeParamsResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgGovSetFeeParamsResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgGovSetFeeParamsResponse +} + +// 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_MsgGovSetFeeParamsResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgGovSetFeeParamsResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgGovSetFeeParamsResponse) New() protoreflect.Message { + return new(fastReflection_MsgGovSetFeeParamsResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgGovSetFeeParamsResponse) Interface() protoreflect.ProtoMessage { + return (*MsgGovSetFeeParamsResponse)(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_MsgGovSetFeeParamsResponse) 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_MsgGovSetFeeParamsResponse) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse 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_MsgGovSetFeeParamsResponse) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse 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_MsgGovSetFeeParamsResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse 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_MsgGovSetFeeParamsResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse 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_MsgGovSetFeeParamsResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse 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_MsgGovSetFeeParamsResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse 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_MsgGovSetFeeParamsResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse", 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_MsgGovSetFeeParamsResponse) 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_MsgGovSetFeeParamsResponse) 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_MsgGovSetFeeParamsResponse) 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_MsgGovSetFeeParamsResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgGovSetFeeParamsResponse) + 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().(*MsgGovSetFeeParamsResponse) + 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().(*MsgGovSetFeeParamsResponse) + 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: MsgGovSetFeeParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgGovSetFeeParamsResponse: 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 +// protoc (unknown) +// source: regen/ecocredit/marketplace/v1/tx.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) +) + +// MsgSell is the Msg/Sell request type. +type MsgSell struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // seller is the address of the account that is selling credits. + Seller string `protobuf:"bytes,1,opt,name=seller,proto3" json:"seller,omitempty"` + // orders are the sell orders being created. + Orders []*MsgSell_Order `protobuf:"bytes,2,rep,name=orders,proto3" json:"orders,omitempty"` +} + +func (x *MsgSell) Reset() { + *x = MsgSell{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSell) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSell) ProtoMessage() {} + +// Deprecated: Use MsgSell.ProtoReflect.Descriptor instead. +func (*MsgSell) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{0} +} + +func (x *MsgSell) GetSeller() string { + if x != nil { + return x.Seller + } + return "" +} + +func (x *MsgSell) GetOrders() []*MsgSell_Order { + if x != nil { + return x.Orders + } + return nil +} + +// MsgSellResponse is the Msg/Sell response type. +type MsgSellResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // sell_order_ids are the sell order IDs of the newly created sell orders. + SellOrderIds []uint64 `protobuf:"varint,1,rep,packed,name=sell_order_ids,json=sellOrderIds,proto3" json:"sell_order_ids,omitempty"` +} + +func (x *MsgSellResponse) Reset() { + *x = MsgSellResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSellResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSellResponse) ProtoMessage() {} + +// Deprecated: Use MsgSellResponse.ProtoReflect.Descriptor instead. +func (*MsgSellResponse) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{1} +} + +func (x *MsgSellResponse) GetSellOrderIds() []uint64 { + if x != nil { + return x.SellOrderIds + } + return nil +} + +// MsgUpdateSellOrders is the Msg/UpdateSellOrders request type. +type MsgUpdateSellOrders struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // seller is the address of the account that is selling credits. + Seller string `protobuf:"bytes,1,opt,name=seller,proto3" json:"seller,omitempty"` + // updates are updates to existing sell orders. + Updates []*MsgUpdateSellOrders_Update `protobuf:"bytes,2,rep,name=updates,proto3" json:"updates,omitempty"` +} + +func (x *MsgUpdateSellOrders) Reset() { + *x = MsgUpdateSellOrders{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgUpdateSellOrders) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgUpdateSellOrders) ProtoMessage() {} + +// Deprecated: Use MsgUpdateSellOrders.ProtoReflect.Descriptor instead. +func (*MsgUpdateSellOrders) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{2} +} + +func (x *MsgUpdateSellOrders) GetSeller() string { + if x != nil { + return x.Seller + } + return "" +} + +func (x *MsgUpdateSellOrders) GetUpdates() []*MsgUpdateSellOrders_Update { + if x != nil { + return x.Updates + } + return nil +} + +// MsgUpdateSellOrdersResponse is the Msg/UpdateSellOrders response type. +type MsgUpdateSellOrdersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } func (x *MsgUpdateSellOrdersResponse) Reset() { @@ -8150,6 +9070,79 @@ func (*MsgRemoveAllowedDenomResponse) Descriptor() ([]byte, []int) { return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{11} } +// MsgSetFeeParams is the Msg/SetFeeParams request type. +type MsgGovSetFeeParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // authority is the address of the governance account. + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // fees are the marketplace fees being set. + Fees *FeeParams `protobuf:"bytes,2,opt,name=fees,proto3" json:"fees,omitempty"` +} + +func (x *MsgGovSetFeeParams) Reset() { + *x = MsgGovSetFeeParams{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgGovSetFeeParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgGovSetFeeParams) ProtoMessage() {} + +// Deprecated: Use MsgGovSetFeeParams.ProtoReflect.Descriptor instead. +func (*MsgGovSetFeeParams) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{12} +} + +func (x *MsgGovSetFeeParams) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +func (x *MsgGovSetFeeParams) GetFees() *FeeParams { + if x != nil { + return x.Fees + } + return nil +} + +// MsgSetFeeParamsResponse is the Msg/SetFeeParams response type. +type MsgGovSetFeeParamsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgGovSetFeeParamsResponse) Reset() { + *x = MsgGovSetFeeParamsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgGovSetFeeParamsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgGovSetFeeParamsResponse) ProtoMessage() {} + +// Deprecated: Use MsgGovSetFeeParamsResponse.ProtoReflect.Descriptor instead. +func (*MsgGovSetFeeParamsResponse) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{13} +} + // Order is the content of a new sell order. type MsgSell_Order struct { state protoimpl.MessageState @@ -8180,7 +9173,7 @@ type MsgSell_Order struct { func (x *MsgSell_Order) Reset() { *x = MsgSell_Order{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[12] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8255,7 +9248,7 @@ type MsgUpdateSellOrders_Update struct { func (x *MsgUpdateSellOrders_Update) Reset() { *x = MsgUpdateSellOrders_Update{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[13] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8335,12 +9328,21 @@ type MsgBuyDirect_Order struct { // // Since Revision 1 RetirementReason string `protobuf:"bytes,7,opt,name=retirement_reason,json=retirementReason,proto3" json:"retirement_reason,omitempty"` + // max_fee_amount is the maximum amount of buyer side fees being paid to the marketplace. + // If the marketplace fees end up being greater than this amount, the transaction will fail. + // If this field is left empty, the marketplace fees will be calculated based on the bid price + // and quantity and automatically deducted from the buyer's account. + // Fees are always paid in the same denomination as the bid price and max fee amount should + // be an integer value of that denom. + // + // Since Revision 3 + MaxFeeAmount string `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` } func (x *MsgBuyDirect_Order) Reset() { *x = MsgBuyDirect_Order{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[14] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8399,6 +9401,13 @@ func (x *MsgBuyDirect_Order) GetRetirementReason() string { return "" } +func (x *MsgBuyDirect_Order) GetMaxFeeAmount() string { + if x != nil { + return x.MaxFeeAmount + } + return "" +} + var File_regen_ecocredit_marketplace_v1_tx_proto protoreflect.FileDescriptor var file_regen_ecocredit_marketplace_v1_tx_proto_rawDesc = []byte{ @@ -8406,188 +9415,214 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_rawDesc = []byte{ 0x74, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 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, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 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, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe6, 0x02, 0x0a, 0x07, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x6c, 0x6c, 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, 0x45, 0x0a, - 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x1a, 0xee, 0x01, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1f, - 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x09, 0x61, - 0x73, 0x6b, 0x5f, 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, 0x52, 0x08, 0x61, 0x73, 0x6b, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, - 0x69, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6c, 0x6c, - 0x65, 0x72, 0x22, 0x37, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x73, - 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x9a, 0x03, 0x0a, 0x13, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x73, 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, 0x54, 0x0a, 0x07, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x1a, 0x87, 0x02, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, - 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x51, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x73, 0x6b, 0x5f, 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, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x41, 0x73, 0x6b, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x75, - 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x69, - 0x72, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0d, 0x6e, 0x65, - 0x77, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, - 0x2a, 0x06, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 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, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x65, - 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, 0x03, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x79, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x06, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, - 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x95, 0x02, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x36, 0x0a, 0x09, 0x62, 0x69, 0x64, 0x5f, 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, 0x52, - 0x08, 0x62, 0x69, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, - 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x12, 0x37, 0x0a, 0x17, 0x72, 0x65, 0x74, - 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x72, 0x65, 0x74, 0x69, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, - 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x3a, - 0x0a, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x4d, - 0x73, 0x67, 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6b, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, - 0x6e, 0x6b, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x3a, 0x0e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x41, - 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf4, 0x05, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x60, 0x0a, 0x04, - 0x53, 0x65, 0x6c, 0x6c, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 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, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, + 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 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, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xe6, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 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, 0x45, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x1a, 0x2f, 0x2e, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, - 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x2e, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xee, 0x01, 0x0a, 0x05, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x73, 0x6b, 0x5f, 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, + 0x52, 0x08, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x69, 0x72, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, + 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x37, 0x0a, 0x0f, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0e, + 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, + 0x64, 0x73, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 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, 0x54, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x3b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x87, 0x02, 0x0a, 0x06, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, + 0x65, 0x77, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0d, 0x6e, 0x65, + 0x77, 0x5f, 0x61, 0x73, 0x6b, 0x5f, 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, 0x52, 0x0b, 0x6e, 0x65, + 0x77, 0x41, 0x73, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x6e, 0x65, 0x77, + 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, + 0xdf, 0x1f, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x22, + 0x1d, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, + 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, + 0x72, 0x64, 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, 0x22, 0x0a, 0x0d, + 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x1c, 0x0a, + 0x1a, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xca, 0x03, 0x0a, 0x0c, + 0x4d, 0x73, 0x67, 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x62, 0x75, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x75, 0x79, + 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x1a, 0xcb, + 0x02, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x6c, + 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x09, 0x62, 0x69, 0x64, 0x5f, + 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, 0x52, 0x08, 0x62, 0x69, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, + 0x12, 0x37, 0x0a, 0x17, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6a, + 0x75, 0x72, 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x16, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x75, 0x72, + 0x69, 0x73, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x74, + 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x65, + 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0e, + 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x0c, + 0x6d, 0x61, 0x78, 0x46, 0x65, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0a, 0x82, 0xe7, + 0xb0, 0x2a, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x42, + 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xa2, 0x01, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x6b, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x3a, 0x0e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, + 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, + 0x04, 0x66, 0x65, 0x65, 0x73, 0x3a, 0x0e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, + 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x32, 0xf8, 0x06, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x60, 0x0a, 0x04, 0x53, + 0x65, 0x6c, 0x6c, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x1a, 0x2f, 0x2e, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, + 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x33, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, + 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x3b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, + 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x1a, 0x3a, 0x2e, + 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x1a, 0x3a, 0x2e, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x41, 0x64, + 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x32, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x09, 0x42, 0x75, 0x79, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x79, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x1a, 0x3a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, + 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x35, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x41, - 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x32, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x3d, 0x2e, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x47, + 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x32, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x1a, 0x3a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x3a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, - 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x35, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x3d, 0x2e, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, - 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xa0, 0x02, 0x0a, 0x22, - 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x56, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6c, 0x65, - 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x45, 0x4d, 0xaa, 0x02, 0x1e, 0x52, 0x65, - 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1e, 0x52, - 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x2a, - 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5c, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, 0x52, 0x65, 0x67, - 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x3a, 0x3a, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xa0, + 0x02, 0x0a, 0x22, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x56, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2d, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x45, 0x4d, 0xaa, 0x02, + 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x5c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x2a, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x5c, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x5c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x21, + 0x52, 0x65, 0x67, 0x65, 0x6e, 0x3a, 0x3a, 0x45, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x3a, 0x3a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -8602,7 +9637,7 @@ func file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP() []byte { return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescData } -var file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_regen_ecocredit_marketplace_v1_tx_proto_goTypes = []interface{}{ (*MsgSell)(nil), // 0: regen.ecocredit.marketplace.v1.MsgSell (*MsgSellResponse)(nil), // 1: regen.ecocredit.marketplace.v1.MsgSellResponse @@ -8616,38 +9651,44 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_goTypes = []interface{}{ (*MsgAddAllowedDenomResponse)(nil), // 9: regen.ecocredit.marketplace.v1.MsgAddAllowedDenomResponse (*MsgRemoveAllowedDenom)(nil), // 10: regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenom (*MsgRemoveAllowedDenomResponse)(nil), // 11: regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse - (*MsgSell_Order)(nil), // 12: regen.ecocredit.marketplace.v1.MsgSell.Order - (*MsgUpdateSellOrders_Update)(nil), // 13: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update - (*MsgBuyDirect_Order)(nil), // 14: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order - (*v1beta1.Coin)(nil), // 15: cosmos.base.v1beta1.Coin - (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp + (*MsgGovSetFeeParams)(nil), // 12: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams + (*MsgGovSetFeeParamsResponse)(nil), // 13: regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse + (*MsgSell_Order)(nil), // 14: regen.ecocredit.marketplace.v1.MsgSell.Order + (*MsgUpdateSellOrders_Update)(nil), // 15: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update + (*MsgBuyDirect_Order)(nil), // 16: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order + (*FeeParams)(nil), // 17: regen.ecocredit.marketplace.v1.FeeParams + (*v1beta1.Coin)(nil), // 18: cosmos.base.v1beta1.Coin + (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp } var file_regen_ecocredit_marketplace_v1_tx_proto_depIdxs = []int32{ - 12, // 0: regen.ecocredit.marketplace.v1.MsgSell.orders:type_name -> regen.ecocredit.marketplace.v1.MsgSell.Order - 13, // 1: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.updates:type_name -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update - 14, // 2: regen.ecocredit.marketplace.v1.MsgBuyDirect.orders:type_name -> regen.ecocredit.marketplace.v1.MsgBuyDirect.Order - 15, // 3: regen.ecocredit.marketplace.v1.MsgSell.Order.ask_price:type_name -> cosmos.base.v1beta1.Coin - 16, // 4: regen.ecocredit.marketplace.v1.MsgSell.Order.expiration:type_name -> google.protobuf.Timestamp - 15, // 5: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update.new_ask_price:type_name -> cosmos.base.v1beta1.Coin - 16, // 6: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update.new_expiration:type_name -> google.protobuf.Timestamp - 15, // 7: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.bid_price:type_name -> cosmos.base.v1beta1.Coin - 0, // 8: regen.ecocredit.marketplace.v1.Msg.Sell:input_type -> regen.ecocredit.marketplace.v1.MsgSell - 2, // 9: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:input_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders - 4, // 10: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:input_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrder - 6, // 11: regen.ecocredit.marketplace.v1.Msg.BuyDirect:input_type -> regen.ecocredit.marketplace.v1.MsgBuyDirect - 8, // 12: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenom - 10, // 13: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenom - 1, // 14: regen.ecocredit.marketplace.v1.Msg.Sell:output_type -> regen.ecocredit.marketplace.v1.MsgSellResponse - 3, // 15: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:output_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrdersResponse - 5, // 16: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:output_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrderResponse - 7, // 17: regen.ecocredit.marketplace.v1.Msg.BuyDirect:output_type -> regen.ecocredit.marketplace.v1.MsgBuyDirectResponse - 9, // 18: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenomResponse - 11, // 19: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse - 14, // [14:20] is the sub-list for method output_type - 8, // [8:14] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 14, // 0: regen.ecocredit.marketplace.v1.MsgSell.orders:type_name -> regen.ecocredit.marketplace.v1.MsgSell.Order + 15, // 1: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.updates:type_name -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update + 16, // 2: regen.ecocredit.marketplace.v1.MsgBuyDirect.orders:type_name -> regen.ecocredit.marketplace.v1.MsgBuyDirect.Order + 17, // 3: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees:type_name -> regen.ecocredit.marketplace.v1.FeeParams + 18, // 4: regen.ecocredit.marketplace.v1.MsgSell.Order.ask_price:type_name -> cosmos.base.v1beta1.Coin + 19, // 5: regen.ecocredit.marketplace.v1.MsgSell.Order.expiration:type_name -> google.protobuf.Timestamp + 18, // 6: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update.new_ask_price:type_name -> cosmos.base.v1beta1.Coin + 19, // 7: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update.new_expiration:type_name -> google.protobuf.Timestamp + 18, // 8: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.bid_price:type_name -> cosmos.base.v1beta1.Coin + 0, // 9: regen.ecocredit.marketplace.v1.Msg.Sell:input_type -> regen.ecocredit.marketplace.v1.MsgSell + 2, // 10: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:input_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders + 4, // 11: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:input_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrder + 6, // 12: regen.ecocredit.marketplace.v1.Msg.BuyDirect:input_type -> regen.ecocredit.marketplace.v1.MsgBuyDirect + 8, // 13: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenom + 10, // 14: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenom + 12, // 15: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:input_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParams + 1, // 16: regen.ecocredit.marketplace.v1.Msg.Sell:output_type -> regen.ecocredit.marketplace.v1.MsgSellResponse + 3, // 17: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:output_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrdersResponse + 5, // 18: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:output_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrderResponse + 7, // 19: regen.ecocredit.marketplace.v1.Msg.BuyDirect:output_type -> regen.ecocredit.marketplace.v1.MsgBuyDirectResponse + 9, // 20: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenomResponse + 11, // 21: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse + 13, // 22: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:output_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse + 16, // [16:23] is the sub-list for method output_type + 9, // [9:16] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name } func init() { file_regen_ecocredit_marketplace_v1_tx_proto_init() } @@ -8655,6 +9696,7 @@ func file_regen_ecocredit_marketplace_v1_tx_proto_init() { if File_regen_ecocredit_marketplace_v1_tx_proto != nil { return } + file_regen_ecocredit_marketplace_v1_state_proto_init() if !protoimpl.UnsafeEnabled { file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgSell); i { @@ -8801,7 +9843,7 @@ func file_regen_ecocredit_marketplace_v1_tx_proto_init() { } } file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgSell_Order); i { + switch v := v.(*MsgGovSetFeeParams); i { case 0: return &v.state case 1: @@ -8813,7 +9855,7 @@ func file_regen_ecocredit_marketplace_v1_tx_proto_init() { } } file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgUpdateSellOrders_Update); i { + switch v := v.(*MsgGovSetFeeParamsResponse); i { case 0: return &v.state case 1: @@ -8825,6 +9867,30 @@ func file_regen_ecocredit_marketplace_v1_tx_proto_init() { } } file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSell_Order); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgUpdateSellOrders_Update); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgBuyDirect_Order); i { case 0: return &v.state @@ -8843,7 +9909,7 @@ func file_regen_ecocredit_marketplace_v1_tx_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_regen_ecocredit_marketplace_v1_tx_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 17, NumExtensions: 0, NumServices: 1, }, diff --git a/api/regen/ecocredit/marketplace/v1/tx_grpc.pb.go b/api/regen/ecocredit/marketplace/v1/tx_grpc.pb.go index f64d05e557..627959b2c0 100644 --- a/api/regen/ecocredit/marketplace/v1/tx_grpc.pb.go +++ b/api/regen/ecocredit/marketplace/v1/tx_grpc.pb.go @@ -25,6 +25,7 @@ const ( Msg_BuyDirect_FullMethodName = "/regen.ecocredit.marketplace.v1.Msg/BuyDirect" Msg_AddAllowedDenom_FullMethodName = "/regen.ecocredit.marketplace.v1.Msg/AddAllowedDenom" Msg_RemoveAllowedDenom_FullMethodName = "/regen.ecocredit.marketplace.v1.Msg/RemoveAllowedDenom" + Msg_GovSetFeeParams_FullMethodName = "/regen.ecocredit.marketplace.v1.Msg/GovSetFeeParams" ) // MsgClient is the client API for Msg service. @@ -48,6 +49,10 @@ type MsgClient interface { // // Since Revision 1 RemoveAllowedDenom(ctx context.Context, in *MsgRemoveAllowedDenom, opts ...grpc.CallOption) (*MsgRemoveAllowedDenomResponse, error) + // SetFeeParams is a governance method that sets the marketplace fees. + // + // Since Revision 3 + GovSetFeeParams(ctx context.Context, in *MsgGovSetFeeParams, opts ...grpc.CallOption) (*MsgGovSetFeeParamsResponse, error) } type msgClient struct { @@ -112,6 +117,15 @@ func (c *msgClient) RemoveAllowedDenom(ctx context.Context, in *MsgRemoveAllowed return out, nil } +func (c *msgClient) GovSetFeeParams(ctx context.Context, in *MsgGovSetFeeParams, opts ...grpc.CallOption) (*MsgGovSetFeeParamsResponse, error) { + out := new(MsgGovSetFeeParamsResponse) + err := c.cc.Invoke(ctx, Msg_GovSetFeeParams_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 @@ -133,6 +147,10 @@ type MsgServer interface { // // Since Revision 1 RemoveAllowedDenom(context.Context, *MsgRemoveAllowedDenom) (*MsgRemoveAllowedDenomResponse, error) + // SetFeeParams is a governance method that sets the marketplace fees. + // + // Since Revision 3 + GovSetFeeParams(context.Context, *MsgGovSetFeeParams) (*MsgGovSetFeeParamsResponse, error) mustEmbedUnimplementedMsgServer() } @@ -158,6 +176,9 @@ func (UnimplementedMsgServer) AddAllowedDenom(context.Context, *MsgAddAllowedDen func (UnimplementedMsgServer) RemoveAllowedDenom(context.Context, *MsgRemoveAllowedDenom) (*MsgRemoveAllowedDenomResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveAllowedDenom not implemented") } +func (UnimplementedMsgServer) GovSetFeeParams(context.Context, *MsgGovSetFeeParams) (*MsgGovSetFeeParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GovSetFeeParams not implemented") +} func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {} // UnsafeMsgServer may be embedded to opt out of forward compatibility for this service. @@ -279,6 +300,24 @@ func _Msg_RemoveAllowedDenom_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _Msg_GovSetFeeParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgGovSetFeeParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).GovSetFeeParams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_GovSetFeeParams_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).GovSetFeeParams(ctx, req.(*MsgGovSetFeeParams)) + } + 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) @@ -310,6 +349,10 @@ var Msg_ServiceDesc = grpc.ServiceDesc{ MethodName: "RemoveAllowedDenom", Handler: _Msg_RemoveAllowedDenom_Handler, }, + { + MethodName: "GovSetFeeParams", + Handler: _Msg_GovSetFeeParams_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "regen/ecocredit/marketplace/v1/tx.proto", diff --git a/proto/regen/ecocredit/marketplace/v1/state.proto b/proto/regen/ecocredit/marketplace/v1/state.proto index 39ed91e9cc..2654282ee8 100644 --- a/proto/regen/ecocredit/marketplace/v1/state.proto +++ b/proto/regen/ecocredit/marketplace/v1/state.proto @@ -127,3 +127,26 @@ message Market { // exchange for less precision at the lower end. uint32 precision_modifier = 4; } + +// FeeParams represents the marketplace fee parameters. Fees will be charged in the +// same denom that the order is denominated in and deposited into the marketplace +// fee pool, except when the denom is regen, in which case the fees will be +// burned. Fees in the fee pool are expected to burned by governance in a manual +// process unless governance agrees to a different approach. +message FeeParams { + option (cosmos.orm.v1.singleton) = { + id : 5 + }; + + // buyer_percentage_fee is the decimal percentage fee charged to the buyer. + // The string 0.03 means a 3.0% fee. + // This fee will be added to the total price of a buy order and is denominated + // in the same denom as the buy order's bid denom. + string buyer_percentage_fee = 1; + + // seller_percentage_fee is the decimal percentage fee charged to the seller. + // The string 0.03 means a 3.0% fee. + // This fee will be subtracted from the total proceeds of a sell order distributed to the seller + // and is denominated in the same denom as the sell order's ask denom. + string seller_percentage_fee = 2; +} diff --git a/proto/regen/ecocredit/marketplace/v1/tx.proto b/proto/regen/ecocredit/marketplace/v1/tx.proto index 7aa880426e..62a1f1c657 100644 --- a/proto/regen/ecocredit/marketplace/v1/tx.proto +++ b/proto/regen/ecocredit/marketplace/v1/tx.proto @@ -4,8 +4,10 @@ package regen.ecocredit.marketplace.v1; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/msg/v1/msg.proto"; +import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; +import "regen/ecocredit/marketplace/v1/state.proto"; option go_package = "github.com/regen-network/regen-ledger/x/ecocredit/marketplace/types/v1"; @@ -36,6 +38,12 @@ service Msg { // Since Revision 1 rpc RemoveAllowedDenom(MsgRemoveAllowedDenom) returns (MsgRemoveAllowedDenomResponse); + + // SetFeeParams is a governance method that sets the marketplace fees. + // + // Since Revision 3 + rpc GovSetFeeParams(MsgGovSetFeeParams) + returns (MsgGovSetFeeParamsResponse); } // MsgSell is the Msg/Sell request type. @@ -174,6 +182,16 @@ message MsgBuyDirect { // // Since Revision 1 string retirement_reason = 7; + + // max_fee_amount is the maximum amount of buyer side fees being paid to the marketplace. + // If the marketplace fees end up being greater than this amount, the transaction will fail. + // If this field is left empty, the marketplace fees will be calculated based on the bid price + // and quantity and automatically deducted from the buyer's account. + // Fees are always paid in the same denomination as the bid price and max fee amount should + // be an integer value of that denom. + // + // Since Revision 3 + string max_fee_amount = 8 [(cosmos_proto.scalar) = "cosmos.Int"]; } } @@ -223,3 +241,17 @@ message MsgRemoveAllowedDenom { // // Since Revision 1 message MsgRemoveAllowedDenomResponse {} + +// MsgSetFeeParams is the Msg/SetFeeParams request type. +message MsgGovSetFeeParams { + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the address of the governance account. + string authority = 1; + + // fees are the marketplace fees being set. + FeeParams fees = 2; +} + +// MsgSetFeeParamsResponse is the Msg/SetFeeParams response type. +message MsgGovSetFeeParamsResponse {} diff --git a/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params.go b/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params.go new file mode 100644 index 0000000000..593fbb7696 --- /dev/null +++ b/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params.go @@ -0,0 +1,12 @@ +package keeper + +import ( + "context" + + types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" +) + +func (k Keeper) GovSetFeeParams(context.Context, *types.MsgGovSetFeeParams) (*types.MsgGovSetFeeParamsResponse, error) { + // TODO implement me + panic("implement me") +} diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params.go b/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params.go new file mode 100644 index 0000000000..c8439ade2f --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params.go @@ -0,0 +1,33 @@ +package v1 + +import ( + "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" +) + +var _ legacytx.LegacyMsg = &MsgGovSetFeeParams{} + +func (m *MsgGovSetFeeParams) ValidateBasic() error { + // TODO implement me + panic("implement me") +} + +func (m *MsgGovSetFeeParams) GetSigners() []types.AccAddress { + // TODO implement me + panic("implement me") +} + +func (m *MsgGovSetFeeParams) GetSignBytes() []byte { + // TODO implement me + panic("implement me") +} + +func (m *MsgGovSetFeeParams) Route() string { + // TODO implement me + panic("implement me") +} + +func (m *MsgGovSetFeeParams) Type() string { + // TODO implement me + panic("implement me") +} diff --git a/x/ecocredit/marketplace/types/v1/state.pb.go b/x/ecocredit/marketplace/types/v1/state.pb.go index 97d6e22e05..1c295bb352 100644 --- a/x/ecocredit/marketplace/types/v1/state.pb.go +++ b/x/ecocredit/marketplace/types/v1/state.pb.go @@ -323,10 +323,76 @@ func (m *Market) GetPrecisionModifier() uint32 { return 0 } +// FeeParams represents the marketplace fee parameters. Fees will be charged in the +// same denom that the order is denominated in and deposited into the marketplace +// fee pool, except when the denom is regen, in which case the fees will be +// burned. Fees in the fee pool are expected to burned by governance in a manual +// process unless governance agrees to a different approach. +type FeeParams struct { + // buyer_percentage_fee is the decimal percentage fee charged to the buyer. + // The string 0.03 means a 3.0% fee. + // This fee will be added to the total price of a buy order and is denominated + // in the same denom as the buy order's bid denom. + BuyerPercentageFee string `protobuf:"bytes,1,opt,name=buyer_percentage_fee,json=buyerPercentageFee,proto3" json:"buyer_percentage_fee,omitempty"` + // seller_percentage_fee is the decimal percentage fee charged to the seller. + // The string 0.03 means a 3.0% fee. + // This fee will be subtracted from the total proceeds of a sell order distributed to the seller + // and is denominated in the same denom as the sell order's ask denom. + SellerPercentageFee string `protobuf:"bytes,2,opt,name=seller_percentage_fee,json=sellerPercentageFee,proto3" json:"seller_percentage_fee,omitempty"` +} + +func (m *FeeParams) Reset() { *m = FeeParams{} } +func (m *FeeParams) String() string { return proto.CompactTextString(m) } +func (*FeeParams) ProtoMessage() {} +func (*FeeParams) Descriptor() ([]byte, []int) { + return fileDescriptor_718b9cb8f10a9f3c, []int{3} +} +func (m *FeeParams) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FeeParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FeeParams.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 *FeeParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeeParams.Merge(m, src) +} +func (m *FeeParams) XXX_Size() int { + return m.Size() +} +func (m *FeeParams) XXX_DiscardUnknown() { + xxx_messageInfo_FeeParams.DiscardUnknown(m) +} + +var xxx_messageInfo_FeeParams proto.InternalMessageInfo + +func (m *FeeParams) GetBuyerPercentageFee() string { + if m != nil { + return m.BuyerPercentageFee + } + return "" +} + +func (m *FeeParams) GetSellerPercentageFee() string { + if m != nil { + return m.SellerPercentageFee + } + return "" +} + func init() { proto.RegisterType((*SellOrder)(nil), "regen.ecocredit.marketplace.v1.SellOrder") proto.RegisterType((*AllowedDenom)(nil), "regen.ecocredit.marketplace.v1.AllowedDenom") proto.RegisterType((*Market)(nil), "regen.ecocredit.marketplace.v1.Market") + proto.RegisterType((*FeeParams)(nil), "regen.ecocredit.marketplace.v1.FeeParams") } func init() { @@ -334,44 +400,48 @@ func init() { } var fileDescriptor_718b9cb8f10a9f3c = []byte{ - // 592 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x53, 0xcf, 0x6b, 0xd4, 0x4e, - 0x14, 0xef, 0xec, 0xb6, 0xfb, 0xdd, 0xcc, 0x77, 0xb7, 0x6c, 0xa7, 0xa2, 0xc3, 0x4a, 0xe3, 0xd2, - 0x22, 0x2c, 0xda, 0x26, 0x54, 0xe9, 0x65, 0x3d, 0xad, 0x88, 0x20, 0x52, 0x84, 0xd8, 0x93, 0x97, - 0x38, 0xc9, 0xbc, 0x6e, 0x87, 0xfc, 0x98, 0x38, 0x99, 0x6c, 0x9b, 0x7f, 0x42, 0xbc, 0x0b, 0xfe, - 0x3d, 0x82, 0x97, 0x82, 0x17, 0x8f, 0xd2, 0x1e, 0xbc, 0xfb, 0x17, 0x48, 0x26, 0xe9, 0xba, 0x6c, - 0xf1, 0xf8, 0xf9, 0xf1, 0xf2, 0xde, 0xfb, 0xe4, 0x0d, 0x7e, 0xa4, 0x60, 0x06, 0xa9, 0x0b, 0xa1, - 0x0c, 0x15, 0x70, 0xa1, 0xdd, 0x84, 0xa9, 0x08, 0x74, 0x16, 0xb3, 0x10, 0xdc, 0xf9, 0xa1, 0x9b, - 0x6b, 0xa6, 0xc1, 0xc9, 0x94, 0xd4, 0x92, 0xd8, 0xc6, 0xeb, 0x2c, 0xbc, 0xce, 0x92, 0xd7, 0x99, - 0x1f, 0x0e, 0xef, 0x85, 0x32, 0x4f, 0x64, 0xee, 0x4a, 0x95, 0x54, 0xa5, 0x52, 0x25, 0x75, 0xe1, - 0xf0, 0xc1, 0x4c, 0xca, 0x59, 0x0c, 0xae, 0x41, 0x41, 0x71, 0xea, 0x6a, 0x91, 0x40, 0xae, 0x59, - 0x92, 0xd5, 0x86, 0xdd, 0x5f, 0x2d, 0x6c, 0xbd, 0x85, 0x38, 0x7e, 0xa3, 0x38, 0x28, 0xb2, 0x89, - 0x5b, 0x82, 0x53, 0x34, 0x42, 0xe3, 0x75, 0xaf, 0x25, 0x38, 0xb9, 0x8b, 0x3b, 0x39, 0xc4, 0x31, - 0x28, 0xda, 0x1a, 0xa1, 0x71, 0xcf, 0x6b, 0x10, 0xb9, 0x8f, 0xad, 0x80, 0xe9, 0xf0, 0xcc, 0x8f, - 0xa0, 0xa4, 0x6d, 0x63, 0xef, 0x1a, 0xe2, 0x35, 0x94, 0x64, 0x88, 0xbb, 0x1f, 0x0a, 0x96, 0x6a, - 0xa1, 0x4b, 0xba, 0x3e, 0x42, 0x63, 0xcb, 0x5b, 0xe0, 0xaa, 0xb0, 0x1e, 0xdd, 0x17, 0x9c, 0x6e, - 0xd4, 0x85, 0x35, 0xf1, 0x8a, 0x93, 0x1d, 0x8c, 0x59, 0x1e, 0xf9, 0x2c, 0x91, 0x45, 0xaa, 0x69, - 0xc7, 0x94, 0x5a, 0x2c, 0x8f, 0xa6, 0x86, 0x20, 0x0e, 0xde, 0xe6, 0x22, 0x67, 0x41, 0x0c, 0x3e, - 0x2b, 0xb4, 0xf4, 0x15, 0x68, 0xa1, 0x80, 0xfe, 0x37, 0x42, 0xe3, 0xae, 0xb7, 0xd5, 0x48, 0xd3, - 0x42, 0x4b, 0xcf, 0x08, 0x64, 0x82, 0x31, 0x5c, 0x64, 0x42, 0x31, 0x2d, 0x64, 0x4a, 0xad, 0x11, - 0x1a, 0xff, 0xff, 0x64, 0xe8, 0xd4, 0x81, 0x38, 0x37, 0x81, 0x38, 0x27, 0x37, 0x81, 0x78, 0x4b, - 0x6e, 0x72, 0x07, 0x6f, 0x24, 0x2c, 0x02, 0x45, 0xb1, 0xf9, 0x7a, 0x0d, 0x26, 0xcf, 0x7e, 0x7f, - 0xf9, 0xfe, 0xb1, 0x7d, 0x84, 0x3b, 0x55, 0x4c, 0x03, 0x44, 0xfa, 0x4b, 0x31, 0x0c, 0x10, 0xc1, - 0x37, 0x69, 0x0d, 0x5a, 0x64, 0x73, 0xb9, 0xf9, 0xa0, 0x4d, 0xd1, 0xee, 0x67, 0x84, 0x7b, 0xd3, - 0x38, 0x96, 0xe7, 0xc0, 0x5f, 0x40, 0x2a, 0x93, 0x6a, 0xdd, 0x80, 0xa5, 0x91, 0xcf, 0x2b, 0x64, - 0x42, 0xb7, 0x3c, 0xab, 0x62, 0x6a, 0x79, 0x0f, 0xf7, 0xb9, 0xc8, 0xb3, 0x98, 0x95, 0x8d, 0xa3, - 0x65, 0x1c, 0xbd, 0x86, 0xac, 0x4d, 0x43, 0xdc, 0x85, 0x8b, 0x4c, 0xa6, 0x90, 0x6a, 0xf3, 0x1f, - 0xfa, 0xde, 0x02, 0x4f, 0x1e, 0x9b, 0x69, 0x1f, 0xe2, 0xde, 0x72, 0x1f, 0xb2, 0xbd, 0xf2, 0xd9, - 0x01, 0xa2, 0x88, 0xb6, 0x77, 0xbf, 0x21, 0xdc, 0x39, 0x36, 0x3f, 0xe2, 0xd6, 0x11, 0xec, 0x63, - 0x52, 0x5f, 0x9d, 0xaf, 0xcb, 0x0c, 0x7c, 0x16, 0x04, 0x0a, 0xe6, 0xcd, 0x34, 0x83, 0x5a, 0x39, - 0x29, 0x33, 0x98, 0x1a, 0x7e, 0x65, 0xab, 0xf6, 0xea, 0x56, 0x07, 0x98, 0x64, 0x0a, 0x42, 0x91, - 0x0b, 0x99, 0xfa, 0x89, 0xe4, 0xe2, 0x54, 0x80, 0x32, 0x67, 0xd2, 0xf7, 0xb6, 0x16, 0xca, 0x71, - 0x23, 0x4c, 0x8e, 0xcc, 0x0e, 0xee, 0x22, 0xf1, 0x3d, 0xbc, 0x73, 0x7b, 0x96, 0xfd, 0xbf, 0x0d, - 0xcd, 0x36, 0xeb, 0xcf, 0xdf, 0x7f, 0xbd, 0xb2, 0xd1, 0xe5, 0x95, 0x8d, 0x7e, 0x5e, 0xd9, 0xe8, - 0xd3, 0xb5, 0xbd, 0x76, 0x79, 0x6d, 0xaf, 0xfd, 0xb8, 0xb6, 0xd7, 0xde, 0xbd, 0x9c, 0x09, 0x7d, - 0x56, 0x04, 0x4e, 0x28, 0x13, 0xd7, 0x3c, 0xaa, 0x83, 0x14, 0xf4, 0xb9, 0x54, 0x51, 0x83, 0x62, - 0xe0, 0x33, 0x50, 0xee, 0xc5, 0x3f, 0xde, 0x65, 0xd5, 0x35, 0x77, 0xe7, 0x87, 0x41, 0xc7, 0x1c, - 0xd0, 0xd3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x27, 0x53, 0x7e, 0x67, 0xc6, 0x03, 0x00, 0x00, + // 653 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x54, 0x4f, 0x6f, 0xd3, 0x4e, + 0x10, 0xed, 0x26, 0x6d, 0x7e, 0xf1, 0xfe, 0x92, 0x2a, 0xdd, 0x16, 0xb0, 0x82, 0x1a, 0xa2, 0x54, + 0x48, 0x11, 0xb4, 0x36, 0x2d, 0xea, 0x25, 0x9c, 0x82, 0x50, 0x25, 0x84, 0x2a, 0x2a, 0xd3, 0x13, + 0x17, 0xb3, 0xb6, 0xa7, 0xe9, 0xca, 0x7f, 0xd6, 0xac, 0xd7, 0x69, 0x2d, 0xbe, 0x03, 0xe2, 0x8e, + 0xc4, 0xe7, 0x41, 0xe2, 0x52, 0x89, 0x0b, 0x47, 0xd4, 0x1e, 0xb8, 0x73, 0xe4, 0x84, 0xbc, 0xeb, + 0x86, 0x90, 0x8a, 0xe3, 0xcc, 0x7b, 0x6f, 0x77, 0xde, 0xdb, 0xb1, 0xf1, 0x03, 0x01, 0x13, 0x48, + 0x6c, 0xf0, 0xb9, 0x2f, 0x20, 0x60, 0xd2, 0x8e, 0xa9, 0x08, 0x41, 0xa6, 0x11, 0xf5, 0xc1, 0x9e, + 0xee, 0xda, 0x99, 0xa4, 0x12, 0xac, 0x54, 0x70, 0xc9, 0x49, 0x4f, 0x71, 0xad, 0x19, 0xd7, 0x9a, + 0xe3, 0x5a, 0xd3, 0xdd, 0xee, 0x1d, 0x9f, 0x67, 0x31, 0xcf, 0x6c, 0x2e, 0xe2, 0x52, 0xca, 0x45, + 0xac, 0x85, 0xdd, 0x7b, 0x13, 0xce, 0x27, 0x11, 0xd8, 0xaa, 0xf2, 0xf2, 0x13, 0x5b, 0xb2, 0x18, + 0x32, 0x49, 0xe3, 0x54, 0x13, 0x06, 0x3f, 0x6a, 0xd8, 0x78, 0x05, 0x51, 0xf4, 0x52, 0x04, 0x20, + 0xc8, 0x2a, 0xae, 0xb1, 0xc0, 0x44, 0x7d, 0x34, 0x5c, 0x76, 0x6a, 0x2c, 0x20, 0xb7, 0x71, 0x23, + 0x83, 0x28, 0x02, 0x61, 0xd6, 0xfa, 0x68, 0xd8, 0x72, 0xaa, 0x8a, 0xdc, 0xc5, 0x86, 0x47, 0xa5, + 0x7f, 0xea, 0x86, 0x50, 0x98, 0x75, 0x45, 0x6f, 0xaa, 0xc6, 0x0b, 0x28, 0x48, 0x17, 0x37, 0xdf, + 0xe6, 0x34, 0x91, 0x4c, 0x16, 0xe6, 0x72, 0x1f, 0x0d, 0x0d, 0x67, 0x56, 0x97, 0x42, 0x3d, 0xba, + 0xcb, 0x02, 0x73, 0x45, 0x0b, 0x75, 0xe3, 0x79, 0x40, 0x36, 0x31, 0xa6, 0x59, 0xe8, 0xd2, 0x98, + 0xe7, 0x89, 0x34, 0x1b, 0x4a, 0x6a, 0xd0, 0x2c, 0x1c, 0xab, 0x06, 0xb1, 0xf0, 0x7a, 0xc0, 0x32, + 0xea, 0x45, 0xe0, 0xd2, 0x5c, 0x72, 0x57, 0x80, 0x64, 0x02, 0xcc, 0xff, 0xfa, 0x68, 0xd8, 0x74, + 0xd6, 0x2a, 0x68, 0x9c, 0x4b, 0xee, 0x28, 0x80, 0x8c, 0x30, 0x86, 0xf3, 0x94, 0x09, 0x2a, 0x19, + 0x4f, 0x4c, 0xa3, 0x8f, 0x86, 0xff, 0xef, 0x75, 0x2d, 0x1d, 0x88, 0x75, 0x1d, 0x88, 0x75, 0x7c, + 0x1d, 0x88, 0x33, 0xc7, 0x26, 0x1b, 0x78, 0x25, 0xa6, 0x21, 0x08, 0x13, 0xab, 0xd3, 0x75, 0x31, + 0x7a, 0xf2, 0xf3, 0xd3, 0xd7, 0xf7, 0xf5, 0x7d, 0xdc, 0x28, 0x63, 0xea, 0x20, 0xd2, 0x9e, 0x8b, + 0xa1, 0x83, 0x08, 0xbe, 0x4e, 0xab, 0x53, 0x23, 0xab, 0xf3, 0x97, 0x77, 0xea, 0x26, 0x1a, 0x7c, + 0x44, 0xb8, 0x35, 0x8e, 0x22, 0x7e, 0x06, 0xc1, 0x33, 0x48, 0x78, 0x5c, 0xda, 0xf5, 0x68, 0x12, + 0xba, 0x41, 0x59, 0xa9, 0xd0, 0x0d, 0xc7, 0x28, 0x3b, 0x1a, 0xde, 0xc2, 0xed, 0x80, 0x65, 0x69, + 0x44, 0x8b, 0x8a, 0x51, 0x53, 0x8c, 0x56, 0xd5, 0xd4, 0xa4, 0x2e, 0x6e, 0xc2, 0x79, 0xca, 0x13, + 0x48, 0xa4, 0x7a, 0x87, 0xb6, 0x33, 0xab, 0x47, 0x0f, 0xd5, 0xb4, 0xf7, 0x71, 0x6b, 0xfe, 0x1e, + 0xb2, 0xbe, 0x70, 0x6c, 0x07, 0x99, 0xc8, 0xac, 0x0f, 0xbe, 0x20, 0xdc, 0x38, 0x54, 0x0f, 0x71, + 0x63, 0x09, 0xb6, 0x31, 0xd1, 0x5b, 0xe7, 0xca, 0x22, 0x05, 0x97, 0x7a, 0x9e, 0x80, 0x69, 0x35, + 0x4d, 0x47, 0x23, 0xc7, 0x45, 0x0a, 0x63, 0xd5, 0x5f, 0x70, 0x55, 0x5f, 0x74, 0xb5, 0x83, 0x49, + 0x2a, 0xc0, 0x67, 0x19, 0xe3, 0x89, 0x1b, 0xf3, 0x80, 0x9d, 0x30, 0x10, 0x6a, 0x4d, 0xda, 0xce, + 0xda, 0x0c, 0x39, 0xac, 0x80, 0xd1, 0xbe, 0xf2, 0x60, 0xcf, 0x12, 0xdf, 0xc2, 0x9b, 0x37, 0x67, + 0xd9, 0xfe, 0x73, 0xa1, 0x72, 0xb3, 0x3c, 0x78, 0x87, 0x8d, 0x03, 0x80, 0x23, 0x2a, 0x68, 0x9c, + 0x91, 0x47, 0x78, 0xc3, 0xcb, 0x0b, 0x10, 0x6e, 0x0a, 0xc2, 0x87, 0x44, 0xd2, 0x09, 0xb8, 0x27, + 0x00, 0x55, 0xe2, 0x44, 0x61, 0x47, 0x33, 0xe8, 0x00, 0x80, 0xec, 0xe1, 0x5b, 0xfa, 0x21, 0x17, + 0x25, 0xda, 0xf4, 0xba, 0x06, 0xff, 0xd2, 0x8c, 0x9a, 0xbf, 0xca, 0x49, 0x6b, 0xcd, 0x95, 0xa7, + 0x6f, 0x3e, 0x5f, 0xf6, 0xd0, 0xc5, 0x65, 0x0f, 0x7d, 0xbf, 0xec, 0xa1, 0x0f, 0x57, 0xbd, 0xa5, + 0x8b, 0xab, 0xde, 0xd2, 0xb7, 0xab, 0xde, 0xd2, 0xeb, 0x83, 0x09, 0x93, 0xa7, 0xb9, 0x67, 0xf9, + 0x3c, 0xb6, 0xd5, 0x17, 0xbd, 0x93, 0x80, 0x3c, 0xe3, 0x22, 0xac, 0xaa, 0x08, 0x82, 0x09, 0x08, + 0xfb, 0xfc, 0x1f, 0x3f, 0x85, 0xd2, 0x72, 0x66, 0x4f, 0x77, 0xbd, 0x86, 0xda, 0xde, 0xc7, 0xbf, + 0x03, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x4a, 0xa9, 0x68, 0x43, 0x04, 0x00, 0x00, } func (m *SellOrder) Marshal() (dAtA []byte, err error) { @@ -554,6 +624,43 @@ func (m *Market) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *FeeParams) 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 *FeeParams) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FeeParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.SellerPercentageFee) > 0 { + i -= len(m.SellerPercentageFee) + copy(dAtA[i:], m.SellerPercentageFee) + i = encodeVarintState(dAtA, i, uint64(len(m.SellerPercentageFee))) + i-- + dAtA[i] = 0x12 + } + if len(m.BuyerPercentageFee) > 0 { + i -= len(m.BuyerPercentageFee) + copy(dAtA[i:], m.BuyerPercentageFee) + i = encodeVarintState(dAtA, i, uint64(len(m.BuyerPercentageFee))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintState(dAtA []byte, offset int, v uint64) int { offset -= sovState(v) base := offset @@ -648,6 +755,23 @@ func (m *Market) Size() (n int) { return n } +func (m *FeeParams) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.BuyerPercentageFee) + if l > 0 { + n += 1 + l + sovState(uint64(l)) + } + l = len(m.SellerPercentageFee) + if l > 0 { + n += 1 + l + sovState(uint64(l)) + } + return n +} + func sovState(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1220,6 +1344,120 @@ func (m *Market) Unmarshal(dAtA []byte) error { } return nil } +func (m *FeeParams) 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 ErrIntOverflowState + } + 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: FeeParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FeeParams: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BuyerPercentageFee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowState + } + 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 ErrInvalidLengthState + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthState + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BuyerPercentageFee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SellerPercentageFee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowState + } + 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 ErrInvalidLengthState + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthState + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SellerPercentageFee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipState(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthState + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipState(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/ecocredit/marketplace/types/v1/tx.pb.go b/x/ecocredit/marketplace/types/v1/tx.pb.go index b006b2cf1f..b8e3824edf 100644 --- a/x/ecocredit/marketplace/types/v1/tx.pb.go +++ b/x/ecocredit/marketplace/types/v1/tx.pb.go @@ -6,6 +6,7 @@ package v1 import ( context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" _ "github.com/cosmos/gogoproto/gogoproto" @@ -574,6 +575,15 @@ type MsgBuyDirect_Order struct { // // Since Revision 1 RetirementReason string `protobuf:"bytes,7,opt,name=retirement_reason,json=retirementReason,proto3" json:"retirement_reason,omitempty"` + // max_fee_amount is the maximum amount of buyer side fees being paid to the marketplace. + // If the marketplace fees end up being greater than this amount, the transaction will fail. + // If this field is left empty, the marketplace fees will be calculated based on the bid price + // and quantity and automatically deducted from the buyer's account. + // Fees are always paid in the same denomination as the bid price and max fee amount should + // be an integer value of that denom. + // + // Since Revision 3 + MaxFeeAmount string `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` } func (m *MsgBuyDirect_Order) Reset() { *m = MsgBuyDirect_Order{} } @@ -651,6 +661,13 @@ func (m *MsgBuyDirect_Order) GetRetirementReason() string { return "" } +func (m *MsgBuyDirect_Order) GetMaxFeeAmount() string { + if m != nil { + return m.MaxFeeAmount + } + return "" +} + // MsgBuyDirectResponse is the Msg/BuyDirect response type. type MsgBuyDirectResponse struct { } @@ -901,6 +918,98 @@ func (m *MsgRemoveAllowedDenomResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgRemoveAllowedDenomResponse proto.InternalMessageInfo +// MsgSetFeeParams is the Msg/SetFeeParams request type. +type MsgGovSetFeeParams struct { + // authority is the address of the governance account. + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // fees are the marketplace fees being set. + Fees *FeeParams `protobuf:"bytes,2,opt,name=fees,proto3" json:"fees,omitempty"` +} + +func (m *MsgGovSetFeeParams) Reset() { *m = MsgGovSetFeeParams{} } +func (m *MsgGovSetFeeParams) String() string { return proto.CompactTextString(m) } +func (*MsgGovSetFeeParams) ProtoMessage() {} +func (*MsgGovSetFeeParams) Descriptor() ([]byte, []int) { + return fileDescriptor_68c9b4e4b7fcb584, []int{12} +} +func (m *MsgGovSetFeeParams) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgGovSetFeeParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgGovSetFeeParams.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 *MsgGovSetFeeParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgGovSetFeeParams.Merge(m, src) +} +func (m *MsgGovSetFeeParams) XXX_Size() int { + return m.Size() +} +func (m *MsgGovSetFeeParams) XXX_DiscardUnknown() { + xxx_messageInfo_MsgGovSetFeeParams.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgGovSetFeeParams proto.InternalMessageInfo + +func (m *MsgGovSetFeeParams) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgGovSetFeeParams) GetFees() *FeeParams { + if m != nil { + return m.Fees + } + return nil +} + +// MsgSetFeeParamsResponse is the Msg/SetFeeParams response type. +type MsgGovSetFeeParamsResponse struct { +} + +func (m *MsgGovSetFeeParamsResponse) Reset() { *m = MsgGovSetFeeParamsResponse{} } +func (m *MsgGovSetFeeParamsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgGovSetFeeParamsResponse) ProtoMessage() {} +func (*MsgGovSetFeeParamsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_68c9b4e4b7fcb584, []int{13} +} +func (m *MsgGovSetFeeParamsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgGovSetFeeParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgGovSetFeeParamsResponse.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 *MsgGovSetFeeParamsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgGovSetFeeParamsResponse.Merge(m, src) +} +func (m *MsgGovSetFeeParamsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgGovSetFeeParamsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgGovSetFeeParamsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgGovSetFeeParamsResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgSell)(nil), "regen.ecocredit.marketplace.v1.MsgSell") proto.RegisterType((*MsgSell_Order)(nil), "regen.ecocredit.marketplace.v1.MsgSell.Order") @@ -917,6 +1026,8 @@ func init() { proto.RegisterType((*MsgAddAllowedDenomResponse)(nil), "regen.ecocredit.marketplace.v1.MsgAddAllowedDenomResponse") proto.RegisterType((*MsgRemoveAllowedDenom)(nil), "regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenom") proto.RegisterType((*MsgRemoveAllowedDenomResponse)(nil), "regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse") + proto.RegisterType((*MsgGovSetFeeParams)(nil), "regen.ecocredit.marketplace.v1.MsgGovSetFeeParams") + proto.RegisterType((*MsgGovSetFeeParamsResponse)(nil), "regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse") } func init() { @@ -924,68 +1035,75 @@ func init() { } var fileDescriptor_68c9b4e4b7fcb584 = []byte{ - // 969 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x4b, 0x6f, 0x1b, 0xd5, - 0x17, 0xcf, 0xf8, 0x95, 0xf8, 0x38, 0x49, 0xdb, 0xdb, 0xfc, 0x53, 0xff, 0x87, 0xc6, 0x31, 0x06, - 0xa9, 0x16, 0xd0, 0x19, 0x25, 0x05, 0x2a, 0x19, 0x55, 0x22, 0x69, 0x0b, 0xa2, 0xc8, 0x02, 0xa6, - 0x65, 0x83, 0x84, 0xdc, 0x79, 0x1c, 0x26, 0x83, 0x67, 0xe6, 0x0e, 0x73, 0xef, 0x24, 0xf1, 0x12, - 0x84, 0x84, 0xc4, 0xaa, 0x0b, 0xd8, 0xb0, 0xe4, 0x13, 0xf0, 0x31, 0x58, 0x76, 0xc9, 0x0e, 0x94, - 0x48, 0xb0, 0x63, 0xc5, 0x07, 0x40, 0x73, 0xe7, 0x61, 0xc7, 0x8e, 0xcb, 0xd8, 0x3b, 0xdf, 0x73, - 0xce, 0xef, 0x3c, 0x7e, 0xe7, 0x31, 0x86, 0x5b, 0x21, 0xda, 0xe8, 0xab, 0x68, 0x52, 0x33, 0x44, - 0xcb, 0xe1, 0xaa, 0xa7, 0x87, 0x43, 0xe4, 0x81, 0xab, 0x9b, 0xa8, 0x1e, 0xef, 0xa9, 0xfc, 0x54, - 0x09, 0x42, 0xca, 0x29, 0x69, 0x09, 0x43, 0x25, 0x37, 0x54, 0x26, 0x0c, 0x95, 0xe3, 0x3d, 0xb9, - 0x65, 0x52, 0xe6, 0x51, 0xa6, 0x1a, 0x3a, 0x8b, 0x81, 0x06, 0x72, 0x7d, 0x4f, 0x35, 0xa9, 0xe3, - 0x27, 0x78, 0xf9, 0x46, 0xaa, 0xf7, 0x98, 0x1d, 0xfb, 0xf5, 0x98, 0x9d, 0x2a, 0xb6, 0x6c, 0x6a, - 0x53, 0xf1, 0x53, 0x8d, 0x7f, 0xa5, 0xd2, 0x5d, 0x9b, 0x52, 0xdb, 0x45, 0x55, 0xbc, 0x8c, 0xe8, - 0x0b, 0x95, 0x3b, 0x1e, 0x32, 0xae, 0x7b, 0x41, 0x62, 0xd0, 0xf9, 0xb3, 0x04, 0xab, 0x7d, 0x66, - 0x3f, 0x46, 0xd7, 0x25, 0xdb, 0x50, 0x63, 0xe8, 0xba, 0x18, 0x36, 0xa5, 0xb6, 0xd4, 0xad, 0x6b, - 0xe9, 0x8b, 0x3c, 0x84, 0x1a, 0x0d, 0x2d, 0x0c, 0x59, 0xb3, 0xd4, 0x2e, 0x77, 0x1b, 0xfb, 0xb7, - 0x95, 0x17, 0x17, 0xa1, 0xa4, 0x0e, 0x95, 0x8f, 0x62, 0x94, 0x96, 0x82, 0xe5, 0xbf, 0x25, 0xa8, - 0x0a, 0x09, 0xd9, 0x85, 0x86, 0xa1, 0x73, 0xf3, 0x68, 0x60, 0xa1, 0x4f, 0xbd, 0x34, 0x1a, 0x08, - 0xd1, 0x83, 0x58, 0x42, 0x64, 0x58, 0xfb, 0x2a, 0xd2, 0x7d, 0xee, 0xf0, 0x51, 0xb3, 0x24, 0xb4, - 0xf9, 0x9b, 0xbc, 0x0d, 0x75, 0x9d, 0x0d, 0x07, 0x41, 0xe8, 0x98, 0xd8, 0x2c, 0xb7, 0xa5, 0x6e, - 0x63, 0xff, 0xff, 0x4a, 0xc2, 0x8a, 0x12, 0xb3, 0xa6, 0xa4, 0xac, 0x29, 0xf7, 0xa9, 0xe3, 0x6b, - 0x6b, 0x3a, 0x1b, 0x7e, 0x1c, 0x9b, 0x12, 0x05, 0xae, 0x5b, 0x0e, 0xd3, 0x0d, 0x17, 0x07, 0x7a, - 0xc4, 0xe9, 0x20, 0x44, 0xee, 0x84, 0xd8, 0xac, 0xb4, 0xa5, 0xee, 0x9a, 0x76, 0x2d, 0x55, 0x1d, - 0x44, 0x9c, 0x6a, 0x42, 0x41, 0xde, 0x05, 0xc0, 0xd3, 0xc0, 0x09, 0x75, 0xee, 0x50, 0xbf, 0x59, - 0x15, 0x81, 0x64, 0x25, 0xe1, 0x53, 0xc9, 0xf8, 0x54, 0x9e, 0x64, 0x7c, 0x1e, 0x56, 0x9e, 0xfd, - 0xbe, 0x2b, 0x69, 0x13, 0x98, 0x5e, 0xe3, 0x9b, 0xbf, 0x7e, 0x79, 0x2d, 0x25, 0xb1, 0x73, 0x17, - 0xae, 0xa4, 0xb4, 0x68, 0xc8, 0x02, 0xea, 0x33, 0x24, 0xaf, 0xc2, 0x66, 0xac, 0x1c, 0x08, 0x7e, - 0x06, 0x8e, 0xc5, 0x9a, 0x52, 0xbb, 0xdc, 0xad, 0x68, 0xeb, 0xb1, 0x54, 0x30, 0xf5, 0x81, 0xc5, - 0x3a, 0x3f, 0x95, 0xe1, 0x7a, 0x9f, 0xd9, 0x9f, 0x06, 0x96, 0xce, 0xf1, 0x71, 0xa6, 0x61, 0x73, - 0xbb, 0xf5, 0x04, 0x56, 0x23, 0x61, 0x9b, 0xb5, 0xab, 0x57, 0xa0, 0x5d, 0xd3, 0xde, 0x95, 0x44, - 0xa0, 0x65, 0xae, 0xe4, 0xef, 0x4a, 0x50, 0x4b, 0x64, 0xa4, 0x03, 0x1b, 0x17, 0xd2, 0x16, 0xf1, - 0x2b, 0x5a, 0x63, 0x22, 0x6b, 0xf2, 0x32, 0xac, 0xfb, 0x78, 0x32, 0x98, 0x6a, 0x62, 0xc3, 0xc7, - 0x93, 0x4f, 0xb2, 0x3e, 0xde, 0x83, 0x8d, 0xd8, 0x64, 0x81, 0x5e, 0xc6, 0xf0, 0x83, 0x65, 0xdb, - 0xf9, 0x3e, 0x6c, 0xc6, 0xe1, 0x96, 0x68, 0x69, 0x9c, 0xe6, 0xc3, 0x39, 0x5d, 0xdd, 0x81, 0x97, - 0x2e, 0x61, 0x2f, 0xeb, 0x70, 0xe7, 0x73, 0x20, 0x7d, 0x66, 0xdf, 0xd7, 0x7d, 0x13, 0xdd, 0x5c, - 0x3d, 0xb7, 0x73, 0x33, 0xc4, 0x96, 0x66, 0x88, 0xbd, 0x18, 0xfd, 0x26, 0xc8, 0xb3, 0xee, 0xf3, - 0xe0, 0x3f, 0x94, 0x61, 0xbd, 0xcf, 0xec, 0xc3, 0x68, 0xf4, 0xc0, 0x09, 0xd1, 0xe4, 0x64, 0x0b, - 0xaa, 0x46, 0x34, 0xca, 0xc3, 0x26, 0x0f, 0xf2, 0x68, 0x6a, 0xbb, 0xf7, 0x0b, 0x8c, 0x4b, 0xee, - 0x73, 0x6a, 0xc5, 0x7f, 0x2c, 0x65, 0x2b, 0x5e, 0xa0, 0x96, 0x0b, 0x5b, 0x5e, 0x9e, 0xdd, 0x72, - 0xc3, 0xb1, 0xd2, 0xc9, 0xa8, 0xfc, 0xe7, 0x96, 0x1b, 0x8e, 0xf5, 0xc2, 0xb1, 0xa8, 0xce, 0x1b, - 0x8b, 0xbb, 0x70, 0x23, 0x31, 0xf1, 0xd0, 0xe7, 0x83, 0x2f, 0xa3, 0xd0, 0x61, 0x96, 0x63, 0x8a, - 0xf9, 0xa8, 0x89, 0x94, 0xb6, 0xc7, 0xea, 0x47, 0x13, 0x5a, 0xf2, 0x3a, 0x5c, 0x9b, 0x00, 0x86, - 0xa8, 0x33, 0xea, 0x37, 0x57, 0x05, 0xe4, 0xea, 0x58, 0xa1, 0x09, 0x79, 0x0f, 0xe2, 0xae, 0x25, - 0x7c, 0x77, 0xb6, 0x61, 0x6b, 0x92, 0xc1, 0xbc, 0x5d, 0x3f, 0x4b, 0x62, 0x58, 0x0e, 0x2c, 0xeb, - 0xc0, 0x75, 0xe9, 0x09, 0x5a, 0xc9, 0x29, 0xbc, 0x09, 0x75, 0x3d, 0xe2, 0x47, 0x34, 0x8c, 0x59, - 0x4a, 0x1a, 0x37, 0x16, 0x90, 0x1d, 0x00, 0x43, 0xf7, 0x87, 0xe9, 0x21, 0x4d, 0xb6, 0xac, 0x1e, - 0x4b, 0x12, 0xf0, 0x2b, 0xb0, 0x61, 0x39, 0x2c, 0x70, 0xf5, 0x51, 0x6a, 0x91, 0xd0, 0xbc, 0x9e, - 0x0a, 0xf3, 0x63, 0x8b, 0xa7, 0x01, 0xf5, 0xd1, 0xe7, 0x82, 0xe9, 0x0d, 0x2d, 0x7f, 0xf7, 0x36, - 0xe3, 0xc4, 0xc7, 0xf1, 0xd2, 0x89, 0x9b, 0xca, 0x31, 0x2f, 0xe1, 0x43, 0xf8, 0x5f, 0x9f, 0xd9, - 0x1a, 0x7a, 0xf4, 0x18, 0x17, 0x28, 0x62, 0x0b, 0xaa, 0x93, 0xf9, 0x27, 0x8f, 0xce, 0x2e, 0xec, - 0x5c, 0xea, 0x2c, 0x8b, 0xb6, 0xff, 0x4f, 0x15, 0xca, 0x7d, 0x66, 0x93, 0xa7, 0x50, 0x11, 0x9f, - 0xaf, 0x5b, 0x05, 0x3f, 0x4b, 0xb2, 0x5a, 0xd0, 0x30, 0x3f, 0xd4, 0xdf, 0x4a, 0x70, 0x75, 0xe6, - 0xfe, 0xde, 0x59, 0xe2, 0xac, 0xca, 0xef, 0x2c, 0x01, 0xca, 0xd3, 0xf8, 0x5a, 0x82, 0x2b, 0xd3, - 0xb7, 0xa4, 0xc8, 0xb6, 0x4e, 0x61, 0xe4, 0xde, 0xe2, 0x98, 0x3c, 0x07, 0x0a, 0xf5, 0xf1, 0x41, - 0x79, 0x63, 0x91, 0x53, 0x21, 0xbf, 0xb9, 0x88, 0xf5, 0x85, 0xa2, 0xa7, 0x77, 0xa2, 0x48, 0xd1, - 0x53, 0x98, 0x42, 0x45, 0xcf, 0x99, 0x6b, 0xf2, 0xbd, 0x04, 0xe4, 0x92, 0xa9, 0x7e, 0xab, 0x80, - 0xcb, 0x59, 0x98, 0x7c, 0x6f, 0x29, 0x58, 0x96, 0xcc, 0xe1, 0xd3, 0x5f, 0xcf, 0x5a, 0xd2, 0xf3, - 0xb3, 0x96, 0xf4, 0xc7, 0x59, 0x4b, 0x7a, 0x76, 0xde, 0x5a, 0x79, 0x7e, 0xde, 0x5a, 0xf9, 0xed, - 0xbc, 0xb5, 0xf2, 0xd9, 0x7b, 0xb6, 0xc3, 0x8f, 0x22, 0x43, 0x31, 0xa9, 0xa7, 0x8a, 0x10, 0xb7, - 0x7d, 0xe4, 0x27, 0x34, 0x1c, 0xa6, 0x2f, 0x17, 0x2d, 0x1b, 0x43, 0xf5, 0x74, 0xce, 0xdf, 0x54, - 0x3e, 0x0a, 0x90, 0xc5, 0xff, 0x39, 0x6b, 0xe2, 0x53, 0x78, 0xe7, 0xdf, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x3a, 0x9a, 0x8c, 0xfd, 0xd5, 0x0a, 0x00, 0x00, + // 1076 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x4f, 0x6f, 0xdc, 0x44, + 0x14, 0xaf, 0x77, 0x37, 0x9b, 0xe4, 0x6d, 0x92, 0xb6, 0x6e, 0x48, 0xb7, 0xa6, 0xd9, 0x84, 0x05, + 0xa9, 0xa1, 0x10, 0x5b, 0x49, 0x0b, 0x95, 0x82, 0x22, 0x91, 0xb4, 0x4d, 0xd5, 0xa2, 0x15, 0xc5, + 0x29, 0x17, 0x24, 0xe4, 0xce, 0xda, 0x2f, 0x8e, 0x89, 0xed, 0x59, 0x3c, 0xe3, 0x64, 0x73, 0x2c, + 0x42, 0x42, 0xe2, 0xd4, 0x33, 0x47, 0x3e, 0x01, 0x07, 0x3e, 0x04, 0x82, 0x4b, 0xc5, 0x89, 0x1b, + 0x28, 0x91, 0xe0, 0xc6, 0x99, 0x23, 0xf2, 0x78, 0xd6, 0xd9, 0x78, 0xb3, 0x8d, 0xb3, 0x37, 0xbf, + 0xff, 0x6f, 0x7e, 0xbf, 0x79, 0x6f, 0x0c, 0xb7, 0x22, 0x74, 0x31, 0x34, 0xd0, 0xa6, 0x76, 0x84, + 0x8e, 0xc7, 0x8d, 0x80, 0x44, 0x7b, 0xc8, 0x3b, 0x3e, 0xb1, 0xd1, 0xd8, 0x5f, 0x31, 0x78, 0x57, + 0xef, 0x44, 0x94, 0x53, 0xb5, 0x21, 0x1c, 0xf5, 0xcc, 0x51, 0xef, 0x73, 0xd4, 0xf7, 0x57, 0xb4, + 0x1b, 0x36, 0x65, 0x01, 0x65, 0x96, 0xf0, 0x36, 0x52, 0x21, 0x0d, 0xd5, 0x1a, 0xa9, 0x64, 0xb4, + 0x09, 0x4b, 0x72, 0xb6, 0x91, 0x93, 0x15, 0xc3, 0xa6, 0x5e, 0x28, 0xed, 0xd7, 0xa5, 0x3d, 0x60, + 0x6e, 0x52, 0x32, 0x60, 0xae, 0x34, 0xcc, 0xba, 0xd4, 0xa5, 0x69, 0xc2, 0xe4, 0x4b, 0x6a, 0x17, + 0x5c, 0x4a, 0x5d, 0x1f, 0x0d, 0x21, 0xb5, 0xe3, 0x1d, 0x83, 0x7b, 0x01, 0x32, 0x4e, 0x82, 0x8e, + 0x74, 0xb8, 0x7d, 0xce, 0x99, 0x18, 0x27, 0x1c, 0x53, 0xdf, 0xe6, 0xdf, 0x25, 0x18, 0x6f, 0x31, + 0x77, 0x1b, 0x7d, 0x5f, 0x9d, 0x83, 0x2a, 0x43, 0xdf, 0xc7, 0xa8, 0xae, 0x2c, 0x2a, 0x4b, 0x93, + 0xa6, 0x94, 0xd4, 0x87, 0x50, 0xa5, 0x91, 0x83, 0x11, 0xab, 0x97, 0x16, 0xcb, 0x4b, 0xb5, 0xd5, + 0x65, 0xfd, 0xf5, 0x58, 0xe8, 0x32, 0xa1, 0xfe, 0x69, 0x12, 0x65, 0xca, 0x60, 0xed, 0x5f, 0x05, + 0xc6, 0x84, 0x46, 0x5d, 0x80, 0x5a, 0x9b, 0x70, 0x7b, 0xd7, 0x72, 0x30, 0xa4, 0x81, 0xac, 0x06, + 0x42, 0xf5, 0x20, 0xd1, 0xa8, 0x1a, 0x4c, 0x7c, 0x1d, 0x93, 0x90, 0x7b, 0xfc, 0xb0, 0x5e, 0x12, + 0xd6, 0x4c, 0x56, 0x3f, 0x84, 0x49, 0xc2, 0xf6, 0xac, 0x4e, 0xe4, 0xd9, 0x58, 0x2f, 0x2f, 0x2a, + 0x4b, 0xb5, 0xd5, 0x1b, 0xba, 0xc4, 0x3b, 0x41, 0x58, 0x97, 0x08, 0xeb, 0xf7, 0xa9, 0x17, 0x9a, + 0x13, 0x84, 0xed, 0x3d, 0x4d, 0x5c, 0x55, 0x1d, 0xae, 0x39, 0x1e, 0x23, 0x6d, 0x1f, 0x2d, 0x12, + 0x73, 0x6a, 0x45, 0xc8, 0xbd, 0x08, 0xeb, 0x95, 0x45, 0x65, 0x69, 0xc2, 0xbc, 0x2a, 0x4d, 0x1b, + 0x31, 0xa7, 0xa6, 0x30, 0xa8, 0x1f, 0x03, 0x60, 0xb7, 0xe3, 0x45, 0x84, 0x7b, 0x34, 0xac, 0x8f, + 0x89, 0x42, 0x9a, 0x9e, 0x62, 0xaf, 0xf7, 0xb0, 0xd7, 0x9f, 0xf5, 0xb0, 0xdf, 0xac, 0xbc, 0xfc, + 0x73, 0x41, 0x31, 0xfb, 0x62, 0xd6, 0x6a, 0xdf, 0xfc, 0xf3, 0xd3, 0x6d, 0x09, 0x62, 0xf3, 0x1e, + 0x5c, 0x96, 0xb0, 0x98, 0xc8, 0x3a, 0x34, 0x64, 0xa8, 0xbe, 0x03, 0x33, 0x89, 0xd1, 0x12, 0xf8, + 0x58, 0x9e, 0xc3, 0xea, 0xca, 0x62, 0x79, 0xa9, 0x62, 0x4e, 0x25, 0x5a, 0x81, 0xd4, 0x63, 0x87, + 0x35, 0x7f, 0x28, 0xc3, 0xb5, 0x16, 0x73, 0x3f, 0xef, 0x38, 0x84, 0xe3, 0x76, 0xcf, 0xc2, 0x86, + 0xb2, 0xf5, 0x0c, 0xc6, 0x63, 0xe1, 0xdb, 0xa3, 0x6b, 0xad, 0x00, 0x5d, 0xf9, 0xec, 0x7a, 0xaa, + 0x30, 0x7b, 0xa9, 0xb4, 0xef, 0x4a, 0x50, 0x4d, 0x75, 0x6a, 0x13, 0xa6, 0x4f, 0xb5, 0x2d, 0xea, + 0x57, 0xcc, 0x5a, 0x5f, 0xd7, 0xea, 0x5b, 0x30, 0x15, 0xe2, 0x81, 0x95, 0x23, 0xb1, 0x16, 0xe2, + 0xc1, 0x67, 0x3d, 0x1e, 0xd7, 0x61, 0x3a, 0x71, 0xb9, 0x00, 0x97, 0x49, 0xf8, 0xc6, 0xa8, 0x74, + 0x3e, 0x82, 0x99, 0xa4, 0xdc, 0x08, 0x94, 0x26, 0x6d, 0x3e, 0x1c, 0xc2, 0xea, 0x3c, 0xbc, 0x79, + 0x06, 0x7a, 0x3d, 0x86, 0x9b, 0x5f, 0x82, 0xda, 0x62, 0xee, 0x7d, 0x12, 0xda, 0xe8, 0x67, 0xe6, + 0xa1, 0xcc, 0x0d, 0x00, 0x5b, 0x1a, 0x00, 0xf6, 0x74, 0xf5, 0x9b, 0xa0, 0x0d, 0xa6, 0xcf, 0x8a, + 0xff, 0x5a, 0x86, 0xa9, 0x16, 0x73, 0x37, 0xe3, 0xc3, 0x07, 0x5e, 0x84, 0x36, 0x57, 0x67, 0x61, + 0xac, 0x1d, 0x1f, 0x66, 0x65, 0x53, 0x41, 0x7d, 0x92, 0x9b, 0xee, 0xd5, 0x02, 0xd7, 0x25, 0xcb, + 0x99, 0x1b, 0xf1, 0xdf, 0x4a, 0xbd, 0x11, 0x2f, 0x70, 0x96, 0x53, 0x53, 0x5e, 0x1e, 0x9c, 0xf2, + 0xb6, 0xe7, 0xc8, 0x9b, 0x51, 0x39, 0x77, 0xca, 0xdb, 0x9e, 0xf3, 0xda, 0x6b, 0x31, 0x36, 0xec, + 0x5a, 0xdc, 0x83, 0xeb, 0xa9, 0x4b, 0x80, 0x21, 0xb7, 0xbe, 0x8a, 0x23, 0x8f, 0x39, 0x9e, 0x2d, + 0xee, 0x47, 0x55, 0xb4, 0x34, 0x77, 0x62, 0x7e, 0xd2, 0x67, 0x55, 0xdf, 0x83, 0xab, 0x7d, 0x81, + 0x11, 0x12, 0x46, 0xc3, 0xfa, 0xb8, 0x08, 0xb9, 0x72, 0x62, 0x30, 0x85, 0x5e, 0xbd, 0x0b, 0x33, + 0x01, 0xe9, 0x5a, 0x3b, 0x88, 0x16, 0x09, 0x68, 0x1c, 0xf2, 0xfa, 0x44, 0xe2, 0xb9, 0x39, 0xf3, + 0xfb, 0xcf, 0xcb, 0x20, 0x4f, 0xf5, 0x38, 0xe4, 0xe6, 0x54, 0x40, 0xba, 0x5b, 0x88, 0x1b, 0xc2, + 0x67, 0x0d, 0x12, 0xae, 0x53, 0x96, 0x9a, 0x73, 0x30, 0xdb, 0x8f, 0x7b, 0x46, 0xf2, 0x8f, 0x8a, + 0xb8, 0x62, 0x1b, 0x8e, 0xb3, 0xe1, 0xfb, 0xf4, 0x00, 0x9d, 0x74, 0x81, 0xde, 0x84, 0x49, 0x12, + 0xf3, 0x5d, 0x1a, 0x25, 0xd8, 0xa6, 0x74, 0x9f, 0x28, 0xd4, 0x79, 0x80, 0x36, 0x09, 0xf7, 0xe4, + 0xfa, 0x4d, 0x67, 0x73, 0x32, 0xd1, 0xa4, 0xc1, 0x6f, 0xc3, 0xb4, 0xe3, 0xb1, 0x8e, 0x4f, 0x0e, + 0xa5, 0x47, 0x4a, 0xce, 0x94, 0x54, 0x66, 0x2b, 0x1a, 0xbb, 0x1d, 0x1a, 0x62, 0xc8, 0x05, 0x3f, + 0xd3, 0x66, 0x26, 0xaf, 0xcd, 0x24, 0x8d, 0x9f, 0xd4, 0x93, 0xf7, 0x34, 0xd7, 0x63, 0x76, 0x84, + 0x4f, 0xe0, 0x8d, 0x16, 0x73, 0x4d, 0x0c, 0xe8, 0x3e, 0x5e, 0xe0, 0x10, 0xb3, 0x30, 0xd6, 0xdf, + 0x7f, 0x2a, 0x34, 0x17, 0x60, 0xfe, 0xcc, 0x64, 0x59, 0xb5, 0x17, 0x29, 0x60, 0x8f, 0xe8, 0xfe, + 0x36, 0xf2, 0x2d, 0xc4, 0xa7, 0x24, 0x22, 0x01, 0x3b, 0xa7, 0xd6, 0x3a, 0x54, 0x76, 0x50, 0x2c, + 0xd4, 0xe4, 0x22, 0xbe, 0x7b, 0xde, 0x84, 0x64, 0x69, 0x4d, 0x11, 0x36, 0x04, 0x8f, 0x5c, 0x0b, + 0xbd, 0x0e, 0x57, 0xff, 0xab, 0x42, 0xb9, 0xc5, 0x5c, 0xf5, 0x39, 0x54, 0xc4, 0xb3, 0x7c, 0xab, + 0xe0, 0x73, 0xab, 0x19, 0x05, 0x1d, 0xb3, 0x07, 0xe8, 0x5b, 0x05, 0xae, 0x0c, 0xbc, 0x2b, 0x77, + 0x46, 0x78, 0x2e, 0xb4, 0x8f, 0x46, 0x08, 0xca, 0xda, 0x78, 0xa1, 0xc0, 0xe5, 0xfc, 0x8e, 0x2c, + 0xb2, 0x85, 0x72, 0x31, 0xda, 0xda, 0xc5, 0x63, 0xb2, 0x1e, 0x28, 0x4c, 0x9e, 0x2c, 0xca, 0xf7, + 0x2f, 0xb2, 0x02, 0xb5, 0xbb, 0x17, 0xf1, 0x3e, 0x75, 0xe8, 0xfc, 0xd4, 0x16, 0x39, 0x74, 0x2e, + 0xa6, 0xd0, 0xa1, 0x87, 0x4c, 0x9e, 0xfa, 0xbd, 0x02, 0xea, 0x19, 0x73, 0xf7, 0x41, 0x81, 0x94, + 0x83, 0x61, 0xda, 0xfa, 0x48, 0x61, 0xa7, 0x00, 0xc9, 0x4f, 0x65, 0x11, 0x40, 0x72, 0x31, 0x85, + 0x00, 0x19, 0x32, 0x7a, 0x9b, 0xcf, 0x7f, 0x39, 0x6a, 0x28, 0xaf, 0x8e, 0x1a, 0xca, 0x5f, 0x47, + 0x0d, 0xe5, 0xe5, 0x71, 0xe3, 0xd2, 0xab, 0xe3, 0xc6, 0xa5, 0x3f, 0x8e, 0x1b, 0x97, 0xbe, 0xd8, + 0x72, 0x3d, 0xbe, 0x1b, 0xb7, 0x75, 0x9b, 0x06, 0x86, 0xc8, 0xbf, 0x1c, 0x22, 0x3f, 0xa0, 0xd1, + 0x9e, 0x94, 0x7c, 0x74, 0x5c, 0x8c, 0x8c, 0xee, 0x90, 0xbf, 0x6e, 0x7e, 0xd8, 0x41, 0x96, 0xfc, + 0xfb, 0x57, 0xc5, 0x6f, 0xc6, 0x9d, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x79, 0x80, 0xf5, 0x16, + 0x78, 0x0c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1017,6 +1135,10 @@ type MsgClient interface { // // Since Revision 1 RemoveAllowedDenom(ctx context.Context, in *MsgRemoveAllowedDenom, opts ...grpc.CallOption) (*MsgRemoveAllowedDenomResponse, error) + // SetFeeParams is a governance method that sets the marketplace fees. + // + // Since Revision 3 + GovSetFeeParams(ctx context.Context, in *MsgGovSetFeeParams, opts ...grpc.CallOption) (*MsgGovSetFeeParamsResponse, error) } type msgClient struct { @@ -1081,6 +1203,15 @@ func (c *msgClient) RemoveAllowedDenom(ctx context.Context, in *MsgRemoveAllowed return out, nil } +func (c *msgClient) GovSetFeeParams(ctx context.Context, in *MsgGovSetFeeParams, opts ...grpc.CallOption) (*MsgGovSetFeeParamsResponse, error) { + out := new(MsgGovSetFeeParamsResponse) + err := c.cc.Invoke(ctx, "/regen.ecocredit.marketplace.v1.Msg/GovSetFeeParams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // Sell creates new sell orders. @@ -1100,6 +1231,10 @@ type MsgServer interface { // // Since Revision 1 RemoveAllowedDenom(context.Context, *MsgRemoveAllowedDenom) (*MsgRemoveAllowedDenomResponse, error) + // SetFeeParams is a governance method that sets the marketplace fees. + // + // Since Revision 3 + GovSetFeeParams(context.Context, *MsgGovSetFeeParams) (*MsgGovSetFeeParamsResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -1124,6 +1259,9 @@ func (*UnimplementedMsgServer) AddAllowedDenom(ctx context.Context, req *MsgAddA func (*UnimplementedMsgServer) RemoveAllowedDenom(ctx context.Context, req *MsgRemoveAllowedDenom) (*MsgRemoveAllowedDenomResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveAllowedDenom not implemented") } +func (*UnimplementedMsgServer) GovSetFeeParams(ctx context.Context, req *MsgGovSetFeeParams) (*MsgGovSetFeeParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GovSetFeeParams not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -1237,6 +1375,24 @@ func _Msg_RemoveAllowedDenom_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _Msg_GovSetFeeParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgGovSetFeeParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).GovSetFeeParams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/regen.ecocredit.marketplace.v1.Msg/GovSetFeeParams", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).GovSetFeeParams(ctx, req.(*MsgGovSetFeeParams)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "regen.ecocredit.marketplace.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -1265,6 +1421,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "RemoveAllowedDenom", Handler: _Msg_RemoveAllowedDenom_Handler, }, + { + MethodName: "GovSetFeeParams", + Handler: _Msg_GovSetFeeParams_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "regen/ecocredit/marketplace/v1/tx.proto", @@ -1680,6 +1840,13 @@ func (m *MsgBuyDirect_Order) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.MaxFeeAmount) > 0 { + i -= len(m.MaxFeeAmount) + copy(dAtA[i:], m.MaxFeeAmount) + i = encodeVarintTx(dAtA, i, uint64(len(m.MaxFeeAmount))) + i-- + dAtA[i] = 0x42 + } if len(m.RetirementReason) > 0 { i -= len(m.RetirementReason) copy(dAtA[i:], m.RetirementReason) @@ -1886,6 +2053,71 @@ func (m *MsgRemoveAllowedDenomResponse) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } +func (m *MsgGovSetFeeParams) 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 *MsgGovSetFeeParams) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgGovSetFeeParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Fees != nil { + { + size, err := m.Fees.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintTx(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgGovSetFeeParamsResponse) 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 *MsgGovSetFeeParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgGovSetFeeParamsResponse) 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 @@ -2087,6 +2319,10 @@ func (m *MsgBuyDirect_Order) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + l = len(m.MaxFeeAmount) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -2158,6 +2394,32 @@ func (m *MsgRemoveAllowedDenomResponse) Size() (n int) { return n } +func (m *MsgGovSetFeeParams) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.Fees != nil { + l = m.Fees.Size() + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgGovSetFeeParamsResponse) 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 } @@ -3438,6 +3700,38 @@ func (m *MsgBuyDirect_Order) Unmarshal(dAtA []byte) error { } m.RetirementReason = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxFeeAmount", 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.MaxFeeAmount = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -3888,6 +4182,174 @@ func (m *MsgRemoveAllowedDenomResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgGovSetFeeParams) 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: MsgGovSetFeeParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgGovSetFeeParams: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", 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.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fees", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Fees == nil { + m.Fees = &FeeParams{} + } + if err := m.Fees.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgGovSetFeeParamsResponse) 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: MsgGovSetFeeParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgGovSetFeeParamsResponse: 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