From fa1208b881a0d9b334ee0e11b40415cf35f89218 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Tue, 30 Jan 2024 12:00:38 -0500 Subject: [PATCH 01/27] feat(x/ecocredit/marketplace): add marketplace fee API --- .../ecocredit/marketplace/v1/state.proto | 19 ++++++++++++ proto/regen/ecocredit/marketplace/v1/tx.proto | 30 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/proto/regen/ecocredit/marketplace/v1/state.proto b/proto/regen/ecocredit/marketplace/v1/state.proto index 39ed91e9cc..97a03fb148 100644 --- a/proto/regen/ecocredit/marketplace/v1/state.proto +++ b/proto/regen/ecocredit/marketplace/v1/state.proto @@ -127,3 +127,22 @@ message Market { // exchange for less precision at the lower end. uint32 precision_modifier = 4; } + +// FeeParams represents the marketplace fee parameters. +message FeeParams { + option (cosmos.orm.v1.singleton) = { + id : 4 + }; + + // buyer_percentage_fee is the decimal percentage fee charged to the buyer. + // The string 3.0 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 3.0 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; +} \ No newline at end of file diff --git a/proto/regen/ecocredit/marketplace/v1/tx.proto b/proto/regen/ecocredit/marketplace/v1/tx.proto index 7aa880426e..5549603da2 100644 --- a/proto/regen/ecocredit/marketplace/v1/tx.proto +++ b/proto/regen/ecocredit/marketplace/v1/tx.proto @@ -6,6 +6,7 @@ import "cosmos/base/v1beta1/coin.proto"; import "cosmos/msg/v1/msg.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 +37,12 @@ service Msg { // Since Revision 1 rpc RemoveAllowedDenom(MsgRemoveAllowedDenom) returns (MsgRemoveAllowedDenomResponse); + + // SetMarketplaceFees is a governance method that sets the marketplace fees. + // + // Since Revision 3 + rpc SetMarketplaceFees(MsgSetMarketplaceFees) + returns (MsgSetMarketplaceFeesResponse); } // MsgSell is the Msg/Sell request type. @@ -174,6 +181,15 @@ 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. + // + // Since Revision 3 + string max_fee_amount = 8; } } @@ -223,3 +239,17 @@ message MsgRemoveAllowedDenom { // // Since Revision 1 message MsgRemoveAllowedDenomResponse {} + +// MsgSetMarketplaceFees is the Msg/SetMarketplaceFees request type. +message MsgSetMarketplaceFees { + 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; +} + +// MsgSetMarketplaceFeesResponse is the Msg/SetMarketplaceFees response type. +message MsgSetMarketplaceFeesResponse {} \ No newline at end of file From 3624c5dab9de0e64a1fea7f264e048a38c78abc8 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Tue, 30 Jan 2024 12:05:37 -0500 Subject: [PATCH 02/27] docs --- proto/regen/ecocredit/marketplace/v1/state.proto | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/proto/regen/ecocredit/marketplace/v1/state.proto b/proto/regen/ecocredit/marketplace/v1/state.proto index 97a03fb148..b89be29d94 100644 --- a/proto/regen/ecocredit/marketplace/v1/state.proto +++ b/proto/regen/ecocredit/marketplace/v1/state.proto @@ -128,7 +128,11 @@ message Market { uint32 precision_modifier = 4; } -// FeeParams represents the marketplace fee parameters. +// 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 : 4 From 8e09e86973000dbc34f4461801b42f2a5d3bdb4c Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Tue, 30 Jan 2024 12:06:34 -0500 Subject: [PATCH 03/27] cleanup --- proto/regen/ecocredit/marketplace/v1/state.proto | 2 +- proto/regen/ecocredit/marketplace/v1/tx.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/proto/regen/ecocredit/marketplace/v1/state.proto b/proto/regen/ecocredit/marketplace/v1/state.proto index b89be29d94..70cb638fc2 100644 --- a/proto/regen/ecocredit/marketplace/v1/state.proto +++ b/proto/regen/ecocredit/marketplace/v1/state.proto @@ -149,4 +149,4 @@ message FeeParams { // 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; -} \ No newline at end of file +} diff --git a/proto/regen/ecocredit/marketplace/v1/tx.proto b/proto/regen/ecocredit/marketplace/v1/tx.proto index 5549603da2..497d79fd7e 100644 --- a/proto/regen/ecocredit/marketplace/v1/tx.proto +++ b/proto/regen/ecocredit/marketplace/v1/tx.proto @@ -252,4 +252,4 @@ message MsgSetMarketplaceFees { } // MsgSetMarketplaceFeesResponse is the Msg/SetMarketplaceFees response type. -message MsgSetMarketplaceFeesResponse {} \ No newline at end of file +message MsgSetMarketplaceFeesResponse {} From d0bfd3e1b10566e606cb7d5237d63a1e056e8643 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Tue, 30 Jan 2024 12:11:20 -0500 Subject: [PATCH 04/27] proto-gen --- api/regen/data/v2/types.pulsar.go | 3 +- .../marketplace/v1/state.cosmos_orm.go | 42 + .../ecocredit/marketplace/v1/state.pulsar.go | 609 +++++- .../ecocredit/marketplace/v1/tx.pulsar.go | 1686 ++++++++++++++--- .../ecocredit/marketplace/v1/tx_grpc.pb.go | 43 + go.mod | 4 +- x/data/go.mod | 4 +- x/data/types.pb.go | 3 +- x/ecocredit/marketplace/types/v1/state.pb.go | 314 ++- x/ecocredit/marketplace/types/v1/tx.pb.go | 583 +++++- 10 files changed, 2849 insertions(+), 442 deletions(-) diff --git a/api/regen/data/v2/types.pulsar.go b/api/regen/data/v2/types.pulsar.go index 281d03823a..3c6a084a3e 100644 --- a/api/regen/data/v2/types.pulsar.go +++ b/api/regen/data/v2/types.pulsar.go @@ -2303,8 +2303,7 @@ type ContentHash struct { // which is preserved bit by bit. All other content encodings specify a // deterministic, canonical encoding allowing implementations to choose from a // variety of alternative formats for transport and encoding while maintaining - // the guarantee that the canonical hash will not change. The media type for - // "raw" data is defined by the MediaType enum. + // the guarantee that the canonical hash will not change. Raw *ContentHash_Raw `protobuf:"bytes,1,opt,name=raw,proto3" json:"raw,omitempty"` // graph specifies graph data that conforms to the RDF data model. // The canonicalization algorithm used for an RDF graph is specified by 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..b79f2b019a 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 3.0 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 3.0 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, 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, } 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..66005f8bec 100644 --- a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go @@ -602,7 +602,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 +2392,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 +4790,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 +4802,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 +4814,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 +4906,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 +4939,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 +4969,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 +5005,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 +5040,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 +5077,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 +5105,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 +5198,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 +5231,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 +5508,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 +7723,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_MsgSetMarketplaceFees protoreflect.MessageDescriptor + fd_MsgSetMarketplaceFees_authority protoreflect.FieldDescriptor + fd_MsgSetMarketplaceFees_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_MsgSetMarketplaceFees = File_regen_ecocredit_marketplace_v1_tx_proto.Messages().ByName("MsgSetMarketplaceFees") + fd_MsgSetMarketplaceFees_authority = md_MsgSetMarketplaceFees.Fields().ByName("authority") + fd_MsgSetMarketplaceFees_fees = md_MsgSetMarketplaceFees.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_MsgSetMarketplaceFees)(nil) + +type fastReflection_MsgSetMarketplaceFees MsgSetMarketplaceFees + +func (x *MsgSetMarketplaceFees) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetMarketplaceFees)(x) } -func (x *MsgSell) Reset() { - *x = MsgSell{} - if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[0] +func (x *MsgSetMarketplaceFees) 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_MsgSetMarketplaceFees_messageType fastReflection_MsgSetMarketplaceFees_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetMarketplaceFees_messageType{} -func (*MsgSell) ProtoMessage() {} +type fastReflection_MsgSetMarketplaceFees_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_MsgSetMarketplaceFees_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetMarketplaceFees)(nil) } - -func (x *MsgSell) GetSeller() string { - if x != nil { - return x.Seller - } - return "" +func (x fastReflection_MsgSetMarketplaceFees_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetMarketplaceFees) } - -func (x *MsgSell) GetOrders() []*MsgSell_Order { - if x != nil { - return x.Orders - } - return nil +func (x fastReflection_MsgSetMarketplaceFees_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetMarketplaceFees } -// 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_MsgSetMarketplaceFees) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetMarketplaceFees } -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_MsgSetMarketplaceFees) Type() protoreflect.MessageType { + return _fastReflection_MsgSetMarketplaceFees_messageType } -func (x *MsgSellResponse) String() string { - return protoimpl.X.MessageStringOf(x) +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetMarketplaceFees) New() protoreflect.Message { + return new(fastReflection_MsgSetMarketplaceFees) } -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_MsgSetMarketplaceFees) Interface() protoreflect.ProtoMessage { + return (*MsgSetMarketplaceFees)(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_MsgSetMarketplaceFees) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_MsgSetMarketplaceFees_authority, value) { + return + } + } + if x.Fees != nil { + value := protoreflect.ValueOfMessage(x.Fees.ProtoReflect()) + if !f(fd_MsgSetMarketplaceFees_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_MsgSetMarketplaceFees) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.authority": + return x.Authority != "" + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.fees": + return x.Fees != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees 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_MsgSetMarketplaceFees) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.authority": + x.Authority = "" + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.fees": + x.Fees = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees 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_MsgSetMarketplaceFees) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.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.MsgSetMarketplaceFees")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees 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_MsgSetMarketplaceFees) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.authority": + x.Authority = value.Interface().(string) + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.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.MsgSetMarketplaceFees")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees 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_MsgSetMarketplaceFees) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.fees": + if x.Fees == nil { + x.Fees = new(FeeParams) + } + return protoreflect.ValueOfMessage(x.Fees.ProtoReflect()) + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.authority": + panic(fmt.Errorf("field authority of message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees 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_MsgSetMarketplaceFees) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.authority": + return protoreflect.ValueOfString("") + case "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees.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.MsgSetMarketplaceFees")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees 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_MsgSetMarketplaceFees) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees", 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_MsgSetMarketplaceFees) 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_MsgSetMarketplaceFees) 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_MsgSetMarketplaceFees) 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_MsgSetMarketplaceFees) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetMarketplaceFees) + 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().(*MsgSetMarketplaceFees) + 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().(*MsgSetMarketplaceFees) + 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: MsgSetMarketplaceFees: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetMarketplaceFees: 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_MsgSetMarketplaceFeesResponse protoreflect.MessageDescriptor +) + +func init() { + file_regen_ecocredit_marketplace_v1_tx_proto_init() + md_MsgSetMarketplaceFeesResponse = File_regen_ecocredit_marketplace_v1_tx_proto.Messages().ByName("MsgSetMarketplaceFeesResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgSetMarketplaceFeesResponse)(nil) + +type fastReflection_MsgSetMarketplaceFeesResponse MsgSetMarketplaceFeesResponse + +func (x *MsgSetMarketplaceFeesResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgSetMarketplaceFeesResponse)(x) +} + +func (x *MsgSetMarketplaceFeesResponse) 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_MsgSetMarketplaceFeesResponse_messageType fastReflection_MsgSetMarketplaceFeesResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgSetMarketplaceFeesResponse_messageType{} + +type fastReflection_MsgSetMarketplaceFeesResponse_messageType struct{} + +func (x fastReflection_MsgSetMarketplaceFeesResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgSetMarketplaceFeesResponse)(nil) +} +func (x fastReflection_MsgSetMarketplaceFeesResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgSetMarketplaceFeesResponse) +} +func (x fastReflection_MsgSetMarketplaceFeesResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetMarketplaceFeesResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgSetMarketplaceFeesResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgSetMarketplaceFeesResponse +} + +// 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_MsgSetMarketplaceFeesResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgSetMarketplaceFeesResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgSetMarketplaceFeesResponse) New() protoreflect.Message { + return new(fastReflection_MsgSetMarketplaceFeesResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgSetMarketplaceFeesResponse) Interface() protoreflect.ProtoMessage { + return (*MsgSetMarketplaceFeesResponse)(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_MsgSetMarketplaceFeesResponse) 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_MsgSetMarketplaceFeesResponse) 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.MsgSetMarketplaceFeesResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse 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_MsgSetMarketplaceFeesResponse) 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.MsgSetMarketplaceFeesResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse 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_MsgSetMarketplaceFeesResponse) 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.MsgSetMarketplaceFeesResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse 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_MsgSetMarketplaceFeesResponse) 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.MsgSetMarketplaceFeesResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse 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_MsgSetMarketplaceFeesResponse) 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.MsgSetMarketplaceFeesResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse 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_MsgSetMarketplaceFeesResponse) 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.MsgSetMarketplaceFeesResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse 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_MsgSetMarketplaceFeesResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse", 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_MsgSetMarketplaceFeesResponse) 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_MsgSetMarketplaceFeesResponse) 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_MsgSetMarketplaceFeesResponse) 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_MsgSetMarketplaceFeesResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgSetMarketplaceFeesResponse) + 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().(*MsgSetMarketplaceFeesResponse) + 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().(*MsgSetMarketplaceFeesResponse) + 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: MsgSetMarketplaceFeesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgSetMarketplaceFeesResponse: 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 +9069,79 @@ func (*MsgRemoveAllowedDenomResponse) Descriptor() ([]byte, []int) { return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{11} } +// MsgSetMarketplaceFees is the Msg/SetMarketplaceFees request type. +type MsgSetMarketplaceFees 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 *MsgSetMarketplaceFees) Reset() { + *x = MsgSetMarketplaceFees{} + 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 *MsgSetMarketplaceFees) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetMarketplaceFees) ProtoMessage() {} + +// Deprecated: Use MsgSetMarketplaceFees.ProtoReflect.Descriptor instead. +func (*MsgSetMarketplaceFees) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{12} +} + +func (x *MsgSetMarketplaceFees) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +func (x *MsgSetMarketplaceFees) GetFees() *FeeParams { + if x != nil { + return x.Fees + } + return nil +} + +// MsgSetMarketplaceFeesResponse is the Msg/SetMarketplaceFees response type. +type MsgSetMarketplaceFeesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgSetMarketplaceFeesResponse) Reset() { + *x = MsgSetMarketplaceFeesResponse{} + 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 *MsgSetMarketplaceFeesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSetMarketplaceFeesResponse) ProtoMessage() {} + +// Deprecated: Use MsgSetMarketplaceFeesResponse.ProtoReflect.Descriptor instead. +func (*MsgSetMarketplaceFeesResponse) 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 +9172,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 +9247,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 +9327,20 @@ 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. + // + // 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 +9399,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{ @@ -8413,181 +9420,205 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_rawDesc = []byte{ 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, + 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, 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, 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, + 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, 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, - 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, + 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, 0xba, 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, 0xbb, 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, 0x24, 0x0a, 0x0e, 0x6d, + 0x61, 0x78, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 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, 0x84, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x65, 0x65, 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, 0x1f, 0x0a, + 0x1d, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x81, + 0x07, 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, 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, + 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, 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, 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, + 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, 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, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x3d, 0x2e, 0x72, + 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, 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, 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, 0x8a, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x65, 0x65, 0x73, 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, 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, + 0x67, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, + 0x65, 0x65, 0x73, 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, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x46, 0x65, 0x65, 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 +9633,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 +9647,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 + (*MsgSetMarketplaceFees)(nil), // 12: regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees + (*MsgSetMarketplaceFeesResponse)(nil), // 13: regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse + (*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.MsgSetMarketplaceFees.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.SetMarketplaceFees:input_type -> regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees + 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.SetMarketplaceFees:output_type -> regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse + 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 +9692,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 +9839,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.(*MsgSetMarketplaceFees); i { case 0: return &v.state case 1: @@ -8813,7 +9851,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.(*MsgSetMarketplaceFeesResponse); i { case 0: return &v.state case 1: @@ -8825,6 +9863,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 +9905,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..4b32df93b6 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_SetMarketplaceFees_FullMethodName = "/regen.ecocredit.marketplace.v1.Msg/SetMarketplaceFees" ) // 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) + // SetMarketplaceFees is a governance method that sets the marketplace fees. + // + // Since Revision 3 + SetMarketplaceFees(ctx context.Context, in *MsgSetMarketplaceFees, opts ...grpc.CallOption) (*MsgSetMarketplaceFeesResponse, error) } type msgClient struct { @@ -112,6 +117,15 @@ func (c *msgClient) RemoveAllowedDenom(ctx context.Context, in *MsgRemoveAllowed return out, nil } +func (c *msgClient) SetMarketplaceFees(ctx context.Context, in *MsgSetMarketplaceFees, opts ...grpc.CallOption) (*MsgSetMarketplaceFeesResponse, error) { + out := new(MsgSetMarketplaceFeesResponse) + err := c.cc.Invoke(ctx, Msg_SetMarketplaceFees_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) + // SetMarketplaceFees is a governance method that sets the marketplace fees. + // + // Since Revision 3 + SetMarketplaceFees(context.Context, *MsgSetMarketplaceFees) (*MsgSetMarketplaceFeesResponse, 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) SetMarketplaceFees(context.Context, *MsgSetMarketplaceFees) (*MsgSetMarketplaceFeesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetMarketplaceFees 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_SetMarketplaceFees_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgSetMarketplaceFees) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).SetMarketplaceFees(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_SetMarketplaceFees_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).SetMarketplaceFees(ctx, req.(*MsgSetMarketplaceFees)) + } + 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: "SetMarketplaceFees", + Handler: _Msg_SetMarketplaceFees_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "regen/ecocredit/marketplace/v1/tx.proto", diff --git a/go.mod b/go.mod index 3809689722..2ce0856769 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/regen-network/regen-ledger/v5 -go 1.19 +go 1.21 + +toolchain go1.21.4 require ( cosmossdk.io/math v1.1.2 diff --git a/x/data/go.mod b/x/data/go.mod index bc1c8bcda6..98406a57ff 100644 --- a/x/data/go.mod +++ b/x/data/go.mod @@ -1,6 +1,8 @@ module github.com/regen-network/regen-ledger/x/data/v3 -go 1.19 +go 1.21 + +toolchain go1.21.4 require ( cosmossdk.io/errors v1.0.0 diff --git a/x/data/types.pb.go b/x/data/types.pb.go index 0a48f7393a..16e16b6352 100644 --- a/x/data/types.pb.go +++ b/x/data/types.pb.go @@ -125,8 +125,7 @@ type ContentHash struct { // which is preserved bit by bit. All other content encodings specify a // deterministic, canonical encoding allowing implementations to choose from a // variety of alternative formats for transport and encoding while maintaining - // the guarantee that the canonical hash will not change. The media type for - // "raw" data is defined by the MediaType enum. + // the guarantee that the canonical hash will not change. Raw *ContentHash_Raw `protobuf:"bytes,1,opt,name=raw,proto3" json:"raw,omitempty"` // graph specifies graph data that conforms to the RDF data model. // The canonicalization algorithm used for an RDF graph is specified by diff --git a/x/ecocredit/marketplace/types/v1/state.pb.go b/x/ecocredit/marketplace/types/v1/state.pb.go index 97d6e22e05..4688b77457 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 3.0 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 3.0 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, + // 654 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x54, 0x4d, 0x6f, 0xd3, 0x4a, + 0x14, 0xed, 0x24, 0x69, 0x5e, 0x3c, 0x2f, 0xa9, 0xd2, 0x69, 0xdf, 0x7b, 0x56, 0x9e, 0x1a, 0xa2, + 0x54, 0x48, 0x11, 0xb4, 0x36, 0x2d, 0xea, 0x26, 0xac, 0x82, 0x50, 0x25, 0x84, 0x2a, 0x2a, 0xd3, + 0x15, 0x1b, 0x33, 0xb6, 0x6f, 0xd3, 0x91, 0x3f, 0xc6, 0x8c, 0xc7, 0x69, 0x2d, 0xfe, 0x03, 0x62, + 0x8f, 0xc4, 0xef, 0x41, 0x62, 0x53, 0x89, 0x0d, 0x4b, 0xd4, 0x2e, 0xd8, 0xb3, 0x64, 0x85, 0x3c, + 0xe3, 0x86, 0x90, 0x8a, 0xe5, 0xbd, 0xe7, 0x9c, 0x99, 0x7b, 0xce, 0x5c, 0x1b, 0xdf, 0x13, 0x30, + 0x85, 0xc4, 0x06, 0x9f, 0xfb, 0x02, 0x02, 0x26, 0xed, 0x98, 0x8a, 0x10, 0x64, 0x1a, 0x51, 0x1f, + 0xec, 0xd9, 0x9e, 0x9d, 0x49, 0x2a, 0xc1, 0x4a, 0x05, 0x97, 0x9c, 0xf4, 0x15, 0xd7, 0x9a, 0x73, + 0xad, 0x05, 0xae, 0x35, 0xdb, 0xeb, 0xfd, 0xe7, 0xf3, 0x2c, 0xe6, 0x99, 0xcd, 0x45, 0x5c, 0x4a, + 0xb9, 0x88, 0xb5, 0xb0, 0x77, 0x67, 0xca, 0xf9, 0x34, 0x02, 0x5b, 0x55, 0x5e, 0x7e, 0x6a, 0x4b, + 0x16, 0x43, 0x26, 0x69, 0x9c, 0x6a, 0xc2, 0xf0, 0x5b, 0x0d, 0x1b, 0x2f, 0x20, 0x8a, 0x9e, 0x8b, + 0x00, 0x04, 0x59, 0xc3, 0x35, 0x16, 0x98, 0x68, 0x80, 0x46, 0x0d, 0xa7, 0xc6, 0x02, 0xf2, 0x2f, + 0x6e, 0x66, 0x10, 0x45, 0x20, 0xcc, 0xda, 0x00, 0x8d, 0xda, 0x4e, 0x55, 0x91, 0xff, 0xb1, 0xe1, + 0x51, 0xe9, 0x9f, 0xb9, 0x21, 0x14, 0x66, 0x5d, 0xd1, 0x5b, 0xaa, 0xf1, 0x0c, 0x0a, 0xd2, 0xc3, + 0xad, 0xd7, 0x39, 0x4d, 0x24, 0x93, 0x85, 0xd9, 0x18, 0xa0, 0x91, 0xe1, 0xcc, 0xeb, 0x52, 0xa8, + 0x47, 0x77, 0x59, 0x60, 0xae, 0x6a, 0xa1, 0x6e, 0x3c, 0x0d, 0xc8, 0x16, 0xc6, 0x34, 0x0b, 0x5d, + 0x1a, 0xf3, 0x3c, 0x91, 0x66, 0x53, 0x49, 0x0d, 0x9a, 0x85, 0x13, 0xd5, 0x20, 0x16, 0xde, 0x08, + 0x58, 0x46, 0xbd, 0x08, 0x5c, 0x9a, 0x4b, 0xee, 0x0a, 0x90, 0x4c, 0x80, 0xf9, 0xd7, 0x00, 0x8d, + 0x5a, 0xce, 0x7a, 0x05, 0x4d, 0x72, 0xc9, 0x1d, 0x05, 0x90, 0x31, 0xc6, 0x70, 0x91, 0x32, 0x41, + 0x25, 0xe3, 0x89, 0x69, 0x0c, 0xd0, 0xe8, 0xef, 0xfd, 0x9e, 0xa5, 0x03, 0xb1, 0x6e, 0x02, 0xb1, + 0x4e, 0x6e, 0x02, 0x71, 0x16, 0xd8, 0x64, 0x13, 0xaf, 0xc6, 0x34, 0x04, 0x61, 0x62, 0x75, 0xba, + 0x2e, 0xc6, 0x8f, 0xbe, 0x7f, 0xf8, 0xfc, 0xb6, 0x7e, 0x80, 0x9b, 0x65, 0x4c, 0x5d, 0x44, 0x3a, + 0x0b, 0x31, 0x74, 0x11, 0xc1, 0x37, 0x69, 0x75, 0x6b, 0x64, 0x6d, 0xf1, 0xf2, 0x6e, 0xdd, 0x44, + 0xc3, 0xf7, 0x08, 0xb7, 0x27, 0x51, 0xc4, 0xcf, 0x21, 0x78, 0x02, 0x09, 0x8f, 0x4b, 0xbb, 0x1e, + 0x4d, 0x42, 0x37, 0x28, 0x2b, 0x15, 0xba, 0xe1, 0x18, 0x65, 0x47, 0xc3, 0xdb, 0xb8, 0x13, 0xb0, + 0x2c, 0x8d, 0x68, 0x51, 0x31, 0x6a, 0x8a, 0xd1, 0xae, 0x9a, 0x9a, 0xd4, 0xc3, 0x2d, 0xb8, 0x48, + 0x79, 0x02, 0x89, 0x54, 0xef, 0xd0, 0x71, 0xe6, 0xf5, 0xf8, 0xbe, 0x9a, 0xf6, 0x2e, 0x6e, 0x2f, + 0xde, 0x43, 0x36, 0x96, 0x8e, 0xed, 0x22, 0x13, 0x99, 0xf5, 0xe1, 0x27, 0x84, 0x9b, 0x47, 0xea, + 0x21, 0x6e, 0x2d, 0xc1, 0x0e, 0x26, 0x7a, 0xeb, 0x5c, 0x59, 0xa4, 0xe0, 0x52, 0xcf, 0x13, 0x30, + 0xab, 0xa6, 0xe9, 0x6a, 0xe4, 0xa4, 0x48, 0x61, 0xa2, 0xfa, 0x4b, 0xae, 0xea, 0xcb, 0xae, 0x76, + 0x31, 0x49, 0x05, 0xf8, 0x2c, 0x63, 0x3c, 0x71, 0x63, 0x1e, 0xb0, 0x53, 0x06, 0x42, 0xad, 0x49, + 0xc7, 0x59, 0x9f, 0x23, 0x47, 0x15, 0x30, 0x3e, 0x50, 0x1e, 0xec, 0x79, 0xe2, 0xdb, 0x78, 0xeb, + 0xf6, 0x2c, 0x3b, 0xbf, 0x2e, 0x54, 0x6e, 0x1a, 0xc3, 0x37, 0xd8, 0x38, 0x04, 0x38, 0xa6, 0x82, + 0xc6, 0x19, 0x79, 0x80, 0x37, 0xbd, 0xbc, 0x00, 0xe1, 0xa6, 0x20, 0x7c, 0x48, 0x24, 0x9d, 0x82, + 0x7b, 0x0a, 0x50, 0x25, 0x4e, 0x14, 0x76, 0x3c, 0x87, 0x0e, 0x01, 0xc8, 0x3e, 0xfe, 0x47, 0x3f, + 0xe4, 0xb2, 0x44, 0x9b, 0xde, 0xd0, 0xe0, 0x6f, 0x9a, 0x71, 0xeb, 0x47, 0x39, 0x69, 0xad, 0xd5, + 0x78, 0xfc, 0xea, 0xe3, 0x55, 0x1f, 0x5d, 0x5e, 0xf5, 0xd1, 0xd7, 0xab, 0x3e, 0x7a, 0x77, 0xdd, + 0x5f, 0xb9, 0xbc, 0xee, 0xaf, 0x7c, 0xb9, 0xee, 0xaf, 0xbc, 0x3c, 0x9c, 0x32, 0x79, 0x96, 0x7b, + 0x96, 0xcf, 0x63, 0x5b, 0x7d, 0xd1, 0xbb, 0x09, 0xc8, 0x73, 0x2e, 0xc2, 0xaa, 0x8a, 0x20, 0x98, + 0x82, 0xb0, 0x2f, 0xfe, 0xf0, 0x53, 0x28, 0x2d, 0x67, 0xf6, 0x6c, 0xcf, 0x6b, 0xaa, 0xed, 0x7d, + 0xf8, 0x33, 0x00, 0x00, 0xff, 0xff, 0x46, 0x40, 0xb0, 0x2e, 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..aebba73841 100644 --- a/x/ecocredit/marketplace/types/v1/tx.pb.go +++ b/x/ecocredit/marketplace/types/v1/tx.pb.go @@ -574,6 +574,14 @@ 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. + // + // 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 +659,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 +916,98 @@ func (m *MsgRemoveAllowedDenomResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgRemoveAllowedDenomResponse proto.InternalMessageInfo +// MsgSetMarketplaceFees is the Msg/SetMarketplaceFees request type. +type MsgSetMarketplaceFees 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 *MsgSetMarketplaceFees) Reset() { *m = MsgSetMarketplaceFees{} } +func (m *MsgSetMarketplaceFees) String() string { return proto.CompactTextString(m) } +func (*MsgSetMarketplaceFees) ProtoMessage() {} +func (*MsgSetMarketplaceFees) Descriptor() ([]byte, []int) { + return fileDescriptor_68c9b4e4b7fcb584, []int{12} +} +func (m *MsgSetMarketplaceFees) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgSetMarketplaceFees) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgSetMarketplaceFees.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 *MsgSetMarketplaceFees) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgSetMarketplaceFees.Merge(m, src) +} +func (m *MsgSetMarketplaceFees) XXX_Size() int { + return m.Size() +} +func (m *MsgSetMarketplaceFees) XXX_DiscardUnknown() { + xxx_messageInfo_MsgSetMarketplaceFees.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgSetMarketplaceFees proto.InternalMessageInfo + +func (m *MsgSetMarketplaceFees) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgSetMarketplaceFees) GetFees() *FeeParams { + if m != nil { + return m.Fees + } + return nil +} + +// MsgSetMarketplaceFeesResponse is the Msg/SetMarketplaceFees response type. +type MsgSetMarketplaceFeesResponse struct { +} + +func (m *MsgSetMarketplaceFeesResponse) Reset() { *m = MsgSetMarketplaceFeesResponse{} } +func (m *MsgSetMarketplaceFeesResponse) String() string { return proto.CompactTextString(m) } +func (*MsgSetMarketplaceFeesResponse) ProtoMessage() {} +func (*MsgSetMarketplaceFeesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_68c9b4e4b7fcb584, []int{13} +} +func (m *MsgSetMarketplaceFeesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgSetMarketplaceFeesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgSetMarketplaceFeesResponse.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 *MsgSetMarketplaceFeesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgSetMarketplaceFeesResponse.Merge(m, src) +} +func (m *MsgSetMarketplaceFeesResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgSetMarketplaceFeesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgSetMarketplaceFeesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgSetMarketplaceFeesResponse 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 +1024,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((*MsgSetMarketplaceFees)(nil), "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFees") + proto.RegisterType((*MsgSetMarketplaceFeesResponse)(nil), "regen.ecocredit.marketplace.v1.MsgSetMarketplaceFeesResponse") } func init() { @@ -924,68 +1033,74 @@ 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, + // 1060 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x4f, 0x6f, 0xdc, 0x44, + 0x14, 0x8f, 0x77, 0x37, 0xff, 0xde, 0x26, 0x69, 0xeb, 0x86, 0x74, 0x31, 0xcd, 0x26, 0x2c, 0x48, + 0x0d, 0x85, 0xda, 0x4a, 0x4a, 0xa9, 0x14, 0x14, 0x89, 0xa4, 0x6d, 0x10, 0x45, 0x2b, 0x8a, 0x53, + 0x2e, 0x48, 0x68, 0x3b, 0xb6, 0x5f, 0x1c, 0x13, 0xdb, 0x63, 0x3c, 0xe3, 0x64, 0x73, 0x2c, 0xaa, + 0x84, 0xc4, 0xa9, 0x67, 0x8e, 0x7c, 0x02, 0xce, 0xf0, 0x05, 0x38, 0xf6, 0xc8, 0x0d, 0x94, 0x48, + 0x70, 0xe3, 0x33, 0x54, 0x33, 0xf6, 0x7a, 0x37, 0xde, 0x6c, 0xe3, 0xe4, 0xe6, 0x79, 0xef, 0xfd, + 0xe6, 0xbd, 0xf9, 0xfd, 0xde, 0x9b, 0x31, 0xdc, 0x8a, 0xd1, 0xc5, 0xd0, 0x40, 0x9b, 0xda, 0x31, + 0x3a, 0x1e, 0x37, 0x02, 0x12, 0xef, 0x23, 0x8f, 0x7c, 0x62, 0xa3, 0x71, 0xb0, 0x6a, 0xf0, 0xae, + 0x1e, 0xc5, 0x94, 0x53, 0xb5, 0x29, 0x03, 0xf5, 0x3c, 0x50, 0x1f, 0x08, 0xd4, 0x0f, 0x56, 0xb5, + 0xa6, 0x4d, 0x59, 0x40, 0x99, 0x61, 0x11, 0x26, 0x80, 0x16, 0x72, 0xb2, 0x6a, 0xd8, 0xd4, 0x0b, + 0x53, 0xbc, 0x76, 0x23, 0xf3, 0x07, 0xcc, 0x15, 0xfb, 0x06, 0xcc, 0xcd, 0x1c, 0xf3, 0x2e, 0x75, + 0xa9, 0xfc, 0x34, 0xc4, 0x57, 0x66, 0x5d, 0x72, 0x29, 0x75, 0x7d, 0x34, 0xe4, 0xca, 0x4a, 0x76, + 0x0d, 0xee, 0x05, 0xc8, 0x38, 0x09, 0xa2, 0x2c, 0xe0, 0xf6, 0x39, 0x85, 0x33, 0x4e, 0x38, 0xa6, + 0xb1, 0xad, 0x7f, 0x2b, 0x30, 0xd9, 0x66, 0xee, 0x0e, 0xfa, 0xbe, 0xba, 0x00, 0x13, 0x0c, 0x7d, + 0x1f, 0xe3, 0x86, 0xb2, 0xac, 0xac, 0x4c, 0x9b, 0xd9, 0x4a, 0x7d, 0x04, 0x13, 0x34, 0x76, 0x30, + 0x66, 0x8d, 0xca, 0x72, 0x75, 0xa5, 0xbe, 0x76, 0x47, 0x7f, 0xf3, 0x81, 0xf5, 0x6c, 0x43, 0xfd, + 0x2b, 0x81, 0x32, 0x33, 0xb0, 0xf6, 0xbf, 0x02, 0xe3, 0xd2, 0xa2, 0x2e, 0x41, 0xdd, 0x22, 0xdc, + 0xde, 0xeb, 0x38, 0x18, 0xd2, 0x20, 0xcb, 0x06, 0xd2, 0xf4, 0x50, 0x58, 0x54, 0x0d, 0xa6, 0x7e, + 0x48, 0x48, 0xc8, 0x3d, 0x7e, 0xd4, 0xa8, 0x48, 0x6f, 0xbe, 0x56, 0x3f, 0x81, 0x69, 0xc2, 0xf6, + 0x3b, 0x51, 0xec, 0xd9, 0xd8, 0xa8, 0x2e, 0x2b, 0x2b, 0xf5, 0xb5, 0xb7, 0xf5, 0x94, 0x41, 0x5d, + 0x30, 0xac, 0x67, 0x0c, 0xeb, 0x0f, 0xa8, 0x17, 0x9a, 0x53, 0x84, 0xed, 0x3f, 0x11, 0xa1, 0xaa, + 0x0e, 0xd7, 0x1d, 0x8f, 0x11, 0xcb, 0xc7, 0x0e, 0x49, 0x38, 0xed, 0xc4, 0xc8, 0xbd, 0x18, 0x1b, + 0xb5, 0x65, 0x65, 0x65, 0xca, 0xbc, 0x96, 0xb9, 0x36, 0x13, 0x4e, 0x4d, 0xe9, 0x50, 0x3f, 0x03, + 0xc0, 0x6e, 0xe4, 0xc5, 0x84, 0x7b, 0x34, 0x6c, 0x8c, 0xcb, 0x44, 0x9a, 0x9e, 0x72, 0xaf, 0xf7, + 0xb8, 0xd7, 0x9f, 0xf6, 0xb8, 0xdf, 0xaa, 0xbd, 0xfc, 0x7b, 0x49, 0x31, 0x07, 0x30, 0xeb, 0xf5, + 0x1f, 0xff, 0xfb, 0xed, 0x76, 0x46, 0x62, 0xeb, 0x3e, 0x5c, 0xc9, 0x68, 0x31, 0x91, 0x45, 0x34, + 0x64, 0xa8, 0xbe, 0x0f, 0x73, 0xc2, 0xd9, 0x91, 0xfc, 0x74, 0x3c, 0x87, 0x35, 0x94, 0xe5, 0xea, + 0x4a, 0xcd, 0x9c, 0x11, 0x56, 0xc9, 0xd4, 0x17, 0x0e, 0x6b, 0xfd, 0x52, 0x85, 0xeb, 0x6d, 0xe6, + 0x7e, 0x13, 0x39, 0x84, 0xe3, 0x4e, 0xcf, 0xc3, 0x46, 0xaa, 0xf5, 0x14, 0x26, 0x13, 0x19, 0xdb, + 0x93, 0x6b, 0xbd, 0x84, 0x5c, 0xc5, 0xdd, 0xf5, 0xd4, 0x60, 0xf6, 0xb6, 0xd2, 0x7e, 0xaa, 0xc0, + 0x44, 0x6a, 0x53, 0x5b, 0x30, 0x7b, 0xaa, 0x6c, 0x99, 0xbf, 0x66, 0xd6, 0x07, 0xaa, 0x56, 0xdf, + 0x85, 0x99, 0x10, 0x0f, 0x3b, 0x05, 0x11, 0xeb, 0x21, 0x1e, 0x7e, 0xdd, 0xd3, 0x71, 0x03, 0x66, + 0x45, 0xc8, 0x05, 0xb4, 0x14, 0xf0, 0xcd, 0xcb, 0xca, 0xf9, 0x39, 0xcc, 0x89, 0x74, 0x97, 0x90, + 0x54, 0x94, 0xf9, 0x68, 0x84, 0xaa, 0x8b, 0xf0, 0xce, 0x19, 0xec, 0xf5, 0x14, 0x6e, 0x7d, 0x07, + 0x6a, 0x9b, 0xb9, 0x0f, 0x48, 0x68, 0xa3, 0x9f, 0xbb, 0x47, 0x2a, 0x37, 0x44, 0x6c, 0x65, 0x88, + 0xd8, 0xd3, 0xd9, 0x6f, 0x82, 0x36, 0xbc, 0x7d, 0x9e, 0xfc, 0xf7, 0x2a, 0xcc, 0xb4, 0x99, 0xbb, + 0x95, 0x1c, 0x3d, 0xf4, 0x62, 0xb4, 0xb9, 0x3a, 0x0f, 0xe3, 0x56, 0x72, 0x94, 0xa7, 0x4d, 0x17, + 0xea, 0xe3, 0xc2, 0x74, 0xaf, 0x95, 0x68, 0x97, 0x7c, 0xcf, 0xc2, 0x88, 0xff, 0x51, 0xe9, 0x8d, + 0x78, 0x89, 0xb3, 0x9c, 0x9a, 0xf2, 0xea, 0xf0, 0x94, 0x5b, 0x9e, 0x93, 0x75, 0x46, 0xed, 0xdc, + 0x29, 0xb7, 0x3c, 0xe7, 0x8d, 0x6d, 0x31, 0x3e, 0xaa, 0x2d, 0xee, 0xc3, 0x8d, 0x34, 0x24, 0xc0, + 0x90, 0x77, 0xbe, 0x4f, 0x62, 0x8f, 0x39, 0x9e, 0x2d, 0xfb, 0x63, 0x42, 0x96, 0xb4, 0xd0, 0x77, + 0x3f, 0x1e, 0xf0, 0xaa, 0x1f, 0xc2, 0xb5, 0x01, 0x60, 0x8c, 0x84, 0xd1, 0xb0, 0x31, 0x29, 0x21, + 0x57, 0xfb, 0x0e, 0x53, 0xda, 0xc5, 0xa4, 0x07, 0xa4, 0xdb, 0xd9, 0x45, 0xec, 0x90, 0x80, 0x26, + 0x21, 0x6f, 0x4c, 0xc9, 0xc8, 0x99, 0x80, 0x74, 0xb7, 0x11, 0x37, 0xa5, 0x6d, 0x1d, 0x84, 0xb6, + 0xa9, 0x2a, 0xad, 0x05, 0x98, 0x1f, 0xe4, 0x39, 0x17, 0xf5, 0x57, 0x45, 0xb6, 0xd4, 0xa6, 0xe3, + 0x6c, 0xfa, 0x3e, 0x3d, 0x44, 0x27, 0xbd, 0x30, 0x6f, 0xc2, 0x34, 0x49, 0xf8, 0x1e, 0x8d, 0x05, + 0x97, 0xa9, 0xbc, 0x7d, 0x83, 0xba, 0x08, 0x60, 0x91, 0x70, 0x3f, 0xbb, 0x6e, 0xd3, 0x59, 0x9c, + 0x16, 0x96, 0x14, 0xfc, 0x1e, 0xcc, 0x3a, 0x1e, 0x8b, 0x7c, 0x72, 0x94, 0x45, 0xa4, 0x62, 0xcc, + 0x64, 0xc6, 0xfc, 0x4a, 0xc6, 0x6e, 0x44, 0x43, 0x0c, 0xb9, 0xd4, 0x63, 0xd6, 0xcc, 0xd7, 0xeb, + 0x73, 0xa2, 0xf0, 0x7e, 0xbe, 0xac, 0x2f, 0x0b, 0x35, 0xe6, 0x47, 0xf8, 0x12, 0xde, 0x6a, 0x33, + 0xd7, 0xc4, 0x80, 0x1e, 0xe0, 0x05, 0x0e, 0x31, 0x0f, 0xe3, 0x83, 0xf5, 0xa7, 0x8b, 0xd6, 0x12, + 0x2c, 0x9e, 0xb9, 0x59, 0x9e, 0xed, 0x85, 0x22, 0xd3, 0xed, 0x20, 0x6f, 0xf7, 0xdb, 0x78, 0x1b, + 0x91, 0x9d, 0x93, 0x6e, 0x03, 0x6a, 0xbb, 0x28, 0xef, 0x50, 0xd1, 0x7b, 0x1f, 0x9c, 0x37, 0x14, + 0xdb, 0x88, 0x4f, 0x48, 0x4c, 0x02, 0x66, 0x4a, 0xd8, 0x10, 0x25, 0x69, 0x9d, 0xc3, 0x55, 0xf4, + 0xea, 0x5c, 0x7b, 0x3e, 0x09, 0xd5, 0x36, 0x73, 0xd5, 0x67, 0x50, 0x93, 0x8f, 0xf1, 0xad, 0x92, + 0x8f, 0xac, 0x66, 0x94, 0x0c, 0xcc, 0x9f, 0x9d, 0x17, 0x0a, 0x5c, 0x1d, 0x7a, 0x4d, 0xee, 0x5e, + 0xe2, 0x91, 0xd0, 0x3e, 0xbd, 0x04, 0x28, 0x2f, 0xe3, 0xb9, 0x02, 0x57, 0x8a, 0x37, 0x63, 0x99, + 0xbb, 0xa7, 0x80, 0xd1, 0xd6, 0x2f, 0x8e, 0xc9, 0x6b, 0xa0, 0x30, 0xdd, 0xbf, 0x1e, 0x3f, 0xba, + 0xc8, 0xc5, 0xa7, 0x7d, 0x7c, 0x91, 0xe8, 0x53, 0x87, 0x2e, 0xce, 0x6e, 0x99, 0x43, 0x17, 0x30, + 0xa5, 0x0e, 0x3d, 0x62, 0xfe, 0xd4, 0x9f, 0x15, 0x50, 0xcf, 0x98, 0xbe, 0x7b, 0x25, 0xb6, 0x1c, + 0x86, 0x69, 0x1b, 0x97, 0x82, 0x9d, 0x2a, 0xe6, 0x8c, 0xd9, 0xbc, 0x57, 0xaa, 0xa9, 0x8b, 0xb0, + 0x52, 0xc5, 0x8c, 0x9e, 0xc1, 0xad, 0x67, 0x7f, 0x1e, 0x37, 0x95, 0x57, 0xc7, 0x4d, 0xe5, 0x9f, + 0xe3, 0xa6, 0xf2, 0xf2, 0xa4, 0x39, 0xf6, 0xea, 0xa4, 0x39, 0xf6, 0xd7, 0x49, 0x73, 0xec, 0xdb, + 0x6d, 0xd7, 0xe3, 0x7b, 0x89, 0xa5, 0xdb, 0x34, 0x30, 0x64, 0x8a, 0x3b, 0x21, 0xf2, 0x43, 0x1a, + 0xef, 0x67, 0x2b, 0x1f, 0x1d, 0x17, 0x63, 0xa3, 0x3b, 0xe2, 0xa7, 0x9b, 0x1f, 0x45, 0xc8, 0xc4, + 0xaf, 0xff, 0x84, 0xfc, 0xcb, 0xb8, 0xfb, 0x3a, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x93, 0x51, 0x6a, + 0x5c, 0x0c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1017,6 +1132,10 @@ type MsgClient interface { // // Since Revision 1 RemoveAllowedDenom(ctx context.Context, in *MsgRemoveAllowedDenom, opts ...grpc.CallOption) (*MsgRemoveAllowedDenomResponse, error) + // SetMarketplaceFees is a governance method that sets the marketplace fees. + // + // Since Revision 3 + SetMarketplaceFees(ctx context.Context, in *MsgSetMarketplaceFees, opts ...grpc.CallOption) (*MsgSetMarketplaceFeesResponse, error) } type msgClient struct { @@ -1081,6 +1200,15 @@ func (c *msgClient) RemoveAllowedDenom(ctx context.Context, in *MsgRemoveAllowed return out, nil } +func (c *msgClient) SetMarketplaceFees(ctx context.Context, in *MsgSetMarketplaceFees, opts ...grpc.CallOption) (*MsgSetMarketplaceFeesResponse, error) { + out := new(MsgSetMarketplaceFeesResponse) + err := c.cc.Invoke(ctx, "/regen.ecocredit.marketplace.v1.Msg/SetMarketplaceFees", 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 +1228,10 @@ type MsgServer interface { // // Since Revision 1 RemoveAllowedDenom(context.Context, *MsgRemoveAllowedDenom) (*MsgRemoveAllowedDenomResponse, error) + // SetMarketplaceFees is a governance method that sets the marketplace fees. + // + // Since Revision 3 + SetMarketplaceFees(context.Context, *MsgSetMarketplaceFees) (*MsgSetMarketplaceFeesResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -1124,6 +1256,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) SetMarketplaceFees(ctx context.Context, req *MsgSetMarketplaceFees) (*MsgSetMarketplaceFeesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetMarketplaceFees not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -1237,6 +1372,24 @@ func _Msg_RemoveAllowedDenom_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _Msg_SetMarketplaceFees_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgSetMarketplaceFees) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).SetMarketplaceFees(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/regen.ecocredit.marketplace.v1.Msg/SetMarketplaceFees", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).SetMarketplaceFees(ctx, req.(*MsgSetMarketplaceFees)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "regen.ecocredit.marketplace.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -1265,6 +1418,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "RemoveAllowedDenom", Handler: _Msg_RemoveAllowedDenom_Handler, }, + { + MethodName: "SetMarketplaceFees", + Handler: _Msg_SetMarketplaceFees_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "regen/ecocredit/marketplace/v1/tx.proto", @@ -1680,6 +1837,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 +2050,71 @@ func (m *MsgRemoveAllowedDenomResponse) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } +func (m *MsgSetMarketplaceFees) 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 *MsgSetMarketplaceFees) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgSetMarketplaceFees) 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 *MsgSetMarketplaceFeesResponse) 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 *MsgSetMarketplaceFeesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgSetMarketplaceFeesResponse) 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 +2316,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 +2391,32 @@ func (m *MsgRemoveAllowedDenomResponse) Size() (n int) { return n } +func (m *MsgSetMarketplaceFees) 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 *MsgSetMarketplaceFeesResponse) 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 +3697,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 +4179,174 @@ func (m *MsgRemoveAllowedDenomResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgSetMarketplaceFees) 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: MsgSetMarketplaceFees: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSetMarketplaceFees: 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 *MsgSetMarketplaceFeesResponse) 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: MsgSetMarketplaceFeesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSetMarketplaceFeesResponse: 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 From 64592639610d69916f231604084b62b2e0830562 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 31 Jan 2024 13:30:54 -0500 Subject: [PATCH 05/27] feat(x/ecocredit/marketplace): implement buyer and seller fees --- x/ecocredit/marketplace/keeper/keeper.go | 20 +++-- x/ecocredit/marketplace/keeper/keeper_test.go | 2 +- .../marketplace/keeper/msg_buy_direct.go | 23 +++-- .../keeper/msg_set_marketplace_fees.go | 36 ++++++++ x/ecocredit/marketplace/keeper/utils.go | 89 ++++++++++++++++--- x/ecocredit/server/server.go | 2 +- 6 files changed, 146 insertions(+), 26 deletions(-) create mode 100644 x/ecocredit/marketplace/keeper/msg_set_marketplace_fees.go diff --git a/x/ecocredit/marketplace/keeper/keeper.go b/x/ecocredit/marketplace/keeper/keeper.go index 107e49d6eb..f4a323c988 100644 --- a/x/ecocredit/marketplace/keeper/keeper.go +++ b/x/ecocredit/marketplace/keeper/keeper.go @@ -15,18 +15,20 @@ var ( ) type Keeper struct { - stateStore marketapi.StateStore - baseStore baseapi.StateStore - bankKeeper ecocredit.BankKeeper - authority sdk.AccAddress + stateStore marketapi.StateStore + baseStore baseapi.StateStore + bankKeeper ecocredit.BankKeeper + authority sdk.AccAddress + feePoolName string } func NewKeeper(ss marketapi.StateStore, cs baseapi.StateStore, bk ecocredit.BankKeeper, - authority sdk.AccAddress) Keeper { + authority sdk.AccAddress, feePoolName string) Keeper { return Keeper{ - baseStore: cs, - stateStore: ss, - bankKeeper: bk, - authority: authority, + baseStore: cs, + stateStore: ss, + bankKeeper: bk, + authority: authority, + feePoolName: feePoolName, } } diff --git a/x/ecocredit/marketplace/keeper/keeper_test.go b/x/ecocredit/marketplace/keeper/keeper_test.go index 30658821f9..5c3e4b871b 100644 --- a/x/ecocredit/marketplace/keeper/keeper_test.go +++ b/x/ecocredit/marketplace/keeper/keeper_test.go @@ -76,7 +76,7 @@ func setupBase(t gocuke.TestingT, numAddresses int) *baseSuite { authority, err := sdk.AccAddressFromBech32("regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68") assert.NilError(s.t, err) - s.k = NewKeeper(s.marketStore, s.baseStore, s.bankKeeper, authority) + s.k = NewKeeper(s.marketStore, s.baseStore, s.bankKeeper, authority, "ecocredit-marketplace") // set test accounts for i := 0; i < numAddresses; i++ { diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct.go b/x/ecocredit/marketplace/keeper/msg_buy_direct.go index cd46e6bc72..ebd35427e1 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct.go @@ -92,13 +92,22 @@ func (k Keeper) BuyDirect(ctx context.Context, req *types.MsgBuyDirect) (*types. ) } - // check address has the total cost (price per * order quantity) - buyerBalance := k.bankKeeper.GetBalance(sdkCtx, buyerAcc, order.BidPrice.Denom) - cost, err := getTotalCost(sellOrderAskAmount, buyQuantity) + // calc sub-total (price per * order quantity) + subtotal, err := getSubTotalCost(sellOrderAskAmount, buyQuantity) if err != nil { return nil, err } - totalCost := sdk.Coin{Amount: cost, Denom: market.BankDenom} + + // add buyer fees + feeParams, err := k.stateStore.FeeParamsTable().Get(ctx) + if err != nil { + return nil, err + } + total, buyerFee, err := getTotalCostAndBuyerFee(subtotal, feeParams) + totalCost := sdk.Coin{Amount: total.SdkIntTrim(), Denom: market.BankDenom} + + // check address has the total cost + buyerBalance := k.bankKeeper.GetBalance(sdkCtx, buyerAcc, order.BidPrice.Denom) if buyerBalance.IsLT(totalCost) { return nil, sdkerrors.ErrInsufficientFunds.Wrapf( "%s: quantity: %s, ask price: %s%s, total price: %v, bank balance: %v", @@ -113,11 +122,15 @@ func (k Keeper) BuyDirect(ctx context.Context, req *types.MsgBuyDirect) (*types. sellOrder: sellOrder, buyerAcc: buyerAcc, buyQuantity: buyQuantity, - totalCost: totalCost, + totalCost: total, + subTotalCost: subtotal, + buyerFee: buyerFee, autoRetire: !order.DisableAutoRetire, batchDenom: batch.Denom, + bankDenom: market.BankDenom, jurisdiction: order.RetirementJurisdiction, reason: order.RetirementReason, + feeParams: feeParams, }); err != nil { return nil, err } diff --git a/x/ecocredit/marketplace/keeper/msg_set_marketplace_fees.go b/x/ecocredit/marketplace/keeper/msg_set_marketplace_fees.go new file mode 100644 index 0000000000..042f373a3a --- /dev/null +++ b/x/ecocredit/marketplace/keeper/msg_set_marketplace_fees.go @@ -0,0 +1,36 @@ +package keeper + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + marketplacev1 "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/marketplace/v1" + types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" +) + +func (k Keeper) SetMarketplaceFees(ctx context.Context, msg *types.MsgSetMarketplaceFees) (*types.MsgSetMarketplaceFeesResponse, error) { + authority, err := sdk.AccAddressFromBech32(msg.Authority) + if err != nil { + return nil, err + } + + if !authority.Equals(k.authority) { + return nil, sdkerrors.ErrUnauthorized + } + + // convert from gogo to protoreflect + var feeParams marketplacev1.FeeParams + err = gogoToProtoReflect(msg.Fees, &feeParams) + if err != nil { + return nil, err + } + + err = k.stateStore.FeeParamsTable().Save(ctx, &feeParams) + if err != nil { + return nil, err + } + + return &types.MsgSetMarketplaceFeesResponse{}, nil +} diff --git a/x/ecocredit/marketplace/keeper/utils.go b/x/ecocredit/marketplace/keeper/utils.go index dafc0733ea..d9e33d9de4 100644 --- a/x/ecocredit/marketplace/keeper/utils.go +++ b/x/ecocredit/marketplace/keeper/utils.go @@ -4,6 +4,8 @@ import ( "context" sdkmath "cosmossdk.io/math" + gogoproto "github.com/gogo/protobuf/proto" + protov2 "google.golang.org/protobuf/proto" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -24,11 +26,15 @@ type fillOrderParams struct { sellOrder *api.SellOrder buyerAcc sdk.AccAddress buyQuantity math.Dec - totalCost sdk.Coin + buyerFee math.Dec + subTotalCost math.Dec + totalCost math.Dec autoRetire bool batchDenom string + bankDenom string jurisdiction string reason string + feeParams *api.FeeParams } // fillOrder updates seller balance, buyer balance, batch supply, and transfers calculated total cost @@ -192,25 +198,88 @@ func (k Keeper) fillOrder(ctx context.Context, params fillOrderParams) error { } } - // update buyer balance with new tradable or retired amount + // update buyer credit balance with new tradable or retired amount if err = k.baseStore.BatchBalanceTable().Save(ctx, buyerBal); err != nil { return err } - // send total cost from buyer account to seller account - return k.bankKeeper.SendCoins(sdkCtx, params.buyerAcc, params.sellOrder.Seller, sdk.NewCoins(params.totalCost)) + // calculate seller fee = subtotal * seller percentage fee + sellerPercentageFee, err := math.NewPositiveDecFromString(params.feeParams.SellerPercentageFee) + if err != nil { + return err + } + sellerFee, err := params.subTotalCost.Mul(sellerPercentageFee) + + // calculate total fee = buyer fee + seller fee + totalFee, err := params.buyerFee.Add(sellerFee) + feeCoins := sdk.NewCoins(sdk.NewCoin(params.bankDenom, totalFee.SdkIntTrim())) + + // transfer total fee from buyer account to fee pool + err = k.bankKeeper.SendCoinsFromAccountToModule( + sdkCtx, + params.buyerAcc, + k.feePoolName, + feeCoins) + if err != nil { + return err + } + + // if bank denom == uregen, then burn the total fee from the fee pool + if params.bankDenom == "uregen" { + err = k.bankKeeper.BurnCoins(sdkCtx, k.feePoolName, feeCoins) + if err != nil { + return err + } + } + + // calculate seller payment = subtotal - seller fee + sellerPayment, err := params.subTotalCost.Sub(sellerFee) + if err != nil { + return err + } + + // send seller payment from buyer account to seller account + return k.bankKeeper.SendCoins(sdkCtx, params.buyerAcc, params.sellOrder.Seller, sdk.NewCoins(sdk.NewCoin( + params.bankDenom, + sellerPayment.SdkIntTrim(), + ))) } -// getTotalCost calculates the total cost of the buy order by multiplying the price per credit specified +// getSubTotalCost calculates the total cost of the buy order by multiplying the price per credit specified // in the sell order (i.e. the ask amount) and the quantity of credits specified in the buy order. -func getTotalCost(askAmount sdkmath.Int, buyQuantity math.Dec) (sdkmath.Int, error) { +func getSubTotalCost(askAmount sdkmath.Int, buyQuantity math.Dec) (math.Dec, error) { unitPrice, err := math.NewPositiveFixedDecFromString(askAmount.String(), buyQuantity.NumDecimalPlaces()) if err != nil { - return sdkmath.Int{}, err + return math.Dec{}, err + } + subtotal, err := buyQuantity.Mul(unitPrice) + if err != nil { + return math.Dec{}, err + } + return subtotal, nil +} + +// getTotalCostAndBuyerFee calculates the total cost of the buy order by multiplying the subtotal by the buyer percentage fee. +func getTotalCostAndBuyerFee(subtotal math.Dec, feeParams *api.FeeParams) (total math.Dec, buyerFee math.Dec, err error) { + buyerPercentageFee, err := math.NewPositiveDecFromString(feeParams.BuyerPercentageFee) + if err != nil { + return math.Dec{}, math.Dec{}, err } - totalCost, err := buyQuantity.Mul(unitPrice) + + buyerFee, err = subtotal.Mul(buyerPercentageFee) + if err != nil { + return + } + + total, err = subtotal.Add(buyerFee) + return +} + +func gogoToProtoReflect(from gogoproto.Message, to protov2.Message) error { + bz, err := gogoproto.Marshal(from) if err != nil { - return sdkmath.Int{}, err + return err } - return totalCost.SdkIntTrim(), nil + + return protov2.Unmarshal(bz, to) } diff --git a/x/ecocredit/server/server.go b/x/ecocredit/server/server.go index 958cd0c01d..06728718de 100644 --- a/x/ecocredit/server/server.go +++ b/x/ecocredit/server/server.go @@ -67,7 +67,7 @@ func NewServer(storeKey storetypes.StoreKey, s.marketplaceStore = marketStore s.BaseKeeper = basekeeper.NewKeeper(baseStore, bankKeeper, baseAddr, basketStore, marketStore, authority) s.BasketKeeper = basketkeeper.NewKeeper(basketStore, baseStore, bankKeeper, basketAddr, authority) - s.MarketplaceKeeper = marketkeeper.NewKeeper(marketStore, baseStore, bankKeeper, authority) + s.MarketplaceKeeper = marketkeeper.NewKeeper(marketStore, baseStore, bankKeeper, authority, ecocredit.ModuleName) return s } From d22fe85c71662c0195c15e720e7eee2f37aa8102 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 31 Jan 2024 13:49:28 -0500 Subject: [PATCH 06/27] validate basic --- .../types/v1/msg_set_marketplace_fees.go | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go diff --git a/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go b/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go new file mode 100644 index 0000000000..377418dce9 --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go @@ -0,0 +1,42 @@ +package v1 + +import ( + "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" + + "github.com/regen-network/regen-ledger/types/v2/math" +) + +var _ legacytx.LegacyMsg = &MsgSetMarketplaceFees{} + +// ValidateBasic does a sanity check on the provided data. +func (m *MsgSetMarketplaceFees) ValidateBasic() error { + _, err := math.NewPositiveDecFromString(m.Fees.BuyerPercentageFee) + if err != nil { + return err + } + + _, err = math.NewPositiveDecFromString(m.Fees.SellerPercentageFee) + if err != nil { + return err + } + + _, err = types.AccAddressFromBech32(m.Authority) + return err +} + +// GetSigners implements the LegacyMsg interface. +func (m *MsgSetMarketplaceFees) GetSigners() []types.AccAddress { + return []types.AccAddress{types.MustAccAddressFromBech32(m.Authority)} +} + +// Route implements the LegacyMsg interface. +func (m *MsgSetMarketplaceFees) Route() string { return types.MsgTypeURL(m) } + +// Type implements the LegacyMsg interface. +func (m *MsgSetMarketplaceFees) Type() string { return types.MsgTypeURL(m) } + +// GetSignBytes implements the LegacyMsg interface. +func (m *MsgSetMarketplaceFees) GetSignBytes() []byte { + return types.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) +} From f82c581c3968e39f455399ed37a0ede8c21a47ec Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 31 Jan 2024 15:03:59 -0500 Subject: [PATCH 07/27] add go-mod-tidy-all --- go.sum | 22 ++++++++++++---------- scripts/go-mod-tidy-all.sh | 9 +++++++++ 2 files changed, 21 insertions(+), 10 deletions(-) create mode 100755 scripts/go-mod-tidy-all.sh diff --git a/go.sum b/go.sum index 2cb4ac3d5d..27a00f69d1 100644 --- a/go.sum +++ b/go.sum @@ -275,6 +275,8 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1U github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bmatcuk/doublestar/v4 v4.6.1 h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I= +github.com/bmatcuk/doublestar/v4 v4.6.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/btcsuite/btcd v0.0.0-20190315201642-aa6e0f35703c/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= @@ -343,8 +345,8 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= -github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= -github.com/cockroachdb/apd/v3 v3.1.0/go.mod h1:6qgPBMXjATAdD/VefbRP9NoSLKjbB4LCoA7gN4LpHs4= +github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= +github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/kryptology v1.8.0/go.mod h1:RYXOAPdzOGUe3qlSFkMGn58i3xUA8hmxYHksuq+8ciI= @@ -403,12 +405,12 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cucumber/common/messages/go/v19 v19.1.2 h1:8/ZkW9rj3KQo/regmI8kcy48tk57m427Olb7Y0lXcN4= github.com/cucumber/common/messages/go/v19 v19.1.2/go.mod h1:0KLDvMVmmkEZcWUSKxFHSUSLS1gjujBbPN0p41IwwJ4= -github.com/cucumber/gherkin/go/v26 v26.0.3 h1:ExcdadOazxzN11RYQZfaWcODMp7ZbRYLwqMbqWF8QEw= -github.com/cucumber/gherkin/go/v26 v26.0.3/go.mod h1:Xf+SrSuFbivEDZvmHjTShord3zlEkqsj7QB4sxl1SuU= +github.com/cucumber/gherkin/go/v26 v26.2.0 h1:EgIjePLWiPeslwIWmNQ3XHcypPsWAHoMCz/YEBKP4GI= +github.com/cucumber/gherkin/go/v26 v26.2.0/go.mod h1:t2GAPnB8maCT4lkHL99BDCVNzCh1d7dBhCLt150Nr/0= github.com/cucumber/messages/go/v21 v21.0.1 h1:wzA0LxwjlWQYZd32VTlAVDTkW6inOFmSM+RuOwHZiMI= github.com/cucumber/messages/go/v21 v21.0.1/go.mod h1:zheH/2HS9JLVFukdrsPWoPdmUtmYQAQPLk7w5vWsk5s= -github.com/cucumber/tag-expressions/go/v5 v5.0.1 h1:ECMVXw8XECJqSWY6UrpMubsG3LZcQmI4ekCVmhia/E8= -github.com/cucumber/tag-expressions/go/v5 v5.0.1/go.mod h1:O6ISvjl7N4d1lSBGV4XjS9+9RI3ZwiY/i6vDhomjYQQ= +github.com/cucumber/tag-expressions/go/v5 v5.0.6 h1:F0mqsu69cG/3MTTZqy+PlaPcU/MMl936OJjxKgdFgWs= +github.com/cucumber/tag-expressions/go/v5 v5.0.6/go.mod h1:/sHRc0Vt+pPjgQdNZjH8W2cnmb+tiVYp19VESzpGQsw= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= @@ -544,8 +546,8 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= -github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= @@ -1032,8 +1034,8 @@ github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzy github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= github.com/regen-network/cosmos-sdk v0.46.13-regen-1 h1:sCwCgBtvrg7P2SbjK29a+sxUQW6Bh+/AMqlT0ezxHpc= github.com/regen-network/cosmos-sdk v0.46.13-regen-1/go.mod h1:EfY521ATNEla8eJ6oJuZBdgP5+p360s7InnRqX+TWdM= -github.com/regen-network/gocuke v0.6.3 h1:RUOZJSZ4OHAKNjTCtjm090RI7/UjWCMb5kgK5QnbvfA= -github.com/regen-network/gocuke v0.6.3/go.mod h1:BowLKW4++696gTTU33teodtIhjjyaphEbhQT9D5Refw= +github.com/regen-network/gocuke v1.1.0 h1:gxlkRTfpR9gJ0mwqQZIpoXHZGx+KPshKQpKE0jtUH5s= +github.com/regen-network/gocuke v1.1.0/go.mod h1:nVBO9DEnZNUB/GjmJgAIojKxcEu9a0EZwry0qKW24Mk= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= diff --git a/scripts/go-mod-tidy-all.sh b/scripts/go-mod-tidy-all.sh new file mode 100755 index 0000000000..c129f734d4 --- /dev/null +++ b/scripts/go-mod-tidy-all.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -euo pipefail + +for modfile in $(find . -name go.mod); do + echo "Updating $modfile" + DIR=$(dirname $modfile) + (cd $DIR; go mod tidy) +done From 08356315acf7f0617ff4a958e89235b6bbf252d7 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 31 Jan 2024 15:15:20 -0500 Subject: [PATCH 08/27] WIP --- .../features/msg_set_marketplace_fees.feature | 41 +++++++++++++++++++ .../v1/features/state_fee_params.feature | 0 .../types/v1/msg_set_marketplace_fees.go | 9 +--- .../marketplace/types/v1/state_fee_params.go | 18 ++++++++ 4 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 x/ecocredit/marketplace/types/v1/features/msg_set_marketplace_fees.feature create mode 100644 x/ecocredit/marketplace/types/v1/features/state_fee_params.feature create mode 100644 x/ecocredit/marketplace/types/v1/state_fee_params.go diff --git a/x/ecocredit/marketplace/types/v1/features/msg_set_marketplace_fees.feature b/x/ecocredit/marketplace/types/v1/features/msg_set_marketplace_fees.feature new file mode 100644 index 0000000000..5b727956f3 --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/features/msg_set_marketplace_fees.feature @@ -0,0 +1,41 @@ +Feature: MsgSetMarketplaceFees + + Scenario: a valid message + Given the message + """ + { + "authority": "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw", + "buyer_percentage_fee": "0.01", + "seller_percentage_fee": "0.01", + } + """ + When the message is validated + Then expect no error + + Scenario: an error is returned if authority is empty + Given the message + """ + {} + """ + When the message is validated + Then expect the error "invalid authority address: empty address string is not allowed" + + Scenario: an error is returned if authority is not a valid bech32 address + Given the message + """ + { + "authority": "foo" + } + """ + When the message is validated + Then expect the error "invalid authority address: decoding bech32 failed: invalid bech32 string length 3" + + Scenario: an error is returned if fee params is empty + Given the message + """ + { + "authority": "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw" + } + """ + When the message is validated + Then expect the error "buyer_percentage_fee: non-empty value required" \ No newline at end of file diff --git a/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature b/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature new file mode 100644 index 0000000000..e69de29bb2 diff --git a/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go b/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go index 377418dce9..b1cdffa7b0 100644 --- a/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go +++ b/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go @@ -3,20 +3,13 @@ package v1 import ( "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" - - "github.com/regen-network/regen-ledger/types/v2/math" ) var _ legacytx.LegacyMsg = &MsgSetMarketplaceFees{} // ValidateBasic does a sanity check on the provided data. func (m *MsgSetMarketplaceFees) ValidateBasic() error { - _, err := math.NewPositiveDecFromString(m.Fees.BuyerPercentageFee) - if err != nil { - return err - } - - _, err = math.NewPositiveDecFromString(m.Fees.SellerPercentageFee) + err := m.Fees.Validate() if err != nil { return err } diff --git a/x/ecocredit/marketplace/types/v1/state_fee_params.go b/x/ecocredit/marketplace/types/v1/state_fee_params.go new file mode 100644 index 0000000000..ba8a30ca5b --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/state_fee_params.go @@ -0,0 +1,18 @@ +package v1 + +import "github.com/regen-network/regen-ledger/types/v2/math" + +// Validate performs basic validation of the FeeParams state type. +func (m *FeeParams) Validate() error { + _, err := math.NewPositiveDecFromString(m.BuyerPercentageFee) + if err != nil { + return err + } + + _, err = math.NewPositiveDecFromString(m.SellerPercentageFee) + if err != nil { + return err + } + + return nil +} From c5b3f41373be1fd2f1d6e87b7d1ed596e511cd3a Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 31 Jan 2024 15:39:46 -0500 Subject: [PATCH 09/27] make existing tests pass --- .../ecocredit/marketplace/v1/state.pulsar.go | 2 +- .../ecocredit/marketplace/v1/state.proto | 2 +- .../keeper/features/msg_buy_direct.feature | 8 ++ x/ecocredit/marketplace/keeper/utils.go | 59 ++++++++----- x/ecocredit/marketplace/types/v1/state.pb.go | 84 +++++++++---------- 5 files changed, 89 insertions(+), 66 deletions(-) diff --git a/api/regen/ecocredit/marketplace/v1/state.pulsar.go b/api/regen/ecocredit/marketplace/v1/state.pulsar.go index b79f2b019a..f3bbf14d17 100644 --- a/api/regen/ecocredit/marketplace/v1/state.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/state.pulsar.go @@ -2896,7 +2896,7 @@ var file_regen_ecocredit_marketplace_v1_state_proto_rawDesc = []byte{ 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, 0x04, 0x42, 0xa3, 0x02, 0x0a, 0x22, 0x63, 0x6f, + 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, diff --git a/proto/regen/ecocredit/marketplace/v1/state.proto b/proto/regen/ecocredit/marketplace/v1/state.proto index 70cb638fc2..b40bbca331 100644 --- a/proto/regen/ecocredit/marketplace/v1/state.proto +++ b/proto/regen/ecocredit/marketplace/v1/state.proto @@ -135,7 +135,7 @@ message Market { // process unless governance agrees to a different approach. message FeeParams { option (cosmos.orm.v1.singleton) = { - id : 4 + id : 5 }; // buyer_percentage_fee is the decimal percentage fee charged to the buyer. diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index b6ad089613..d8492030ef 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -382,3 +382,11 @@ Feature: Msg/BuyDirect "sell_order_id": 1 } """ + + Rule: Buyer fees are added to order cost + + Rule: Seller fees are deducted from order cost + + Rule: uregen is burned + + Rule: non-uregen denoms are kept \ No newline at end of file diff --git a/x/ecocredit/marketplace/keeper/utils.go b/x/ecocredit/marketplace/keeper/utils.go index d9e33d9de4..f4a9b39b2e 100644 --- a/x/ecocredit/marketplace/keeper/utils.go +++ b/x/ecocredit/marketplace/keeper/utils.go @@ -204,32 +204,31 @@ func (k Keeper) fillOrder(ctx context.Context, params fillOrderParams) error { } // calculate seller fee = subtotal * seller percentage fee - sellerPercentageFee, err := math.NewPositiveDecFromString(params.feeParams.SellerPercentageFee) - if err != nil { - return err - } - sellerFee, err := params.subTotalCost.Mul(sellerPercentageFee) + sellerFee, err := getSellerFee(params.subTotalCost, params.feeParams) // calculate total fee = buyer fee + seller fee totalFee, err := params.buyerFee.Add(sellerFee) - feeCoins := sdk.NewCoins(sdk.NewCoin(params.bankDenom, totalFee.SdkIntTrim())) - - // transfer total fee from buyer account to fee pool - err = k.bankKeeper.SendCoinsFromAccountToModule( - sdkCtx, - params.buyerAcc, - k.feePoolName, - feeCoins) - if err != nil { - return err - } - // if bank denom == uregen, then burn the total fee from the fee pool - if params.bankDenom == "uregen" { - err = k.bankKeeper.BurnCoins(sdkCtx, k.feePoolName, feeCoins) + // if total fee > 0, then transfer total fee from buyer account to fee pool + if totalFee.IsPositive() { + feeCoins := sdk.NewCoins(sdk.NewCoin(params.bankDenom, totalFee.SdkIntTrim())) + + err = k.bankKeeper.SendCoinsFromAccountToModule( + sdkCtx, + params.buyerAcc, + k.feePoolName, + feeCoins) if err != nil { return err } + + // if bank denom == uregen, then burn the total fee from the fee pool + if params.bankDenom == "uregen" { + err = k.bankKeeper.BurnCoins(sdkCtx, k.feePoolName, feeCoins) + if err != nil { + return err + } + } } // calculate seller payment = subtotal - seller fee @@ -261,9 +260,12 @@ func getSubTotalCost(askAmount sdkmath.Int, buyQuantity math.Dec) (math.Dec, err // getTotalCostAndBuyerFee calculates the total cost of the buy order by multiplying the subtotal by the buyer percentage fee. func getTotalCostAndBuyerFee(subtotal math.Dec, feeParams *api.FeeParams) (total math.Dec, buyerFee math.Dec, err error) { - buyerPercentageFee, err := math.NewPositiveDecFromString(feeParams.BuyerPercentageFee) - if err != nil { - return math.Dec{}, math.Dec{}, err + buyerPercentageFee := math.NewDecFromInt64(0) + if feeParams != nil && feeParams.BuyerPercentageFee != "" { + buyerPercentageFee, err = math.NewPositiveDecFromString(feeParams.BuyerPercentageFee) + if err != nil { + return + } } buyerFee, err = subtotal.Mul(buyerPercentageFee) @@ -275,6 +277,19 @@ func getTotalCostAndBuyerFee(subtotal math.Dec, feeParams *api.FeeParams) (total return } +func getSellerFee(subtotal math.Dec, feeParams *api.FeeParams) (math.Dec, error) { + sellerPercentageFee := math.NewDecFromInt64(0) + if feeParams != nil && feeParams.SellerPercentageFee != "" { + var err error + sellerPercentageFee, err = math.NewPositiveDecFromString(feeParams.SellerPercentageFee) + if err != nil { + return math.Dec{}, err + } + } + + return subtotal.Mul(sellerPercentageFee) +} + func gogoToProtoReflect(from gogoproto.Message, to protov2.Message) error { bz, err := gogoproto.Marshal(from) if err != nil { diff --git a/x/ecocredit/marketplace/types/v1/state.pb.go b/x/ecocredit/marketplace/types/v1/state.pb.go index 4688b77457..2033aeddbf 100644 --- a/x/ecocredit/marketplace/types/v1/state.pb.go +++ b/x/ecocredit/marketplace/types/v1/state.pb.go @@ -400,48 +400,48 @@ func init() { } var fileDescriptor_718b9cb8f10a9f3c = []byte{ - // 654 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x54, 0x4d, 0x6f, 0xd3, 0x4a, - 0x14, 0xed, 0x24, 0x69, 0x5e, 0x3c, 0x2f, 0xa9, 0xd2, 0x69, 0xdf, 0x7b, 0x56, 0x9e, 0x1a, 0xa2, - 0x54, 0x48, 0x11, 0xb4, 0x36, 0x2d, 0xea, 0x26, 0xac, 0x82, 0x50, 0x25, 0x84, 0x2a, 0x2a, 0xd3, - 0x15, 0x1b, 0x33, 0xb6, 0x6f, 0xd3, 0x91, 0x3f, 0xc6, 0x8c, 0xc7, 0x69, 0x2d, 0xfe, 0x03, 0x62, - 0x8f, 0xc4, 0xef, 0x41, 0x62, 0x53, 0x89, 0x0d, 0x4b, 0xd4, 0x2e, 0xd8, 0xb3, 0x64, 0x85, 0x3c, - 0xe3, 0x86, 0x90, 0x8a, 0xe5, 0xbd, 0xe7, 0x9c, 0x99, 0x7b, 0xce, 0x5c, 0x1b, 0xdf, 0x13, 0x30, - 0x85, 0xc4, 0x06, 0x9f, 0xfb, 0x02, 0x02, 0x26, 0xed, 0x98, 0x8a, 0x10, 0x64, 0x1a, 0x51, 0x1f, - 0xec, 0xd9, 0x9e, 0x9d, 0x49, 0x2a, 0xc1, 0x4a, 0x05, 0x97, 0x9c, 0xf4, 0x15, 0xd7, 0x9a, 0x73, - 0xad, 0x05, 0xae, 0x35, 0xdb, 0xeb, 0xfd, 0xe7, 0xf3, 0x2c, 0xe6, 0x99, 0xcd, 0x45, 0x5c, 0x4a, - 0xb9, 0x88, 0xb5, 0xb0, 0x77, 0x67, 0xca, 0xf9, 0x34, 0x02, 0x5b, 0x55, 0x5e, 0x7e, 0x6a, 0x4b, - 0x16, 0x43, 0x26, 0x69, 0x9c, 0x6a, 0xc2, 0xf0, 0x5b, 0x0d, 0x1b, 0x2f, 0x20, 0x8a, 0x9e, 0x8b, - 0x00, 0x04, 0x59, 0xc3, 0x35, 0x16, 0x98, 0x68, 0x80, 0x46, 0x0d, 0xa7, 0xc6, 0x02, 0xf2, 0x2f, - 0x6e, 0x66, 0x10, 0x45, 0x20, 0xcc, 0xda, 0x00, 0x8d, 0xda, 0x4e, 0x55, 0x91, 0xff, 0xb1, 0xe1, - 0x51, 0xe9, 0x9f, 0xb9, 0x21, 0x14, 0x66, 0x5d, 0xd1, 0x5b, 0xaa, 0xf1, 0x0c, 0x0a, 0xd2, 0xc3, - 0xad, 0xd7, 0x39, 0x4d, 0x24, 0x93, 0x85, 0xd9, 0x18, 0xa0, 0x91, 0xe1, 0xcc, 0xeb, 0x52, 0xa8, - 0x47, 0x77, 0x59, 0x60, 0xae, 0x6a, 0xa1, 0x6e, 0x3c, 0x0d, 0xc8, 0x16, 0xc6, 0x34, 0x0b, 0x5d, - 0x1a, 0xf3, 0x3c, 0x91, 0x66, 0x53, 0x49, 0x0d, 0x9a, 0x85, 0x13, 0xd5, 0x20, 0x16, 0xde, 0x08, - 0x58, 0x46, 0xbd, 0x08, 0x5c, 0x9a, 0x4b, 0xee, 0x0a, 0x90, 0x4c, 0x80, 0xf9, 0xd7, 0x00, 0x8d, - 0x5a, 0xce, 0x7a, 0x05, 0x4d, 0x72, 0xc9, 0x1d, 0x05, 0x90, 0x31, 0xc6, 0x70, 0x91, 0x32, 0x41, - 0x25, 0xe3, 0x89, 0x69, 0x0c, 0xd0, 0xe8, 0xef, 0xfd, 0x9e, 0xa5, 0x03, 0xb1, 0x6e, 0x02, 0xb1, - 0x4e, 0x6e, 0x02, 0x71, 0x16, 0xd8, 0x64, 0x13, 0xaf, 0xc6, 0x34, 0x04, 0x61, 0x62, 0x75, 0xba, - 0x2e, 0xc6, 0x8f, 0xbe, 0x7f, 0xf8, 0xfc, 0xb6, 0x7e, 0x80, 0x9b, 0x65, 0x4c, 0x5d, 0x44, 0x3a, - 0x0b, 0x31, 0x74, 0x11, 0xc1, 0x37, 0x69, 0x75, 0x6b, 0x64, 0x6d, 0xf1, 0xf2, 0x6e, 0xdd, 0x44, - 0xc3, 0xf7, 0x08, 0xb7, 0x27, 0x51, 0xc4, 0xcf, 0x21, 0x78, 0x02, 0x09, 0x8f, 0x4b, 0xbb, 0x1e, - 0x4d, 0x42, 0x37, 0x28, 0x2b, 0x15, 0xba, 0xe1, 0x18, 0x65, 0x47, 0xc3, 0xdb, 0xb8, 0x13, 0xb0, - 0x2c, 0x8d, 0x68, 0x51, 0x31, 0x6a, 0x8a, 0xd1, 0xae, 0x9a, 0x9a, 0xd4, 0xc3, 0x2d, 0xb8, 0x48, - 0x79, 0x02, 0x89, 0x54, 0xef, 0xd0, 0x71, 0xe6, 0xf5, 0xf8, 0xbe, 0x9a, 0xf6, 0x2e, 0x6e, 0x2f, - 0xde, 0x43, 0x36, 0x96, 0x8e, 0xed, 0x22, 0x13, 0x99, 0xf5, 0xe1, 0x27, 0x84, 0x9b, 0x47, 0xea, - 0x21, 0x6e, 0x2d, 0xc1, 0x0e, 0x26, 0x7a, 0xeb, 0x5c, 0x59, 0xa4, 0xe0, 0x52, 0xcf, 0x13, 0x30, - 0xab, 0xa6, 0xe9, 0x6a, 0xe4, 0xa4, 0x48, 0x61, 0xa2, 0xfa, 0x4b, 0xae, 0xea, 0xcb, 0xae, 0x76, - 0x31, 0x49, 0x05, 0xf8, 0x2c, 0x63, 0x3c, 0x71, 0x63, 0x1e, 0xb0, 0x53, 0x06, 0x42, 0xad, 0x49, - 0xc7, 0x59, 0x9f, 0x23, 0x47, 0x15, 0x30, 0x3e, 0x50, 0x1e, 0xec, 0x79, 0xe2, 0xdb, 0x78, 0xeb, - 0xf6, 0x2c, 0x3b, 0xbf, 0x2e, 0x54, 0x6e, 0x1a, 0xc3, 0x37, 0xd8, 0x38, 0x04, 0x38, 0xa6, 0x82, - 0xc6, 0x19, 0x79, 0x80, 0x37, 0xbd, 0xbc, 0x00, 0xe1, 0xa6, 0x20, 0x7c, 0x48, 0x24, 0x9d, 0x82, - 0x7b, 0x0a, 0x50, 0x25, 0x4e, 0x14, 0x76, 0x3c, 0x87, 0x0e, 0x01, 0xc8, 0x3e, 0xfe, 0x47, 0x3f, - 0xe4, 0xb2, 0x44, 0x9b, 0xde, 0xd0, 0xe0, 0x6f, 0x9a, 0x71, 0xeb, 0x47, 0x39, 0x69, 0xad, 0xd5, - 0x78, 0xfc, 0xea, 0xe3, 0x55, 0x1f, 0x5d, 0x5e, 0xf5, 0xd1, 0xd7, 0xab, 0x3e, 0x7a, 0x77, 0xdd, - 0x5f, 0xb9, 0xbc, 0xee, 0xaf, 0x7c, 0xb9, 0xee, 0xaf, 0xbc, 0x3c, 0x9c, 0x32, 0x79, 0x96, 0x7b, - 0x96, 0xcf, 0x63, 0x5b, 0x7d, 0xd1, 0xbb, 0x09, 0xc8, 0x73, 0x2e, 0xc2, 0xaa, 0x8a, 0x20, 0x98, - 0x82, 0xb0, 0x2f, 0xfe, 0xf0, 0x53, 0x28, 0x2d, 0x67, 0xf6, 0x6c, 0xcf, 0x6b, 0xaa, 0xed, 0x7d, - 0xf8, 0x33, 0x00, 0x00, 0xff, 0xff, 0x46, 0x40, 0xb0, 0x2e, 0x43, 0x04, 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) { From 32d7bf1a3804c08880d737b8fa298ed47e23e36b Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 31 Jan 2024 15:55:09 -0500 Subject: [PATCH 10/27] failing test --- .../keeper/features/msg_buy_direct.feature | 21 +++++++++++-------- .../marketplace/keeper/msg_buy_direct_test.go | 10 ++++++++- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index d8492030ef..1ba7dd07ad 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -125,7 +125,7 @@ Feature: Msg/BuyDirect Background: Given a credit type And alice created a sell order with quantity "10" - And bob has a bank balance with amount "150" + And bob has bank balance "150regen" Scenario Outline: quantity less than or equal to sell order quantity When bob attempts to buy credits with quantity "" @@ -220,7 +220,7 @@ Feature: Msg/BuyDirect Scenario: buyer bank balance updated Given alice created a sell order with quantity "10" and ask price "10regen" - And bob has the bank balance "100regen" + And bob has bank balance "100regen" When bob attempts to buy credits with quantity "10" and bid price "10regen" Then expect bob bank balance "0regen" @@ -383,10 +383,13 @@ Feature: Msg/BuyDirect } """ - Rule: Buyer fees are added to order cost - - Rule: Seller fees are deducted from order cost - - Rule: uregen is burned - - Rule: non-uregen denoms are kept \ No newline at end of file + Rule: Buyer fees are deducted from buyer, seller fees are deducted from seller, and both go to fee pool + Scenario: + Given alice created a sell order with quantity "10" and ask amount "10" + * bob has bank balance "110regen" + * alice has bank balance "0regen" + * buyer fees are 0.1 and seller fees are 0.05 + When bob attempts to buy credits with quantity "10" and bid amount "10" + Then expect alice bank balance "95regen" + * expect bob bank balance "0regen" + * expect no error diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go index be003fad75..59955e9db3 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go @@ -7,6 +7,7 @@ import ( "testing" sdkmath "cosmossdk.io/math" + "github.com/cockroachdb/apd/v3" "github.com/gogo/protobuf/jsonpb" "github.com/regen-network/gocuke" "github.com/stretchr/testify/require" @@ -96,7 +97,7 @@ func (s *buyDirectSuite) AliceHasBankBalance(a string) { s.aliceBankBalance = coin } -func (s *buyDirectSuite) BobHasTheBankBalance(a string) { +func (s *buyDirectSuite) BobHasBankBalance(a string) { coin, err := sdk.ParseCoinNormalized(a) require.NoError(s.t, err) @@ -448,6 +449,13 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsInTwoOrdersEachWithQuantityAndBi }, }) } +func (s *buyDirectSuite) BuyerFeesAreAndSellerFeesAre(buyerFee *apd.Decimal, sellerFee *apd.Decimal) { + err := s.k.stateStore.FeeParamsTable().Save(s.ctx, &api.FeeParams{ + BuyerPercentageFee: buyerFee.String(), + SellerPercentageFee: sellerFee.String(), + }) + require.NoError(s.t, err) +} func (s *buyDirectSuite) ExpectNoError() { require.NoError(s.t, s.err) From 64b093c34bf8c47164692b12c07b9d3202810942 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 31 Jan 2024 17:11:26 -0500 Subject: [PATCH 11/27] tests --- x/ecocredit/go.mod | 11 +- x/ecocredit/go.sum | 22 +-- .../keeper/features/msg_buy_direct.feature | 64 +++++--- .../marketplace/keeper/msg_buy_direct_test.go | 137 ++++++++---------- 4 files changed, 122 insertions(+), 112 deletions(-) diff --git a/x/ecocredit/go.mod b/x/ecocredit/go.mod index 70e1438395..2886c2cf42 100644 --- a/x/ecocredit/go.mod +++ b/x/ecocredit/go.mod @@ -5,6 +5,7 @@ go 1.21 require ( cosmossdk.io/errors v1.0.0 cosmossdk.io/math v1.1.2 + github.com/cockroachdb/apd/v3 v3.2.1 github.com/cosmos/cosmos-sdk v0.46.12 github.com/cosmos/cosmos-sdk/api v0.1.0 github.com/cosmos/cosmos-sdk/orm v1.0.0-alpha.12 @@ -14,7 +15,7 @@ require ( github.com/golang/protobuf v1.5.3 github.com/google/go-cmp v0.6.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/regen-network/gocuke v0.6.3 + github.com/regen-network/gocuke v1.1.0 github.com/regen-network/regen-ledger/api/v2 v2.0.0 github.com/regen-network/regen-ledger/types/v2 v2.0.0 github.com/spf13/cobra v1.7.0 @@ -45,13 +46,13 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.0 // indirect + github.com/bmatcuk/doublestar/v4 v4.6.1 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect - github.com/cockroachdb/apd/v3 v3.1.0 // indirect github.com/coinbase/rosetta-sdk-go v0.7.9 // indirect github.com/cometbft/cometbft-db v0.7.0 // indirect github.com/confio/ics23/go v0.9.0 // indirect @@ -64,9 +65,9 @@ require ( github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect github.com/creachadair/taskgroup v0.3.2 // indirect github.com/cucumber/common/messages/go/v19 v19.1.2 // indirect - github.com/cucumber/gherkin/go/v26 v26.0.3 // indirect + github.com/cucumber/gherkin/go/v26 v26.2.0 // indirect github.com/cucumber/messages/go/v21 v21.0.1 // indirect - github.com/cucumber/tag-expressions/go/v5 v5.0.1 // indirect + github.com/cucumber/tag-expressions/go/v5 v5.0.6 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect @@ -82,7 +83,7 @@ require ( github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/gofrs/uuid v4.3.0+incompatible // indirect + github.com/gofrs/uuid v4.4.0+incompatible // indirect github.com/gogo/gateway v1.1.0 // indirect github.com/golang/glog v1.1.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect diff --git a/x/ecocredit/go.sum b/x/ecocredit/go.sum index 76220bdba4..e88245d9f3 100644 --- a/x/ecocredit/go.sum +++ b/x/ecocredit/go.sum @@ -275,6 +275,8 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1U github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bmatcuk/doublestar/v4 v4.6.1 h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I= +github.com/bmatcuk/doublestar/v4 v4.6.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/btcsuite/btcd v0.0.0-20190315201642-aa6e0f35703c/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= @@ -342,8 +344,8 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= -github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= -github.com/cockroachdb/apd/v3 v3.1.0/go.mod h1:6qgPBMXjATAdD/VefbRP9NoSLKjbB4LCoA7gN4LpHs4= +github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg= +github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/kryptology v1.8.0/go.mod h1:RYXOAPdzOGUe3qlSFkMGn58i3xUA8hmxYHksuq+8ciI= @@ -399,12 +401,12 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cucumber/common/messages/go/v19 v19.1.2 h1:8/ZkW9rj3KQo/regmI8kcy48tk57m427Olb7Y0lXcN4= github.com/cucumber/common/messages/go/v19 v19.1.2/go.mod h1:0KLDvMVmmkEZcWUSKxFHSUSLS1gjujBbPN0p41IwwJ4= -github.com/cucumber/gherkin/go/v26 v26.0.3 h1:ExcdadOazxzN11RYQZfaWcODMp7ZbRYLwqMbqWF8QEw= -github.com/cucumber/gherkin/go/v26 v26.0.3/go.mod h1:Xf+SrSuFbivEDZvmHjTShord3zlEkqsj7QB4sxl1SuU= +github.com/cucumber/gherkin/go/v26 v26.2.0 h1:EgIjePLWiPeslwIWmNQ3XHcypPsWAHoMCz/YEBKP4GI= +github.com/cucumber/gherkin/go/v26 v26.2.0/go.mod h1:t2GAPnB8maCT4lkHL99BDCVNzCh1d7dBhCLt150Nr/0= github.com/cucumber/messages/go/v21 v21.0.1 h1:wzA0LxwjlWQYZd32VTlAVDTkW6inOFmSM+RuOwHZiMI= github.com/cucumber/messages/go/v21 v21.0.1/go.mod h1:zheH/2HS9JLVFukdrsPWoPdmUtmYQAQPLk7w5vWsk5s= -github.com/cucumber/tag-expressions/go/v5 v5.0.1 h1:ECMVXw8XECJqSWY6UrpMubsG3LZcQmI4ekCVmhia/E8= -github.com/cucumber/tag-expressions/go/v5 v5.0.1/go.mod h1:O6ISvjl7N4d1lSBGV4XjS9+9RI3ZwiY/i6vDhomjYQQ= +github.com/cucumber/tag-expressions/go/v5 v5.0.6 h1:F0mqsu69cG/3MTTZqy+PlaPcU/MMl936OJjxKgdFgWs= +github.com/cucumber/tag-expressions/go/v5 v5.0.6/go.mod h1:/sHRc0Vt+pPjgQdNZjH8W2cnmb+tiVYp19VESzpGQsw= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= @@ -541,8 +543,8 @@ github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= -github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= @@ -1030,8 +1032,8 @@ github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzy github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= github.com/regen-network/cosmos-sdk v0.46.13-regen-1 h1:sCwCgBtvrg7P2SbjK29a+sxUQW6Bh+/AMqlT0ezxHpc= github.com/regen-network/cosmos-sdk v0.46.13-regen-1/go.mod h1:EfY521ATNEla8eJ6oJuZBdgP5+p360s7InnRqX+TWdM= -github.com/regen-network/gocuke v0.6.3 h1:RUOZJSZ4OHAKNjTCtjm090RI7/UjWCMb5kgK5QnbvfA= -github.com/regen-network/gocuke v0.6.3/go.mod h1:BowLKW4++696gTTU33teodtIhjjyaphEbhQT9D5Refw= +github.com/regen-network/gocuke v1.1.0 h1:gxlkRTfpR9gJ0mwqQZIpoXHZGx+KPshKQpKE0jtUH5s= +github.com/regen-network/gocuke v1.1.0/go.mod h1:nVBO9DEnZNUB/GjmJgAIojKxcEu9a0EZwry0qKW24Mk= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index 1ba7dd07ad..8cb39f5c3f 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -51,7 +51,7 @@ Feature: Msg/BuyDirect Background: Given a credit type And alice created a sell order with ask denom "regen" - And bob has a bank balance with denom "regen" + And bob has bank balance "100regen" Scenario: bid denom matches sell denom When bob attempts to buy credits with bid denom "regen" @@ -68,35 +68,35 @@ Feature: Msg/BuyDirect Scenario Outline: buyer bank balance is greater than or equal to total cost (single buy order) Given alice created a sell order with quantity "10" and ask amount "10" - And bob has a bank balance with amount "" + And bob has bank balance "" When bob attempts to buy credits with quantity "10" and bid amount "10" Then expect no error Examples: | description | balance-amount | - | greater than | 200 | - | equal to | 100 | + | greater than | 200regen | + | equal to | 100regen | Scenario Outline: buyer bank balance is greater than or equal to total cost (multiple buy orders) Given alice created two sell orders each with quantity "10" and ask amount "10" - And bob has a bank balance with amount "" + And bob has bank balance "" When bob attempts to buy credits in two orders each with quantity "10" and bid amount "10" Then expect no error Examples: | description | balance-amount | - | greater than | 400 | - | equal to | 200 | + | greater than | 400regen | + | equal to | 200regen | Scenario: buyer bank balance is less than total cost (single buy order) Given alice created a sell order with quantity "10" and ask amount "10" - And bob has a bank balance with amount "50" + And bob has bank balance "50regen" When bob attempts to buy credits with quantity "10" and bid amount "10" Then expect the error "orders[0]: quantity: 10, ask price: 10regen, total price: 100regen, bank balance: 50regen: insufficient funds" Scenario: buyer bank balance is less than total cost (multiple buy orders) Given alice created two sell orders each with quantity "10" and ask amount "10" - And bob has a bank balance with amount "150" + And bob has bank balance "150regen" When bob attempts to buy credits in two orders each with quantity "10" and bid amount "10" Then expect the error "orders[1]: quantity: 10, ask price: 10regen, total price: 100regen, bank balance: 50regen: insufficient funds" @@ -105,7 +105,7 @@ Feature: Msg/BuyDirect Background: Given a credit type And alice created a sell order with ask amount "10" - And bob has a bank balance with amount "100" + And bob has bank balance "100regen" Scenario Outline: bid price greater than or equal to ask price When bob attempts to buy credits with quantity "10" and bid amount "" @@ -344,12 +344,15 @@ Feature: Msg/BuyDirect Background: Given a credit type And alice's address "regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68" + And alice has bank balance "100regen" And bob's address "regen1depk54cuajgkzea6zpgkq36tnjwdzv4ak663u6" + And bob has bank balance "100regen" Scenario: EventTransfer is emitted Given alice created a sell order with id "1" When bob attempts to buy credits with quantity "10" - Then expect event transfer with properties + Then expect no error + And expect event transfer with properties """ { "sender": "regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68", @@ -363,7 +366,8 @@ Feature: Msg/BuyDirect Scenario: EventRetire is emitted Given alice created a sell order with id "1" When bob attempts to buy credits with sell order id "1" and retirement reason "offsetting electricity consumption" - Then expect event retire with properties + Then expect no error + And expect event retire with properties """ { "owner": "regen1depk54cuajgkzea6zpgkq36tnjwdzv4ak663u6", @@ -376,20 +380,36 @@ Feature: Msg/BuyDirect Scenario: EventBuyDirect is emitted Given alice created a sell order with id "1" When bob attempts to buy credits with sell order id "1" - Then expect event buy direct with properties + Then expect no error + And expect event buy direct with properties """ { "sell_order_id": 1 } """ - Rule: Buyer fees are deducted from buyer, seller fees are deducted from seller, and both go to fee pool - Scenario: - Given alice created a sell order with quantity "10" and ask amount "10" - * bob has bank balance "110regen" - * alice has bank balance "0regen" + Rule: buyer fees are deducted from buyer, seller fees are deducted from seller, and both go to fee pool + Background: + Given a credit type + + Scenario: fees go to fee pool + Given alice created a sell order with quantity "10" and ask price "10foo" + * bob has bank balance "110foo" + * alice has bank balance "0foo" * buyer fees are 0.1 and seller fees are 0.05 - When bob attempts to buy credits with quantity "10" and bid amount "10" - Then expect alice bank balance "95regen" - * expect bob bank balance "0regen" - * expect no error + When bob attempts to buy credits with quantity "10" and bid price "10foo" + Then expect no error + * expect alice bank balance "95foo" + * expect bob bank balance "0foo" + * expect fee pool balance "15foo" + + Scenario: fees get burned + Given alice created a sell order with quantity "10" and ask price "20uregen" + * bob has bank balance "240uregen" + * alice has bank balance "0regen" + * buyer fees are 0.2 and seller fees are 0.1 + When bob attempts to buy credits with quantity "10" and bid price "20uregen" + Then expect no error + * expect alice bank balance "180uregen" + * expect bob bank balance "0uregen" + * expect fee pool balance "0uregen" diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go index 59955e9db3..4136ee8d49 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go @@ -9,6 +9,7 @@ import ( sdkmath "cosmossdk.io/math" "github.com/cockroachdb/apd/v3" "github.com/gogo/protobuf/jsonpb" + "github.com/golang/mock/gomock" "github.com/regen-network/gocuke" "github.com/stretchr/testify/require" @@ -19,6 +20,7 @@ import ( baseapi "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/v1" "github.com/regen-network/regen-ledger/types/v2/math" "github.com/regen-network/regen-ledger/types/v2/testutil" + ecocredittypes "github.com/regen-network/regen-ledger/x/ecocredit/v3" basetypes "github.com/regen-network/regen-ledger/x/ecocredit/v3/base/types/v1" types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" ) @@ -26,9 +28,9 @@ import ( type buyDirectSuite struct { *baseSuite alice sdk.AccAddress - aliceBankBalance sdk.Coin bob sdk.AccAddress - bobBankBalance sdk.Coin + balances map[string]sdk.Coins + moduleBalances map[string]sdk.Coins creditTypeAbbrev string classID string batchDenom string @@ -49,14 +51,16 @@ func (s *buyDirectSuite) Before(t gocuke.TestingT) { s.baseSuite = setupBase(t, 2) s.alice = s.addrs[0] s.bob = s.addrs[1] - s.aliceBankBalance = sdk.Coin{ + s.balances = map[string]sdk.Coins{} + s.balances[s.alice.String()] = sdk.Coins{sdk.Coin{ Denom: "regen", Amount: sdk.NewInt(100), - } - s.bobBankBalance = sdk.Coin{ + }} + s.balances[s.bob.String()] = sdk.Coins{sdk.Coin{ Denom: "regen", Amount: sdk.NewInt(100), - } + }} + s.moduleBalances = map[string]sdk.Coins{} s.creditTypeAbbrev = "C" s.classID = testClassID s.batchDenom = testBatchDenom @@ -70,6 +74,8 @@ func (s *buyDirectSuite) Before(t gocuke.TestingT) { Denom: "regen", Amount: sdk.NewInt(10), } + + s.buyOrderExpectCalls() } func (s *buyDirectSuite) ACreditType() { @@ -94,25 +100,14 @@ func (s *buyDirectSuite) AliceHasBankBalance(a string) { coin, err := sdk.ParseCoinNormalized(a) require.NoError(s.t, err) - s.aliceBankBalance = coin + s.balances[s.alice.String()] = sdk.Coins{coin} } func (s *buyDirectSuite) BobHasBankBalance(a string) { coin, err := sdk.ParseCoinNormalized(a) require.NoError(s.t, err) - s.bobBankBalance = coin -} - -func (s *buyDirectSuite) BobHasABankBalanceWithDenom(a string) { - s.bobBankBalance = sdk.NewCoin(a, s.bobBankBalance.Amount) -} - -func (s *buyDirectSuite) BobHasABankBalanceWithAmount(a string) { - amount, ok := sdk.NewIntFromString(a) - require.True(s.t, ok) - - s.bobBankBalance = sdk.NewCoin(s.bidPrice.Denom, amount) + s.balances[s.bob.String()] = sdk.Coins{coin} } func (s *buyDirectSuite) AliceHasTheBatchBalance(a gocuke.DocString) { @@ -256,8 +251,6 @@ func (s *buyDirectSuite) AliceAttemptsToBuyCreditsWithSellOrderId(a string) { id, err := strconv.ParseUint(a, 10, 32) require.NoError(s.t, err) - s.singleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.alice.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -274,8 +267,6 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithSellOrderId(a string) { id, err := strconv.ParseUint(a, 10, 32) require.NoError(s.t, err) - s.singleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -292,7 +283,7 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithSellOrderIdAndRetirementReas id, err := strconv.ParseUint(a, 10, 32) require.NoError(s.t, err) - s.singleBuyOrderExpectCalls() + s.buyOrderExpectCalls() s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), @@ -308,8 +299,6 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithSellOrderIdAndRetirementReas } func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithBidDenom(a string) { - s.singleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -329,8 +318,6 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithDisableAutoRetire(a string) disableAutoRetire, err := strconv.ParseBool(a) require.NoError(s.t, err) - s.singleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -347,8 +334,6 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithDisableAutoRetire(a string) func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithQuantity(a string) { s.quantity = a - s.singleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -365,8 +350,6 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithQuantityAndBidAmount(a strin bidAmount, ok := sdk.NewIntFromString(b) require.True(s.t, ok) - s.singleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -386,8 +369,6 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithQuantityAndBidPrice(a string bidPrice, err := sdk.ParseCoinNormalized(b) require.NoError(s.t, err) - s.singleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -404,8 +385,6 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithQuantityAndDisableAutoRetire disableAutoRetire, err := strconv.ParseBool(b) require.NoError(s.t, err) - s.singleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -425,8 +404,6 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsInTwoOrdersEachWithQuantityAndBi bidAmount, ok := sdk.NewIntFromString(b) require.True(s.t, ok) - s.multipleBuyOrderExpectCalls() - s.res, s.err = s.k.BuyDirect(s.ctx, &types.MsgBuyDirect{ Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ @@ -491,19 +468,22 @@ func (s *buyDirectSuite) ExpectNoSellOrderWithId(a string) { } func (s *buyDirectSuite) ExpectAliceBankBalance(a string) { - bankBalance, err := sdk.ParseCoinNormalized(a) - require.NoError(s.t, err) - - require.Equal(s.t, bankBalance.Denom, s.aliceBankBalance.Denom) - require.Equal(s.t, bankBalance.Amount.String(), s.aliceBankBalance.Amount.String()) + s.expectBalance(s.alice, a) } func (s *buyDirectSuite) ExpectBobBankBalance(a string) { - bankBalance, err := sdk.ParseCoinNormalized(a) + s.expectBalance(s.bob, a) +} + +func (s *buyDirectSuite) expectBalance(address sdk.Address, a string) { + expected, err := sdk.ParseCoinsNormalized(a) require.NoError(s.t, err) - require.Equal(s.t, bankBalance.Denom, s.bobBankBalance.Denom) - require.Equal(s.t, bankBalance.Amount.String(), s.bobBankBalance.Amount.String()) + actual := s.balances[address.String()] + + if !actual.IsEqual(expected) { + s.t.Fatalf("expected: %s, actual: %s", a, actual.String()) + } } func (s *buyDirectSuite) ExpectAliceBatchBalance(a gocuke.DocString) { @@ -589,6 +569,17 @@ func (s *buyDirectSuite) ExpectEventRetireWithProperties(a gocuke.DocString) { require.NoError(s.t, err) } +func (s *buyDirectSuite) ExpectFeePoolBalance(a string) { + expected, err := sdk.ParseCoinsNormalized(a) + require.NoError(s.t, err) + + actual := s.moduleBalances[ecocredittypes.ModuleName] + + if !actual.IsEqual(expected) { + s.t.Fatalf("expected: %s, actual: %s", a, actual.String()) + } +} + // count is the number of sell orders created func (s *buyDirectSuite) createSellOrders(count int) { totalQuantity := s.quantity @@ -652,47 +643,43 @@ func (s *buyDirectSuite) createSellOrders(count int) { } } -func (s *buyDirectSuite) singleBuyOrderExpectCalls() { - askTotal := s.calculateAskTotal(s.quantity, s.askPrice.Amount.String()) - sendCoin := sdk.NewCoin(s.askPrice.Denom, askTotal) - sendCoins := sdk.NewCoins(sendCoin) - +func (s *buyDirectSuite) buyOrderExpectCalls() { s.bankKeeper.EXPECT(). - GetBalance(s.sdkCtx, s.bob, s.bidPrice.Denom). - Return(s.bobBankBalance). + GetBalance(gomock.Any(), gomock.Any(), gomock.Any()). + DoAndReturn(func(_ sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin { + return sdk.Coin{Denom: denom, Amount: s.balances[addr.String()].AmountOf(denom)} + }). AnyTimes() // not expected on failed attempt s.bankKeeper.EXPECT(). - SendCoins(s.sdkCtx, s.bob, s.alice, sendCoins). - Do(func(sdk.Context, sdk.AccAddress, sdk.AccAddress, sdk.Coins) { - s.bobBankBalance = s.bobBankBalance.Sub(sendCoin) - s.aliceBankBalance = s.aliceBankBalance.Add(sendCoin) + SendCoins(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Do(func(_ sdk.Context, from, to sdk.AccAddress, amt sdk.Coins) { + s.balances[from.String()] = s.balances[from.String()].Sub(amt...) + s.balances[to.String()] = s.balances[to.String()].Add(amt...) }). AnyTimes() // not expected on failed attempt -} - -func (s *buyDirectSuite) multipleBuyOrderExpectCalls() { - askTotal := s.calculateAskTotal(s.quantity, s.askPrice.Amount.String()) - sendCoin := sdk.NewCoin(s.askPrice.Denom, askTotal) - sendCoins := sdk.NewCoins(sendCoin) s.bankKeeper.EXPECT(). - GetBalance(s.sdkCtx, s.bob, s.bidPrice.Denom). - Return(s.bobBankBalance). - Times(1) + SendCoinsFromAccountToModule(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Do(func(_ sdk.Context, from sdk.AccAddress, mod string, amt sdk.Coins) { + s.balances[from.String()] = s.balances[from.String()].Sub(amt...) + s.moduleBalances[mod] = s.moduleBalances[mod].Add(amt...) + }). + AnyTimes() s.bankKeeper.EXPECT(). - GetBalance(s.sdkCtx, s.bob, s.bidPrice.Denom). - Return(s.bobBankBalance.Sub(sendCoin)). - Times(1) + SendCoinsFromModuleToAccount(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + Do(func(_ sdk.Context, mod string, to sdk.AccAddress, amt sdk.Coins) { + s.moduleBalances[mod] = s.moduleBalances[mod].Sub(amt...) + s.balances[to.String()] = s.balances[to.String()].Add(amt...) + }). + AnyTimes() s.bankKeeper.EXPECT(). - SendCoins(s.sdkCtx, s.bob, s.alice, sendCoins). - Do(func(sdk.Context, sdk.AccAddress, sdk.AccAddress, sdk.Coins) { - s.bobBankBalance = s.bobBankBalance.Sub(sendCoin) - s.aliceBankBalance = s.aliceBankBalance.Add(sendCoin) - }). - AnyTimes() // not expected on failed attempt + BurnCoins(gomock.Any(), gomock.Any(), gomock.Any()). + Do(func(_ sdk.Context, mod string, amt sdk.Coins) { + s.moduleBalances[mod] = s.moduleBalances[mod].Sub(amt...) + }).AnyTimes() } func (s *buyDirectSuite) calculateAskTotal(quantity string, amount string) sdkmath.Int { From aa7084d57e34fe16efcc987020f563ad55559e83 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 5 Feb 2024 12:08:24 -0500 Subject: [PATCH 12/27] fix tests --- x/ecocredit/marketplace/keeper/keeper_test.go | 2 +- .../keeper/msg_gov_set_fee_params.go | 30 ++++++++++++++-- .../keeper/msg_set_marketplace_fees.go | 36 ------------------- ...feature => msg_gov_set_fee_params.feature} | 0 .../types/v1/msg_gov_set_fee_params.go | 32 +++++++++-------- .../types/v1/msg_set_marketplace_fees.go | 35 ------------------ 6 files changed, 45 insertions(+), 90 deletions(-) delete mode 100644 x/ecocredit/marketplace/keeper/msg_set_marketplace_fees.go rename x/ecocredit/marketplace/types/v1/features/{msg_set_marketplace_fees.feature => msg_gov_set_fee_params.feature} (100%) delete mode 100644 x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go diff --git a/x/ecocredit/marketplace/keeper/keeper_test.go b/x/ecocredit/marketplace/keeper/keeper_test.go index 5c3e4b871b..2e1805f12d 100644 --- a/x/ecocredit/marketplace/keeper/keeper_test.go +++ b/x/ecocredit/marketplace/keeper/keeper_test.go @@ -76,7 +76,7 @@ func setupBase(t gocuke.TestingT, numAddresses int) *baseSuite { authority, err := sdk.AccAddressFromBech32("regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68") assert.NilError(s.t, err) - s.k = NewKeeper(s.marketStore, s.baseStore, s.bankKeeper, authority, "ecocredit-marketplace") + s.k = NewKeeper(s.marketStore, s.baseStore, s.bankKeeper, authority, ecocredit.ModuleName) // set test accounts for i := 0; i < numAddresses; i++ { diff --git a/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params.go b/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params.go index 593fbb7696..6613aaf4ca 100644 --- a/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params.go +++ b/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params.go @@ -3,10 +3,34 @@ package keeper import ( "context" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + marketplacev1 "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/marketplace/v1" 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") +func (k Keeper) GovSetFeeParams(ctx context.Context, msg *types.MsgGovSetFeeParams) (*types.MsgGovSetFeeParamsResponse, error) { + authority, err := sdk.AccAddressFromBech32(msg.Authority) + if err != nil { + return nil, err + } + + if !authority.Equals(k.authority) { + return nil, sdkerrors.ErrUnauthorized + } + + // convert from gogo to protoreflect + var feeParams marketplacev1.FeeParams + err = gogoToProtoReflect(msg.Fees, &feeParams) + if err != nil { + return nil, err + } + + err = k.stateStore.FeeParamsTable().Save(ctx, &feeParams) + if err != nil { + return nil, err + } + + return &types.MsgGovSetFeeParamsResponse{}, nil } diff --git a/x/ecocredit/marketplace/keeper/msg_set_marketplace_fees.go b/x/ecocredit/marketplace/keeper/msg_set_marketplace_fees.go deleted file mode 100644 index 042f373a3a..0000000000 --- a/x/ecocredit/marketplace/keeper/msg_set_marketplace_fees.go +++ /dev/null @@ -1,36 +0,0 @@ -package keeper - -import ( - "context" - - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - marketplacev1 "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/marketplace/v1" - types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" -) - -func (k Keeper) SetMarketplaceFees(ctx context.Context, msg *types.MsgSetMarketplaceFees) (*types.MsgSetMarketplaceFeesResponse, error) { - authority, err := sdk.AccAddressFromBech32(msg.Authority) - if err != nil { - return nil, err - } - - if !authority.Equals(k.authority) { - return nil, sdkerrors.ErrUnauthorized - } - - // convert from gogo to protoreflect - var feeParams marketplacev1.FeeParams - err = gogoToProtoReflect(msg.Fees, &feeParams) - if err != nil { - return nil, err - } - - err = k.stateStore.FeeParamsTable().Save(ctx, &feeParams) - if err != nil { - return nil, err - } - - return &types.MsgSetMarketplaceFeesResponse{}, nil -} diff --git a/x/ecocredit/marketplace/types/v1/features/msg_set_marketplace_fees.feature b/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature similarity index 100% rename from x/ecocredit/marketplace/types/v1/features/msg_set_marketplace_fees.feature rename to x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature 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 index c8439ade2f..445d7f07a3 100644 --- a/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params.go +++ b/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params.go @@ -7,27 +7,29 @@ import ( var _ legacytx.LegacyMsg = &MsgGovSetFeeParams{} +// ValidateBasic does a sanity check on the provided data. func (m *MsgGovSetFeeParams) ValidateBasic() error { - // TODO implement me - panic("implement me") + err := m.Fees.Validate() + if err != nil { + return err + } + + _, err = types.AccAddressFromBech32(m.Authority) + return err } +// GetSigners implements the LegacyMsg interface. func (m *MsgGovSetFeeParams) GetSigners() []types.AccAddress { - // TODO implement me - panic("implement me") + return []types.AccAddress{types.MustAccAddressFromBech32(m.Authority)} } -func (m *MsgGovSetFeeParams) GetSignBytes() []byte { - // TODO implement me - panic("implement me") -} +// Route implements the LegacyMsg interface. +func (m *MsgGovSetFeeParams) Route() string { return types.MsgTypeURL(m) } -func (m *MsgGovSetFeeParams) Route() string { - // TODO implement me - panic("implement me") -} +// Type implements the LegacyMsg interface. +func (m *MsgGovSetFeeParams) Type() string { return types.MsgTypeURL(m) } -func (m *MsgGovSetFeeParams) Type() string { - // TODO implement me - panic("implement me") +// GetSignBytes implements the LegacyMsg interface. +func (m *MsgGovSetFeeParams) GetSignBytes() []byte { + return types.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) } diff --git a/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go b/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go deleted file mode 100644 index b1cdffa7b0..0000000000 --- a/x/ecocredit/marketplace/types/v1/msg_set_marketplace_fees.go +++ /dev/null @@ -1,35 +0,0 @@ -package v1 - -import ( - "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" -) - -var _ legacytx.LegacyMsg = &MsgSetMarketplaceFees{} - -// ValidateBasic does a sanity check on the provided data. -func (m *MsgSetMarketplaceFees) ValidateBasic() error { - err := m.Fees.Validate() - if err != nil { - return err - } - - _, err = types.AccAddressFromBech32(m.Authority) - return err -} - -// GetSigners implements the LegacyMsg interface. -func (m *MsgSetMarketplaceFees) GetSigners() []types.AccAddress { - return []types.AccAddress{types.MustAccAddressFromBech32(m.Authority)} -} - -// Route implements the LegacyMsg interface. -func (m *MsgSetMarketplaceFees) Route() string { return types.MsgTypeURL(m) } - -// Type implements the LegacyMsg interface. -func (m *MsgSetMarketplaceFees) Type() string { return types.MsgTypeURL(m) } - -// GetSignBytes implements the LegacyMsg interface. -func (m *MsgSetMarketplaceFees) GetSignBytes() []byte { - return types.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} From 9e27574308841dcc37fba3c97371a099b6510b93 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 5 Feb 2024 12:21:56 -0500 Subject: [PATCH 13/27] fee params tests --- .../v1/features/state_fee_params.feature | 23 ++++++++++ .../marketplace/types/v1/state_fee_params.go | 4 +- .../types/v1/state_fee_params_test.go | 42 +++++++++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 x/ecocredit/marketplace/types/v1/state_fee_params_test.go diff --git a/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature b/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature index e69de29bb2..52b92d2270 100644 --- a/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature +++ b/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature @@ -0,0 +1,23 @@ +Feature: FeeParams + + Scenario Outline: validate fee params + Given buyer percentage fee "" + And seller percentage fee "" + When I validate the fee params + Then expect error to be + + Examples: + | buyer-percentage-fee | seller-percentage-fee | error | + | 0.0 | 0.0 | false | + | 0.0 | 0.1 | false | + | 0.1 | 0.0 | false | + | 0.1 | 0.1 | false | + | -0.1 | 0.0 | true | + | 0.0 | -0.1 | true | + | | 0.1 | false | + | 0.1 | | false | + | | | false | + + + + diff --git a/x/ecocredit/marketplace/types/v1/state_fee_params.go b/x/ecocredit/marketplace/types/v1/state_fee_params.go index ba8a30ca5b..f031ba22d0 100644 --- a/x/ecocredit/marketplace/types/v1/state_fee_params.go +++ b/x/ecocredit/marketplace/types/v1/state_fee_params.go @@ -4,12 +4,12 @@ import "github.com/regen-network/regen-ledger/types/v2/math" // Validate performs basic validation of the FeeParams state type. func (m *FeeParams) Validate() error { - _, err := math.NewPositiveDecFromString(m.BuyerPercentageFee) + _, err := math.NewNonNegativeDecFromString(m.BuyerPercentageFee) if err != nil { return err } - _, err = math.NewPositiveDecFromString(m.SellerPercentageFee) + _, err = math.NewNonNegativeDecFromString(m.SellerPercentageFee) if err != nil { return err } diff --git a/x/ecocredit/marketplace/types/v1/state_fee_params_test.go b/x/ecocredit/marketplace/types/v1/state_fee_params_test.go new file mode 100644 index 0000000000..26adbe4589 --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/state_fee_params_test.go @@ -0,0 +1,42 @@ +package v1 + +import ( + "testing" + + "github.com/regen-network/gocuke" + "github.com/stretchr/testify/require" +) + +type feeParams struct { + gocuke.TestingT + params *FeeParams + err error +} + +func TestFeeParams(t *testing.T) { + gocuke.NewRunner(t, &feeParams{}).Path("./features/state_fee_params.feature").Run() +} + +func (s *feeParams) Before() { + s.params = &FeeParams{} +} + +func (s *feeParams) BuyerPercentageFee(a string) { + s.params.BuyerPercentageFee = a +} + +func (s *feeParams) SellerPercentageFee(a string) { + s.params.SellerPercentageFee = a +} + +func (s *feeParams) IValidateTheFeeParams() { + s.err = s.params.Validate() +} + +func (s *feeParams) ExpectErrorToBeTrue() { + require.Error(s, s.err) +} + +func (s *feeParams) ExpectErrorToBeFalse() { + require.NoError(s, s.err) +} From 77cfe06d47aefd6ff597373bc32779c4944de687 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 5 Feb 2024 12:34:38 -0500 Subject: [PATCH 14/27] set fee params validation tests --- .../features/msg_gov_set_fee_params.feature | 48 +++++------------- .../v1/features/state_fee_params.feature | 7 +-- .../types/v1/msg_gov_set_fee_params.go | 5 ++ .../types/v1/msg_gov_set_fee_params_test.go | 49 +++++++++++++++++++ 4 files changed, 69 insertions(+), 40 deletions(-) create mode 100644 x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params_test.go diff --git a/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature b/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature index 5b727956f3..812e2f0c81 100644 --- a/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature +++ b/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature @@ -1,41 +1,15 @@ -Feature: MsgSetMarketplaceFees +Feature: MsgGovSetFeeParams - Scenario: a valid message - Given the message - """ - { - "authority": "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw", - "buyer_percentage_fee": "0.01", - "seller_percentage_fee": "0.01", - } - """ + Scenario Outline: validate fee params + Given authority "" + And fee params `` When the message is validated - Then expect no error + Then expect error - Scenario: an error is returned if authority is empty - Given the message - """ - {} - """ - When the message is validated - Then expect the error "invalid authority address: empty address string is not allowed" - - Scenario: an error is returned if authority is not a valid bech32 address - Given the message - """ - { - "authority": "foo" - } - """ - When the message is validated - Then expect the error "invalid authority address: decoding bech32 failed: invalid bech32 string length 3" + Examples: + | authority | fee_params | error | + | | {} | true | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {} | false | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {"buyer_percentage_fee":"-0.1"} | true | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {"buyer_percentage_fee":"0.1"} | false | - Scenario: an error is returned if fee params is empty - Given the message - """ - { - "authority": "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw" - } - """ - When the message is validated - Then expect the error "buyer_percentage_fee: non-empty value required" \ No newline at end of file diff --git a/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature b/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature index 52b92d2270..3f9a3cb410 100644 --- a/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature +++ b/x/ecocredit/marketplace/types/v1/features/state_fee_params.feature @@ -14,9 +14,10 @@ Feature: FeeParams | 0.1 | 0.1 | false | | -0.1 | 0.0 | true | | 0.0 | -0.1 | true | - | | 0.1 | false | - | 0.1 | | false | - | | | false | + | | 0.1 | false | + | 0.1 | | false | + | | | false | + | abc | 0.1 | true | 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 index 445d7f07a3..c6c6c488f8 100644 --- a/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params.go +++ b/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params.go @@ -2,6 +2,7 @@ package v1 import ( "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" ) @@ -9,6 +10,10 @@ var _ legacytx.LegacyMsg = &MsgGovSetFeeParams{} // ValidateBasic does a sanity check on the provided data. func (m *MsgGovSetFeeParams) ValidateBasic() error { + if m.Fees == nil { + return sdkerrors.ErrInvalidRequest.Wrap("fees cannot be nil") + } + err := m.Fees.Validate() if err != nil { return err diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params_test.go b/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params_test.go new file mode 100644 index 0000000000..6fc9ff090c --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params_test.go @@ -0,0 +1,49 @@ +package v1 + +import ( + "testing" + + "github.com/gogo/protobuf/jsonpb" + "github.com/regen-network/gocuke" + "github.com/stretchr/testify/require" +) + +type govSetFeeParams struct { + gocuke.TestingT + msg *MsgGovSetFeeParams + err error +} + +func TestGovSetFeeParams(t *testing.T) { + gocuke.NewRunner(t, &govSetFeeParams{}). + Path("./features/msg_gov_set_fee_params.feature"). + Step("^fee\\s+params\\s+`([^`]*)`$", (*govSetFeeParams).FeeParams). + Run() +} + +func (s *govSetFeeParams) Before() { + s.msg = &MsgGovSetFeeParams{} +} + +func (s *govSetFeeParams) Authority(a string) { + s.msg.Authority = a +} + +func (s *govSetFeeParams) FeeParams(a string) { + if a != "" { + s.msg.Fees = &FeeParams{} + require.NoError(s, jsonpb.UnmarshalString(a, s.msg.Fees)) + } +} + +func (s *govSetFeeParams) TheMessageIsValidated() { + s.err = s.msg.ValidateBasic() +} + +func (s *govSetFeeParams) ExpectErrorTrue() { + require.Error(s, s.err) +} + +func (s *govSetFeeParams) ExpectErrorFalse() { + require.NoError(s, s.err) +} From 41b76f5ee0cef29106c06eb385e13fea2833a235 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 5 Feb 2024 12:59:07 -0500 Subject: [PATCH 15/27] add failing max_fee_amount tests --- .../keeper/features/msg_buy_direct.feature | 17 +++++++ .../types/v1/features/msg_buy_direct.feature | 47 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index 8cb39f5c3f..9b7ac39d1e 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -413,3 +413,20 @@ Feature: Msg/BuyDirect * expect alice bank balance "180uregen" * expect bob bank balance "0uregen" * expect fee pool balance "0uregen" + + Rule: max_fee_amount is enforced + Scenario Outline: max_fee_amount is enforced + Given a credit type + * alice created a sell order with quantity "10" and ask price "10foo" + * buyer fees are 0.2 and seller fees are 0.1 + * bob has a max_fee_amount of + When bob attempts to buy credits with quantity "10" and bid price "20uregen" + Then expect the error + + Examples: + | max_fee_amount | error | + | 10 | true | + | 20 | false | + | 30 | false | + + diff --git a/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature b/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature index efb6fc4474..fe174779ea 100644 --- a/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature @@ -322,6 +322,53 @@ Feature: MsgBuyDirect When the message is validated Then expect the error "orders[0]: retirement reason: max length 512: limit exceeded" + Scenario: a valid message with max_fee_amount + Given the message + """ + { + "buyer": "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw", + "orders": [ + { + "sell_order_id": "1", + "quantity": "100", + "bid_price": { + "denom": "regen", + "amount": "100" + }, + "retirement_jurisdiction": "US-WA", + "retirement_reason": "offsetting electricity consumption", + "max_fee_amount": "100" + } + ] + } + """ + When the message is validated + Then expect no error + + + Scenario: an error is returned if max_fee_amount isn't an integer + Given the message + """ + { + "buyer": "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw", + "orders": [ + { + "sell_order_id": "1", + "quantity": "100", + "bid_price": { + "denom": "regen", + "amount": "100" + }, + "retirement_jurisdiction": "US-WA", + "retirement_reason": "offsetting electricity consumption", + "max_fee_amount": "0.12" + } + ] + } + """ + When the message is validated + Then expect an error + Scenario: a valid amino message Given the message """ From dae82fad4ff3f738748bef6807c698744c7fce8f Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 5 Feb 2024 14:49:20 -0500 Subject: [PATCH 16/27] tests passing --- .../keeper/features/msg_buy_direct.feature | 15 +++++------ .../marketplace/keeper/msg_buy_direct.go | 14 +++++++++++ .../marketplace/keeper/msg_buy_direct_test.go | 19 +++++++++++--- .../types/v1/features/msg_buy_direct.feature | 25 ++++++++++++++++++- .../marketplace/types/v1/msg_buy_direct.go | 8 ++++++ 5 files changed, 70 insertions(+), 11 deletions(-) diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index 9b7ac39d1e..8e32fed061 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -419,14 +419,15 @@ Feature: Msg/BuyDirect Given a credit type * alice created a sell order with quantity "10" and ask price "10foo" * buyer fees are 0.2 and seller fees are 0.1 - * bob has a max_fee_amount of - When bob attempts to buy credits with quantity "10" and bid price "20uregen" - Then expect the error + * bob has bank balance "200foo" + * bob sets a max fee of + When bob attempts to buy credits with quantity "10" and bid price "20foo" + Then expect error contains "" Examples: - | max_fee_amount | error | - | 10 | true | - | 20 | false | - | 30 | false | + | max_fee_amount | error | + | 10 | max fee | + | 20 | | + | 30 | | diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct.go b/x/ecocredit/marketplace/keeper/msg_buy_direct.go index ebd35427e1..4dfff68389 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct.go @@ -106,6 +106,20 @@ func (k Keeper) BuyDirect(ctx context.Context, req *types.MsgBuyDirect) (*types. total, buyerFee, err := getTotalCostAndBuyerFee(subtotal, feeParams) totalCost := sdk.Coin{Amount: total.SdkIntTrim(), Denom: market.BankDenom} + // check max fee + if maxFee := order.MaxFeeAmount; maxFee != "" { + maxFeeInt, ok := sdk.NewIntFromString(maxFee) + if !ok { + return nil, sdkerrors.ErrInvalidType.Wrapf("could not convert %s to %T", maxFee, sdkmath.Int{}) + } + if maxFeeInt.LT(buyerFee.SdkIntTrim()) { + return nil, sdkerrors.ErrInvalidRequest.Wrapf( + "%s: max fee: %s, required fee: %s", + orderIndex, maxFee, buyerFee, + ) + } + } + // check address has the total cost buyerBalance := k.bankKeeper.GetBalance(sdkCtx, buyerAcc, order.BidPrice.Denom) if buyerBalance.IsLT(totalCost) { diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go index 4136ee8d49..1e6c9f3935 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go @@ -41,6 +41,7 @@ type buyDirectSuite struct { bidPrice sdk.Coin res *types.MsgBuyDirectResponse err error + maxFee string } func TestBuyDirect(t *testing.T) { @@ -167,6 +168,9 @@ func (s *buyDirectSuite) BobsAddress(a string) { require.NoError(s.t, err) s.bob = addr } +func (s *buyDirectSuite) BobSetsAMaxFeeOf(a string) { + s.maxFee = a +} func (s *buyDirectSuite) AliceCreatedASellOrderWithId(a string) { id, err := strconv.ParseUint(a, 10, 32) @@ -373,9 +377,10 @@ func (s *buyDirectSuite) BobAttemptsToBuyCreditsWithQuantityAndBidPrice(a string Buyer: s.bob.String(), Orders: []*types.MsgBuyDirect_Order{ { - SellOrderId: s.sellOrderID, - Quantity: a, - BidPrice: &bidPrice, + SellOrderId: s.sellOrderID, + Quantity: a, + BidPrice: &bidPrice, + MaxFeeAmount: s.maxFee, }, }, }) @@ -442,6 +447,14 @@ func (s *buyDirectSuite) ExpectTheError(a string) { require.EqualError(s.t, s.err, a) } +func (s *buyDirectSuite) ExpectErrorContains(a string) { + if a == "" { + require.NoError(s.t, s.err) + } else { + require.ErrorContains(s.t, s.err, a) + } +} + func (s *buyDirectSuite) ExpectSellOrderWithId(a string) { id, err := strconv.ParseUint(a, 10, 32) require.NoError(s.t, err) diff --git a/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature b/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature index fe174779ea..a4fc0b0d1f 100644 --- a/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature @@ -367,7 +367,30 @@ Feature: MsgBuyDirect } """ When the message is validated - Then expect an error + Then expect the error "orders[0]: max fee amount must be a non-negative integer: invalid request" + + Scenario: an error is returned if max_fee_amount is negative + Given the message + """ + { + "buyer": "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw", + "orders": [ + { + "sell_order_id": "1", + "quantity": "100", + "bid_price": { + "denom": "regen", + "amount": "100" + }, + "retirement_jurisdiction": "US-WA", + "retirement_reason": "offsetting electricity consumption", + "max_fee_amount": "-10" + } + ] + } + """ + When the message is validated + Then expect the error "orders[0]: max fee amount must be a non-negative integer: invalid request" Scenario: a valid amino message Given the message diff --git a/x/ecocredit/marketplace/types/v1/msg_buy_direct.go b/x/ecocredit/marketplace/types/v1/msg_buy_direct.go index 47a748f5d4..534cbbaaa2 100644 --- a/x/ecocredit/marketplace/types/v1/msg_buy_direct.go +++ b/x/ecocredit/marketplace/types/v1/msg_buy_direct.go @@ -3,6 +3,7 @@ package v1 import ( "fmt" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" @@ -77,6 +78,13 @@ func (m MsgBuyDirect) ValidateBasic() error { return ecocredit.ErrMaxLimit.Wrapf("%s: retirement reason: max length %d", orderIndex, base.MaxNoteLength) } } + + if order.MaxFeeAmount != "" { + maxFeeAmount, ok := sdkmath.NewIntFromString(order.MaxFeeAmount) + if !ok || maxFeeAmount.IsNegative() { + return sdkerrors.ErrInvalidRequest.Wrapf("%s: max fee amount must be a non-negative integer", orderIndex) + } + } } return nil From 3ee7ed507de3ea52397fe55fc4b4a7ddac0eb12d Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 5 Feb 2024 14:55:05 -0500 Subject: [PATCH 17/27] tests --- x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index 8e32fed061..987d76bf16 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -388,7 +388,7 @@ Feature: Msg/BuyDirect } """ - Rule: buyer fees are deducted from buyer, seller fees are deducted from seller, and both go to fee pool + Rule: buyer fees are deducted from buyer, seller fees are deducted from seller, and both go to fee pool or get burned Background: Given a credit type From c2a362e9ff9f0b55109226a0a3c2d5b2060aef75 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 5 Feb 2024 15:00:21 -0500 Subject: [PATCH 18/27] lint --- x/ecocredit/marketplace/keeper/msg_buy_direct.go | 3 +++ .../marketplace/keeper/msg_buy_direct_test.go | 14 -------------- x/ecocredit/marketplace/keeper/utils.go | 6 ++++++ 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct.go b/x/ecocredit/marketplace/keeper/msg_buy_direct.go index 4dfff68389..d4573bcd10 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct.go @@ -104,6 +104,9 @@ func (k Keeper) BuyDirect(ctx context.Context, req *types.MsgBuyDirect) (*types. return nil, err } total, buyerFee, err := getTotalCostAndBuyerFee(subtotal, feeParams) + if err != nil { + return nil, err + } totalCost := sdk.Coin{Amount: total.SdkIntTrim(), Denom: market.BankDenom} // check max fee diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go index 1e6c9f3935..f5de879074 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go @@ -6,7 +6,6 @@ import ( "strconv" "testing" - sdkmath "cosmossdk.io/math" "github.com/cockroachdb/apd/v3" "github.com/gogo/protobuf/jsonpb" "github.com/golang/mock/gomock" @@ -694,16 +693,3 @@ func (s *buyDirectSuite) buyOrderExpectCalls() { s.moduleBalances[mod] = s.moduleBalances[mod].Sub(amt...) }).AnyTimes() } - -func (s *buyDirectSuite) calculateAskTotal(quantity string, amount string) sdkmath.Int { - q, err := math.NewDecFromString(quantity) - require.NoError(s.t, err) - - a, err := math.NewDecFromString(amount) - require.NoError(s.t, err) - - t, err := a.Mul(q) - require.NoError(s.t, err) - - return t.SdkIntTrim() -} diff --git a/x/ecocredit/marketplace/keeper/utils.go b/x/ecocredit/marketplace/keeper/utils.go index f4a9b39b2e..9322e2a5fb 100644 --- a/x/ecocredit/marketplace/keeper/utils.go +++ b/x/ecocredit/marketplace/keeper/utils.go @@ -205,9 +205,15 @@ func (k Keeper) fillOrder(ctx context.Context, params fillOrderParams) error { // calculate seller fee = subtotal * seller percentage fee sellerFee, err := getSellerFee(params.subTotalCost, params.feeParams) + if err != nil { + return err + } // calculate total fee = buyer fee + seller fee totalFee, err := params.buyerFee.Add(sellerFee) + if err != nil { + return err + } // if total fee > 0, then transfer total fee from buyer account to fee pool if totalFee.IsPositive() { From 478f3e4bd96eaef34b35cd87d97f586af457750a Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Mon, 12 Feb 2024 11:03:09 -0500 Subject: [PATCH 19/27] refactor max fee amount to coin --- .../ecocredit/marketplace/v1/tx.pulsar.go | 307 +++++++++--------- proto/regen/ecocredit/marketplace/v1/tx.proto | 6 +- .../keeper/features/msg_buy_direct.feature | 8 +- .../marketplace/keeper/msg_buy_direct.go | 11 +- .../marketplace/keeper/msg_buy_direct_test.go | 6 +- .../types/v1/features/msg_buy_direct.feature | 36 +- .../marketplace/types/v1/msg_buy_direct.go | 9 +- .../types/v1/msg_buy_direct_test.go | 8 + x/ecocredit/marketplace/types/v1/tx.pb.go | 180 +++++----- 9 files changed, 288 insertions(+), 283 deletions(-) diff --git a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go index 917f9c6339..ef081c6d13 100644 --- a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go @@ -3,7 +3,6 @@ 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" @@ -4907,8 +4906,8 @@ func (x *fastReflection_MsgBuyDirect_Order) Range(f func(protoreflect.FieldDescr return } } - if x.MaxFeeAmount != "" { - value := protoreflect.ValueOfString(x.MaxFeeAmount) + if x.MaxFeeAmount != nil { + value := protoreflect.ValueOfMessage(x.MaxFeeAmount.ProtoReflect()) if !f(fd_MsgBuyDirect_Order_max_fee_amount, value) { return } @@ -4941,7 +4940,7 @@ func (x *fastReflection_MsgBuyDirect_Order) Has(fd protoreflect.FieldDescriptor) 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 != "" + return x.MaxFeeAmount != nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -4971,7 +4970,7 @@ func (x *fastReflection_MsgBuyDirect_Order) Clear(fd protoreflect.FieldDescripto case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.retirement_reason": x.RetirementReason = "" case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": - x.MaxFeeAmount = "" + x.MaxFeeAmount = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5008,7 +5007,7 @@ func (x *fastReflection_MsgBuyDirect_Order) Get(descriptor protoreflect.FieldDes return protoreflect.ValueOfString(value) case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": value := x.MaxFeeAmount - return protoreflect.ValueOfString(value) + return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5042,7 +5041,7 @@ func (x *fastReflection_MsgBuyDirect_Order) Set(fd protoreflect.FieldDescriptor, 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) + x.MaxFeeAmount = value.Message().Interface().(*v1beta1.Coin) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5068,6 +5067,11 @@ func (x *fastReflection_MsgBuyDirect_Order) Mutable(fd protoreflect.FieldDescrip x.BidPrice = new(v1beta1.Coin) } return protoreflect.ValueOfMessage(x.BidPrice.ProtoReflect()) + case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": + if x.MaxFeeAmount == nil { + x.MaxFeeAmount = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.MaxFeeAmount.ProtoReflect()) case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.sell_order_id": panic(fmt.Errorf("field sell_order_id of message regen.ecocredit.marketplace.v1.MsgBuyDirect.Order is not mutable")) case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.quantity": @@ -5078,8 +5082,6 @@ 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")) @@ -5107,7 +5109,8 @@ func (x *fastReflection_MsgBuyDirect_Order) NewField(fd protoreflect.FieldDescri 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("") + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5199,8 +5202,8 @@ 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 { + if x.MaxFeeAmount != nil { + l = options.Size(x.MaxFeeAmount) n += 1 + l + runtime.Sov(uint64(l)) } if x.unknownFields != nil { @@ -5232,10 +5235,17 @@ 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))) + if x.MaxFeeAmount != nil { + encoded, err := options.Marshal(x.MaxFeeAmount) + 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] = 0x42 } @@ -5513,7 +5523,7 @@ func (x *fastReflection_MsgBuyDirect_Order) ProtoMethods() *protoiface.Methods { 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 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -5523,23 +5533,27 @@ func (x *fastReflection_MsgBuyDirect_Order) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.MaxFeeAmount = string(dAtA[iNdEx:postIndex]) + if x.MaxFeeAmount == nil { + x.MaxFeeAmount = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.MaxFeeAmount); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } iNdEx = postIndex default: iNdEx = preIndex @@ -9332,11 +9346,10 @@ type MsgBuyDirect_Order struct { // 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. + // Fees are always paid in the same denomination as the bid price. // // Since Revision 3 - MaxFeeAmount string `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` + MaxFeeAmount *v1beta1.Coin `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` } func (x *MsgBuyDirect_Order) Reset() { @@ -9401,11 +9414,11 @@ func (x *MsgBuyDirect_Order) GetRetirementReason() string { return "" } -func (x *MsgBuyDirect_Order) GetMaxFeeAmount() string { +func (x *MsgBuyDirect_Order) GetMaxFeeAmount() *v1beta1.Coin { if x != nil { return x.MaxFeeAmount } - return "" + return nil } var File_regen_ecocredit_marketplace_v1_tx_proto protoreflect.FileDescriptor @@ -9415,107 +9428,106 @@ 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, 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, 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, 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, + 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, 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, 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, 0xd5, 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, 0xd6, 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, 0x3f, 0x0a, 0x0e, 0x6d, + 0x61, 0x78, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 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, 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, @@ -9670,25 +9682,26 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_depIdxs = []int32{ 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 + 18, // 9: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount:type_name -> cosmos.base.v1beta1.Coin + 0, // 10: regen.ecocredit.marketplace.v1.Msg.Sell:input_type -> regen.ecocredit.marketplace.v1.MsgSell + 2, // 11: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:input_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders + 4, // 12: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:input_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrder + 6, // 13: regen.ecocredit.marketplace.v1.Msg.BuyDirect:input_type -> regen.ecocredit.marketplace.v1.MsgBuyDirect + 8, // 14: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenom + 10, // 15: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenom + 12, // 16: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:input_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParams + 1, // 17: regen.ecocredit.marketplace.v1.Msg.Sell:output_type -> regen.ecocredit.marketplace.v1.MsgSellResponse + 3, // 18: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:output_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrdersResponse + 5, // 19: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:output_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrderResponse + 7, // 20: regen.ecocredit.marketplace.v1.Msg.BuyDirect:output_type -> regen.ecocredit.marketplace.v1.MsgBuyDirectResponse + 9, // 21: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenomResponse + 11, // 22: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse + 13, // 23: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:output_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse + 17, // [17:24] is the sub-list for method output_type + 10, // [10:17] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_regen_ecocredit_marketplace_v1_tx_proto_init() } diff --git a/proto/regen/ecocredit/marketplace/v1/tx.proto b/proto/regen/ecocredit/marketplace/v1/tx.proto index 62a1f1c657..d1f8bc721a 100644 --- a/proto/regen/ecocredit/marketplace/v1/tx.proto +++ b/proto/regen/ecocredit/marketplace/v1/tx.proto @@ -4,7 +4,6 @@ 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"; @@ -187,11 +186,10 @@ message MsgBuyDirect { // 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. + // Fees are always paid in the same denomination as the bid price. // // Since Revision 3 - string max_fee_amount = 8 [(cosmos_proto.scalar) = "cosmos.Int"]; + cosmos.base.v1beta1.Coin max_fee_amount = 8; } } diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index 987d76bf16..d6b689fdb4 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -420,14 +420,14 @@ Feature: Msg/BuyDirect * alice created a sell order with quantity "10" and ask price "10foo" * buyer fees are 0.2 and seller fees are 0.1 * bob has bank balance "200foo" - * bob sets a max fee of + * bob sets a max fee of "" When bob attempts to buy credits with quantity "10" and bid price "20foo" Then expect error contains "" Examples: | max_fee_amount | error | - | 10 | max fee | - | 20 | | - | 30 | | + | 10foo | max fee | + | 20foo | | + | 30foo | | diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct.go b/x/ecocredit/marketplace/keeper/msg_buy_direct.go index d4573bcd10..c95a56ecc0 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct.go @@ -110,15 +110,12 @@ func (k Keeper) BuyDirect(ctx context.Context, req *types.MsgBuyDirect) (*types. totalCost := sdk.Coin{Amount: total.SdkIntTrim(), Denom: market.BankDenom} // check max fee - if maxFee := order.MaxFeeAmount; maxFee != "" { - maxFeeInt, ok := sdk.NewIntFromString(maxFee) - if !ok { - return nil, sdkerrors.ErrInvalidType.Wrapf("could not convert %s to %T", maxFee, sdkmath.Int{}) - } - if maxFeeInt.LT(buyerFee.SdkIntTrim()) { + if maxFee := order.MaxFeeAmount; maxFee != nil { + buyerFeeCoin := sdk.Coin{Amount: buyerFee.SdkIntTrim(), Denom: market.BankDenom} + if maxFee.IsLT(buyerFeeCoin) { return nil, sdkerrors.ErrInvalidRequest.Wrapf( "%s: max fee: %s, required fee: %s", - orderIndex, maxFee, buyerFee, + orderIndex, maxFee, buyerFeeCoin, ) } } diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go index f5de879074..0990d7fedf 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go @@ -40,7 +40,7 @@ type buyDirectSuite struct { bidPrice sdk.Coin res *types.MsgBuyDirectResponse err error - maxFee string + maxFee *sdk.Coin } func TestBuyDirect(t *testing.T) { @@ -168,7 +168,9 @@ func (s *buyDirectSuite) BobsAddress(a string) { s.bob = addr } func (s *buyDirectSuite) BobSetsAMaxFeeOf(a string) { - s.maxFee = a + maxFee, err := sdk.ParseCoinNormalized(a) + require.NoError(s.t, err) + s.maxFee = &maxFee } func (s *buyDirectSuite) AliceCreatedASellOrderWithId(a string) { diff --git a/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature b/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature index a4fc0b0d1f..57424bafeb 100644 --- a/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/types/v1/features/msg_buy_direct.feature @@ -337,7 +337,10 @@ Feature: MsgBuyDirect }, "retirement_jurisdiction": "US-WA", "retirement_reason": "offsetting electricity consumption", - "max_fee_amount": "100" + "max_fee_amount": { + "amount": "100", + "denom": "regen" + } } ] } @@ -345,30 +348,6 @@ Feature: MsgBuyDirect When the message is validated Then expect no error - - Scenario: an error is returned if max_fee_amount isn't an integer - Given the message - """ - { - "buyer": "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw", - "orders": [ - { - "sell_order_id": "1", - "quantity": "100", - "bid_price": { - "denom": "regen", - "amount": "100" - }, - "retirement_jurisdiction": "US-WA", - "retirement_reason": "offsetting electricity consumption", - "max_fee_amount": "0.12" - } - ] - } - """ - When the message is validated - Then expect the error "orders[0]: max fee amount must be a non-negative integer: invalid request" - Scenario: an error is returned if max_fee_amount is negative Given the message """ @@ -384,13 +363,16 @@ Feature: MsgBuyDirect }, "retirement_jurisdiction": "US-WA", "retirement_reason": "offsetting electricity consumption", - "max_fee_amount": "-10" + "max_fee_amount": { + "amount": "-10", + "denom": "regen" + } } ] } """ When the message is validated - Then expect the error "orders[0]: max fee amount must be a non-negative integer: invalid request" + Then expect error contains "negative coin" Scenario: a valid amino message Given the message diff --git a/x/ecocredit/marketplace/types/v1/msg_buy_direct.go b/x/ecocredit/marketplace/types/v1/msg_buy_direct.go index 534cbbaaa2..21bbaf42cd 100644 --- a/x/ecocredit/marketplace/types/v1/msg_buy_direct.go +++ b/x/ecocredit/marketplace/types/v1/msg_buy_direct.go @@ -3,7 +3,6 @@ package v1 import ( "fmt" - sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" @@ -79,10 +78,10 @@ func (m MsgBuyDirect) ValidateBasic() error { } } - if order.MaxFeeAmount != "" { - maxFeeAmount, ok := sdkmath.NewIntFromString(order.MaxFeeAmount) - if !ok || maxFeeAmount.IsNegative() { - return sdkerrors.ErrInvalidRequest.Wrapf("%s: max fee amount must be a non-negative integer", orderIndex) + if order.MaxFeeAmount != nil { + err := order.MaxFeeAmount.Validate() + if err != nil { + return sdkerrors.ErrInvalidRequest.Wrapf("%s: max fee amount: %s", orderIndex, err) } } } diff --git a/x/ecocredit/marketplace/types/v1/msg_buy_direct_test.go b/x/ecocredit/marketplace/types/v1/msg_buy_direct_test.go index b5bf2603cb..f34a55f953 100644 --- a/x/ecocredit/marketplace/types/v1/msg_buy_direct_test.go +++ b/x/ecocredit/marketplace/types/v1/msg_buy_direct_test.go @@ -52,6 +52,14 @@ func (s *msgBuyDirectSuite) ExpectNoError() { require.NoError(s.t, s.err) } +func (s *msgBuyDirectSuite) ExpectErrorContains(a string) { + if a != "" { + require.ErrorContains(s.t, s.err, a) + } else { + require.NoError(s.t, s.err) + } +} + func (s *msgBuyDirectSuite) MessageSignBytesQueried() { s.signBytes = string(s.msg.GetSignBytes()) } diff --git a/x/ecocredit/marketplace/types/v1/tx.pb.go b/x/ecocredit/marketplace/types/v1/tx.pb.go index b8e3824edf..50e94b6b53 100644 --- a/x/ecocredit/marketplace/types/v1/tx.pb.go +++ b/x/ecocredit/marketplace/types/v1/tx.pb.go @@ -6,7 +6,6 @@ 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" @@ -579,11 +578,10 @@ type MsgBuyDirect_Order struct { // 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. + // Fees are always paid in the same denomination as the bid price. // // Since Revision 3 - MaxFeeAmount string `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` + MaxFeeAmount *types.Coin `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` } func (m *MsgBuyDirect_Order) Reset() { *m = MsgBuyDirect_Order{} } @@ -661,11 +659,11 @@ func (m *MsgBuyDirect_Order) GetRetirementReason() string { return "" } -func (m *MsgBuyDirect_Order) GetMaxFeeAmount() string { +func (m *MsgBuyDirect_Order) GetMaxFeeAmount() *types.Coin { if m != nil { return m.MaxFeeAmount } - return "" + return nil } // MsgBuyDirectResponse is the Msg/BuyDirect response type. @@ -1035,75 +1033,74 @@ func init() { } var fileDescriptor_68c9b4e4b7fcb584 = []byte{ - // 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, + // 1058 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x41, 0x6f, 0xdc, 0x44, + 0x14, 0x8e, 0x77, 0x37, 0x9b, 0xe4, 0x6d, 0x92, 0xb6, 0xd3, 0x90, 0x2e, 0xa6, 0xd9, 0x84, 0x05, + 0xa9, 0xa1, 0x50, 0x5b, 0x49, 0x81, 0x4a, 0x41, 0x11, 0x24, 0x6d, 0x53, 0x51, 0xb4, 0xa2, 0x38, + 0xe5, 0x82, 0x84, 0xb6, 0x63, 0xfb, 0xc5, 0x31, 0xb1, 0x3d, 0xc6, 0x33, 0x4e, 0x36, 0xc7, 0x22, + 0x24, 0x24, 0x4e, 0x3d, 0x73, 0xe4, 0x17, 0xf0, 0x33, 0x38, 0xf6, 0x02, 0xe2, 0x06, 0x4a, 0x24, + 0xb8, 0x71, 0xe6, 0x88, 0x3c, 0xf6, 0x3a, 0x1b, 0x6f, 0xb6, 0x71, 0x72, 0xdb, 0x79, 0xef, 0x7d, + 0xef, 0xbd, 0xf9, 0xbe, 0x79, 0x33, 0x5e, 0xb8, 0x15, 0xa1, 0x83, 0x81, 0x8e, 0x16, 0xb3, 0x22, + 0xb4, 0x5d, 0xa1, 0xfb, 0x34, 0xda, 0x43, 0x11, 0x7a, 0xd4, 0x42, 0x7d, 0x7f, 0x45, 0x17, 0x3d, + 0x2d, 0x8c, 0x98, 0x60, 0xa4, 0x25, 0x03, 0xb5, 0x3c, 0x50, 0x1b, 0x08, 0xd4, 0xf6, 0x57, 0xd4, + 0x96, 0xc5, 0xb8, 0xcf, 0xb8, 0x6e, 0x52, 0x9e, 0x00, 0x4d, 0x14, 0x74, 0x45, 0xb7, 0x98, 0x1b, + 0xa4, 0x78, 0xf5, 0x46, 0xe6, 0xf7, 0xb9, 0x93, 0xe4, 0xf5, 0xb9, 0x93, 0x39, 0xe6, 0x1c, 0xe6, + 0x30, 0xf9, 0x53, 0x4f, 0x7e, 0x65, 0xd6, 0x45, 0x87, 0x31, 0xc7, 0x43, 0x5d, 0xae, 0xcc, 0x78, + 0x47, 0x17, 0xae, 0x8f, 0x5c, 0x50, 0x3f, 0xcc, 0x02, 0x6e, 0x9f, 0xd3, 0x38, 0x17, 0x54, 0x60, + 0x1a, 0xdb, 0xfe, 0xbb, 0x02, 0x13, 0x1d, 0xee, 0x6c, 0xa3, 0xe7, 0x91, 0x79, 0xa8, 0x73, 0xf4, + 0x3c, 0x8c, 0x9a, 0xca, 0x92, 0xb2, 0x3c, 0x65, 0x64, 0x2b, 0xf2, 0x10, 0xea, 0x2c, 0xb2, 0x31, + 0xe2, 0xcd, 0xca, 0x52, 0x75, 0xb9, 0xb1, 0x7a, 0x47, 0x7b, 0xf5, 0x86, 0xb5, 0x2c, 0xa1, 0xf6, + 0x79, 0x82, 0x32, 0x32, 0xb0, 0xfa, 0xaf, 0x02, 0xe3, 0xd2, 0x42, 0x16, 0xa1, 0x61, 0x52, 0x61, + 0xed, 0x76, 0x6d, 0x0c, 0x98, 0x9f, 0x55, 0x03, 0x69, 0x7a, 0x90, 0x58, 0x88, 0x0a, 0x93, 0xdf, + 0xc6, 0x34, 0x10, 0xae, 0x38, 0x6c, 0x56, 0xa4, 0x37, 0x5f, 0x93, 0x0f, 0x61, 0x8a, 0xf2, 0xbd, + 0x6e, 0x18, 0xb9, 0x16, 0x36, 0xab, 0x4b, 0xca, 0x72, 0x63, 0xf5, 0x75, 0x2d, 0x65, 0x50, 0x4b, + 0x18, 0xd6, 0x32, 0x86, 0xb5, 0xfb, 0xcc, 0x0d, 0x8c, 0x49, 0xca, 0xf7, 0x9e, 0x24, 0xa1, 0x44, + 0x83, 0xeb, 0xb6, 0xcb, 0xa9, 0xe9, 0x61, 0x97, 0xc6, 0x82, 0x75, 0x23, 0x14, 0x6e, 0x84, 0xcd, + 0xda, 0x92, 0xb2, 0x3c, 0x69, 0x5c, 0xcb, 0x5c, 0x1b, 0xb1, 0x60, 0x86, 0x74, 0x90, 0x4f, 0x00, + 0xb0, 0x17, 0xba, 0x11, 0x15, 0x2e, 0x0b, 0x9a, 0xe3, 0xb2, 0x90, 0xaa, 0xa5, 0xdc, 0x6b, 0x7d, + 0xee, 0xb5, 0xa7, 0x7d, 0xee, 0x37, 0x6b, 0x2f, 0xfe, 0x5c, 0x54, 0x8c, 0x01, 0xcc, 0x5a, 0xe3, + 0xbb, 0x7f, 0x7e, 0xb9, 0x9d, 0x91, 0xd8, 0xbe, 0x07, 0x57, 0x32, 0x5a, 0x0c, 0xe4, 0x21, 0x0b, + 0x38, 0x92, 0xb7, 0x61, 0x36, 0x71, 0x76, 0x25, 0x3f, 0x5d, 0xd7, 0xe6, 0x4d, 0x65, 0xa9, 0xba, + 0x5c, 0x33, 0xa6, 0x13, 0xab, 0x64, 0xea, 0x53, 0x9b, 0xb7, 0x7f, 0xaa, 0xc2, 0xf5, 0x0e, 0x77, + 0xbe, 0x0c, 0x6d, 0x2a, 0x70, 0xbb, 0xef, 0xe1, 0x23, 0xd5, 0x7a, 0x0a, 0x13, 0xb1, 0x8c, 0xed, + 0xcb, 0xb5, 0x56, 0x42, 0xae, 0x62, 0x76, 0x2d, 0x35, 0x18, 0xfd, 0x54, 0xea, 0x0f, 0x15, 0xa8, + 0xa7, 0x36, 0xd2, 0x86, 0x99, 0x53, 0x6d, 0xcb, 0xfa, 0x35, 0xa3, 0x31, 0xd0, 0x35, 0x79, 0x13, + 0xa6, 0x03, 0x3c, 0xe8, 0x16, 0x44, 0x6c, 0x04, 0x78, 0xf0, 0x45, 0x5f, 0xc7, 0x75, 0x98, 0x49, + 0x42, 0x2e, 0xa0, 0x65, 0x02, 0xdf, 0xb8, 0xac, 0x9c, 0x8f, 0x60, 0x36, 0x29, 0x77, 0x09, 0x49, + 0x93, 0x36, 0x1f, 0x8e, 0x50, 0x75, 0x01, 0xde, 0x38, 0x83, 0xbd, 0xbe, 0xc2, 0xed, 0xaf, 0x81, + 0x74, 0xb8, 0x73, 0x9f, 0x06, 0x16, 0x7a, 0xb9, 0x7b, 0xa4, 0x72, 0x43, 0xc4, 0x56, 0x86, 0x88, + 0x3d, 0x5d, 0xfd, 0x26, 0xa8, 0xc3, 0xe9, 0xf3, 0xe2, 0xbf, 0x55, 0x61, 0xba, 0xc3, 0x9d, 0xcd, + 0xf8, 0xf0, 0x81, 0x1b, 0xa1, 0x25, 0xc8, 0x1c, 0x8c, 0x9b, 0xf1, 0x61, 0x5e, 0x36, 0x5d, 0x90, + 0xc7, 0x85, 0xe9, 0x5e, 0x2d, 0x71, 0x5c, 0xf2, 0x9c, 0x85, 0x11, 0xff, 0xbd, 0xd2, 0x1f, 0xf1, + 0x12, 0x7b, 0x39, 0x35, 0xe5, 0xd5, 0xe1, 0x29, 0x37, 0x5d, 0x3b, 0x3b, 0x19, 0xb5, 0x73, 0xa7, + 0xdc, 0x74, 0xed, 0x57, 0x1e, 0x8b, 0xf1, 0x51, 0xc7, 0xe2, 0x1e, 0xdc, 0x48, 0x43, 0x7c, 0x0c, + 0x44, 0xf7, 0x9b, 0x38, 0x72, 0xb9, 0xed, 0x5a, 0xf2, 0x7c, 0xd4, 0x65, 0x4b, 0xf3, 0x27, 0xee, + 0xc7, 0x03, 0x5e, 0xf2, 0x2e, 0x5c, 0x1b, 0x00, 0x46, 0x48, 0x39, 0x0b, 0x9a, 0x13, 0x12, 0x72, + 0xf5, 0xc4, 0x61, 0x48, 0x3b, 0xf9, 0x18, 0x66, 0x7d, 0xda, 0xeb, 0xee, 0x20, 0x76, 0xa9, 0xcf, + 0xe2, 0x40, 0x34, 0x27, 0xcf, 0xdb, 0xd2, 0xb4, 0x4f, 0x7b, 0x5b, 0x88, 0x1b, 0x32, 0x7c, 0x0d, + 0x12, 0xd9, 0x53, 0xc1, 0xda, 0xf3, 0x30, 0x37, 0x28, 0x41, 0xae, 0xf7, 0xcf, 0x8a, 0x3c, 0x6d, + 0x1b, 0xb6, 0xbd, 0xe1, 0x79, 0xec, 0x00, 0xed, 0xf4, 0x2e, 0xbd, 0x09, 0x53, 0x34, 0x16, 0xbb, + 0x2c, 0x4a, 0x68, 0x4e, 0x95, 0x3f, 0x31, 0x90, 0x05, 0x00, 0x93, 0x06, 0x7b, 0xd9, 0x4d, 0x9c, + 0x8e, 0xe9, 0x54, 0x62, 0x49, 0xc1, 0x6f, 0xc1, 0x8c, 0xed, 0xf2, 0xd0, 0xa3, 0x87, 0x59, 0x44, + 0xaa, 0xd3, 0x74, 0x66, 0xcc, 0x6f, 0x6b, 0xec, 0x85, 0x2c, 0xc0, 0x40, 0x48, 0xa9, 0x66, 0x8c, + 0x7c, 0xbd, 0x36, 0x9b, 0x34, 0x7e, 0x52, 0x2f, 0x3b, 0xb2, 0x85, 0x1e, 0xf3, 0x2d, 0x7c, 0x06, + 0xaf, 0x75, 0xb8, 0x63, 0xa0, 0xcf, 0xf6, 0xf1, 0x02, 0x9b, 0x98, 0x83, 0xf1, 0xc1, 0xfe, 0xd3, + 0x45, 0x7b, 0x11, 0x16, 0xce, 0x4c, 0x96, 0x57, 0x7b, 0x9e, 0x12, 0xf6, 0x88, 0xed, 0x6f, 0xa3, + 0xd8, 0x42, 0x7c, 0x42, 0x23, 0xea, 0xf3, 0x73, 0x6a, 0xad, 0x43, 0x6d, 0x07, 0xe5, 0xdd, 0x9a, + 0x08, 0xf8, 0xce, 0x79, 0xc3, 0x92, 0xa7, 0x35, 0x24, 0x6c, 0x04, 0x1f, 0x85, 0x16, 0xfa, 0x1d, + 0xae, 0xfe, 0x57, 0x87, 0x6a, 0x87, 0x3b, 0xe4, 0x19, 0xd4, 0xe4, 0x0b, 0x7d, 0xab, 0xe4, 0xcb, + 0xab, 0xea, 0x25, 0x03, 0xf3, 0xb7, 0xe8, 0x7b, 0x05, 0xae, 0x0e, 0x3d, 0x31, 0x77, 0x2f, 0xf1, + 0x72, 0xa8, 0x1f, 0x5d, 0x02, 0x94, 0xb7, 0xf1, 0x5c, 0x81, 0x2b, 0xc5, 0xeb, 0xb2, 0xcc, 0x85, + 0x54, 0xc0, 0xa8, 0x6b, 0x17, 0xc7, 0xe4, 0x3d, 0x30, 0x98, 0x3a, 0xb9, 0x33, 0xdf, 0xbb, 0xc8, + 0x6d, 0xa8, 0xbe, 0x7f, 0x91, 0xe8, 0x53, 0x9b, 0x2e, 0x4e, 0x6d, 0x99, 0x4d, 0x17, 0x30, 0xa5, + 0x36, 0x3d, 0x62, 0xf2, 0xc8, 0x8f, 0x0a, 0x90, 0x33, 0xe6, 0xee, 0x83, 0x12, 0x29, 0x87, 0x61, + 0xea, 0xfa, 0xa5, 0x60, 0xa7, 0x08, 0x29, 0x4e, 0x65, 0x19, 0x42, 0x0a, 0x98, 0x52, 0x84, 0x8c, + 0x18, 0xbd, 0xcd, 0x67, 0xbf, 0x1e, 0xb5, 0x94, 0x97, 0x47, 0x2d, 0xe5, 0xaf, 0xa3, 0x96, 0xf2, + 0xe2, 0xb8, 0x35, 0xf6, 0xf2, 0xb8, 0x35, 0xf6, 0xc7, 0x71, 0x6b, 0xec, 0xab, 0x2d, 0xc7, 0x15, + 0xbb, 0xb1, 0xa9, 0x59, 0xcc, 0xd7, 0x65, 0xfe, 0x3b, 0x01, 0x8a, 0x03, 0x16, 0xed, 0x65, 0x2b, + 0x0f, 0x6d, 0x07, 0x23, 0xbd, 0x37, 0xe2, 0x03, 0x5c, 0x1c, 0x86, 0xc8, 0x93, 0xbf, 0x01, 0x75, + 0xf9, 0xc5, 0x71, 0xf7, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x41, 0x41, 0x22, 0xc9, 0x68, 0x0c, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1840,10 +1837,15 @@ 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))) + if m.MaxFeeAmount != nil { + { + size, err := m.MaxFeeAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x42 } @@ -2319,8 +2321,8 @@ func (m *MsgBuyDirect_Order) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.MaxFeeAmount) - if l > 0 { + if m.MaxFeeAmount != nil { + l = m.MaxFeeAmount.Size() n += 1 + l + sovTx(uint64(l)) } return n @@ -3704,7 +3706,7 @@ func (m *MsgBuyDirect_Order) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MaxFeeAmount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -3714,23 +3716,27 @@ func (m *MsgBuyDirect_Order) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.MaxFeeAmount = string(dAtA[iNdEx:postIndex]) + if m.MaxFeeAmount == nil { + m.MaxFeeAmount = &types.Coin{} + } + if err := m.MaxFeeAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex From c4a1c8142d2ea86b46a7f48d6688846f4c844b6c Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 28 Feb 2024 15:20:06 -0500 Subject: [PATCH 20/27] proto gen --- api/regen/data/v1/query.pulsar.go | 94 +++--- api/regen/data/v2/query.pulsar.go | 94 +++--- api/regen/ecocredit/basket/v1/query.pulsar.go | 48 +-- .../ecocredit/marketplace/v1/query.pulsar.go | 42 +-- .../ecocredit/marketplace/v1/tx.pulsar.go | 299 +++++++++--------- api/regen/ecocredit/v1/query.pulsar.go | 211 ++++++------ x/ecocredit/marketplace/types/v1/tx.pb.go | 180 ++++++----- 7 files changed, 494 insertions(+), 474 deletions(-) diff --git a/api/regen/data/v1/query.pulsar.go b/api/regen/data/v1/query.pulsar.go index b106f7cd99..a0287b6c26 100644 --- a/api/regen/data/v1/query.pulsar.go +++ b/api/regen/data/v1/query.pulsar.go @@ -13729,11 +13729,11 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x6f, 0x72, 0x42, 0x79, 0x49, 0x52, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x42, 0x79, 0x49, 0x52, 0x49, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x12, - 0x22, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, - 0x72, 0x69, 0x7d, 0x5a, 0x22, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2f, 0x69, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x5a, + 0x22, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, + 0x31, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2f, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, + 0x72, 0x69, 0x7d, 0x12, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0xad, 0x01, 0x0a, 0x0c, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, @@ -13741,11 +13741,11 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x44, 0x22, 0x1d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2d, 0x62, 0x79, 0x2d, 0x68, 0x61, - 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x22, 0x1b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2f, - 0x68, 0x61, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0xee, 0x01, 0x0a, 0x16, 0x41, 0x74, 0x74, 0x65, + 0x93, 0x02, 0x44, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x1d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2d, + 0x62, 0x79, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x12, 0xee, 0x01, 0x0a, 0x16, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, @@ -13754,12 +13754,12 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x67, 0x12, 0x32, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, - 0x31, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2d, 0x62, - 0x79, 0x2d, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x7d, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, + 0x67, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x7d, 0x12, 0x32, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x11, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x52, 0x49, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, @@ -13768,11 +13768,11 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x52, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x53, 0x12, 0x28, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x5a, 0x27, 0x12, - 0x25, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x69, 0x72, 0x69, + 0x93, 0x02, 0x53, 0x5a, 0x27, 0x12, 0x25, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0x28, 0x2f, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0xca, 0x01, 0x0a, 0x12, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, @@ -13781,21 +13781,21 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4f, 0x22, 0x23, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x5a, 0x25, 0x22, 0x20, + 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, 0x2a, 0x5a, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x23, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, - 0x3a, 0x01, 0x2a, 0x12, 0x9c, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x68, + 0x61, 0x73, 0x68, 0x12, 0x9c, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x3f, 0x12, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x64, - 0x7d, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, + 0x93, 0x02, 0x3f, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x49, 0x52, 0x49, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, @@ -13803,11 +13803,11 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x1a, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x49, 0x52, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x25, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2d, 0x62, - 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x5a, 0x24, 0x12, 0x22, 0x2f, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, + 0xe4, 0x93, 0x02, 0x4d, 0x5a, 0x24, 0x12, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, + 0x2f, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0x25, 0x2f, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, @@ -13815,11 +13815,11 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x22, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, - 0x2d, 0x62, 0x79, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x5a, 0x22, 0x22, 0x1d, 0x2f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, 0x5a, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, + 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x12, 0xb6, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x55, 0x52, 0x4c, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, @@ -13827,11 +13827,11 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x47, 0x22, 0x1f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x75, - 0x72, 0x6c, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x22, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x47, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x72, 0x73, 0x2f, 0x75, 0x72, 0x6c, 0x22, 0x1f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, - 0x73, 0x2f, 0x75, 0x72, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x95, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, + 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x75, 0x72, 0x6c, 0x12, 0x95, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x49, 0x52, 0x49, 0x54, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x49, 0x52, 0x49, 0x54, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, @@ -13847,10 +13847,10 @@ var file_regen_data_v1_query_proto_rawDesc = []byte{ 0x68, 0x54, 0x6f, 0x49, 0x52, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x54, 0x6f, 0x49, 0x52, 0x49, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, - 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x2d, 0x74, 0x6f, 0x2d, 0x69, - 0x72, 0x69, 0x3a, 0x01, 0x2a, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, + 0x2a, 0x22, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x2d, 0x74, + 0x6f, 0x2d, 0x69, 0x72, 0x69, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, diff --git a/api/regen/data/v2/query.pulsar.go b/api/regen/data/v2/query.pulsar.go index bf23e4dab2..c26cad98bb 100644 --- a/api/regen/data/v2/query.pulsar.go +++ b/api/regen/data/v2/query.pulsar.go @@ -13729,11 +13729,11 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x6f, 0x72, 0x42, 0x79, 0x49, 0x52, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x42, 0x79, 0x49, 0x52, 0x49, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x12, - 0x22, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, - 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, - 0x72, 0x69, 0x7d, 0x5a, 0x22, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2f, 0x69, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x5a, + 0x22, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, + 0x32, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2f, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, + 0x72, 0x69, 0x7d, 0x12, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0xad, 0x01, 0x0a, 0x0c, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, @@ -13741,11 +13741,11 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x44, 0x22, 0x1d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2d, 0x62, 0x79, 0x2d, 0x68, 0x61, - 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x22, 0x1b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x2f, - 0x68, 0x61, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, 0xee, 0x01, 0x0a, 0x16, 0x41, 0x74, 0x74, 0x65, + 0x93, 0x02, 0x44, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x1d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x2d, + 0x62, 0x79, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x12, 0xee, 0x01, 0x0a, 0x16, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, @@ -13754,12 +13754,12 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x67, 0x12, 0x32, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, - 0x32, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2d, 0x62, - 0x79, 0x2d, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x7d, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, + 0x67, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x7d, 0x12, 0x32, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x2f, 0x7b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x11, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x52, 0x49, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, @@ -13768,11 +13768,11 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x52, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x53, 0x12, 0x28, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x5a, 0x27, 0x12, - 0x25, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x69, 0x72, 0x69, + 0x93, 0x02, 0x53, 0x5a, 0x27, 0x12, 0x25, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0x28, 0x2f, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0xca, 0x01, 0x0a, 0x12, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, @@ -13781,21 +13781,21 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4f, 0x22, 0x23, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x5a, 0x25, 0x22, 0x20, + 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, 0x2a, 0x5a, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x23, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, - 0x3a, 0x01, 0x2a, 0x12, 0x9c, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x68, + 0x61, 0x73, 0x68, 0x12, 0x9c, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x23, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x3f, 0x12, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x64, - 0x7d, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, + 0x93, 0x02, 0x3f, 0x5a, 0x1f, 0x12, 0x1d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x49, 0x52, 0x49, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, @@ -13803,11 +13803,11 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x1a, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x49, 0x52, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x53, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x25, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2d, 0x62, - 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x5a, 0x24, 0x12, 0x22, 0x2f, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, + 0xe4, 0x93, 0x02, 0x4d, 0x5a, 0x24, 0x12, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, + 0x2f, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0x25, 0x2f, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x72, 0x69, 0x2f, 0x7b, 0x69, 0x72, 0x69, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, @@ -13815,11 +13815,11 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x22, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, - 0x2d, 0x62, 0x79, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x5a, 0x22, 0x22, 0x1d, 0x2f, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, 0x5a, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, + 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, + 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, - 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x3a, 0x01, 0x2a, 0x12, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x12, 0xb6, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x55, 0x52, 0x4c, 0x12, 0x29, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, @@ -13827,11 +13827,11 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x42, 0x79, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x47, 0x22, 0x1f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, - 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x75, - 0x72, 0x6c, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x22, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x47, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x72, 0x73, 0x2f, 0x75, 0x72, 0x6c, 0x22, 0x1f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, - 0x73, 0x2f, 0x75, 0x72, 0x6c, 0x3a, 0x01, 0x2a, 0x12, 0x95, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, + 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x75, 0x72, 0x6c, 0x12, 0x95, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x49, 0x52, 0x49, 0x54, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x49, 0x52, 0x49, 0x54, 0x6f, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, @@ -13847,10 +13847,10 @@ var file_regen_data_v2_query_proto_rawDesc = []byte{ 0x68, 0x54, 0x6f, 0x49, 0x52, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x48, 0x61, 0x73, 0x68, 0x54, 0x6f, 0x49, 0x52, 0x49, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, - 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x32, 0x2f, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x2d, 0x74, 0x6f, 0x2d, 0x69, - 0x72, 0x69, 0x3a, 0x01, 0x2a, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, + 0x2a, 0x22, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, + 0x32, 0x2f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x2d, 0x74, + 0x6f, 0x2d, 0x69, 0x72, 0x69, 0x42, 0xb5, 0x01, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x32, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2d, 0x6e, 0x65, 0x74, 0x77, diff --git a/api/regen/ecocredit/basket/v1/query.pulsar.go b/api/regen/ecocredit/basket/v1/query.pulsar.go index dbc4d63fa6..baca20c0b8 100644 --- a/api/regen/ecocredit/basket/v1/query.pulsar.go +++ b/api/regen/ecocredit/basket/v1/query.pulsar.go @@ -7146,12 +7146,12 @@ var file_regen_ecocredit_basket_v1_query_proto_rawDesc = []byte{ 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x67, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, - 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x7b, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x5a, 0x33, 0x12, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x62, 0x61, 0x73, 0x6b, - 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x62, + 0xd3, 0xe4, 0x93, 0x02, 0x67, 0x5a, 0x33, 0x12, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, + 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x73, + 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x62, 0x61, 0x73, + 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x7b, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x96, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x73, 0x6b, 0x65, @@ -7170,15 +7170,15 @@ var file_regen_ecocredit_basket_v1_query_proto_rawDesc = []byte{ 0x36, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x12, - 0x39, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, - 0x65, 0x74, 0x2d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x73, - 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x5a, 0x3c, 0x12, 0x3a, 0x2f, 0x72, - 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x62, - 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x73, - 0x2f, 0x7b, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x9a, 0x02, 0x0a, 0x0d, 0x42, 0x61, 0x73, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x5a, + 0x3c, 0x12, 0x3a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, + 0x73, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x39, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, + 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, + 0x2d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x73, 0x6b, 0x65, + 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x9a, 0x02, 0x0a, 0x0d, 0x42, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x6b, @@ -7187,15 +7187,15 @@ var file_regen_ecocredit_basket_v1_query_proto_rawDesc = []byte{ 0x69, 0x74, 0x2e, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x94, - 0x01, 0x12, 0x46, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, - 0x73, 0x6b, 0x65, 0x74, 0x2d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x62, 0x61, - 0x73, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x7b, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x5a, 0x4a, 0x12, 0x48, 0x2f, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x62, 0x61, - 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x73, 0x2f, - 0x7b, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, + 0x01, 0x5a, 0x4a, 0x12, 0x48, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, + 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, + 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x46, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, + 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, + 0x2d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, + 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x9f, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x46, 0x65, 0x65, 0x12, 0x30, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x31, 0x2e, diff --git a/api/regen/ecocredit/marketplace/v1/query.pulsar.go b/api/regen/ecocredit/marketplace/v1/query.pulsar.go index f0e7e3862d..b23abb8206 100644 --- a/api/regen/ecocredit/marketplace/v1/query.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/query.pulsar.go @@ -6548,14 +6548,14 @@ var file_regen_ecocredit_marketplace_v1_query_proto_rawDesc = []byte{ 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x12, 0x3a, 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, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x2d, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x7d, 0x5a, 0x3d, 0x12, 0x3b, 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, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x2d, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7b, 0x5a, 0x3d, 0x12, 0x3b, 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, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x2d, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x3a, 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, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x2d, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x2f, 0x7b, 0x73, 0x65, 0x6c, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb2, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 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, @@ -6577,14 +6577,14 @@ var file_regen_ecocredit_marketplace_v1_query_proto_rawDesc = []byte{ 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x87, 0x01, 0x12, 0x42, 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, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x2d, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x7b, 0x62, 0x61, - 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x5a, 0x41, 0x12, 0x3f, 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, 0x2f, 0x73, 0x65, - 0x6c, 0x6c, 0x2d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, + 0xd3, 0xe4, 0x93, 0x02, 0x87, 0x01, 0x5a, 0x41, 0x12, 0x3f, 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, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x2d, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x7b, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x42, 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, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x2d, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x9d, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x42, 0x79, 0x53, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x3e, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, @@ -6595,14 +6595,14 @@ var file_regen_ecocredit_marketplace_v1_query_proto_rawDesc = []byte{ 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x42, 0x79, 0x53, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x85, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7f, 0x12, 0x3e, - 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, 0x2f, - 0x73, 0x65, 0x6c, 0x6c, 0x2d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x73, - 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x7b, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x7d, 0x5a, 0x3d, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x85, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7f, 0x5a, 0x3d, 0x12, 0x3b, 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, 0x2f, 0x73, 0x65, 0x6c, 0x6c, 0x2d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x73, 0x65, + 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x7b, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x7d, 0x12, 0x3e, 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, 0x2f, 0x73, + 0x65, 0x6c, 0x6c, 0x2d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x7b, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x0d, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x39, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, diff --git a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go index 48f16558e4..ef081c6d13 100644 --- a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go @@ -3,7 +3,6 @@ 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" @@ -4907,8 +4906,8 @@ func (x *fastReflection_MsgBuyDirect_Order) Range(f func(protoreflect.FieldDescr return } } - if x.MaxFeeAmount != "" { - value := protoreflect.ValueOfString(x.MaxFeeAmount) + if x.MaxFeeAmount != nil { + value := protoreflect.ValueOfMessage(x.MaxFeeAmount.ProtoReflect()) if !f(fd_MsgBuyDirect_Order_max_fee_amount, value) { return } @@ -4941,7 +4940,7 @@ func (x *fastReflection_MsgBuyDirect_Order) Has(fd protoreflect.FieldDescriptor) 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 != "" + return x.MaxFeeAmount != nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -4971,7 +4970,7 @@ func (x *fastReflection_MsgBuyDirect_Order) Clear(fd protoreflect.FieldDescripto case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.retirement_reason": x.RetirementReason = "" case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": - x.MaxFeeAmount = "" + x.MaxFeeAmount = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5008,7 +5007,7 @@ func (x *fastReflection_MsgBuyDirect_Order) Get(descriptor protoreflect.FieldDes return protoreflect.ValueOfString(value) case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": value := x.MaxFeeAmount - return protoreflect.ValueOfString(value) + return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5042,7 +5041,7 @@ func (x *fastReflection_MsgBuyDirect_Order) Set(fd protoreflect.FieldDescriptor, 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) + x.MaxFeeAmount = value.Message().Interface().(*v1beta1.Coin) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5068,6 +5067,11 @@ func (x *fastReflection_MsgBuyDirect_Order) Mutable(fd protoreflect.FieldDescrip x.BidPrice = new(v1beta1.Coin) } return protoreflect.ValueOfMessage(x.BidPrice.ProtoReflect()) + case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount": + if x.MaxFeeAmount == nil { + x.MaxFeeAmount = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.MaxFeeAmount.ProtoReflect()) case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.sell_order_id": panic(fmt.Errorf("field sell_order_id of message regen.ecocredit.marketplace.v1.MsgBuyDirect.Order is not mutable")) case "regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.quantity": @@ -5078,8 +5082,6 @@ 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")) @@ -5107,7 +5109,8 @@ func (x *fastReflection_MsgBuyDirect_Order) NewField(fd protoreflect.FieldDescri 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("") + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order")) @@ -5199,8 +5202,8 @@ 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 { + if x.MaxFeeAmount != nil { + l = options.Size(x.MaxFeeAmount) n += 1 + l + runtime.Sov(uint64(l)) } if x.unknownFields != nil { @@ -5232,10 +5235,17 @@ 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))) + if x.MaxFeeAmount != nil { + encoded, err := options.Marshal(x.MaxFeeAmount) + 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] = 0x42 } @@ -5513,7 +5523,7 @@ func (x *fastReflection_MsgBuyDirect_Order) ProtoMethods() *protoiface.Methods { 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 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow @@ -5523,23 +5533,27 @@ func (x *fastReflection_MsgBuyDirect_Order) ProtoMethods() *protoiface.Methods { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength } if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.MaxFeeAmount = string(dAtA[iNdEx:postIndex]) + if x.MaxFeeAmount == nil { + x.MaxFeeAmount = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.MaxFeeAmount); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } iNdEx = postIndex default: iNdEx = preIndex @@ -9332,11 +9346,10 @@ type MsgBuyDirect_Order struct { // 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. + // Fees are always paid in the same denomination as the bid price. // // Since Revision 3 - MaxFeeAmount string `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` + MaxFeeAmount *v1beta1.Coin `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` } func (x *MsgBuyDirect_Order) Reset() { @@ -9401,11 +9414,11 @@ func (x *MsgBuyDirect_Order) GetRetirementReason() string { return "" } -func (x *MsgBuyDirect_Order) GetMaxFeeAmount() string { +func (x *MsgBuyDirect_Order) GetMaxFeeAmount() *v1beta1.Coin { if x != nil { return x.MaxFeeAmount } - return "" + return nil } var File_regen_ecocredit_marketplace_v1_tx_proto protoreflect.FileDescriptor @@ -9419,103 +9432,102 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_rawDesc = []byte{ 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, 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, 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, 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, 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, + 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, 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, 0xd5, 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, 0xd6, 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, 0x3f, 0x0a, 0x0e, 0x6d, + 0x61, 0x78, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 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, 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, @@ -9670,25 +9682,26 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_depIdxs = []int32{ 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 + 18, // 9: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount:type_name -> cosmos.base.v1beta1.Coin + 0, // 10: regen.ecocredit.marketplace.v1.Msg.Sell:input_type -> regen.ecocredit.marketplace.v1.MsgSell + 2, // 11: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:input_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders + 4, // 12: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:input_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrder + 6, // 13: regen.ecocredit.marketplace.v1.Msg.BuyDirect:input_type -> regen.ecocredit.marketplace.v1.MsgBuyDirect + 8, // 14: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenom + 10, // 15: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenom + 12, // 16: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:input_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParams + 1, // 17: regen.ecocredit.marketplace.v1.Msg.Sell:output_type -> regen.ecocredit.marketplace.v1.MsgSellResponse + 3, // 18: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:output_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrdersResponse + 5, // 19: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:output_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrderResponse + 7, // 20: regen.ecocredit.marketplace.v1.Msg.BuyDirect:output_type -> regen.ecocredit.marketplace.v1.MsgBuyDirectResponse + 9, // 21: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenomResponse + 11, // 22: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse + 13, // 23: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:output_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse + 17, // [17:24] is the sub-list for method output_type + 10, // [10:17] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_regen_ecocredit_marketplace_v1_tx_proto_init() } diff --git a/api/regen/ecocredit/v1/query.pulsar.go b/api/regen/ecocredit/v1/query.pulsar.go index b552a26042..30d5d73ff3 100644 --- a/api/regen/ecocredit/v1/query.pulsar.go +++ b/api/regen/ecocredit/v1/query.pulsar.go @@ -3,6 +3,10 @@ package ecocreditv1 import ( fmt "fmt" + io "io" + reflect "reflect" + sync "sync" + runtime "github.com/cosmos/cosmos-proto/runtime" v1beta1 "github.com/cosmos/cosmos-sdk/api/cosmos/base/query/v1beta1" v1beta11 "github.com/cosmos/cosmos-sdk/api/cosmos/base/v1beta1" @@ -11,9 +15,6 @@ import ( protoiface "google.golang.org/protobuf/runtime/protoiface" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" - io "io" - reflect "reflect" - sync "sync" ) var ( @@ -33178,23 +33179,23 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x12, 0x2c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x7d, 0x5a, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x7d, + 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x5a, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x65, 0x73, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x7d, 0x12, 0x2c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2d, + 0x62, 0x79, 0x2d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x7d, 0x12, 0xae, 0x01, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x25, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x50, 0x12, 0x24, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x5a, 0x28, 0x12, 0x26, 0x2f, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, + 0x50, 0x5a, 0x28, 0x12, 0x26, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x24, 0x2f, 0x72, 0x65, + 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, + 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xd3, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, @@ -33202,13 +33203,13 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x1a, 0x2d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x66, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x12, 0x2c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x2d, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x5a, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, + 0x66, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x5a, 0x30, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, + 0x7d, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x2d, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, @@ -33225,16 +33226,16 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x96, 0x01, - 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x62, - 0x79, 0x2d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, - 0x64, 0x7d, 0x5a, 0x2f, 0x12, 0x2d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, + 0x5a, 0x2f, 0x12, 0x2d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, + 0x7d, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, - 0x69, 0x64, 0x7d, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x87, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x74, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x87, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x35, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, @@ -33243,13 +33244,13 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x2d, 0x69, 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x7d, 0x5a, 0x3a, 0x12, 0x38, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, - 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x69, + 0x7f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x79, 0x5a, 0x3a, 0x12, 0x38, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x2d, 0x69, 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x7d, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x69, 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xd9, 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, @@ -33258,12 +33259,12 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x79, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x12, - 0x2d, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x62, 0x79, - 0x2d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x7d, 0x5a, 0x2c, - 0x12, 0x2a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x61, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5d, 0x5a, + 0x2c, 0x12, 0x2a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x7d, 0x12, 0x2d, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x7b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, @@ -33271,11 +33272,11 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x57, 0x12, 0x28, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x5a, 0x2b, 0x12, - 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x93, 0x02, 0x57, 0x5a, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, + 0x12, 0x28, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x81, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, @@ -33292,12 +33293,12 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x12, 0x2e, 0x2f, - 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x73, - 0x73, 0x75, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x7d, 0x5a, 0x2d, 0x12, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x5a, 0x2d, 0x12, 0x2b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x69, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x7d, 0x12, 0x2e, 0x2f, 0x72, + 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, + 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x2f, 0x7b, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x7d, 0x12, 0xda, 0x01, 0x0a, 0x0e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, @@ -33306,12 +33307,12 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x2f, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, + 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x61, 0x5a, 0x2e, 0x12, 0x2c, 0x2f, 0x72, 0x65, 0x67, + 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x5a, 0x2e, 0x12, 0x2c, 0x2f, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, - 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xe8, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x30, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, @@ -33320,12 +33321,12 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x1a, 0x31, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x12, 0x33, 0x2f, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, - 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, - 0x5a, 0x32, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, + 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x69, 0x5a, 0x32, 0x12, 0x30, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, + 0x33, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb4, 0x01, 0x0a, 0x05, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, @@ -33333,11 +33334,11 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x12, 0x27, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x5a, 0x2b, - 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, + 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x5a, 0x2b, 0x12, 0x29, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x7d, 0x12, 0x27, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x98, 0x02, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, @@ -33345,18 +33346,18 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb9, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0xb2, 0x01, 0x12, 0x33, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, - 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x5a, 0x3d, 0x12, 0x3b, 0x2f, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, - 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x5a, 0x3c, 0x12, 0x3a, 0x2f, 0x72, 0x65, 0x67, - 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x7d, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x08, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x93, 0x02, 0xb2, 0x01, 0x5a, 0x3d, 0x12, 0x3b, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, + 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x7d, 0x5a, 0x3c, 0x12, 0x3a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, + 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x7d, 0x12, 0x33, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x7b, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x7b, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0x8f, 0x01, 0x0a, 0x08, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, @@ -33373,37 +33374,37 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x42, 0x79, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x12, 0x33, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x7b, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x5a, 0x34, 0x12, 0x32, - 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x5a, 0x34, 0x12, 0x32, 0x2f, 0x72, 0x65, 0x67, 0x65, + 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x33, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2d, 0x62, 0x79, 0x2d, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x7d, 0x12, 0xb2, 0x01, 0x0a, 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, + 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x5a, 0x1e, 0x12, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, + 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x20, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6c, 0x6c, 0x2d, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x5a, 0x1e, 0x12, 0x1c, 0x2f, 0x72, 0x65, 0x67, 0x65, - 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0xbf, 0x01, 0x0a, 0x06, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x12, 0x28, 0x2f, 0x72, 0x65, - 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x5a, 0x32, 0x12, 0x30, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, - 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x7d, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x72, + 0x6e, 0x73, 0x65, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x5a, 0x32, 0x12, 0x30, 0x2f, + 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, + 0x28, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x2f, 0x7b, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, @@ -33418,22 +33419,22 @@ var file_regen_ecocredit_v1_query_proto_rawDesc = []byte{ 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x88, 0x02, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, - 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0xd0, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x02, + 0x01, 0x12, 0xd0, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x63, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2d, 0x74, 0x79, - 0x70, 0x65, 0x2f, 0x7b, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x7d, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, + 0x63, 0x5a, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0x2e, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2f, 0x65, 0x63, 0x6f, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x2d, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x7b, 0x61, 0x62, 0x62, 0x72, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x15, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x2e, 0x65, 0x63, 0x6f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, diff --git a/x/ecocredit/marketplace/types/v1/tx.pb.go b/x/ecocredit/marketplace/types/v1/tx.pb.go index 365f971e5a..50e94b6b53 100644 --- a/x/ecocredit/marketplace/types/v1/tx.pb.go +++ b/x/ecocredit/marketplace/types/v1/tx.pb.go @@ -6,7 +6,6 @@ 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" @@ -579,11 +578,10 @@ type MsgBuyDirect_Order struct { // 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. + // Fees are always paid in the same denomination as the bid price. // // Since Revision 3 - MaxFeeAmount string `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` + MaxFeeAmount *types.Coin `protobuf:"bytes,8,opt,name=max_fee_amount,json=maxFeeAmount,proto3" json:"max_fee_amount,omitempty"` } func (m *MsgBuyDirect_Order) Reset() { *m = MsgBuyDirect_Order{} } @@ -661,11 +659,11 @@ func (m *MsgBuyDirect_Order) GetRetirementReason() string { return "" } -func (m *MsgBuyDirect_Order) GetMaxFeeAmount() string { +func (m *MsgBuyDirect_Order) GetMaxFeeAmount() *types.Coin { if m != nil { return m.MaxFeeAmount } - return "" + return nil } // MsgBuyDirectResponse is the Msg/BuyDirect response type. @@ -1035,75 +1033,74 @@ func init() { } var fileDescriptor_68c9b4e4b7fcb584 = []byte{ - // 1078 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xcf, 0x6f, 0xdc, 0x44, - 0x14, 0xae, 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, 0xfe, 0x02, 0x0e, 0xfc, 0x11, 0x08, 0x2e, 0x15, 0x27, 0x6e, - 0xa0, 0x44, 0x82, 0x1b, 0x67, 0x8e, 0xc8, 0xe3, 0x59, 0x67, 0xe3, 0xcd, 0x36, 0xce, 0xde, 0xf2, - 0x7e, 0x7c, 0xef, 0xbd, 0xf9, 0xbe, 0x79, 0xe3, 0x0d, 0xdc, 0x8a, 0xd0, 0xc5, 0xd0, 0x40, 0x9b, - 0xda, 0x11, 0x3a, 0x1e, 0x37, 0x02, 0x12, 0xed, 0x21, 0xef, 0xf8, 0xc4, 0x46, 0x63, 0x7f, 0xc5, - 0xe0, 0x5d, 0xbd, 0x13, 0x51, 0x4e, 0xd5, 0x86, 0x48, 0xd4, 0xb3, 0x44, 0xbd, 0x2f, 0x51, 0xdf, - 0x5f, 0xd1, 0x1a, 0x36, 0x65, 0x01, 0x65, 0x46, 0x9b, 0xb0, 0x04, 0xd8, 0x46, 0x4e, 0x56, 0x0c, - 0x9b, 0x7a, 0x61, 0x8a, 0xd7, 0xae, 0xcb, 0x78, 0xc0, 0xdc, 0xa4, 0x6e, 0xc0, 0x5c, 0x19, 0xb8, - 0x91, 0x06, 0x2c, 0x61, 0x19, 0xa9, 0x21, 0x43, 0xb3, 0x2e, 0x75, 0x69, 0xea, 0x4f, 0xfe, 0x92, - 0xde, 0x05, 0x97, 0x52, 0xd7, 0x47, 0x43, 0x58, 0xed, 0x78, 0xc7, 0xe0, 0x5e, 0x80, 0x8c, 0x93, - 0xa0, 0x23, 0x13, 0x6e, 0x9f, 0x73, 0x26, 0xc6, 0x09, 0xc7, 0x34, 0xb7, 0xf9, 0x77, 0x09, 0xc6, - 0x5b, 0xcc, 0xdd, 0x46, 0xdf, 0x57, 0xe7, 0xa0, 0xca, 0xd0, 0xf7, 0x31, 0xaa, 0x2b, 0x8b, 0xca, - 0xd2, 0xa4, 0x29, 0x2d, 0xf5, 0x21, 0x54, 0x69, 0xe4, 0x60, 0xc4, 0xea, 0xa5, 0xc5, 0xf2, 0x52, - 0x6d, 0x75, 0x59, 0x7f, 0x3d, 0x17, 0xba, 0x2c, 0xa8, 0x7f, 0x9a, 0xa0, 0x4c, 0x09, 0xd6, 0xfe, - 0x55, 0x60, 0x4c, 0x78, 0xd4, 0x05, 0xa8, 0xb5, 0x09, 0xb7, 0x77, 0x2d, 0x07, 0x43, 0x1a, 0xc8, - 0x6e, 0x20, 0x5c, 0x0f, 0x12, 0x8f, 0xaa, 0xc1, 0xc4, 0xd7, 0x31, 0x09, 0xb9, 0xc7, 0x0f, 0xeb, - 0x25, 0x11, 0xcd, 0x6c, 0xf5, 0x43, 0x98, 0x24, 0x6c, 0xcf, 0xea, 0x44, 0x9e, 0x8d, 0xf5, 0xf2, - 0xa2, 0xb2, 0x54, 0x5b, 0xbd, 0xa1, 0x4b, 0xda, 0x12, 0xf2, 0x75, 0x49, 0xbe, 0x7e, 0x9f, 0x7a, - 0xa1, 0x39, 0x41, 0xd8, 0xde, 0xd3, 0x24, 0x55, 0xd5, 0xe1, 0x9a, 0xe3, 0x31, 0xd2, 0xf6, 0xd1, - 0x22, 0x31, 0xa7, 0x56, 0x84, 0xdc, 0x8b, 0xb0, 0x5e, 0x59, 0x54, 0x96, 0x26, 0xcc, 0xab, 0x32, - 0xb4, 0x11, 0x73, 0x6a, 0x8a, 0x80, 0xfa, 0x31, 0x00, 0x76, 0x3b, 0x5e, 0x44, 0xb8, 0x47, 0xc3, - 0xfa, 0x98, 0x68, 0xa4, 0xe9, 0x29, 0xf7, 0x7a, 0x8f, 0x7b, 0xfd, 0x59, 0x8f, 0xfb, 0xcd, 0xca, - 0xcb, 0x3f, 0x17, 0x14, 0xb3, 0x0f, 0xb3, 0x56, 0xfb, 0xe6, 0x9f, 0x9f, 0x6e, 0x4b, 0x12, 0x9b, - 0xf7, 0xe0, 0xb2, 0xa4, 0xc5, 0x44, 0xd6, 0xa1, 0x21, 0x43, 0xf5, 0x1d, 0x98, 0x49, 0x82, 0x96, - 0xe0, 0xc7, 0xf2, 0x1c, 0x56, 0x57, 0x16, 0xcb, 0x4b, 0x15, 0x73, 0x2a, 0xf1, 0x0a, 0xa6, 0x1e, - 0x3b, 0xac, 0xf9, 0x43, 0x19, 0xae, 0xb5, 0x98, 0xfb, 0x79, 0xc7, 0x21, 0x1c, 0xb7, 0x7b, 0x11, - 0x36, 0x54, 0xad, 0x67, 0x30, 0x1e, 0x8b, 0xdc, 0x9e, 0x5c, 0x6b, 0x05, 0xe4, 0xca, 0x57, 0xd7, - 0x53, 0x87, 0xd9, 0x2b, 0xa5, 0x7d, 0x57, 0x82, 0x6a, 0xea, 0x53, 0x9b, 0x30, 0x7d, 0x6a, 0x6c, - 0xd1, 0xbf, 0x62, 0xd6, 0xfa, 0xa6, 0x56, 0xdf, 0x82, 0xa9, 0x10, 0x0f, 0xac, 0x9c, 0x88, 0xb5, - 0x10, 0x0f, 0x3e, 0xeb, 0xe9, 0xb8, 0x0e, 0xd3, 0x49, 0xca, 0x05, 0xb4, 0x4c, 0xe0, 0x1b, 0xa3, - 0xca, 0xf9, 0x08, 0x66, 0x92, 0x76, 0x23, 0x48, 0x9a, 0x8c, 0xf9, 0x70, 0x88, 0xaa, 0xf3, 0xf0, - 0xe6, 0x19, 0xec, 0xf5, 0x14, 0x6e, 0x7e, 0x09, 0x6a, 0x8b, 0xb9, 0xf7, 0x49, 0x68, 0xa3, 0x9f, - 0x85, 0x87, 0x2a, 0x37, 0x40, 0x6c, 0x69, 0x80, 0xd8, 0xd3, 0xdd, 0x6f, 0x82, 0x36, 0x58, 0x3e, - 0x6b, 0xfe, 0x6b, 0x19, 0xa6, 0x5a, 0xcc, 0xdd, 0x8c, 0x0f, 0x1f, 0x78, 0x11, 0xda, 0x5c, 0x9d, - 0x85, 0xb1, 0x76, 0x7c, 0x98, 0xb5, 0x4d, 0x0d, 0xf5, 0x49, 0x6e, 0xbb, 0x57, 0x0b, 0x5c, 0x97, - 0xac, 0x66, 0x6e, 0xc5, 0x7f, 0x2b, 0xf5, 0x56, 0xbc, 0xc0, 0x59, 0x4e, 0x6d, 0x79, 0x79, 0x70, - 0xcb, 0xdb, 0x9e, 0x23, 0x6f, 0x46, 0xe5, 0xdc, 0x2d, 0x6f, 0x7b, 0xce, 0x6b, 0xaf, 0xc5, 0xd8, - 0xb0, 0x6b, 0x71, 0x0f, 0xae, 0xa7, 0x29, 0x01, 0x86, 0xdc, 0xfa, 0x2a, 0x8e, 0x3c, 0xe6, 0x78, - 0xb6, 0xb8, 0x1f, 0x55, 0x31, 0xd2, 0xdc, 0x49, 0xf8, 0x49, 0x5f, 0x54, 0x7d, 0x0f, 0xae, 0xf6, - 0x01, 0x23, 0x24, 0x8c, 0x86, 0xf5, 0x71, 0x01, 0xb9, 0x72, 0x12, 0x30, 0x85, 0x5f, 0xbd, 0x0b, - 0x33, 0x01, 0xe9, 0x5a, 0x3b, 0x88, 0x16, 0x09, 0x68, 0x1c, 0xf2, 0xfa, 0x44, 0x92, 0xb9, 0x39, - 0xf3, 0xfb, 0xcf, 0xcb, 0x20, 0x4f, 0xf5, 0x38, 0xe4, 0xe6, 0x54, 0x40, 0xba, 0x5b, 0x88, 0x1b, - 0x22, 0x67, 0x0d, 0x12, 0xad, 0x53, 0x95, 0x9a, 0x73, 0x30, 0xdb, 0xcf, 0x7b, 0x26, 0xf2, 0x8f, - 0x8a, 0xb8, 0x62, 0x1b, 0x8e, 0xb3, 0xe1, 0xfb, 0xf4, 0x00, 0x9d, 0xf4, 0x01, 0xbd, 0x09, 0x93, - 0x24, 0xe6, 0xbb, 0x34, 0x4a, 0xb8, 0x4d, 0xe5, 0x3e, 0x71, 0xa8, 0xf3, 0x00, 0x6d, 0x12, 0xee, - 0xc9, 0xe7, 0x37, 0xdd, 0xcd, 0xc9, 0xc4, 0x93, 0x82, 0xdf, 0x86, 0x69, 0xc7, 0x63, 0x1d, 0x9f, - 0x1c, 0xca, 0x8c, 0x54, 0x9c, 0x29, 0xe9, 0xcc, 0x9e, 0x68, 0xec, 0x76, 0x68, 0x88, 0x21, 0x17, - 0xfa, 0x4c, 0x9b, 0x99, 0xbd, 0x36, 0x93, 0x0c, 0x7e, 0xd2, 0x4f, 0xde, 0xd3, 0xdc, 0x8c, 0xd9, - 0x11, 0x3e, 0x81, 0x37, 0x5a, 0xcc, 0x35, 0x31, 0xa0, 0xfb, 0x78, 0x81, 0x43, 0xcc, 0xc2, 0x58, - 0xff, 0xfc, 0xa9, 0xd1, 0x5c, 0x80, 0xf9, 0x33, 0x8b, 0x65, 0xdd, 0x5e, 0xa4, 0x84, 0x3d, 0xa2, - 0xfb, 0xdb, 0xc8, 0xb7, 0x10, 0x9f, 0x92, 0x88, 0x04, 0xec, 0x9c, 0x5e, 0xeb, 0x50, 0xd9, 0x41, - 0xf1, 0xa0, 0x26, 0x17, 0xf1, 0xdd, 0xf3, 0x36, 0x24, 0x2b, 0x6b, 0x0a, 0xd8, 0x10, 0x3e, 0x72, - 0x23, 0xf4, 0x26, 0x5c, 0xfd, 0xaf, 0x0a, 0xe5, 0x16, 0x73, 0xd5, 0xe7, 0x50, 0x11, 0x9f, 0xe5, - 0x5b, 0x05, 0x3f, 0xb7, 0x9a, 0x51, 0x30, 0x31, 0xfb, 0x00, 0x7d, 0xab, 0xc0, 0x95, 0x81, 0xef, - 0xca, 0x9d, 0x11, 0x3e, 0x17, 0xda, 0x47, 0x23, 0x80, 0xb2, 0x31, 0x5e, 0x28, 0x70, 0x39, 0xff, - 0x46, 0x16, 0x79, 0x85, 0x72, 0x18, 0x6d, 0xed, 0xe2, 0x98, 0x6c, 0x06, 0x0a, 0x93, 0x27, 0x0f, - 0xe5, 0xfb, 0x17, 0x79, 0x02, 0xb5, 0xbb, 0x17, 0xc9, 0x3e, 0x75, 0xe8, 0xfc, 0xd6, 0x16, 0x39, - 0x74, 0x0e, 0x53, 0xe8, 0xd0, 0x43, 0x36, 0x4f, 0xfd, 0x5e, 0x01, 0xf5, 0x8c, 0xbd, 0xfb, 0xa0, - 0x40, 0xc9, 0x41, 0x98, 0xb6, 0x3e, 0x12, 0xec, 0x14, 0x21, 0xf9, 0xad, 0x2c, 0x42, 0x48, 0x0e, - 0x53, 0x88, 0x90, 0x21, 0xab, 0xb7, 0xf9, 0xfc, 0x97, 0xa3, 0x86, 0xf2, 0xea, 0xa8, 0xa1, 0xfc, - 0x75, 0xd4, 0x50, 0x5e, 0x1e, 0x37, 0x2e, 0xbd, 0x3a, 0x6e, 0x5c, 0xfa, 0xe3, 0xb8, 0x71, 0xe9, - 0x8b, 0x2d, 0xd7, 0xe3, 0xbb, 0x71, 0x5b, 0xb7, 0x69, 0x60, 0x88, 0xfa, 0xcb, 0x21, 0xf2, 0x03, - 0x1a, 0xed, 0x49, 0xcb, 0x47, 0xc7, 0xc5, 0xc8, 0xe8, 0x0e, 0xf9, 0xd5, 0xcd, 0x0f, 0x3b, 0xc8, - 0x92, 0x7f, 0x0b, 0xaa, 0xe2, 0x67, 0xc6, 0x9d, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x07, 0xda, - 0x17, 0x15, 0x78, 0x0c, 0x00, 0x00, + // 1058 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x41, 0x6f, 0xdc, 0x44, + 0x14, 0x8e, 0x77, 0x37, 0x9b, 0xe4, 0x6d, 0x92, 0xb6, 0xd3, 0x90, 0x2e, 0xa6, 0xd9, 0x84, 0x05, + 0xa9, 0xa1, 0x50, 0x5b, 0x49, 0x81, 0x4a, 0x41, 0x11, 0x24, 0x6d, 0x53, 0x51, 0xb4, 0xa2, 0x38, + 0xe5, 0x82, 0x84, 0xb6, 0x63, 0xfb, 0xc5, 0x31, 0xb1, 0x3d, 0xc6, 0x33, 0x4e, 0x36, 0xc7, 0x22, + 0x24, 0x24, 0x4e, 0x3d, 0x73, 0xe4, 0x17, 0xf0, 0x33, 0x38, 0xf6, 0x02, 0xe2, 0x06, 0x4a, 0x24, + 0xb8, 0x71, 0xe6, 0x88, 0x3c, 0xf6, 0x3a, 0x1b, 0x6f, 0xb6, 0x71, 0x72, 0xdb, 0x79, 0xef, 0x7d, + 0xef, 0xbd, 0xf9, 0xbe, 0x79, 0x33, 0x5e, 0xb8, 0x15, 0xa1, 0x83, 0x81, 0x8e, 0x16, 0xb3, 0x22, + 0xb4, 0x5d, 0xa1, 0xfb, 0x34, 0xda, 0x43, 0x11, 0x7a, 0xd4, 0x42, 0x7d, 0x7f, 0x45, 0x17, 0x3d, + 0x2d, 0x8c, 0x98, 0x60, 0xa4, 0x25, 0x03, 0xb5, 0x3c, 0x50, 0x1b, 0x08, 0xd4, 0xf6, 0x57, 0xd4, + 0x96, 0xc5, 0xb8, 0xcf, 0xb8, 0x6e, 0x52, 0x9e, 0x00, 0x4d, 0x14, 0x74, 0x45, 0xb7, 0x98, 0x1b, + 0xa4, 0x78, 0xf5, 0x46, 0xe6, 0xf7, 0xb9, 0x93, 0xe4, 0xf5, 0xb9, 0x93, 0x39, 0xe6, 0x1c, 0xe6, + 0x30, 0xf9, 0x53, 0x4f, 0x7e, 0x65, 0xd6, 0x45, 0x87, 0x31, 0xc7, 0x43, 0x5d, 0xae, 0xcc, 0x78, + 0x47, 0x17, 0xae, 0x8f, 0x5c, 0x50, 0x3f, 0xcc, 0x02, 0x6e, 0x9f, 0xd3, 0x38, 0x17, 0x54, 0x60, + 0x1a, 0xdb, 0xfe, 0xbb, 0x02, 0x13, 0x1d, 0xee, 0x6c, 0xa3, 0xe7, 0x91, 0x79, 0xa8, 0x73, 0xf4, + 0x3c, 0x8c, 0x9a, 0xca, 0x92, 0xb2, 0x3c, 0x65, 0x64, 0x2b, 0xf2, 0x10, 0xea, 0x2c, 0xb2, 0x31, + 0xe2, 0xcd, 0xca, 0x52, 0x75, 0xb9, 0xb1, 0x7a, 0x47, 0x7b, 0xf5, 0x86, 0xb5, 0x2c, 0xa1, 0xf6, + 0x79, 0x82, 0x32, 0x32, 0xb0, 0xfa, 0xaf, 0x02, 0xe3, 0xd2, 0x42, 0x16, 0xa1, 0x61, 0x52, 0x61, + 0xed, 0x76, 0x6d, 0x0c, 0x98, 0x9f, 0x55, 0x03, 0x69, 0x7a, 0x90, 0x58, 0x88, 0x0a, 0x93, 0xdf, + 0xc6, 0x34, 0x10, 0xae, 0x38, 0x6c, 0x56, 0xa4, 0x37, 0x5f, 0x93, 0x0f, 0x61, 0x8a, 0xf2, 0xbd, + 0x6e, 0x18, 0xb9, 0x16, 0x36, 0xab, 0x4b, 0xca, 0x72, 0x63, 0xf5, 0x75, 0x2d, 0x65, 0x50, 0x4b, + 0x18, 0xd6, 0x32, 0x86, 0xb5, 0xfb, 0xcc, 0x0d, 0x8c, 0x49, 0xca, 0xf7, 0x9e, 0x24, 0xa1, 0x44, + 0x83, 0xeb, 0xb6, 0xcb, 0xa9, 0xe9, 0x61, 0x97, 0xc6, 0x82, 0x75, 0x23, 0x14, 0x6e, 0x84, 0xcd, + 0xda, 0x92, 0xb2, 0x3c, 0x69, 0x5c, 0xcb, 0x5c, 0x1b, 0xb1, 0x60, 0x86, 0x74, 0x90, 0x4f, 0x00, + 0xb0, 0x17, 0xba, 0x11, 0x15, 0x2e, 0x0b, 0x9a, 0xe3, 0xb2, 0x90, 0xaa, 0xa5, 0xdc, 0x6b, 0x7d, + 0xee, 0xb5, 0xa7, 0x7d, 0xee, 0x37, 0x6b, 0x2f, 0xfe, 0x5c, 0x54, 0x8c, 0x01, 0xcc, 0x5a, 0xe3, + 0xbb, 0x7f, 0x7e, 0xb9, 0x9d, 0x91, 0xd8, 0xbe, 0x07, 0x57, 0x32, 0x5a, 0x0c, 0xe4, 0x21, 0x0b, + 0x38, 0x92, 0xb7, 0x61, 0x36, 0x71, 0x76, 0x25, 0x3f, 0x5d, 0xd7, 0xe6, 0x4d, 0x65, 0xa9, 0xba, + 0x5c, 0x33, 0xa6, 0x13, 0xab, 0x64, 0xea, 0x53, 0x9b, 0xb7, 0x7f, 0xaa, 0xc2, 0xf5, 0x0e, 0x77, + 0xbe, 0x0c, 0x6d, 0x2a, 0x70, 0xbb, 0xef, 0xe1, 0x23, 0xd5, 0x7a, 0x0a, 0x13, 0xb1, 0x8c, 0xed, + 0xcb, 0xb5, 0x56, 0x42, 0xae, 0x62, 0x76, 0x2d, 0x35, 0x18, 0xfd, 0x54, 0xea, 0x0f, 0x15, 0xa8, + 0xa7, 0x36, 0xd2, 0x86, 0x99, 0x53, 0x6d, 0xcb, 0xfa, 0x35, 0xa3, 0x31, 0xd0, 0x35, 0x79, 0x13, + 0xa6, 0x03, 0x3c, 0xe8, 0x16, 0x44, 0x6c, 0x04, 0x78, 0xf0, 0x45, 0x5f, 0xc7, 0x75, 0x98, 0x49, + 0x42, 0x2e, 0xa0, 0x65, 0x02, 0xdf, 0xb8, 0xac, 0x9c, 0x8f, 0x60, 0x36, 0x29, 0x77, 0x09, 0x49, + 0x93, 0x36, 0x1f, 0x8e, 0x50, 0x75, 0x01, 0xde, 0x38, 0x83, 0xbd, 0xbe, 0xc2, 0xed, 0xaf, 0x81, + 0x74, 0xb8, 0x73, 0x9f, 0x06, 0x16, 0x7a, 0xb9, 0x7b, 0xa4, 0x72, 0x43, 0xc4, 0x56, 0x86, 0x88, + 0x3d, 0x5d, 0xfd, 0x26, 0xa8, 0xc3, 0xe9, 0xf3, 0xe2, 0xbf, 0x55, 0x61, 0xba, 0xc3, 0x9d, 0xcd, + 0xf8, 0xf0, 0x81, 0x1b, 0xa1, 0x25, 0xc8, 0x1c, 0x8c, 0x9b, 0xf1, 0x61, 0x5e, 0x36, 0x5d, 0x90, + 0xc7, 0x85, 0xe9, 0x5e, 0x2d, 0x71, 0x5c, 0xf2, 0x9c, 0x85, 0x11, 0xff, 0xbd, 0xd2, 0x1f, 0xf1, + 0x12, 0x7b, 0x39, 0x35, 0xe5, 0xd5, 0xe1, 0x29, 0x37, 0x5d, 0x3b, 0x3b, 0x19, 0xb5, 0x73, 0xa7, + 0xdc, 0x74, 0xed, 0x57, 0x1e, 0x8b, 0xf1, 0x51, 0xc7, 0xe2, 0x1e, 0xdc, 0x48, 0x43, 0x7c, 0x0c, + 0x44, 0xf7, 0x9b, 0x38, 0x72, 0xb9, 0xed, 0x5a, 0xf2, 0x7c, 0xd4, 0x65, 0x4b, 0xf3, 0x27, 0xee, + 0xc7, 0x03, 0x5e, 0xf2, 0x2e, 0x5c, 0x1b, 0x00, 0x46, 0x48, 0x39, 0x0b, 0x9a, 0x13, 0x12, 0x72, + 0xf5, 0xc4, 0x61, 0x48, 0x3b, 0xf9, 0x18, 0x66, 0x7d, 0xda, 0xeb, 0xee, 0x20, 0x76, 0xa9, 0xcf, + 0xe2, 0x40, 0x34, 0x27, 0xcf, 0xdb, 0xd2, 0xb4, 0x4f, 0x7b, 0x5b, 0x88, 0x1b, 0x32, 0x7c, 0x0d, + 0x12, 0xd9, 0x53, 0xc1, 0xda, 0xf3, 0x30, 0x37, 0x28, 0x41, 0xae, 0xf7, 0xcf, 0x8a, 0x3c, 0x6d, + 0x1b, 0xb6, 0xbd, 0xe1, 0x79, 0xec, 0x00, 0xed, 0xf4, 0x2e, 0xbd, 0x09, 0x53, 0x34, 0x16, 0xbb, + 0x2c, 0x4a, 0x68, 0x4e, 0x95, 0x3f, 0x31, 0x90, 0x05, 0x00, 0x93, 0x06, 0x7b, 0xd9, 0x4d, 0x9c, + 0x8e, 0xe9, 0x54, 0x62, 0x49, 0xc1, 0x6f, 0xc1, 0x8c, 0xed, 0xf2, 0xd0, 0xa3, 0x87, 0x59, 0x44, + 0xaa, 0xd3, 0x74, 0x66, 0xcc, 0x6f, 0x6b, 0xec, 0x85, 0x2c, 0xc0, 0x40, 0x48, 0xa9, 0x66, 0x8c, + 0x7c, 0xbd, 0x36, 0x9b, 0x34, 0x7e, 0x52, 0x2f, 0x3b, 0xb2, 0x85, 0x1e, 0xf3, 0x2d, 0x7c, 0x06, + 0xaf, 0x75, 0xb8, 0x63, 0xa0, 0xcf, 0xf6, 0xf1, 0x02, 0x9b, 0x98, 0x83, 0xf1, 0xc1, 0xfe, 0xd3, + 0x45, 0x7b, 0x11, 0x16, 0xce, 0x4c, 0x96, 0x57, 0x7b, 0x9e, 0x12, 0xf6, 0x88, 0xed, 0x6f, 0xa3, + 0xd8, 0x42, 0x7c, 0x42, 0x23, 0xea, 0xf3, 0x73, 0x6a, 0xad, 0x43, 0x6d, 0x07, 0xe5, 0xdd, 0x9a, + 0x08, 0xf8, 0xce, 0x79, 0xc3, 0x92, 0xa7, 0x35, 0x24, 0x6c, 0x04, 0x1f, 0x85, 0x16, 0xfa, 0x1d, + 0xae, 0xfe, 0x57, 0x87, 0x6a, 0x87, 0x3b, 0xe4, 0x19, 0xd4, 0xe4, 0x0b, 0x7d, 0xab, 0xe4, 0xcb, + 0xab, 0xea, 0x25, 0x03, 0xf3, 0xb7, 0xe8, 0x7b, 0x05, 0xae, 0x0e, 0x3d, 0x31, 0x77, 0x2f, 0xf1, + 0x72, 0xa8, 0x1f, 0x5d, 0x02, 0x94, 0xb7, 0xf1, 0x5c, 0x81, 0x2b, 0xc5, 0xeb, 0xb2, 0xcc, 0x85, + 0x54, 0xc0, 0xa8, 0x6b, 0x17, 0xc7, 0xe4, 0x3d, 0x30, 0x98, 0x3a, 0xb9, 0x33, 0xdf, 0xbb, 0xc8, + 0x6d, 0xa8, 0xbe, 0x7f, 0x91, 0xe8, 0x53, 0x9b, 0x2e, 0x4e, 0x6d, 0x99, 0x4d, 0x17, 0x30, 0xa5, + 0x36, 0x3d, 0x62, 0xf2, 0xc8, 0x8f, 0x0a, 0x90, 0x33, 0xe6, 0xee, 0x83, 0x12, 0x29, 0x87, 0x61, + 0xea, 0xfa, 0xa5, 0x60, 0xa7, 0x08, 0x29, 0x4e, 0x65, 0x19, 0x42, 0x0a, 0x98, 0x52, 0x84, 0x8c, + 0x18, 0xbd, 0xcd, 0x67, 0xbf, 0x1e, 0xb5, 0x94, 0x97, 0x47, 0x2d, 0xe5, 0xaf, 0xa3, 0x96, 0xf2, + 0xe2, 0xb8, 0x35, 0xf6, 0xf2, 0xb8, 0x35, 0xf6, 0xc7, 0x71, 0x6b, 0xec, 0xab, 0x2d, 0xc7, 0x15, + 0xbb, 0xb1, 0xa9, 0x59, 0xcc, 0xd7, 0x65, 0xfe, 0x3b, 0x01, 0x8a, 0x03, 0x16, 0xed, 0x65, 0x2b, + 0x0f, 0x6d, 0x07, 0x23, 0xbd, 0x37, 0xe2, 0x03, 0x5c, 0x1c, 0x86, 0xc8, 0x93, 0xbf, 0x01, 0x75, + 0xf9, 0xc5, 0x71, 0xf7, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x41, 0x41, 0x22, 0xc9, 0x68, 0x0c, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1840,10 +1837,15 @@ 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))) + if m.MaxFeeAmount != nil { + { + size, err := m.MaxFeeAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x42 } @@ -2319,8 +2321,8 @@ func (m *MsgBuyDirect_Order) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.MaxFeeAmount) - if l > 0 { + if m.MaxFeeAmount != nil { + l = m.MaxFeeAmount.Size() n += 1 + l + sovTx(uint64(l)) } return n @@ -3704,7 +3706,7 @@ func (m *MsgBuyDirect_Order) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MaxFeeAmount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -3714,23 +3716,27 @@ func (m *MsgBuyDirect_Order) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.MaxFeeAmount = string(dAtA[iNdEx:postIndex]) + if m.MaxFeeAmount == nil { + m.MaxFeeAmount = &types.Coin{} + } + if err := m.MaxFeeAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex From b1a7ad233d9a64df09464a547fc7b170fb2ec596 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 28 Feb 2024 16:34:36 -0500 Subject: [PATCH 21/27] add seller and buyer fee data to EventBuyDirect --- .../ecocredit/marketplace/v1/events.pulsar.go | 431 ++++++++++++++++-- .../ecocredit/marketplace/v1/events.proto | 16 + .../keeper/features/msg_buy_direct.feature | 52 ++- .../marketplace/keeper/msg_buy_direct.go | 6 - .../marketplace/keeper/msg_buy_direct_test.go | 28 +- x/ecocredit/marketplace/keeper/utils.go | 16 +- x/ecocredit/marketplace/types/v1/events.pb.go | 274 ++++++++++- 7 files changed, 746 insertions(+), 77 deletions(-) diff --git a/api/regen/ecocredit/marketplace/v1/events.pulsar.go b/api/regen/ecocredit/marketplace/v1/events.pulsar.go index 187f77ada6..996f3b97de 100644 --- a/api/regen/ecocredit/marketplace/v1/events.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/events.pulsar.go @@ -4,6 +4,7 @@ package marketplacev1 import ( fmt "fmt" runtime "github.com/cosmos/cosmos-proto/runtime" + v1beta1 "github.com/cosmos/cosmos-sdk/api/cosmos/base/v1beta1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoiface "google.golang.org/protobuf/runtime/protoiface" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -417,14 +418,22 @@ func (x *fastReflection_EventSell) ProtoMethods() *protoiface.Methods { } var ( - md_EventBuyDirect protoreflect.MessageDescriptor - fd_EventBuyDirect_sell_order_id protoreflect.FieldDescriptor + md_EventBuyDirect protoreflect.MessageDescriptor + fd_EventBuyDirect_sell_order_id protoreflect.FieldDescriptor + fd_EventBuyDirect_seller protoreflect.FieldDescriptor + fd_EventBuyDirect_seller_fee_paid protoreflect.FieldDescriptor + fd_EventBuyDirect_buyer protoreflect.FieldDescriptor + fd_EventBuyDirect_buyer_fee_paid protoreflect.FieldDescriptor ) func init() { file_regen_ecocredit_marketplace_v1_events_proto_init() md_EventBuyDirect = File_regen_ecocredit_marketplace_v1_events_proto.Messages().ByName("EventBuyDirect") fd_EventBuyDirect_sell_order_id = md_EventBuyDirect.Fields().ByName("sell_order_id") + fd_EventBuyDirect_seller = md_EventBuyDirect.Fields().ByName("seller") + fd_EventBuyDirect_seller_fee_paid = md_EventBuyDirect.Fields().ByName("seller_fee_paid") + fd_EventBuyDirect_buyer = md_EventBuyDirect.Fields().ByName("buyer") + fd_EventBuyDirect_buyer_fee_paid = md_EventBuyDirect.Fields().ByName("buyer_fee_paid") } var _ protoreflect.Message = (*fastReflection_EventBuyDirect)(nil) @@ -498,6 +507,30 @@ func (x *fastReflection_EventBuyDirect) Range(f func(protoreflect.FieldDescripto return } } + if x.Seller != "" { + value := protoreflect.ValueOfString(x.Seller) + if !f(fd_EventBuyDirect_seller, value) { + return + } + } + if x.SellerFeePaid != nil { + value := protoreflect.ValueOfMessage(x.SellerFeePaid.ProtoReflect()) + if !f(fd_EventBuyDirect_seller_fee_paid, value) { + return + } + } + if x.Buyer != "" { + value := protoreflect.ValueOfString(x.Buyer) + if !f(fd_EventBuyDirect_buyer, value) { + return + } + } + if x.BuyerFeePaid != nil { + value := protoreflect.ValueOfMessage(x.BuyerFeePaid.ProtoReflect()) + if !f(fd_EventBuyDirect_buyer_fee_paid, value) { + return + } + } } // Has reports whether a field is populated. @@ -515,6 +548,14 @@ func (x *fastReflection_EventBuyDirect) Has(fd protoreflect.FieldDescriptor) boo switch fd.FullName() { case "regen.ecocredit.marketplace.v1.EventBuyDirect.sell_order_id": return x.SellOrderId != uint64(0) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller": + return x.Seller != "" + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller_fee_paid": + return x.SellerFeePaid != nil + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer": + return x.Buyer != "" + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer_fee_paid": + return x.BuyerFeePaid != nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.EventBuyDirect")) @@ -533,6 +574,14 @@ func (x *fastReflection_EventBuyDirect) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { case "regen.ecocredit.marketplace.v1.EventBuyDirect.sell_order_id": x.SellOrderId = uint64(0) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller": + x.Seller = "" + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller_fee_paid": + x.SellerFeePaid = nil + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer": + x.Buyer = "" + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer_fee_paid": + x.BuyerFeePaid = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.EventBuyDirect")) @@ -552,6 +601,18 @@ func (x *fastReflection_EventBuyDirect) Get(descriptor protoreflect.FieldDescrip case "regen.ecocredit.marketplace.v1.EventBuyDirect.sell_order_id": value := x.SellOrderId return protoreflect.ValueOfUint64(value) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller": + value := x.Seller + return protoreflect.ValueOfString(value) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller_fee_paid": + value := x.SellerFeePaid + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer": + value := x.Buyer + return protoreflect.ValueOfString(value) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer_fee_paid": + value := x.BuyerFeePaid + return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.EventBuyDirect")) @@ -574,6 +635,14 @@ func (x *fastReflection_EventBuyDirect) Set(fd protoreflect.FieldDescriptor, val switch fd.FullName() { case "regen.ecocredit.marketplace.v1.EventBuyDirect.sell_order_id": x.SellOrderId = value.Uint() + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller": + x.Seller = value.Interface().(string) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller_fee_paid": + x.SellerFeePaid = value.Message().Interface().(*v1beta1.Coin) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer": + x.Buyer = value.Interface().(string) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer_fee_paid": + x.BuyerFeePaid = value.Message().Interface().(*v1beta1.Coin) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.EventBuyDirect")) @@ -594,8 +663,22 @@ func (x *fastReflection_EventBuyDirect) Set(fd protoreflect.FieldDescriptor, val // Mutable is a mutating operation and unsafe for concurrent use. func (x *fastReflection_EventBuyDirect) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller_fee_paid": + if x.SellerFeePaid == nil { + x.SellerFeePaid = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.SellerFeePaid.ProtoReflect()) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer_fee_paid": + if x.BuyerFeePaid == nil { + x.BuyerFeePaid = new(v1beta1.Coin) + } + return protoreflect.ValueOfMessage(x.BuyerFeePaid.ProtoReflect()) case "regen.ecocredit.marketplace.v1.EventBuyDirect.sell_order_id": panic(fmt.Errorf("field sell_order_id of message regen.ecocredit.marketplace.v1.EventBuyDirect is not mutable")) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller": + panic(fmt.Errorf("field seller of message regen.ecocredit.marketplace.v1.EventBuyDirect is not mutable")) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer": + panic(fmt.Errorf("field buyer of message regen.ecocredit.marketplace.v1.EventBuyDirect is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.EventBuyDirect")) @@ -611,6 +694,16 @@ func (x *fastReflection_EventBuyDirect) NewField(fd protoreflect.FieldDescriptor switch fd.FullName() { case "regen.ecocredit.marketplace.v1.EventBuyDirect.sell_order_id": return protoreflect.ValueOfUint64(uint64(0)) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller": + return protoreflect.ValueOfString("") + case "regen.ecocredit.marketplace.v1.EventBuyDirect.seller_fee_paid": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer": + return protoreflect.ValueOfString("") + case "regen.ecocredit.marketplace.v1.EventBuyDirect.buyer_fee_paid": + m := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.EventBuyDirect")) @@ -683,6 +776,22 @@ func (x *fastReflection_EventBuyDirect) ProtoMethods() *protoiface.Methods { if x.SellOrderId != 0 { n += 1 + runtime.Sov(uint64(x.SellOrderId)) } + l = len(x.Seller) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.SellerFeePaid != nil { + l = options.Size(x.SellerFeePaid) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Buyer) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.BuyerFeePaid != nil { + l = options.Size(x.BuyerFeePaid) + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -712,6 +821,48 @@ func (x *fastReflection_EventBuyDirect) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.BuyerFeePaid != nil { + encoded, err := options.Marshal(x.BuyerFeePaid) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x2a + } + if len(x.Buyer) > 0 { + i -= len(x.Buyer) + copy(dAtA[i:], x.Buyer) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Buyer))) + i-- + dAtA[i] = 0x22 + } + if x.SellerFeePaid != nil { + encoded, err := options.Marshal(x.SellerFeePaid) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + if len(x.Seller) > 0 { + i -= len(x.Seller) + copy(dAtA[i:], x.Seller) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Seller))) + i-- + dAtA[i] = 0x12 + } if x.SellOrderId != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.SellOrderId)) i-- @@ -785,6 +936,142 @@ func (x *fastReflection_EventBuyDirect) ProtoMethods() *protoiface.Methods { break } } + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Seller", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Seller = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SellerFeePaid", 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.SellerFeePaid == nil { + x.SellerFeePaid = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.SellerFeePaid); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Buyer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Buyer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BuyerFeePaid", 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.BuyerFeePaid == nil { + x.BuyerFeePaid = &v1beta1.Coin{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.BuyerFeePaid); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -2527,6 +2814,16 @@ type EventBuyDirect struct { // sell_order_id is the unique identifier of the sell order that credits were // purchased from. SellOrderId uint64 `protobuf:"varint,1,opt,name=sell_order_id,json=sellOrderId,proto3" json:"sell_order_id,omitempty"` + // seller is the address of the account that sold the credits. + Seller string `protobuf:"bytes,2,opt,name=seller,proto3" json:"seller,omitempty"` + // seller_fee_paid is the amount of coins paid by the seller + // to the marketplace as a fee for facilitating the sale. + SellerFeePaid *v1beta1.Coin `protobuf:"bytes,3,opt,name=seller_fee_paid,json=sellerFeePaid,proto3" json:"seller_fee_paid,omitempty"` + // buyer is the address of the account that purchased the credits. + Buyer string `protobuf:"bytes,4,opt,name=buyer,proto3" json:"buyer,omitempty"` + // buyer_fee_paid is the amount of coins paid by the buyer + // to the marketplace as a fee for facilitating the sale. + BuyerFeePaid *v1beta1.Coin `protobuf:"bytes,5,opt,name=buyer_fee_paid,json=buyerFeePaid,proto3" json:"buyer_fee_paid,omitempty"` } func (x *EventBuyDirect) Reset() { @@ -2556,6 +2853,34 @@ func (x *EventBuyDirect) GetSellOrderId() uint64 { return 0 } +func (x *EventBuyDirect) GetSeller() string { + if x != nil { + return x.Seller + } + return "" +} + +func (x *EventBuyDirect) GetSellerFeePaid() *v1beta1.Coin { + if x != nil { + return x.SellerFeePaid + } + return nil +} + +func (x *EventBuyDirect) GetBuyer() string { + if x != nil { + return x.Buyer + } + return "" +} + +func (x *EventBuyDirect) GetBuyerFeePaid() *v1beta1.Coin { + if x != nil { + return x.BuyerFeePaid + } + return nil +} + // EventUpdateSellOrder is an event emitted when a sell order is updated. type EventUpdateSellOrder struct { state protoimpl.MessageState @@ -2718,46 +3043,59 @@ var file_regen_ecocredit_marketplace_v1_events_proto_rawDesc = []byte{ 0x74, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 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, 0x22, 0x2f, 0x0a, + 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, 0x22, 0x2f, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x6c, 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, 0x22, 0x34, - 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, - 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, 0x22, 0x3a, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, - 0x22, 0x3a, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, - 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 0x22, 0x27, 0x0a, 0x0f, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x2f, 0x0a, 0x17, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x42, 0xa4, 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, 0x0b, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 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, + 0x04, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0xe6, + 0x01, 0x0a, 0x0e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x79, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 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, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x41, 0x0a, + 0x0f, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x64, + 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, 0x0d, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x65, 0x65, 0x50, 0x61, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x62, 0x75, 0x79, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0e, 0x62, 0x75, 0x79, 0x65, 0x72, 0x5f, + 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x62, 0x75, 0x79, 0x65, 0x72, + 0x46, 0x65, 0x65, 0x50, 0x61, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 0x22, 0x3a, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x53, 0x65, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 0x22, + 0x27, 0x0a, 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x2f, 0x0a, 0x17, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, + 0x6e, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x42, 0xa4, 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, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 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 ( @@ -2780,13 +3118,16 @@ var file_regen_ecocredit_marketplace_v1_events_proto_goTypes = []interface{}{ (*EventCancelSellOrder)(nil), // 3: regen.ecocredit.marketplace.v1.EventCancelSellOrder (*EventAllowDenom)(nil), // 4: regen.ecocredit.marketplace.v1.EventAllowDenom (*EventRemoveAllowedDenom)(nil), // 5: regen.ecocredit.marketplace.v1.EventRemoveAllowedDenom + (*v1beta1.Coin)(nil), // 6: cosmos.base.v1beta1.Coin } var file_regen_ecocredit_marketplace_v1_events_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 6, // 0: regen.ecocredit.marketplace.v1.EventBuyDirect.seller_fee_paid:type_name -> cosmos.base.v1beta1.Coin + 6, // 1: regen.ecocredit.marketplace.v1.EventBuyDirect.buyer_fee_paid:type_name -> cosmos.base.v1beta1.Coin + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } func init() { file_regen_ecocredit_marketplace_v1_events_proto_init() } diff --git a/proto/regen/ecocredit/marketplace/v1/events.proto b/proto/regen/ecocredit/marketplace/v1/events.proto index e5d6023579..a629b1a01c 100644 --- a/proto/regen/ecocredit/marketplace/v1/events.proto +++ b/proto/regen/ecocredit/marketplace/v1/events.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package regen.ecocredit.marketplace.v1; +import "cosmos/base/v1beta1/coin.proto"; + option go_package = "github.com/regen-network/regen-ledger/x/ecocredit/marketplace/types/v1"; // EventSell is an event emitted when a sell order is created. @@ -17,6 +19,20 @@ message EventBuyDirect { // sell_order_id is the unique identifier of the sell order that credits were // purchased from. uint64 sell_order_id = 1; + + // seller is the address of the account that sold the credits. + string seller = 2; + + // seller_fee_paid is the amount of coins paid by the seller + // to the marketplace as a fee for facilitating the sale. + cosmos.base.v1beta1.Coin seller_fee_paid = 3; + + // buyer is the address of the account that purchased the credits. + string buyer = 4; + + // buyer_fee_paid is the amount of coins paid by the buyer + // to the marketplace as a fee for facilitating the sale. + cosmos.base.v1beta1.Coin buyer_fee_paid = 5; } // EventUpdateSellOrder is an event emitted when a sell order is updated. diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index d6b689fdb4..bacfcd50a3 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -384,7 +384,17 @@ Feature: Msg/BuyDirect And expect event buy direct with properties """ { - "sell_order_id": 1 + "sell_order_id": 1, + "seller": "regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68", + "seller_fee_paid":{ + "amount": "0", + "denom": "regen" + }, + "buyer": "regen1depk54cuajgkzea6zpgkq36tnjwdzv4ak663u6", + "buyer_fee_paid":{ + "amount": "0", + "denom": "regen" + } } """ @@ -393,7 +403,9 @@ Feature: Msg/BuyDirect Given a credit type Scenario: fees go to fee pool - Given alice created a sell order with quantity "10" and ask price "10foo" + Given alice's address "regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68" + * bob's address "regen1depk54cuajgkzea6zpgkq36tnjwdzv4ak663u6" + * alice created a sell order with quantity "10" and ask price "10foo" * bob has bank balance "110foo" * alice has bank balance "0foo" * buyer fees are 0.1 and seller fees are 0.05 @@ -402,9 +414,27 @@ Feature: Msg/BuyDirect * expect alice bank balance "95foo" * expect bob bank balance "0foo" * expect fee pool balance "15foo" + And expect event buy direct with properties + """ + { + "sell_order_id": 1, + "seller": "regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68", + "seller_fee_paid":{ + "amount": "5", + "denom": "foo" + }, + "buyer": "regen1depk54cuajgkzea6zpgkq36tnjwdzv4ak663u6", + "buyer_fee_paid":{ + "amount": "10", + "denom": "foo" + } + } + """ Scenario: fees get burned - Given alice created a sell order with quantity "10" and ask price "20uregen" + Given alice's address "regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68" + * bob's address "regen1depk54cuajgkzea6zpgkq36tnjwdzv4ak663u6" + * alice created a sell order with quantity "10" and ask price "20uregen" * bob has bank balance "240uregen" * alice has bank balance "0regen" * buyer fees are 0.2 and seller fees are 0.1 @@ -413,6 +443,22 @@ Feature: Msg/BuyDirect * expect alice bank balance "180uregen" * expect bob bank balance "0uregen" * expect fee pool balance "0uregen" + And expect event buy direct with properties + """ + { + "sell_order_id": 1, + "seller": "regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68", + "seller_fee_paid":{ + "amount": "20", + "denom": "uregen" + }, + "buyer": "regen1depk54cuajgkzea6zpgkq36tnjwdzv4ak663u6", + "buyer_fee_paid":{ + "amount": "40", + "denom": "uregen" + } + } + """ Rule: max_fee_amount is enforced Scenario Outline: max_fee_amount is enforced diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct.go b/x/ecocredit/marketplace/keeper/msg_buy_direct.go index c95a56ecc0..7be39f457d 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct.go @@ -148,12 +148,6 @@ func (k Keeper) BuyDirect(ctx context.Context, req *types.MsgBuyDirect) (*types. }); err != nil { return nil, err } - - if err = sdkCtx.EventManager().EmitTypedEvent(&types.EventBuyDirect{ - SellOrderId: sellOrder.Id, - }); err != nil { - return nil, err - } } return &types.MsgBuyDirectResponse{}, nil diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go index 0990d7fedf..01b9e81684 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go @@ -8,9 +8,15 @@ import ( "github.com/cockroachdb/apd/v3" "github.com/gogo/protobuf/jsonpb" + gogoproto "github.com/gogo/protobuf/proto" "github.com/golang/mock/gomock" + "github.com/google/go-cmp/cmp" "github.com/regen-network/gocuke" "github.com/stretchr/testify/require" + abci "github.com/tendermint/tendermint/abci/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/testing/protocmp" "github.com/cosmos/cosmos-sdk/orm/types/ormerrors" sdk "github.com/cosmos/cosmos-sdk/types" @@ -549,14 +555,30 @@ func (s *buyDirectSuite) ExpectBatchSupply(a gocuke.DocString) { func (s *buyDirectSuite) ExpectEventBuyDirectWithProperties(a gocuke.DocString) { var event types.EventBuyDirect - err := json.Unmarshal([]byte(a.Content), &event) + err := jsonpb.UnmarshalString(a.Content, &event) require.NoError(s.t, err) - sdkEvent, found := testutil.GetEvent(&event, s.sdkCtx.EventManager().Events()) + s.expectEvent(&event) +} + +func (s *buyDirectSuite) expectEvent(expected gogoproto.Message) { + sdkEvent, found := testutil.GetEvent(expected, s.sdkCtx.EventManager().Events()) require.True(s.t, found) - err = testutil.MatchEvent(&event, sdkEvent) + foundEvt, err := sdk.ParseTypedEvent(abci.Event(sdkEvent)) require.NoError(s.t, err) + + msgType, err := protoregistry.GlobalTypes.FindMessageByName(protoreflect.FullName(gogoproto.MessageName(expected))) + require.NoError(s.t, err) + evt := msgType.New().Interface() + evt2 := msgType.New().Interface() + + require.NoError(s.t, gogoToProtoReflect(foundEvt, evt)) + require.NoError(s.t, gogoToProtoReflect(expected, evt2)) + + if diff := cmp.Diff(evt, evt2, protocmp.Transform()); diff != "" { + s.t.Fatalf("unexpected event diff: %s", diff) + } } func (s *buyDirectSuite) ExpectEventTransferWithProperties(a gocuke.DocString) { diff --git a/x/ecocredit/marketplace/keeper/utils.go b/x/ecocredit/marketplace/keeper/utils.go index 9322e2a5fb..36cc9b345b 100644 --- a/x/ecocredit/marketplace/keeper/utils.go +++ b/x/ecocredit/marketplace/keeper/utils.go @@ -13,6 +13,7 @@ import ( api "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/marketplace/v1" "github.com/regen-network/regen-ledger/types/v2/math" basetypes "github.com/regen-network/regen-ledger/x/ecocredit/v3/base/types/v1" + types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" "github.com/regen-network/regen-ledger/x/ecocredit/v3/server/utils" ) @@ -243,11 +244,24 @@ func (k Keeper) fillOrder(ctx context.Context, params fillOrderParams) error { return err } + seller := sdk.AccAddress(params.sellOrder.Seller) + // send seller payment from buyer account to seller account - return k.bankKeeper.SendCoins(sdkCtx, params.buyerAcc, params.sellOrder.Seller, sdk.NewCoins(sdk.NewCoin( + err = k.bankKeeper.SendCoins(sdkCtx, params.buyerAcc, seller, sdk.NewCoins(sdk.NewCoin( params.bankDenom, sellerPayment.SdkIntTrim(), ))) + if err != nil { + return err + } + + return sdkCtx.EventManager().EmitTypedEvent(&types.EventBuyDirect{ + SellOrderId: params.sellOrder.Id, + Buyer: params.buyerAcc.String(), + BuyerFeePaid: &sdk.Coin{Denom: params.bankDenom, Amount: params.buyerFee.SdkIntTrim()}, + Seller: seller.String(), + SellerFeePaid: &sdk.Coin{Denom: params.bankDenom, Amount: sellerFee.SdkIntTrim()}, + }) } // getSubTotalCost calculates the total cost of the buy order by multiplying the price per credit specified diff --git a/x/ecocredit/marketplace/types/v1/events.pb.go b/x/ecocredit/marketplace/types/v1/events.pb.go index 3e6068a1df..e39f658ce9 100644 --- a/x/ecocredit/marketplace/types/v1/events.pb.go +++ b/x/ecocredit/marketplace/types/v1/events.pb.go @@ -5,6 +5,7 @@ package v1 import ( fmt "fmt" + types "github.com/cosmos/cosmos-sdk/types" proto "github.com/gogo/protobuf/proto" io "io" math "math" @@ -73,6 +74,16 @@ type EventBuyDirect struct { // sell_order_id is the unique identifier of the sell order that credits were // purchased from. SellOrderId uint64 `protobuf:"varint,1,opt,name=sell_order_id,json=sellOrderId,proto3" json:"sell_order_id,omitempty"` + // seller is the address of the account that sold the credits. + Seller string `protobuf:"bytes,2,opt,name=seller,proto3" json:"seller,omitempty"` + // seller_fee_paid is the amount of coins paid by the seller + // to the marketplace as a fee for facilitating the sale. + SellerFeePaid *types.Coin `protobuf:"bytes,3,opt,name=seller_fee_paid,json=sellerFeePaid,proto3" json:"seller_fee_paid,omitempty"` + // buyer is the address of the account that purchased the credits. + Buyer string `protobuf:"bytes,4,opt,name=buyer,proto3" json:"buyer,omitempty"` + // buyer_fee_paid is the amount of coins paid by the buyer + // to the marketplace as a fee for facilitating the sale. + BuyerFeePaid *types.Coin `protobuf:"bytes,5,opt,name=buyer_fee_paid,json=buyerFeePaid,proto3" json:"buyer_fee_paid,omitempty"` } func (m *EventBuyDirect) Reset() { *m = EventBuyDirect{} } @@ -115,6 +126,34 @@ func (m *EventBuyDirect) GetSellOrderId() uint64 { return 0 } +func (m *EventBuyDirect) GetSeller() string { + if m != nil { + return m.Seller + } + return "" +} + +func (m *EventBuyDirect) GetSellerFeePaid() *types.Coin { + if m != nil { + return m.SellerFeePaid + } + return nil +} + +func (m *EventBuyDirect) GetBuyer() string { + if m != nil { + return m.Buyer + } + return "" +} + +func (m *EventBuyDirect) GetBuyerFeePaid() *types.Coin { + if m != nil { + return m.BuyerFeePaid + } + return nil +} + // EventUpdateSellOrder is an event emitted when a sell order is updated. type EventUpdateSellOrder struct { // sell_order_id is the unique identifier of the sell order that was updated. @@ -320,25 +359,32 @@ func init() { } var fileDescriptor_68b71b54d42cf1d9 = []byte{ - // 282 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0x3f, 0x4b, 0xc3, 0x40, - 0x1c, 0x86, 0x13, 0x50, 0xa1, 0x27, 0x2a, 0x84, 0x82, 0x4e, 0x87, 0x64, 0x51, 0x10, 0x73, 0x04, - 0x9d, 0xdc, 0xac, 0x55, 0x70, 0x12, 0x52, 0x5c, 0x5c, 0x6a, 0x7a, 0xf7, 0x12, 0x43, 0x2f, 0xb9, - 0x70, 0xb9, 0x5e, 0xed, 0xb7, 0xf0, 0x63, 0x39, 0x76, 0x74, 0x94, 0xe4, 0x8b, 0x48, 0xce, 0x3f, - 0xb8, 0x28, 0xed, 0x76, 0xef, 0x7b, 0xcf, 0xb3, 0xfc, 0x5e, 0x72, 0xa2, 0x91, 0xa1, 0x64, 0xe0, - 0x8a, 0x6b, 0x88, 0xdc, 0xb0, 0x22, 0xd5, 0x53, 0x98, 0x4a, 0xa6, 0x1c, 0xcc, 0xc6, 0x0c, 0x16, - 0xa5, 0xa9, 0xa3, 0x4a, 0x2b, 0xa3, 0x02, 0xea, 0xe0, 0xe8, 0x07, 0x8e, 0x7e, 0xc1, 0x91, 0x8d, - 0x43, 0x46, 0x7a, 0xd7, 0x1d, 0x3f, 0x82, 0x94, 0x41, 0x48, 0x76, 0x6a, 0x48, 0x39, 0x56, 0x5a, - 0x40, 0x8f, 0x73, 0x71, 0xe0, 0x1f, 0xfa, 0xc7, 0x1b, 0xc9, 0x76, 0x57, 0xde, 0x75, 0xdd, 0xad, - 0x08, 0xcf, 0xc9, 0xae, 0x13, 0x06, 0xb3, 0xc5, 0x30, 0xd7, 0xe0, 0x66, 0x25, 0xeb, 0x82, 0xf4, - 0x9d, 0x75, 0x5f, 0x89, 0xd4, 0x60, 0xf4, 0xfd, 0xb3, 0x96, 0x7b, 0x95, 0x96, 0x1c, 0x72, 0x3d, - 0xf7, 0x88, 0xec, 0x39, 0xf7, 0x52, 0x4a, 0x35, 0x1f, 0xa2, 0x54, 0x45, 0xd0, 0x27, 0x9b, 0xa2, - 0x7b, 0x38, 0xbc, 0x97, 0x7c, 0x86, 0x90, 0x91, 0x7d, 0x07, 0x26, 0x28, 0x94, 0x85, 0xc3, 0x21, - 0xfe, 0x11, 0x06, 0x8f, 0xaf, 0x0d, 0xf5, 0x97, 0x0d, 0xf5, 0xdf, 0x1b, 0xea, 0xbf, 0xb4, 0xd4, - 0x5b, 0xb6, 0xd4, 0x7b, 0x6b, 0xa9, 0xf7, 0x70, 0x93, 0xe5, 0xe6, 0x69, 0x36, 0x89, 0xb8, 0x2a, - 0x98, 0xbb, 0xfe, 0x69, 0x09, 0x33, 0x57, 0x7a, 0xfa, 0x95, 0x24, 0x44, 0x06, 0xcd, 0x9e, 0xff, - 0x58, 0xd0, 0x2c, 0x2a, 0xd4, 0xcc, 0xc6, 0x93, 0x2d, 0xb7, 0xe0, 0xd9, 0x47, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x33, 0xb9, 0xd9, 0xe6, 0xf0, 0x01, 0x00, 0x00, + // 392 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xc1, 0x8b, 0x13, 0x31, + 0x14, 0xc6, 0x1b, 0xdd, 0x5d, 0x68, 0xd6, 0xdd, 0x85, 0x61, 0xd1, 0xd1, 0x43, 0x28, 0x73, 0xb1, + 0x20, 0x26, 0x54, 0x6f, 0x5e, 0x64, 0xdb, 0x5a, 0xf0, 0xa4, 0x4c, 0xf1, 0xe2, 0x65, 0xcc, 0x24, + 0xcf, 0x1a, 0x9a, 0x99, 0x0c, 0x99, 0x74, 0x6a, 0xff, 0x0b, 0xff, 0x2c, 0x8f, 0x3d, 0x7a, 0x94, + 0x16, 0xfc, 0x3b, 0x24, 0x99, 0xa9, 0x7a, 0x51, 0xbb, 0xb7, 0xf7, 0x85, 0xef, 0xf7, 0xf1, 0x5e, + 0xf8, 0xf0, 0x13, 0x0b, 0x0b, 0x28, 0x19, 0x08, 0x23, 0x2c, 0x48, 0xe5, 0x58, 0xc1, 0xed, 0x12, + 0x5c, 0xa5, 0xb9, 0x00, 0xd6, 0x8c, 0x18, 0x34, 0x50, 0xba, 0x9a, 0x56, 0xd6, 0x38, 0x13, 0x91, + 0x60, 0xa6, 0xbf, 0xcc, 0xf4, 0x0f, 0x33, 0x6d, 0x46, 0x8f, 0x88, 0x30, 0x75, 0x61, 0x6a, 0x96, + 0xf3, 0xda, 0xc3, 0x39, 0x38, 0x3e, 0x62, 0xc2, 0xa8, 0xb2, 0xe5, 0x13, 0x86, 0xfb, 0xaf, 0x7c, + 0xde, 0x1c, 0xb4, 0x8e, 0x12, 0x7c, 0x51, 0x83, 0xd6, 0x99, 0xb1, 0x12, 0x6c, 0xa6, 0x64, 0x8c, + 0x06, 0x68, 0x78, 0x92, 0x9e, 0xfb, 0xc7, 0x37, 0xfe, 0xed, 0xb5, 0x4c, 0x7e, 0x20, 0x7c, 0x19, + 0x88, 0xf1, 0x6a, 0x33, 0x55, 0x16, 0x84, 0x3b, 0x06, 0x8b, 0xee, 0xe3, 0x33, 0x2f, 0xc1, 0xc6, + 0x77, 0x06, 0x68, 0xd8, 0x4f, 0x3b, 0x15, 0xdd, 0xe0, 0xab, 0x76, 0xca, 0x3e, 0x02, 0x64, 0x15, + 0x57, 0x32, 0xbe, 0x3b, 0x40, 0xc3, 0xf3, 0x67, 0x0f, 0x69, 0xbb, 0x39, 0xf5, 0x9b, 0xd3, 0x6e, + 0x73, 0x3a, 0x31, 0xaa, 0x4c, 0x2f, 0x5a, 0x62, 0x06, 0xf0, 0x96, 0x2b, 0x19, 0x5d, 0xe3, 0xd3, + 0x7c, 0xb5, 0x01, 0x1b, 0x9f, 0x84, 0xe4, 0x56, 0x44, 0x2f, 0xf1, 0x65, 0x18, 0x7e, 0xe7, 0x9e, + 0xfe, 0x2f, 0xf7, 0x5e, 0x00, 0xba, 0xd8, 0xe4, 0x05, 0xbe, 0x0e, 0x77, 0xbe, 0xab, 0x24, 0x77, + 0x30, 0x3f, 0xdc, 0x72, 0xd4, 0x27, 0x1d, 0xd8, 0x09, 0x2f, 0x05, 0xe8, 0xdb, 0xb1, 0x8f, 0xf1, + 0x55, 0x60, 0x6f, 0xb4, 0x36, 0xeb, 0x29, 0x94, 0xa6, 0xf0, 0x17, 0x4a, 0x3f, 0x04, 0x7b, 0x3f, + 0x6d, 0x45, 0xc2, 0xf0, 0x83, 0x60, 0x4c, 0xa1, 0x30, 0x0d, 0x04, 0x3b, 0xc8, 0x7f, 0x00, 0xe3, + 0x0f, 0x5f, 0x77, 0x04, 0x6d, 0x77, 0x04, 0x7d, 0xdf, 0x11, 0xf4, 0x65, 0x4f, 0x7a, 0xdb, 0x3d, + 0xe9, 0x7d, 0xdb, 0x93, 0xde, 0xfb, 0xd9, 0x42, 0xb9, 0x4f, 0xab, 0x9c, 0x0a, 0x53, 0xb0, 0x50, + 0xa8, 0xa7, 0x25, 0xb8, 0xb5, 0xb1, 0xcb, 0x4e, 0x69, 0x90, 0x0b, 0xb0, 0xec, 0xf3, 0x5f, 0x4a, + 0xe9, 0x36, 0x15, 0xd4, 0xbe, 0x5d, 0x67, 0xa1, 0x54, 0xcf, 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, + 0x17, 0x0b, 0xc9, 0xdb, 0xc3, 0x02, 0x00, 0x00, } func (m *EventSell) Marshal() (dAtA []byte, err error) { @@ -389,6 +435,44 @@ func (m *EventBuyDirect) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.BuyerFeePaid != nil { + { + size, err := m.BuyerFeePaid.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.Buyer) > 0 { + i -= len(m.Buyer) + copy(dAtA[i:], m.Buyer) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Buyer))) + i-- + dAtA[i] = 0x22 + } + if m.SellerFeePaid != nil { + { + size, err := m.SellerFeePaid.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.Seller) > 0 { + i -= len(m.Seller) + copy(dAtA[i:], m.Seller) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Seller))) + i-- + dAtA[i] = 0x12 + } if m.SellOrderId != 0 { i = encodeVarintEvents(dAtA, i, uint64(m.SellOrderId)) i-- @@ -545,6 +629,22 @@ func (m *EventBuyDirect) Size() (n int) { if m.SellOrderId != 0 { n += 1 + sovEvents(uint64(m.SellOrderId)) } + l = len(m.Seller) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if m.SellerFeePaid != nil { + l = m.SellerFeePaid.Size() + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Buyer) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if m.BuyerFeePaid != nil { + l = m.BuyerFeePaid.Size() + n += 1 + l + sovEvents(uint64(l)) + } return n } @@ -721,6 +821,142 @@ func (m *EventBuyDirect) Unmarshal(dAtA []byte) error { break } } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Seller", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + 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 ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Seller = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SellerFeePaid", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SellerFeePaid == nil { + m.SellerFeePaid = &types.Coin{} + } + if err := m.SellerFeePaid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Buyer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + 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 ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Buyer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BuyerFeePaid", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BuyerFeePaid == nil { + m.BuyerFeePaid = &types.Coin{} + } + if err := m.BuyerFeePaid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) From 7af0973e4e7cfa54d8527130d1e5b10049a4f896 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Wed, 28 Feb 2024 16:47:01 -0500 Subject: [PATCH 22/27] make max fee amount required --- .../ecocredit/marketplace/v1/tx.pulsar.go | 2 -- proto/regen/ecocredit/marketplace/v1/tx.proto | 2 -- .../keeper/features/msg_buy_direct.feature | 2 ++ .../marketplace/keeper/msg_buy_direct.go | 18 ++++++++++-------- x/ecocredit/marketplace/types/v1/tx.pb.go | 2 -- 5 files changed, 12 insertions(+), 14 deletions(-) diff --git a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go index ef081c6d13..3dfb4393d6 100644 --- a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go @@ -9344,8 +9344,6 @@ type MsgBuyDirect_Order struct { 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. // // Since Revision 3 diff --git a/proto/regen/ecocredit/marketplace/v1/tx.proto b/proto/regen/ecocredit/marketplace/v1/tx.proto index d1f8bc721a..cb5cfcdfb3 100644 --- a/proto/regen/ecocredit/marketplace/v1/tx.proto +++ b/proto/regen/ecocredit/marketplace/v1/tx.proto @@ -184,8 +184,6 @@ message MsgBuyDirect { // 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. // // Since Revision 3 diff --git a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature index bacfcd50a3..ae755f06e1 100644 --- a/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature +++ b/x/ecocredit/marketplace/keeper/features/msg_buy_direct.feature @@ -409,6 +409,7 @@ Feature: Msg/BuyDirect * bob has bank balance "110foo" * alice has bank balance "0foo" * buyer fees are 0.1 and seller fees are 0.05 + * bob sets a max fee of "10foo" When bob attempts to buy credits with quantity "10" and bid price "10foo" Then expect no error * expect alice bank balance "95foo" @@ -438,6 +439,7 @@ Feature: Msg/BuyDirect * bob has bank balance "240uregen" * alice has bank balance "0regen" * buyer fees are 0.2 and seller fees are 0.1 + * bob sets a max fee of "40uregen" When bob attempts to buy credits with quantity "10" and bid price "20uregen" Then expect no error * expect alice bank balance "180uregen" diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct.go b/x/ecocredit/marketplace/keeper/msg_buy_direct.go index 7be39f457d..5ba4b1d3e8 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct.go @@ -110,14 +110,16 @@ func (k Keeper) BuyDirect(ctx context.Context, req *types.MsgBuyDirect) (*types. totalCost := sdk.Coin{Amount: total.SdkIntTrim(), Denom: market.BankDenom} // check max fee - if maxFee := order.MaxFeeAmount; maxFee != nil { - buyerFeeCoin := sdk.Coin{Amount: buyerFee.SdkIntTrim(), Denom: market.BankDenom} - if maxFee.IsLT(buyerFeeCoin) { - return nil, sdkerrors.ErrInvalidRequest.Wrapf( - "%s: max fee: %s, required fee: %s", - orderIndex, maxFee, buyerFeeCoin, - ) - } + maxFee := order.MaxFeeAmount + if maxFee == nil { + maxFee = &sdk.Coin{Amount: sdk.NewInt(0), Denom: market.BankDenom} + } + buyerFeeCoin := sdk.Coin{Amount: buyerFee.SdkIntTrim(), Denom: market.BankDenom} + if maxFee.IsLT(buyerFeeCoin) { + return nil, sdkerrors.ErrInvalidRequest.Wrapf( + "%s: max fee: %s, required fee: %s", + orderIndex, maxFee, buyerFeeCoin, + ) } // check address has the total cost diff --git a/x/ecocredit/marketplace/types/v1/tx.pb.go b/x/ecocredit/marketplace/types/v1/tx.pb.go index 50e94b6b53..56f768dbe7 100644 --- a/x/ecocredit/marketplace/types/v1/tx.pb.go +++ b/x/ecocredit/marketplace/types/v1/tx.pb.go @@ -576,8 +576,6 @@ type MsgBuyDirect_Order struct { 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. // // Since Revision 3 From 3376e761aad7078597f07e5cadc930fc1a88a791 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Thu, 29 Feb 2024 15:29:35 -0500 Subject: [PATCH 23/27] add marketplace fee pool account --- app/app.go | 2 ++ x/ecocredit/marketplace/keeper/keeper.go | 6 +++--- x/ecocredit/marketplace/keeper/keeper_test.go | 2 +- x/ecocredit/marketplace/keeper/msg_buy_direct_test.go | 4 ++-- x/ecocredit/marketplace/keys.go | 3 +++ x/ecocredit/server/server.go | 9 ++++++++- x/ecocredit/server/server_test.go | 2 ++ x/ecocredit/server/tests/utils.go | 2 ++ 8 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 x/ecocredit/marketplace/keys.go diff --git a/app/app.go b/app/app.go index 166756d771..d3def5fee1 100644 --- a/app/app.go +++ b/app/app.go @@ -119,6 +119,7 @@ import ( datamodule "github.com/regen-network/regen-ledger/x/data/v3/module" "github.com/regen-network/regen-ledger/x/ecocredit/v3" baskettypes "github.com/regen-network/regen-ledger/x/ecocredit/v3/basket" + "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace" ecocreditmodule "github.com/regen-network/regen-ledger/x/ecocredit/v3/module" "github.com/regen-network/regen-ledger/x/intertx" intertxkeeper "github.com/regen-network/regen-ledger/x/intertx/keeper" @@ -191,6 +192,7 @@ var ( ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner}, ecocredit.ModuleName: {authtypes.Burner}, baskettypes.BasketSubModuleName: {authtypes.Burner, authtypes.Minter}, + marketplace.FeePoolName: {authtypes.Burner}, } return perms diff --git a/x/ecocredit/marketplace/keeper/keeper.go b/x/ecocredit/marketplace/keeper/keeper.go index f4a323c988..41de8aed5c 100644 --- a/x/ecocredit/marketplace/keeper/keeper.go +++ b/x/ecocredit/marketplace/keeper/keeper.go @@ -6,6 +6,7 @@ import ( marketapi "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/marketplace/v1" baseapi "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/v1" "github.com/regen-network/regen-ledger/x/ecocredit/v3" + "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace" types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" ) @@ -22,13 +23,12 @@ type Keeper struct { feePoolName string } -func NewKeeper(ss marketapi.StateStore, cs baseapi.StateStore, bk ecocredit.BankKeeper, - authority sdk.AccAddress, feePoolName string) Keeper { +func NewKeeper(ss marketapi.StateStore, cs baseapi.StateStore, bk ecocredit.BankKeeper, authority sdk.AccAddress) Keeper { return Keeper{ baseStore: cs, stateStore: ss, bankKeeper: bk, authority: authority, - feePoolName: feePoolName, + feePoolName: marketplace.FeePoolName, } } diff --git a/x/ecocredit/marketplace/keeper/keeper_test.go b/x/ecocredit/marketplace/keeper/keeper_test.go index 2e1805f12d..30658821f9 100644 --- a/x/ecocredit/marketplace/keeper/keeper_test.go +++ b/x/ecocredit/marketplace/keeper/keeper_test.go @@ -76,7 +76,7 @@ func setupBase(t gocuke.TestingT, numAddresses int) *baseSuite { authority, err := sdk.AccAddressFromBech32("regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68") assert.NilError(s.t, err) - s.k = NewKeeper(s.marketStore, s.baseStore, s.bankKeeper, authority, ecocredit.ModuleName) + s.k = NewKeeper(s.marketStore, s.baseStore, s.bankKeeper, authority) // set test accounts for i := 0; i < numAddresses; i++ { diff --git a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go index 01b9e81684..53014eea70 100644 --- a/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go +++ b/x/ecocredit/marketplace/keeper/msg_buy_direct_test.go @@ -25,8 +25,8 @@ import ( baseapi "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/v1" "github.com/regen-network/regen-ledger/types/v2/math" "github.com/regen-network/regen-ledger/types/v2/testutil" - ecocredittypes "github.com/regen-network/regen-ledger/x/ecocredit/v3" basetypes "github.com/regen-network/regen-ledger/x/ecocredit/v3/base/types/v1" + "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace" types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" ) @@ -609,7 +609,7 @@ func (s *buyDirectSuite) ExpectFeePoolBalance(a string) { expected, err := sdk.ParseCoinsNormalized(a) require.NoError(s.t, err) - actual := s.moduleBalances[ecocredittypes.ModuleName] + actual := s.moduleBalances[marketplace.FeePoolName] if !actual.IsEqual(expected) { s.t.Fatalf("expected: %s, actual: %s", a, actual.String()) diff --git a/x/ecocredit/marketplace/keys.go b/x/ecocredit/marketplace/keys.go new file mode 100644 index 0000000000..7d84a4b8c6 --- /dev/null +++ b/x/ecocredit/marketplace/keys.go @@ -0,0 +1,3 @@ +package marketplace + +const FeePoolName = "marketplace-feepool" diff --git a/x/ecocredit/server/server.go b/x/ecocredit/server/server.go index 06728718de..aa4567f885 100644 --- a/x/ecocredit/server/server.go +++ b/x/ecocredit/server/server.go @@ -17,6 +17,7 @@ import ( "github.com/regen-network/regen-ledger/x/ecocredit/v3/basket" basketkeeper "github.com/regen-network/regen-ledger/x/ecocredit/v3/basket/keeper" baskettypes "github.com/regen-network/regen-ledger/x/ecocredit/v3/basket/types/v1" + "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace" marketkeeper "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/keeper" markettypes "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" ) @@ -55,6 +56,12 @@ func NewServer(storeKey storetypes.StoreKey, panic(fmt.Sprintf("%s module account has not been set", basket.BasketSubModuleName)) } + // ensure marketplace fee pool account is set + marketplaceAddr := s.accountKeeper.GetModuleAddress(marketplace.FeePoolName) + if marketplaceAddr == nil { + panic(fmt.Sprintf("%s module account has not been set", marketplace.FeePoolName)) + } + var err error s.db, err = ormstore.NewStoreKeyDB(&ecocredit.ModuleSchema, storeKey, ormdb.ModuleDBOptions{}) if err != nil { @@ -67,7 +74,7 @@ func NewServer(storeKey storetypes.StoreKey, s.marketplaceStore = marketStore s.BaseKeeper = basekeeper.NewKeeper(baseStore, bankKeeper, baseAddr, basketStore, marketStore, authority) s.BasketKeeper = basketkeeper.NewKeeper(basketStore, baseStore, bankKeeper, basketAddr, authority) - s.MarketplaceKeeper = marketkeeper.NewKeeper(marketStore, baseStore, bankKeeper, authority, ecocredit.ModuleName) + s.MarketplaceKeeper = marketkeeper.NewKeeper(marketStore, baseStore, bankKeeper, authority) return s } diff --git a/x/ecocredit/server/server_test.go b/x/ecocredit/server/server_test.go index ac4519a36c..5027ef0b92 100644 --- a/x/ecocredit/server/server_test.go +++ b/x/ecocredit/server/server_test.go @@ -22,6 +22,7 @@ import ( "github.com/regen-network/regen-ledger/types/v2/testutil/fixture" "github.com/regen-network/regen-ledger/x/ecocredit/v3" "github.com/regen-network/regen-ledger/x/ecocredit/v3/basket" + "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace" "github.com/regen-network/regen-ledger/x/ecocredit/v3/module" "github.com/regen-network/regen-ledger/x/ecocredit/v3/server/testsuite" ) @@ -69,6 +70,7 @@ func setup(t *testing.T) (fixture.Factory, bankkeeper.BaseKeeper, authkeeper.Acc minttypes.ModuleName: {authtypes.Minter}, ecocredit.ModuleName: {authtypes.Burner}, basket.BasketSubModuleName: {authtypes.Burner, authtypes.Minter}, + marketplace.FeePoolName: {authtypes.Burner}, } accountKeeper := authkeeper.NewAccountKeeper( diff --git a/x/ecocredit/server/tests/utils.go b/x/ecocredit/server/tests/utils.go index 843fc1de94..66207a9cc5 100644 --- a/x/ecocredit/server/tests/utils.go +++ b/x/ecocredit/server/tests/utils.go @@ -18,6 +18,7 @@ import ( ecocredittypes "github.com/regen-network/regen-ledger/x/ecocredit/v3" basetypes "github.com/regen-network/regen-ledger/x/ecocredit/v3/base/types/v1" "github.com/regen-network/regen-ledger/x/ecocredit/v3/basket" + "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace" markettypes "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" ecocredit "github.com/regen-network/regen-ledger/x/ecocredit/v3/module" ) @@ -62,6 +63,7 @@ func NewEcocreditModule(ff fixture.Factory) *ecocredit.Module { minttypes.ModuleName: {authtypes.Minter}, ecocredittypes.ModuleName: {authtypes.Burner}, basket.BasketSubModuleName: {authtypes.Burner, authtypes.Minter}, + marketplace.FeePoolName: {authtypes.Burner}, } accountKeeper := authkeeper.NewAccountKeeper( From bd9584630be34b900d2049b323fa39680a129237 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Thu, 29 Feb 2024 15:34:43 -0500 Subject: [PATCH 24/27] fix tests --- .../server/tests/features/market.feature | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/x/ecocredit/server/tests/features/market.feature b/x/ecocredit/server/tests/features/market.feature index 5fa9a5a8cd..452a656383 100644 --- a/x/ecocredit/server/tests/features/market.feature +++ b/x/ecocredit/server/tests/features/market.feature @@ -162,7 +162,11 @@ Feature: Market Integration And expect event buy """ { - "sell_order_id": "1" + "sell_order_id": "1", + "seller":"regen1q5m97jdcksj24g9enlkjqq75ygt5q6akfm0ycv", + "seller_fee_paid":{"denom":"uregen","amount":"0"}, + "buyer":"regen1s3x2yhc4qf59gf53hwsnhkh7gqa3eryxwj8p42", + "buyer_fee_paid":{"denom":"uregen","amount":"0"} } """ And expect query balance with address "regen1q5m97jdcksj24g9enlkjqq75ygt5q6akfm0ycv" and batch denom "C01-001-20200101-20210101-001" @@ -272,7 +276,11 @@ Feature: Market Integration And expect event buy """ { - "sell_order_id": "1" + "sell_order_id": "1", + "seller":"regen1q5m97jdcksj24g9enlkjqq75ygt5q6akfm0ycv", + "seller_fee_paid":{"denom":"uregen","amount":"0"}, + "buyer":"regen1s3x2yhc4qf59gf53hwsnhkh7gqa3eryxwj8p42", + "buyer_fee_paid":{"denom":"uregen","amount":"0"} } """ And expect query balance with address "regen1q5m97jdcksj24g9enlkjqq75ygt5q6akfm0ycv" and batch denom "C01-001-20200101-20210101-001" @@ -699,7 +707,11 @@ Feature: Market Integration And expect event buy """ { - "sell_order_id": "1" + "sell_order_id": "1", + "seller":"regen1q5m97jdcksj24g9enlkjqq75ygt5q6akfm0ycv", + "seller_fee_paid":{"denom":"uregen","amount":"0"}, + "buyer":"regen1s3x2yhc4qf59gf53hwsnhkh7gqa3eryxwj8p42", + "buyer_fee_paid":{"denom":"uregen","amount":"0"} } """ And expect query balance with address "regen1q5m97jdcksj24g9enlkjqq75ygt5q6akfm0ycv" and batch denom "C01-001-20200101-20210101-001" @@ -842,7 +854,11 @@ Feature: Market Integration And expect event buy """ { - "sell_order_id": "2" + "sell_order_id": "2", + "seller":"regen1q5m97jdcksj24g9enlkjqq75ygt5q6akfm0ycv", + "seller_fee_paid":{"denom":"uregen","amount":"0"}, + "buyer":"regen1s3x2yhc4qf59gf53hwsnhkh7gqa3eryxwj8p42", + "buyer_fee_paid":{"denom":"uregen","amount":"0"} } """ And expect query balance with address "regen1q5m97jdcksj24g9enlkjqq75ygt5q6akfm0ycv" and batch denom "C01-001-20200101-20210101-001" From caa606ce839bc2ce8069499b5e15f0c7bb2ca3f3 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Thu, 29 Feb 2024 16:40:50 -0500 Subject: [PATCH 25/27] add MsgGovSendFromFeePool --- .../ecocredit/marketplace/v1/tx.pulsar.go | 1647 ++++++++++++++--- .../ecocredit/marketplace/v1/tx_grpc.pb.go | 45 + proto/regen/ecocredit/marketplace/v1/tx.proto | 25 + .../msg_gov_send_from_fee_pool.feature | 41 + .../features/msg_gov_set_fee_params.feature | 51 + .../keeper/msg_gov_send_from_fee_pool.go | 35 + .../keeper/msg_gov_send_from_fee_pool_test.go | 107 ++ .../keeper/msg_gov_set_fee_params_test.go | 68 + .../msg_gov_send_from_fee_pool.feature | 18 + .../features/msg_gov_set_fee_params.feature | 14 +- .../types/v1/msg_gov_send_from_fee_pool.go | 52 + .../v1/msg_gov_send_from_fee_pool_test.go | 55 + .../types/v1/msg_gov_set_fee_params_test.go | 12 +- x/ecocredit/marketplace/types/v1/tx.pb.go | 589 +++++- 14 files changed, 2411 insertions(+), 348 deletions(-) create mode 100644 x/ecocredit/marketplace/keeper/features/msg_gov_send_from_fee_pool.feature create mode 100644 x/ecocredit/marketplace/keeper/features/msg_gov_set_fee_params.feature create mode 100644 x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go create mode 100644 x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go create mode 100644 x/ecocredit/marketplace/keeper/msg_gov_set_fee_params_test.go create mode 100644 x/ecocredit/marketplace/types/v1/features/msg_gov_send_from_fee_pool.feature create mode 100644 x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go create mode 100644 x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go diff --git a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go index 3dfb4393d6..fbd04916b2 100644 --- a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go @@ -602,7 +602,7 @@ func (x *MsgSell_Order) ProtoReflect() protoreflect.Message { } func (x *MsgSell_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 { @@ -2392,7 +2392,7 @@ func (x *MsgUpdateSellOrders_Update) ProtoReflect() protoreflect.Message { } func (x *MsgUpdateSellOrders_Update) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[15] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4814,7 +4814,7 @@ func (x *MsgBuyDirect_Order) ProtoReflect() protoreflect.Message { } func (x *MsgBuyDirect_Order) slowProtoReflect() protoreflect.Message { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[16] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8593,219 +8593,1197 @@ func (x *fastReflection_MsgGovSetFeeParamsResponse) ProtoMethods() *protoiface.M } } -// 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 +var _ protoreflect.List = (*_MsgGovSendFromFeePool_3_list)(nil) - // 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"` +type _MsgGovSendFromFeePool_3_list struct { + list *[]*v1beta1.Coin } -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 *_MsgGovSendFromFeePool_3_list) Len() int { + if x.list == nil { + return 0 } + return len(*x.list) } -func (x *MsgSell) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *_MsgGovSendFromFeePool_3_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -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 *_MsgGovSendFromFeePool_3_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) + (*x.list)[i] = concreteValue } -func (x *MsgSell) GetSeller() string { - if x != nil { - return x.Seller - } - return "" +func (x *_MsgGovSendFromFeePool_3_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) + *x.list = append(*x.list, concreteValue) } -func (x *MsgSell) GetOrders() []*MsgSell_Order { - if x != nil { - return x.Orders - } - return nil +func (x *_MsgGovSendFromFeePool_3_list) AppendMutable() protoreflect.Value { + v := new(v1beta1.Coin) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) } -// 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 *_MsgGovSendFromFeePool_3_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] } -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 *_MsgGovSendFromFeePool_3_list) NewElement() protoreflect.Value { + v := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *MsgSellResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *_MsgGovSendFromFeePool_3_list) IsValid() bool { + return x.list != nil } -func (*MsgSellResponse) ProtoMessage() {} +var ( + md_MsgGovSendFromFeePool protoreflect.MessageDescriptor + fd_MsgGovSendFromFeePool_authority protoreflect.FieldDescriptor + fd_MsgGovSendFromFeePool_recipient protoreflect.FieldDescriptor + fd_MsgGovSendFromFeePool_amount protoreflect.FieldDescriptor +) -// Deprecated: Use MsgSellResponse.ProtoReflect.Descriptor instead. -func (*MsgSellResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{1} +func init() { + file_regen_ecocredit_marketplace_v1_tx_proto_init() + md_MsgGovSendFromFeePool = File_regen_ecocredit_marketplace_v1_tx_proto.Messages().ByName("MsgGovSendFromFeePool") + fd_MsgGovSendFromFeePool_authority = md_MsgGovSendFromFeePool.Fields().ByName("authority") + fd_MsgGovSendFromFeePool_recipient = md_MsgGovSendFromFeePool.Fields().ByName("recipient") + fd_MsgGovSendFromFeePool_amount = md_MsgGovSendFromFeePool.Fields().ByName("amount") } -func (x *MsgSellResponse) GetSellOrderIds() []uint64 { - if x != nil { - return x.SellOrderIds - } - return nil -} +var _ protoreflect.Message = (*fastReflection_MsgGovSendFromFeePool)(nil) -// MsgUpdateSellOrders is the Msg/UpdateSellOrders request type. -type MsgUpdateSellOrders struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +type fastReflection_MsgGovSendFromFeePool MsgGovSendFromFeePool - // 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 *MsgGovSendFromFeePool) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgGovSendFromFeePool)(x) } -func (x *MsgUpdateSellOrders) Reset() { - *x = MsgUpdateSellOrders{} - if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[2] +func (x *MsgGovSendFromFeePool) slowProtoReflect() protoreflect.Message { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[14] + 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 *MsgUpdateSellOrders) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MsgUpdateSellOrders) ProtoMessage() {} +var _fastReflection_MsgGovSendFromFeePool_messageType fastReflection_MsgGovSendFromFeePool_messageType +var _ protoreflect.MessageType = fastReflection_MsgGovSendFromFeePool_messageType{} -// Deprecated: Use MsgUpdateSellOrders.ProtoReflect.Descriptor instead. -func (*MsgUpdateSellOrders) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{2} -} +type fastReflection_MsgGovSendFromFeePool_messageType struct{} -func (x *MsgUpdateSellOrders) GetSeller() string { - if x != nil { - return x.Seller - } - return "" +func (x fastReflection_MsgGovSendFromFeePool_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgGovSendFromFeePool)(nil) } - -func (x *MsgUpdateSellOrders) GetUpdates() []*MsgUpdateSellOrders_Update { - if x != nil { - return x.Updates - } - return nil +func (x fastReflection_MsgGovSendFromFeePool_messageType) New() protoreflect.Message { + return new(fastReflection_MsgGovSendFromFeePool) } - -// MsgUpdateSellOrdersResponse is the Msg/UpdateSellOrders response type. -type MsgUpdateSellOrdersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x fastReflection_MsgGovSendFromFeePool_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgGovSendFromFeePool } -func (x *MsgUpdateSellOrdersResponse) Reset() { - *x = MsgUpdateSellOrdersResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgGovSendFromFeePool) Descriptor() protoreflect.MessageDescriptor { + return md_MsgGovSendFromFeePool } -func (x *MsgUpdateSellOrdersResponse) String() string { - return protoimpl.X.MessageStringOf(x) +// 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_MsgGovSendFromFeePool) Type() protoreflect.MessageType { + return _fastReflection_MsgGovSendFromFeePool_messageType } -func (*MsgUpdateSellOrdersResponse) ProtoMessage() {} - -// Deprecated: Use MsgUpdateSellOrdersResponse.ProtoReflect.Descriptor instead. -func (*MsgUpdateSellOrdersResponse) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{3} +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgGovSendFromFeePool) New() protoreflect.Message { + return new(fastReflection_MsgGovSendFromFeePool) } -// MsgCancelSellOrder is the Msg/CancelSellOrder request type. -type MsgCancelSellOrder struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // seller is the address of the account that created the sell order and is - // therefore authorized to cancel the sell order. - Seller string `protobuf:"bytes,1,opt,name=seller,proto3" json:"seller,omitempty"` - // sell_order_id is the id of the seller order to cancel. - SellOrderId uint64 `protobuf:"varint,2,opt,name=sell_order_id,json=sellOrderId,proto3" json:"sell_order_id,omitempty"` +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgGovSendFromFeePool) Interface() protoreflect.ProtoMessage { + return (*MsgGovSendFromFeePool)(x) } -func (x *MsgCancelSellOrder) Reset() { - *x = MsgCancelSellOrder{} - if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +// 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_MsgGovSendFromFeePool) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_MsgGovSendFromFeePool_authority, value) { + return + } + } + if x.Recipient != "" { + value := protoreflect.ValueOfString(x.Recipient) + if !f(fd_MsgGovSendFromFeePool_recipient, value) { + return + } + } + if len(x.Amount) != 0 { + value := protoreflect.ValueOfList(&_MsgGovSendFromFeePool_3_list{list: &x.Amount}) + if !f(fd_MsgGovSendFromFeePool_amount, value) { + return + } } } -func (x *MsgCancelSellOrder) String() string { - return protoimpl.X.MessageStringOf(x) +// 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_MsgGovSendFromFeePool) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.authority": + return x.Authority != "" + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": + return x.Recipient != "" + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": + return len(x.Amount) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool does not contain field %s", fd.FullName())) + } } -func (*MsgCancelSellOrder) ProtoMessage() {} - -// Deprecated: Use MsgCancelSellOrder.ProtoReflect.Descriptor instead. -func (*MsgCancelSellOrder) Descriptor() ([]byte, []int) { - return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{4} +// 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_MsgGovSendFromFeePool) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.authority": + x.Authority = "" + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": + x.Recipient = "" + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": + x.Amount = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool does not contain field %s", fd.FullName())) + } } -func (x *MsgCancelSellOrder) GetSeller() string { - if x != nil { - return x.Seller +// 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_MsgGovSendFromFeePool) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": + value := x.Recipient + return protoreflect.ValueOfString(value) + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": + if len(x.Amount) == 0 { + return protoreflect.ValueOfList(&_MsgGovSendFromFeePool_3_list{}) + } + listValue := &_MsgGovSendFromFeePool_3_list{list: &x.Amount} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool does not contain field %s", descriptor.FullName())) } - return "" } -func (x *MsgCancelSellOrder) GetSellOrderId() uint64 { - if x != nil { - return x.SellOrderId - } +// 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_MsgGovSendFromFeePool) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.authority": + x.Authority = value.Interface().(string) + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": + x.Recipient = value.Interface().(string) + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": + lv := value.List() + clv := lv.(*_MsgGovSendFromFeePool_3_list) + x.Amount = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool 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_MsgGovSendFromFeePool) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": + if x.Amount == nil { + x.Amount = []*v1beta1.Coin{} + } + value := &_MsgGovSendFromFeePool_3_list{list: &x.Amount} + return protoreflect.ValueOfList(value) + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.authority": + panic(fmt.Errorf("field authority of message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool is not mutable")) + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": + panic(fmt.Errorf("field recipient of message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool 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_MsgGovSendFromFeePool) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.authority": + return protoreflect.ValueOfString("") + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": + return protoreflect.ValueOfString("") + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": + list := []*v1beta1.Coin{} + return protoreflect.ValueOfList(&_MsgGovSendFromFeePool_3_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool 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_MsgGovSendFromFeePool) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool", 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_MsgGovSendFromFeePool) 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_MsgGovSendFromFeePool) 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_MsgGovSendFromFeePool) 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_MsgGovSendFromFeePool) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgGovSendFromFeePool) + 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)) + } + l = len(x.Recipient) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Amount) > 0 { + for _, e := range x.Amount { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*MsgGovSendFromFeePool) + 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.Amount) > 0 { + for iNdEx := len(x.Amount) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Amount[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + } + if len(x.Recipient) > 0 { + i -= len(x.Recipient) + copy(dAtA[i:], x.Recipient) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Recipient))) + 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().(*MsgGovSendFromFeePool) + 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: MsgGovSendFromFeePool: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgGovSendFromFeePool: 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 Recipient", 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.Recipient = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Amount = append(x.Amount, &v1beta1.Coin{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Amount[len(x.Amount)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_MsgGovSendFromFeePoolResponse protoreflect.MessageDescriptor +) + +func init() { + file_regen_ecocredit_marketplace_v1_tx_proto_init() + md_MsgGovSendFromFeePoolResponse = File_regen_ecocredit_marketplace_v1_tx_proto.Messages().ByName("MsgGovSendFromFeePoolResponse") +} + +var _ protoreflect.Message = (*fastReflection_MsgGovSendFromFeePoolResponse)(nil) + +type fastReflection_MsgGovSendFromFeePoolResponse MsgGovSendFromFeePoolResponse + +func (x *MsgGovSendFromFeePoolResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_MsgGovSendFromFeePoolResponse)(x) +} + +func (x *MsgGovSendFromFeePoolResponse) slowProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_MsgGovSendFromFeePoolResponse_messageType fastReflection_MsgGovSendFromFeePoolResponse_messageType +var _ protoreflect.MessageType = fastReflection_MsgGovSendFromFeePoolResponse_messageType{} + +type fastReflection_MsgGovSendFromFeePoolResponse_messageType struct{} + +func (x fastReflection_MsgGovSendFromFeePoolResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_MsgGovSendFromFeePoolResponse)(nil) +} +func (x fastReflection_MsgGovSendFromFeePoolResponse_messageType) New() protoreflect.Message { + return new(fastReflection_MsgGovSendFromFeePoolResponse) +} +func (x fastReflection_MsgGovSendFromFeePoolResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_MsgGovSendFromFeePoolResponse +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_MsgGovSendFromFeePoolResponse) Descriptor() protoreflect.MessageDescriptor { + return md_MsgGovSendFromFeePoolResponse +} + +// 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_MsgGovSendFromFeePoolResponse) Type() protoreflect.MessageType { + return _fastReflection_MsgGovSendFromFeePoolResponse_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_MsgGovSendFromFeePoolResponse) New() protoreflect.Message { + return new(fastReflection_MsgGovSendFromFeePoolResponse) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_MsgGovSendFromFeePoolResponse) Interface() protoreflect.ProtoMessage { + return (*MsgGovSendFromFeePoolResponse)(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_MsgGovSendFromFeePoolResponse) 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_MsgGovSendFromFeePoolResponse) 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.MsgGovSendFromFeePoolResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse 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_MsgGovSendFromFeePoolResponse) 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.MsgGovSendFromFeePoolResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse 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_MsgGovSendFromFeePoolResponse) 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.MsgGovSendFromFeePoolResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse 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_MsgGovSendFromFeePoolResponse) 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.MsgGovSendFromFeePoolResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse 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_MsgGovSendFromFeePoolResponse) 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.MsgGovSendFromFeePoolResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse 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_MsgGovSendFromFeePoolResponse) 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.MsgGovSendFromFeePoolResponse")) + } + panic(fmt.Errorf("message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse 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_MsgGovSendFromFeePoolResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse", 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_MsgGovSendFromFeePoolResponse) 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_MsgGovSendFromFeePoolResponse) 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_MsgGovSendFromFeePoolResponse) 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_MsgGovSendFromFeePoolResponse) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*MsgGovSendFromFeePoolResponse) + 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().(*MsgGovSendFromFeePoolResponse) + 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().(*MsgGovSendFromFeePoolResponse) + 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: MsgGovSendFromFeePoolResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: MsgGovSendFromFeePoolResponse: 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() { + *x = MsgUpdateSellOrdersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgUpdateSellOrdersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgUpdateSellOrdersResponse) ProtoMessage() {} + +// Deprecated: Use MsgUpdateSellOrdersResponse.ProtoReflect.Descriptor instead. +func (*MsgUpdateSellOrdersResponse) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{3} +} + +// MsgCancelSellOrder is the Msg/CancelSellOrder request type. +type MsgCancelSellOrder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // seller is the address of the account that created the sell order and is + // therefore authorized to cancel the sell order. + Seller string `protobuf:"bytes,1,opt,name=seller,proto3" json:"seller,omitempty"` + // sell_order_id is the id of the seller order to cancel. + SellOrderId uint64 `protobuf:"varint,2,opt,name=sell_order_id,json=sellOrderId,proto3" json:"sell_order_id,omitempty"` +} + +func (x *MsgCancelSellOrder) Reset() { + *x = MsgCancelSellOrder{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgCancelSellOrder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgCancelSellOrder) ProtoMessage() {} + +// Deprecated: Use MsgCancelSellOrder.ProtoReflect.Descriptor instead. +func (*MsgCancelSellOrder) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{4} +} + +func (x *MsgCancelSellOrder) GetSeller() string { + if x != nil { + return x.Seller + } + return "" +} + +func (x *MsgCancelSellOrder) GetSellOrderId() uint64 { + if x != nil { + return x.SellOrderId + } return 0 } @@ -9157,6 +10135,88 @@ func (*MsgGovSetFeeParamsResponse) Descriptor() ([]byte, []int) { return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{13} } +// MsgSendFromFeePool is the Msg/SendFromFeePool request type. +type MsgGovSendFromFeePool 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"` + // recipient is the address of the account that will receive the funds. + Recipient string `protobuf:"bytes,2,opt,name=recipient,proto3" json:"recipient,omitempty"` + // amount is the amount of coins to send from the fee pool. + Amount []*v1beta1.Coin `protobuf:"bytes,3,rep,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *MsgGovSendFromFeePool) Reset() { + *x = MsgGovSendFromFeePool{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgGovSendFromFeePool) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgGovSendFromFeePool) ProtoMessage() {} + +// Deprecated: Use MsgGovSendFromFeePool.ProtoReflect.Descriptor instead. +func (*MsgGovSendFromFeePool) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{14} +} + +func (x *MsgGovSendFromFeePool) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +func (x *MsgGovSendFromFeePool) GetRecipient() string { + if x != nil { + return x.Recipient + } + return "" +} + +func (x *MsgGovSendFromFeePool) GetAmount() []*v1beta1.Coin { + if x != nil { + return x.Amount + } + return nil +} + +// MsgSendFromFeePoolResponse is the Msg/SendFromFeePool response type. +type MsgGovSendFromFeePoolResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MsgGovSendFromFeePoolResponse) Reset() { + *x = MsgGovSendFromFeePoolResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgGovSendFromFeePoolResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgGovSendFromFeePoolResponse) ProtoMessage() {} + +// Deprecated: Use MsgGovSendFromFeePoolResponse.ProtoReflect.Descriptor instead. +func (*MsgGovSendFromFeePoolResponse) Descriptor() ([]byte, []int) { + return file_regen_ecocredit_marketplace_v1_tx_proto_rawDescGZIP(), []int{15} +} + // Order is the content of a new sell order. type MsgSell_Order struct { state protoimpl.MessageState @@ -9187,7 +10247,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[14] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9262,7 +10322,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[15] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9353,7 +10413,7 @@ type MsgBuyDirect_Order struct { func (x *MsgBuyDirect_Order) Reset() { *x = MsgBuyDirect_Order{} if protoimpl.UnsafeEnabled { - mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[16] + mi := &file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9558,81 +10618,101 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_rawDesc = []byte{ 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, + 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, + 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x1c, 0x0a, 0x09, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 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, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0e, 0x82, 0xe7, + 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1f, 0x0a, 0x1d, + 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, + 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x85, 0x08, + 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, 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, + 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, 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, 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, + 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, 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, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x3d, 0x2e, 0x72, 0x65, + 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, 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, - 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, + 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, 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, 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, + 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, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x12, 0x47, 0x6f, 0x76, + 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, + 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, + 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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 ( @@ -9647,7 +10727,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, 17) +var file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes = make([]protoimpl.MessageInfo, 19) 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 @@ -9663,43 +10743,48 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_goTypes = []interface{}{ (*MsgRemoveAllowedDenomResponse)(nil), // 11: regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse (*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 + (*MsgGovSendFromFeePool)(nil), // 14: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool + (*MsgGovSendFromFeePoolResponse)(nil), // 15: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse + (*MsgSell_Order)(nil), // 16: regen.ecocredit.marketplace.v1.MsgSell.Order + (*MsgUpdateSellOrders_Update)(nil), // 17: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update + (*MsgBuyDirect_Order)(nil), // 18: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order + (*FeeParams)(nil), // 19: regen.ecocredit.marketplace.v1.FeeParams + (*v1beta1.Coin)(nil), // 20: cosmos.base.v1beta1.Coin + (*timestamppb.Timestamp)(nil), // 21: google.protobuf.Timestamp } var file_regen_ecocredit_marketplace_v1_tx_proto_depIdxs = []int32{ - 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 - 18, // 9: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount:type_name -> cosmos.base.v1beta1.Coin - 0, // 10: regen.ecocredit.marketplace.v1.Msg.Sell:input_type -> regen.ecocredit.marketplace.v1.MsgSell - 2, // 11: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:input_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders - 4, // 12: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:input_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrder - 6, // 13: regen.ecocredit.marketplace.v1.Msg.BuyDirect:input_type -> regen.ecocredit.marketplace.v1.MsgBuyDirect - 8, // 14: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenom - 10, // 15: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenom - 12, // 16: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:input_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParams - 1, // 17: regen.ecocredit.marketplace.v1.Msg.Sell:output_type -> regen.ecocredit.marketplace.v1.MsgSellResponse - 3, // 18: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:output_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrdersResponse - 5, // 19: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:output_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrderResponse - 7, // 20: regen.ecocredit.marketplace.v1.Msg.BuyDirect:output_type -> regen.ecocredit.marketplace.v1.MsgBuyDirectResponse - 9, // 21: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenomResponse - 11, // 22: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse - 13, // 23: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:output_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse - 17, // [17:24] is the sub-list for method output_type - 10, // [10:17] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 16, // 0: regen.ecocredit.marketplace.v1.MsgSell.orders:type_name -> regen.ecocredit.marketplace.v1.MsgSell.Order + 17, // 1: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.updates:type_name -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update + 18, // 2: regen.ecocredit.marketplace.v1.MsgBuyDirect.orders:type_name -> regen.ecocredit.marketplace.v1.MsgBuyDirect.Order + 19, // 3: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees:type_name -> regen.ecocredit.marketplace.v1.FeeParams + 20, // 4: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount:type_name -> cosmos.base.v1beta1.Coin + 20, // 5: regen.ecocredit.marketplace.v1.MsgSell.Order.ask_price:type_name -> cosmos.base.v1beta1.Coin + 21, // 6: regen.ecocredit.marketplace.v1.MsgSell.Order.expiration:type_name -> google.protobuf.Timestamp + 20, // 7: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update.new_ask_price:type_name -> cosmos.base.v1beta1.Coin + 21, // 8: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update.new_expiration:type_name -> google.protobuf.Timestamp + 20, // 9: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.bid_price:type_name -> cosmos.base.v1beta1.Coin + 20, // 10: regen.ecocredit.marketplace.v1.MsgBuyDirect.Order.max_fee_amount:type_name -> cosmos.base.v1beta1.Coin + 0, // 11: regen.ecocredit.marketplace.v1.Msg.Sell:input_type -> regen.ecocredit.marketplace.v1.MsgSell + 2, // 12: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:input_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders + 4, // 13: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:input_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrder + 6, // 14: regen.ecocredit.marketplace.v1.Msg.BuyDirect:input_type -> regen.ecocredit.marketplace.v1.MsgBuyDirect + 8, // 15: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenom + 10, // 16: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:input_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenom + 12, // 17: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:input_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParams + 14, // 18: regen.ecocredit.marketplace.v1.Msg.GovSendFromFeePool:input_type -> regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool + 1, // 19: regen.ecocredit.marketplace.v1.Msg.Sell:output_type -> regen.ecocredit.marketplace.v1.MsgSellResponse + 3, // 20: regen.ecocredit.marketplace.v1.Msg.UpdateSellOrders:output_type -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrdersResponse + 5, // 21: regen.ecocredit.marketplace.v1.Msg.CancelSellOrder:output_type -> regen.ecocredit.marketplace.v1.MsgCancelSellOrderResponse + 7, // 22: regen.ecocredit.marketplace.v1.Msg.BuyDirect:output_type -> regen.ecocredit.marketplace.v1.MsgBuyDirectResponse + 9, // 23: regen.ecocredit.marketplace.v1.Msg.AddAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgAddAllowedDenomResponse + 11, // 24: regen.ecocredit.marketplace.v1.Msg.RemoveAllowedDenom:output_type -> regen.ecocredit.marketplace.v1.MsgRemoveAllowedDenomResponse + 13, // 25: regen.ecocredit.marketplace.v1.Msg.GovSetFeeParams:output_type -> regen.ecocredit.marketplace.v1.MsgGovSetFeeParamsResponse + 15, // 26: regen.ecocredit.marketplace.v1.Msg.GovSendFromFeePool:output_type -> regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse + 19, // [19:27] is the sub-list for method output_type + 11, // [11:19] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_regen_ecocredit_marketplace_v1_tx_proto_init() } @@ -9878,7 +10963,7 @@ 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 { + switch v := v.(*MsgGovSendFromFeePool); i { case 0: return &v.state case 1: @@ -9890,7 +10975,7 @@ func file_regen_ecocredit_marketplace_v1_tx_proto_init() { } } file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgUpdateSellOrders_Update); i { + switch v := v.(*MsgGovSendFromFeePoolResponse); i { case 0: return &v.state case 1: @@ -9902,6 +10987,30 @@ func file_regen_ecocredit_marketplace_v1_tx_proto_init() { } } file_regen_ecocredit_marketplace_v1_tx_proto_msgTypes[16].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[17].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[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgBuyDirect_Order); i { case 0: return &v.state @@ -9920,7 +11029,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: 17, + NumMessages: 19, 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 627959b2c0..e1c1512e4a 100644 --- a/api/regen/ecocredit/marketplace/v1/tx_grpc.pb.go +++ b/api/regen/ecocredit/marketplace/v1/tx_grpc.pb.go @@ -26,6 +26,7 @@ const ( 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" + Msg_GovSendFromFeePool_FullMethodName = "/regen.ecocredit.marketplace.v1.Msg/GovSendFromFeePool" ) // MsgClient is the client API for Msg service. @@ -53,6 +54,11 @@ type MsgClient interface { // // Since Revision 3 GovSetFeeParams(ctx context.Context, in *MsgGovSetFeeParams, opts ...grpc.CallOption) (*MsgGovSetFeeParamsResponse, error) + // GovSendFromFeePool is a governance method that allows the sending of the + // marketplace fees. + // + // Since Revision 3 + GovSendFromFeePool(ctx context.Context, in *MsgGovSendFromFeePool, opts ...grpc.CallOption) (*MsgGovSendFromFeePoolResponse, error) } type msgClient struct { @@ -126,6 +132,15 @@ func (c *msgClient) GovSetFeeParams(ctx context.Context, in *MsgGovSetFeeParams, return out, nil } +func (c *msgClient) GovSendFromFeePool(ctx context.Context, in *MsgGovSendFromFeePool, opts ...grpc.CallOption) (*MsgGovSendFromFeePoolResponse, error) { + out := new(MsgGovSendFromFeePoolResponse) + err := c.cc.Invoke(ctx, Msg_GovSendFromFeePool_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 @@ -151,6 +166,11 @@ type MsgServer interface { // // Since Revision 3 GovSetFeeParams(context.Context, *MsgGovSetFeeParams) (*MsgGovSetFeeParamsResponse, error) + // GovSendFromFeePool is a governance method that allows the sending of the + // marketplace fees. + // + // Since Revision 3 + GovSendFromFeePool(context.Context, *MsgGovSendFromFeePool) (*MsgGovSendFromFeePoolResponse, error) mustEmbedUnimplementedMsgServer() } @@ -179,6 +199,9 @@ func (UnimplementedMsgServer) RemoveAllowedDenom(context.Context, *MsgRemoveAllo func (UnimplementedMsgServer) GovSetFeeParams(context.Context, *MsgGovSetFeeParams) (*MsgGovSetFeeParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GovSetFeeParams not implemented") } +func (UnimplementedMsgServer) GovSendFromFeePool(context.Context, *MsgGovSendFromFeePool) (*MsgGovSendFromFeePoolResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GovSendFromFeePool not implemented") +} func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {} // UnsafeMsgServer may be embedded to opt out of forward compatibility for this service. @@ -318,6 +341,24 @@ func _Msg_GovSetFeeParams_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Msg_GovSendFromFeePool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgGovSendFromFeePool) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).GovSendFromFeePool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Msg_GovSendFromFeePool_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).GovSendFromFeePool(ctx, req.(*MsgGovSendFromFeePool)) + } + 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) @@ -353,6 +394,10 @@ var Msg_ServiceDesc = grpc.ServiceDesc{ MethodName: "GovSetFeeParams", Handler: _Msg_GovSetFeeParams_Handler, }, + { + MethodName: "GovSendFromFeePool", + Handler: _Msg_GovSendFromFeePool_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "regen/ecocredit/marketplace/v1/tx.proto", diff --git a/proto/regen/ecocredit/marketplace/v1/tx.proto b/proto/regen/ecocredit/marketplace/v1/tx.proto index cb5cfcdfb3..efcc3ed067 100644 --- a/proto/regen/ecocredit/marketplace/v1/tx.proto +++ b/proto/regen/ecocredit/marketplace/v1/tx.proto @@ -43,6 +43,14 @@ service Msg { // Since Revision 3 rpc GovSetFeeParams(MsgGovSetFeeParams) returns (MsgGovSetFeeParamsResponse); + + // GovSendFromFeePool is a governance method that allows the sending of the + // marketplace fees. + // + // Since Revision 3 + rpc GovSendFromFeePool(MsgGovSendFromFeePool) + returns (MsgGovSendFromFeePoolResponse); + } // MsgSell is the Msg/Sell request type. @@ -251,3 +259,20 @@ message MsgGovSetFeeParams { // MsgSetFeeParamsResponse is the Msg/SetFeeParams response type. message MsgGovSetFeeParamsResponse {} + +// MsgSendFromFeePool is the Msg/SendFromFeePool request type. +message MsgGovSendFromFeePool { + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the address of the governance account. + string authority = 1; + + // recipient is the address of the account that will receive the funds. + string recipient = 2; + + // amount is the amount of coins to send from the fee pool. + repeated cosmos.base.v1beta1.Coin amount = 3; +} + +// MsgSendFromFeePoolResponse is the Msg/SendFromFeePool response type. +message MsgGovSendFromFeePoolResponse {} \ No newline at end of file diff --git a/x/ecocredit/marketplace/keeper/features/msg_gov_send_from_fee_pool.feature b/x/ecocredit/marketplace/keeper/features/msg_gov_send_from_fee_pool.feature new file mode 100644 index 0000000000..928b533900 --- /dev/null +++ b/x/ecocredit/marketplace/keeper/features/msg_gov_send_from_fee_pool.feature @@ -0,0 +1,41 @@ +Feature: Msg/SendFromFeePool + + Background: + Given recipient "regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68" + + Rule: gov authority must be authorized + Scenario: gov authority is not authorized + Given authority is set to "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw" + When funds are sent + Then expect error contains "unauthorized" + + Scenario: gov authority is authorized + Given authority is set to the keeper authority + When funds are sent + Then expect no error + + Rule: the fee pool must have enough funds to cover the fee + Background: + Given authority is set to the keeper authority + + Scenario: fee pool is underfunded + Given fee pool balance "100foo" + And send amount "200foo" + When funds are sent + Then expect error contains "insufficient funds" + + Scenario: fee pool is well funded + Given fee pool balance "1000foo" + And send amount "200foo" + When funds are sent + Then expect no error + + Rule: funds are transferred from the fee pool to the recipient + Scenario: funds are transferred + Given authority is set to the keeper authority + Given fee pool balance "1000foo" + And send amount "200foo" + When funds are sent + Then expect no error + And fee pool balance "800foo" + And recipient balance "200foo" diff --git a/x/ecocredit/marketplace/keeper/features/msg_gov_set_fee_params.feature b/x/ecocredit/marketplace/keeper/features/msg_gov_set_fee_params.feature new file mode 100644 index 0000000000..69fa442615 --- /dev/null +++ b/x/ecocredit/marketplace/keeper/features/msg_gov_set_fee_params.feature @@ -0,0 +1,51 @@ +Feature: Msg/SetFeeParams + + Rule: gov authority must be authorized + Background: + Given fee params + """ + {} + """ + + Scenario: gov authority is not authorized + Given authority is set to "regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw" + When fee params are set + Then expect error contains "unauthorized" + + Scenario: gov authority is authorized + Given authority is set to the keeper authority + When fee params are set + Then expect no error + + Rule: fee params get saved + Scenario: non-empty fee params + Given authority is set to the keeper authority + And fee params + """ + { + "buyer_percentage_fee": "0.01", + "seller_percentage_fee": "0.01" + } + """ + When fee params are set + Then expect no error + And expect fee params + """ + { + "buyer_percentage_fee": "0.01", + "seller_percentage_fee": "0.01" + } + """ + + Scenario: empty fee params + Given authority is set to the keeper authority + And fee params + """ + {} + """ + When fee params are set + Then expect no error + And expect fee params + """ + {} + """ diff --git a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go new file mode 100644 index 0000000000..40329069a3 --- /dev/null +++ b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go @@ -0,0 +1,35 @@ +package keeper + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" +) + +func (k Keeper) GovSendFromFeePool(ctx context.Context, msg *types.MsgGovSendFromFeePool) (*types.MsgGovSendFromFeePoolResponse, error) { + authority, err := sdk.AccAddressFromBech32(msg.Authority) + if err != nil { + return nil, err + } + + if !authority.Equals(k.authority) { + return nil, sdkerrors.ErrUnauthorized + } + + recipient, err := sdk.AccAddressFromBech32(msg.Recipient) + if err != nil { + return nil, err + } + + amount := types.ToSDKCoins(msg.Amount) + + err = k.bankKeeper.SendCoinsFromModuleToAccount(sdk.UnwrapSDKContext(ctx), k.feePoolName, recipient, amount) + if err != nil { + return nil, err + } + + return &types.MsgGovSendFromFeePoolResponse{}, nil +} diff --git a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go new file mode 100644 index 0000000000..6c73a6a6c7 --- /dev/null +++ b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go @@ -0,0 +1,107 @@ +package keeper + +import ( + "testing" + + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/golang/mock/gomock" + "github.com/regen-network/gocuke" + "github.com/stretchr/testify/require" + + types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" +) + +type govSendFromFeePool struct { + *baseSuite + err error + msg *types.MsgGovSendFromFeePool + moduleBalances map[string]sdk.Coins + accountBalances map[string]sdk.Coins +} + +func TestGovSendFromFeePool(t *testing.T) { + gocuke.NewRunner(t, &govSendFromFeePool{}).Path("./features/msg_gov_send_from_fee_pool.feature").Run() +} + +func (s *govSendFromFeePool) Before(t gocuke.TestingT) { + s.baseSuite = setupBase(t, 2) + s.msg = &types.MsgGovSendFromFeePool{} + s.moduleBalances = make(map[string]sdk.Coins) + s.accountBalances = make(map[string]sdk.Coins) + s.bankKeeper.EXPECT(). + SendCoinsFromModuleToAccount(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()). + AnyTimes(). + DoAndReturn(func(_ sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amount sdk.Coins) error { + newModBalance, neg := s.moduleBalances[senderModule].SafeSub(amount...) + if neg { + return sdkerrors.ErrInsufficientFunds + } + + s.moduleBalances[senderModule] = newModBalance + s.accountBalances[recipientAddr.String()] = s.accountBalances[recipientAddr.String()].Add(amount...) + return nil + }) +} + +func (s *govSendFromFeePool) AuthorityIsSetToTheKeeperAuthority() { + s.msg.Authority = s.k.authority.String() +} + +func (s *govSendFromFeePool) AuthorityIsSetTo(a string) { + s.msg.Authority = a +} + +func (s *govSendFromFeePool) Recipient(a string) { + s.msg.Recipient = a +} + +func (s *govSendFromFeePool) SendAmount(a string) { + coins, err := sdk.ParseCoinsNormalized(a) + require.NoError(s.t, err) + var ptrCoins []*sdk.Coin + for _, coin := range coins { + ptrCoins = append(ptrCoins, &coin) + } + s.msg.Amount = ptrCoins +} + +func (s *govSendFromFeePool) FeePoolBalance(a string) { + coins, err := sdk.ParseCoinsNormalized(a) + require.NoError(s.t, err) + s.moduleBalances[s.k.feePoolName] = coins +} + +func (s *govSendFromFeePool) RecipientBalance(a string) { + coins, err := sdk.ParseCoinsNormalized(a) + require.NoError(s.t, err) + s.accountBalances[s.msg.Recipient] = coins +} + +func (s *govSendFromFeePool) FundsAreSent() { + _, s.err = s.k.GovSendFromFeePool(s.ctx, s.msg) +} + +func (s *govSendFromFeePool) ExpectErrorContains(a string) { + if s.err != nil { + require.ErrorContains(s.t, s.err, a) + } else { + require.NoError(s.t, s.err) + } +} + +func (s *govSendFromFeePool) ExpectNoError() { + require.NoError(s.t, s.err) +} + +func (s *govSendFromFeePool) ExpectFeePoolBalance(a string) { + coins, err := sdk.ParseCoinsNormalized(a) + require.NoError(s.t, err) + require.True(s.t, coins.IsEqual(s.moduleBalances[s.k.feePoolName])) +} + +func (s *govSendFromFeePool) ExpectRecipientBalance(a string) { + coins, err := sdk.ParseCoinsNormalized(a) + require.NoError(s.t, err) + require.True(s.t, coins.IsEqual(s.accountBalances[s.msg.Recipient])) +} diff --git a/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params_test.go b/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params_test.go new file mode 100644 index 0000000000..4b1e4f8b8b --- /dev/null +++ b/x/ecocredit/marketplace/keeper/msg_gov_set_fee_params_test.go @@ -0,0 +1,68 @@ +package keeper + +import ( + "testing" + + "github.com/gogo/protobuf/jsonpb" + "github.com/google/go-cmp/cmp" + "github.com/regen-network/gocuke" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/testing/protocmp" + + marketplacev1 "github.com/regen-network/regen-ledger/api/v2/regen/ecocredit/marketplace/v1" + types "github.com/regen-network/regen-ledger/x/ecocredit/v3/marketplace/types/v1" +) + +type govSetFeeParams struct { + *baseSuite + err error + msg *types.MsgGovSetFeeParams +} + +func TestGovSetFeeParams(t *testing.T) { + gocuke.NewRunner(t, &govSetFeeParams{}).Path("./features/msg_gov_set_fee_params.feature").Run() +} + +func (s *govSetFeeParams) Before(t gocuke.TestingT) { + s.baseSuite = setupBase(t, 2) + s.msg = &types.MsgGovSetFeeParams{} +} + +func (s *govSetFeeParams) AuthorityIsSetToTheKeeperAuthority() { + s.msg.Authority = s.k.authority.String() +} + +func (s *govSetFeeParams) AuthorityIsSetTo(a string) { + s.msg.Authority = a +} + +func (s *govSetFeeParams) FeeParams(a gocuke.DocString) { + s.msg.Fees = &types.FeeParams{} + require.NoError(s.t, jsonpb.UnmarshalString(a.Content, s.msg.Fees)) +} + +func (s *govSetFeeParams) FeeParamsAreSet() { + _, s.err = s.k.GovSetFeeParams(s.ctx, s.msg) +} + +func (s *govSetFeeParams) ExpectErrorContains(a string) { + if s.err != nil { + require.ErrorContains(s.t, s.err, a) + } else { + require.NoError(s.t, s.err) + } +} + +func (s *govSetFeeParams) ExpectNoError() { + require.NoError(s.t, s.err) +} + +func (s *govSetFeeParams) ExpectFeeParams(a gocuke.DocString) { + var expected marketplacev1.FeeParams + require.NoError(s.t, jsonpb.UnmarshalString(a.Content, &expected)) + actual, err := s.k.stateStore.FeeParamsTable().Get(s.ctx) + require.NoError(s.t, err) + if diff := cmp.Diff(&expected, actual, protocmp.Transform()); diff != "" { + require.Fail(s.t, "unexpected fee params", diff) + } +} diff --git a/x/ecocredit/marketplace/types/v1/features/msg_gov_send_from_fee_pool.feature b/x/ecocredit/marketplace/types/v1/features/msg_gov_send_from_fee_pool.feature new file mode 100644 index 0000000000..a98172a78f --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/features/msg_gov_send_from_fee_pool.feature @@ -0,0 +1,18 @@ +Feature: MsgGovSetFeeParams + + Scenario Outline: validate message + Given authority "" + * recipient "" + * amount "" + When the message is validated + Then expect error contains "" + + Examples: + | authority | recipient | amount | error | + | | | | empty address | + | foobar | | | bech32 | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | | | empty address | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | foobar | | bech32 | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68 | | amount | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68 | 100foo | | + diff --git a/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature b/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature index 812e2f0c81..39bc040aac 100644 --- a/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature +++ b/x/ecocredit/marketplace/types/v1/features/msg_gov_set_fee_params.feature @@ -4,12 +4,14 @@ Feature: MsgGovSetFeeParams Given authority "" And fee params `` When the message is validated - Then expect error + Then expect error contains "" Examples: - | authority | fee_params | error | - | | {} | true | - | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {} | false | - | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {"buyer_percentage_fee":"-0.1"} | true | - | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {"buyer_percentage_fee":"0.1"} | false | + | authority | fee_params | error | + | | {} | address | + | foobar | {} | bech32 | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | | fees cannot be nil | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {} | | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {"buyer_percentage_fee":"-0.1"} | non-negative decimal | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | {"buyer_percentage_fee":"0.1"} | | diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go new file mode 100644 index 0000000000..373495bf76 --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go @@ -0,0 +1,52 @@ +package v1 + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" +) + +var _ legacytx.LegacyMsg = &MsgGovSendFromFeePool{} + +// ValidateBasic does a sanity check on the provided data. +func (m *MsgGovSendFromFeePool) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(m.Authority) + if err != nil { + return err + } + + _, err = sdk.AccAddressFromBech32(m.Recipient) + if err != nil { + return err + } + + if m.Amount == nil { + return sdkerrors.ErrInvalidRequest.Wrap("amount cannot be nil") + } + + amount := ToSDKCoins(m.Amount) + return amount.Validate() +} + +// GetSigners implements the LegacyMsg interface. +func (m *MsgGovSendFromFeePool) GetSigners() []sdk.AccAddress { + return []sdk.AccAddress{sdk.MustAccAddressFromBech32(m.Authority)} +} + +// Route implements the LegacyMsg interface. +func (m *MsgGovSendFromFeePool) Route() string { return sdk.MsgTypeURL(m) } + +// Type implements the LegacyMsg interface. +func (m *MsgGovSendFromFeePool) Type() string { return sdk.MsgTypeURL(m) } + +// GetSignBytes implements the LegacyMsg interface. +func (m *MsgGovSendFromFeePool) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) +} + +func ToSDKCoins(collection []*sdk.Coin) (coins sdk.Coins) { + for _, coin := range collection { + coins = append(coins, *coin) + } + return +} diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go new file mode 100644 index 0000000000..4d4555f593 --- /dev/null +++ b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go @@ -0,0 +1,55 @@ +package v1 + +import ( + "testing" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/regen-network/gocuke" + "github.com/stretchr/testify/require" +) + +type govSendFromFeePool struct { + gocuke.TestingT + msg *MsgGovSendFromFeePool + err error +} + +func TestGovSendFromFeePool(t *testing.T) { + gocuke.NewRunner(t, &govSendFromFeePool{}). + Path("./features/msg_gov_send_from_fee_pool.feature"). + Run() +} + +func (s *govSendFromFeePool) Before() { + s.msg = &MsgGovSendFromFeePool{} +} + +func (s *govSendFromFeePool) Authority(a string) { + s.msg.Authority = a +} + +func (s *govSendFromFeePool) Recipient(a string) { + s.msg.Recipient = a +} + +func (s *govSendFromFeePool) Amount(a string) { + coins, err := sdk.ParseCoinsNormalized(a) + require.NoError(s, err) + var ptrCoins []*sdk.Coin + for _, coin := range coins { + ptrCoins = append(ptrCoins, &coin) + } + s.msg.Amount = ptrCoins +} + +func (s *govSendFromFeePool) TheMessageIsValidated() { + s.err = s.msg.ValidateBasic() +} + +func (s *govSendFromFeePool) ExpectErrorContains(a string) { + if a != "" { + require.ErrorContains(s, s.err, a) + } else { + require.NoError(s, s.err) + } +} diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params_test.go b/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params_test.go index 6fc9ff090c..d5c488a300 100644 --- a/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params_test.go +++ b/x/ecocredit/marketplace/types/v1/msg_gov_set_fee_params_test.go @@ -40,10 +40,10 @@ func (s *govSetFeeParams) TheMessageIsValidated() { s.err = s.msg.ValidateBasic() } -func (s *govSetFeeParams) ExpectErrorTrue() { - require.Error(s, s.err) -} - -func (s *govSetFeeParams) ExpectErrorFalse() { - require.NoError(s, s.err) +func (s *govSetFeeParams) ExpectErrorContains(a string) { + if a != "" { + require.ErrorContains(s, s.err, a) + } else { + require.NoError(s, s.err) + } } diff --git a/x/ecocredit/marketplace/types/v1/tx.pb.go b/x/ecocredit/marketplace/types/v1/tx.pb.go index 56f768dbe7..4c3398442b 100644 --- a/x/ecocredit/marketplace/types/v1/tx.pb.go +++ b/x/ecocredit/marketplace/types/v1/tx.pb.go @@ -1006,6 +1006,107 @@ func (m *MsgGovSetFeeParamsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgGovSetFeeParamsResponse proto.InternalMessageInfo +// MsgSendFromFeePool is the Msg/SendFromFeePool request type. +type MsgGovSendFromFeePool struct { + // authority is the address of the governance account. + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // recipient is the address of the account that will receive the funds. + Recipient string `protobuf:"bytes,2,opt,name=recipient,proto3" json:"recipient,omitempty"` + // amount is the amount of coins to send from the fee pool. + Amount []*types.Coin `protobuf:"bytes,3,rep,name=amount,proto3" json:"amount,omitempty"` +} + +func (m *MsgGovSendFromFeePool) Reset() { *m = MsgGovSendFromFeePool{} } +func (m *MsgGovSendFromFeePool) String() string { return proto.CompactTextString(m) } +func (*MsgGovSendFromFeePool) ProtoMessage() {} +func (*MsgGovSendFromFeePool) Descriptor() ([]byte, []int) { + return fileDescriptor_68c9b4e4b7fcb584, []int{14} +} +func (m *MsgGovSendFromFeePool) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgGovSendFromFeePool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgGovSendFromFeePool.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 *MsgGovSendFromFeePool) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgGovSendFromFeePool.Merge(m, src) +} +func (m *MsgGovSendFromFeePool) XXX_Size() int { + return m.Size() +} +func (m *MsgGovSendFromFeePool) XXX_DiscardUnknown() { + xxx_messageInfo_MsgGovSendFromFeePool.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgGovSendFromFeePool proto.InternalMessageInfo + +func (m *MsgGovSendFromFeePool) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgGovSendFromFeePool) GetRecipient() string { + if m != nil { + return m.Recipient + } + return "" +} + +func (m *MsgGovSendFromFeePool) GetAmount() []*types.Coin { + if m != nil { + return m.Amount + } + return nil +} + +// MsgSendFromFeePoolResponse is the Msg/SendFromFeePool response type. +type MsgGovSendFromFeePoolResponse struct { +} + +func (m *MsgGovSendFromFeePoolResponse) Reset() { *m = MsgGovSendFromFeePoolResponse{} } +func (m *MsgGovSendFromFeePoolResponse) String() string { return proto.CompactTextString(m) } +func (*MsgGovSendFromFeePoolResponse) ProtoMessage() {} +func (*MsgGovSendFromFeePoolResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_68c9b4e4b7fcb584, []int{15} +} +func (m *MsgGovSendFromFeePoolResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgGovSendFromFeePoolResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgGovSendFromFeePoolResponse.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 *MsgGovSendFromFeePoolResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgGovSendFromFeePoolResponse.Merge(m, src) +} +func (m *MsgGovSendFromFeePoolResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgGovSendFromFeePoolResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgGovSendFromFeePoolResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgGovSendFromFeePoolResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgSell)(nil), "regen.ecocredit.marketplace.v1.MsgSell") proto.RegisterType((*MsgSell_Order)(nil), "regen.ecocredit.marketplace.v1.MsgSell.Order") @@ -1024,6 +1125,8 @@ func init() { 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") + proto.RegisterType((*MsgGovSendFromFeePool)(nil), "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool") + proto.RegisterType((*MsgGovSendFromFeePoolResponse)(nil), "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePoolResponse") } func init() { @@ -1031,74 +1134,78 @@ func init() { } var fileDescriptor_68c9b4e4b7fcb584 = []byte{ - // 1058 bytes of a gzipped FileDescriptorProto + // 1126 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x41, 0x6f, 0xdc, 0x44, - 0x14, 0x8e, 0x77, 0x37, 0x9b, 0xe4, 0x6d, 0x92, 0xb6, 0xd3, 0x90, 0x2e, 0xa6, 0xd9, 0x84, 0x05, - 0xa9, 0xa1, 0x50, 0x5b, 0x49, 0x81, 0x4a, 0x41, 0x11, 0x24, 0x6d, 0x53, 0x51, 0xb4, 0xa2, 0x38, - 0xe5, 0x82, 0x84, 0xb6, 0x63, 0xfb, 0xc5, 0x31, 0xb1, 0x3d, 0xc6, 0x33, 0x4e, 0x36, 0xc7, 0x22, - 0x24, 0x24, 0x4e, 0x3d, 0x73, 0xe4, 0x17, 0xf0, 0x33, 0x38, 0xf6, 0x02, 0xe2, 0x06, 0x4a, 0x24, - 0xb8, 0x71, 0xe6, 0x88, 0x3c, 0xf6, 0x3a, 0x1b, 0x6f, 0xb6, 0x71, 0x72, 0xdb, 0x79, 0xef, 0x7d, - 0xef, 0xbd, 0xf9, 0xbe, 0x79, 0x33, 0x5e, 0xb8, 0x15, 0xa1, 0x83, 0x81, 0x8e, 0x16, 0xb3, 0x22, - 0xb4, 0x5d, 0xa1, 0xfb, 0x34, 0xda, 0x43, 0x11, 0x7a, 0xd4, 0x42, 0x7d, 0x7f, 0x45, 0x17, 0x3d, - 0x2d, 0x8c, 0x98, 0x60, 0xa4, 0x25, 0x03, 0xb5, 0x3c, 0x50, 0x1b, 0x08, 0xd4, 0xf6, 0x57, 0xd4, - 0x96, 0xc5, 0xb8, 0xcf, 0xb8, 0x6e, 0x52, 0x9e, 0x00, 0x4d, 0x14, 0x74, 0x45, 0xb7, 0x98, 0x1b, - 0xa4, 0x78, 0xf5, 0x46, 0xe6, 0xf7, 0xb9, 0x93, 0xe4, 0xf5, 0xb9, 0x93, 0x39, 0xe6, 0x1c, 0xe6, - 0x30, 0xf9, 0x53, 0x4f, 0x7e, 0x65, 0xd6, 0x45, 0x87, 0x31, 0xc7, 0x43, 0x5d, 0xae, 0xcc, 0x78, - 0x47, 0x17, 0xae, 0x8f, 0x5c, 0x50, 0x3f, 0xcc, 0x02, 0x6e, 0x9f, 0xd3, 0x38, 0x17, 0x54, 0x60, - 0x1a, 0xdb, 0xfe, 0xbb, 0x02, 0x13, 0x1d, 0xee, 0x6c, 0xa3, 0xe7, 0x91, 0x79, 0xa8, 0x73, 0xf4, - 0x3c, 0x8c, 0x9a, 0xca, 0x92, 0xb2, 0x3c, 0x65, 0x64, 0x2b, 0xf2, 0x10, 0xea, 0x2c, 0xb2, 0x31, - 0xe2, 0xcd, 0xca, 0x52, 0x75, 0xb9, 0xb1, 0x7a, 0x47, 0x7b, 0xf5, 0x86, 0xb5, 0x2c, 0xa1, 0xf6, - 0x79, 0x82, 0x32, 0x32, 0xb0, 0xfa, 0xaf, 0x02, 0xe3, 0xd2, 0x42, 0x16, 0xa1, 0x61, 0x52, 0x61, - 0xed, 0x76, 0x6d, 0x0c, 0x98, 0x9f, 0x55, 0x03, 0x69, 0x7a, 0x90, 0x58, 0x88, 0x0a, 0x93, 0xdf, - 0xc6, 0x34, 0x10, 0xae, 0x38, 0x6c, 0x56, 0xa4, 0x37, 0x5f, 0x93, 0x0f, 0x61, 0x8a, 0xf2, 0xbd, - 0x6e, 0x18, 0xb9, 0x16, 0x36, 0xab, 0x4b, 0xca, 0x72, 0x63, 0xf5, 0x75, 0x2d, 0x65, 0x50, 0x4b, - 0x18, 0xd6, 0x32, 0x86, 0xb5, 0xfb, 0xcc, 0x0d, 0x8c, 0x49, 0xca, 0xf7, 0x9e, 0x24, 0xa1, 0x44, - 0x83, 0xeb, 0xb6, 0xcb, 0xa9, 0xe9, 0x61, 0x97, 0xc6, 0x82, 0x75, 0x23, 0x14, 0x6e, 0x84, 0xcd, - 0xda, 0x92, 0xb2, 0x3c, 0x69, 0x5c, 0xcb, 0x5c, 0x1b, 0xb1, 0x60, 0x86, 0x74, 0x90, 0x4f, 0x00, - 0xb0, 0x17, 0xba, 0x11, 0x15, 0x2e, 0x0b, 0x9a, 0xe3, 0xb2, 0x90, 0xaa, 0xa5, 0xdc, 0x6b, 0x7d, - 0xee, 0xb5, 0xa7, 0x7d, 0xee, 0x37, 0x6b, 0x2f, 0xfe, 0x5c, 0x54, 0x8c, 0x01, 0xcc, 0x5a, 0xe3, - 0xbb, 0x7f, 0x7e, 0xb9, 0x9d, 0x91, 0xd8, 0xbe, 0x07, 0x57, 0x32, 0x5a, 0x0c, 0xe4, 0x21, 0x0b, - 0x38, 0x92, 0xb7, 0x61, 0x36, 0x71, 0x76, 0x25, 0x3f, 0x5d, 0xd7, 0xe6, 0x4d, 0x65, 0xa9, 0xba, - 0x5c, 0x33, 0xa6, 0x13, 0xab, 0x64, 0xea, 0x53, 0x9b, 0xb7, 0x7f, 0xaa, 0xc2, 0xf5, 0x0e, 0x77, - 0xbe, 0x0c, 0x6d, 0x2a, 0x70, 0xbb, 0xef, 0xe1, 0x23, 0xd5, 0x7a, 0x0a, 0x13, 0xb1, 0x8c, 0xed, - 0xcb, 0xb5, 0x56, 0x42, 0xae, 0x62, 0x76, 0x2d, 0x35, 0x18, 0xfd, 0x54, 0xea, 0x0f, 0x15, 0xa8, - 0xa7, 0x36, 0xd2, 0x86, 0x99, 0x53, 0x6d, 0xcb, 0xfa, 0x35, 0xa3, 0x31, 0xd0, 0x35, 0x79, 0x13, - 0xa6, 0x03, 0x3c, 0xe8, 0x16, 0x44, 0x6c, 0x04, 0x78, 0xf0, 0x45, 0x5f, 0xc7, 0x75, 0x98, 0x49, - 0x42, 0x2e, 0xa0, 0x65, 0x02, 0xdf, 0xb8, 0xac, 0x9c, 0x8f, 0x60, 0x36, 0x29, 0x77, 0x09, 0x49, - 0x93, 0x36, 0x1f, 0x8e, 0x50, 0x75, 0x01, 0xde, 0x38, 0x83, 0xbd, 0xbe, 0xc2, 0xed, 0xaf, 0x81, - 0x74, 0xb8, 0x73, 0x9f, 0x06, 0x16, 0x7a, 0xb9, 0x7b, 0xa4, 0x72, 0x43, 0xc4, 0x56, 0x86, 0x88, - 0x3d, 0x5d, 0xfd, 0x26, 0xa8, 0xc3, 0xe9, 0xf3, 0xe2, 0xbf, 0x55, 0x61, 0xba, 0xc3, 0x9d, 0xcd, - 0xf8, 0xf0, 0x81, 0x1b, 0xa1, 0x25, 0xc8, 0x1c, 0x8c, 0x9b, 0xf1, 0x61, 0x5e, 0x36, 0x5d, 0x90, - 0xc7, 0x85, 0xe9, 0x5e, 0x2d, 0x71, 0x5c, 0xf2, 0x9c, 0x85, 0x11, 0xff, 0xbd, 0xd2, 0x1f, 0xf1, - 0x12, 0x7b, 0x39, 0x35, 0xe5, 0xd5, 0xe1, 0x29, 0x37, 0x5d, 0x3b, 0x3b, 0x19, 0xb5, 0x73, 0xa7, - 0xdc, 0x74, 0xed, 0x57, 0x1e, 0x8b, 0xf1, 0x51, 0xc7, 0xe2, 0x1e, 0xdc, 0x48, 0x43, 0x7c, 0x0c, - 0x44, 0xf7, 0x9b, 0x38, 0x72, 0xb9, 0xed, 0x5a, 0xf2, 0x7c, 0xd4, 0x65, 0x4b, 0xf3, 0x27, 0xee, - 0xc7, 0x03, 0x5e, 0xf2, 0x2e, 0x5c, 0x1b, 0x00, 0x46, 0x48, 0x39, 0x0b, 0x9a, 0x13, 0x12, 0x72, - 0xf5, 0xc4, 0x61, 0x48, 0x3b, 0xf9, 0x18, 0x66, 0x7d, 0xda, 0xeb, 0xee, 0x20, 0x76, 0xa9, 0xcf, - 0xe2, 0x40, 0x34, 0x27, 0xcf, 0xdb, 0xd2, 0xb4, 0x4f, 0x7b, 0x5b, 0x88, 0x1b, 0x32, 0x7c, 0x0d, - 0x12, 0xd9, 0x53, 0xc1, 0xda, 0xf3, 0x30, 0x37, 0x28, 0x41, 0xae, 0xf7, 0xcf, 0x8a, 0x3c, 0x6d, - 0x1b, 0xb6, 0xbd, 0xe1, 0x79, 0xec, 0x00, 0xed, 0xf4, 0x2e, 0xbd, 0x09, 0x53, 0x34, 0x16, 0xbb, - 0x2c, 0x4a, 0x68, 0x4e, 0x95, 0x3f, 0x31, 0x90, 0x05, 0x00, 0x93, 0x06, 0x7b, 0xd9, 0x4d, 0x9c, - 0x8e, 0xe9, 0x54, 0x62, 0x49, 0xc1, 0x6f, 0xc1, 0x8c, 0xed, 0xf2, 0xd0, 0xa3, 0x87, 0x59, 0x44, - 0xaa, 0xd3, 0x74, 0x66, 0xcc, 0x6f, 0x6b, 0xec, 0x85, 0x2c, 0xc0, 0x40, 0x48, 0xa9, 0x66, 0x8c, - 0x7c, 0xbd, 0x36, 0x9b, 0x34, 0x7e, 0x52, 0x2f, 0x3b, 0xb2, 0x85, 0x1e, 0xf3, 0x2d, 0x7c, 0x06, - 0xaf, 0x75, 0xb8, 0x63, 0xa0, 0xcf, 0xf6, 0xf1, 0x02, 0x9b, 0x98, 0x83, 0xf1, 0xc1, 0xfe, 0xd3, - 0x45, 0x7b, 0x11, 0x16, 0xce, 0x4c, 0x96, 0x57, 0x7b, 0x9e, 0x12, 0xf6, 0x88, 0xed, 0x6f, 0xa3, - 0xd8, 0x42, 0x7c, 0x42, 0x23, 0xea, 0xf3, 0x73, 0x6a, 0xad, 0x43, 0x6d, 0x07, 0xe5, 0xdd, 0x9a, - 0x08, 0xf8, 0xce, 0x79, 0xc3, 0x92, 0xa7, 0x35, 0x24, 0x6c, 0x04, 0x1f, 0x85, 0x16, 0xfa, 0x1d, - 0xae, 0xfe, 0x57, 0x87, 0x6a, 0x87, 0x3b, 0xe4, 0x19, 0xd4, 0xe4, 0x0b, 0x7d, 0xab, 0xe4, 0xcb, - 0xab, 0xea, 0x25, 0x03, 0xf3, 0xb7, 0xe8, 0x7b, 0x05, 0xae, 0x0e, 0x3d, 0x31, 0x77, 0x2f, 0xf1, - 0x72, 0xa8, 0x1f, 0x5d, 0x02, 0x94, 0xb7, 0xf1, 0x5c, 0x81, 0x2b, 0xc5, 0xeb, 0xb2, 0xcc, 0x85, - 0x54, 0xc0, 0xa8, 0x6b, 0x17, 0xc7, 0xe4, 0x3d, 0x30, 0x98, 0x3a, 0xb9, 0x33, 0xdf, 0xbb, 0xc8, - 0x6d, 0xa8, 0xbe, 0x7f, 0x91, 0xe8, 0x53, 0x9b, 0x2e, 0x4e, 0x6d, 0x99, 0x4d, 0x17, 0x30, 0xa5, - 0x36, 0x3d, 0x62, 0xf2, 0xc8, 0x8f, 0x0a, 0x90, 0x33, 0xe6, 0xee, 0x83, 0x12, 0x29, 0x87, 0x61, - 0xea, 0xfa, 0xa5, 0x60, 0xa7, 0x08, 0x29, 0x4e, 0x65, 0x19, 0x42, 0x0a, 0x98, 0x52, 0x84, 0x8c, - 0x18, 0xbd, 0xcd, 0x67, 0xbf, 0x1e, 0xb5, 0x94, 0x97, 0x47, 0x2d, 0xe5, 0xaf, 0xa3, 0x96, 0xf2, - 0xe2, 0xb8, 0x35, 0xf6, 0xf2, 0xb8, 0x35, 0xf6, 0xc7, 0x71, 0x6b, 0xec, 0xab, 0x2d, 0xc7, 0x15, - 0xbb, 0xb1, 0xa9, 0x59, 0xcc, 0xd7, 0x65, 0xfe, 0x3b, 0x01, 0x8a, 0x03, 0x16, 0xed, 0x65, 0x2b, - 0x0f, 0x6d, 0x07, 0x23, 0xbd, 0x37, 0xe2, 0x03, 0x5c, 0x1c, 0x86, 0xc8, 0x93, 0xbf, 0x01, 0x75, - 0xf9, 0xc5, 0x71, 0xf7, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x41, 0x41, 0x22, 0xc9, 0x68, 0x0c, - 0x00, 0x00, + 0x14, 0xae, 0x77, 0x37, 0x9b, 0xec, 0xdb, 0x24, 0x6d, 0xdd, 0x90, 0x2e, 0x26, 0xd9, 0x84, 0x05, + 0xa9, 0xa1, 0x50, 0x5b, 0x49, 0x29, 0x95, 0x82, 0x22, 0x48, 0xda, 0xa6, 0xa2, 0x68, 0x45, 0x71, + 0xca, 0x05, 0x09, 0x6d, 0x67, 0xed, 0x17, 0xc7, 0xc4, 0xf6, 0x2c, 0x9e, 0x71, 0xb2, 0x39, 0x16, + 0x81, 0x90, 0x38, 0xf5, 0xc4, 0x81, 0x23, 0xbf, 0x80, 0x9f, 0xc1, 0xb1, 0x17, 0x10, 0x37, 0x50, + 0x22, 0xc1, 0x8d, 0xdf, 0x80, 0x3c, 0x9e, 0x75, 0x76, 0xbd, 0xd9, 0xac, 0x93, 0x9b, 0xe7, 0xbd, + 0xf7, 0xbd, 0xf7, 0xe6, 0xfb, 0x66, 0x9e, 0x6d, 0xb8, 0x15, 0xa2, 0x83, 0x81, 0x81, 0x16, 0xb5, + 0x42, 0xb4, 0x5d, 0x6e, 0xf8, 0x24, 0xdc, 0x47, 0xde, 0xf1, 0x88, 0x85, 0xc6, 0xc1, 0xaa, 0xc1, + 0xbb, 0x7a, 0x27, 0xa4, 0x9c, 0xaa, 0x75, 0x11, 0xa8, 0xa7, 0x81, 0x7a, 0x5f, 0xa0, 0x7e, 0xb0, + 0xaa, 0xd5, 0x2d, 0xca, 0x7c, 0xca, 0x8c, 0x36, 0x61, 0x31, 0xb0, 0x8d, 0x9c, 0xac, 0x1a, 0x16, + 0x75, 0x83, 0x04, 0xaf, 0xdd, 0x94, 0x7e, 0x9f, 0x39, 0x71, 0x5e, 0x9f, 0x39, 0xd2, 0x31, 0xe7, + 0x50, 0x87, 0x8a, 0x47, 0x23, 0x7e, 0x92, 0xd6, 0x25, 0x87, 0x52, 0xc7, 0x43, 0x43, 0xac, 0xda, + 0xd1, 0xae, 0xc1, 0x5d, 0x1f, 0x19, 0x27, 0x7e, 0x47, 0x06, 0xdc, 0x1e, 0xd3, 0x38, 0xe3, 0x84, + 0x63, 0x12, 0xdb, 0xf8, 0xa7, 0x00, 0x93, 0x4d, 0xe6, 0xec, 0xa0, 0xe7, 0xa9, 0xf3, 0x50, 0x66, + 0xe8, 0x79, 0x18, 0xd6, 0x94, 0x65, 0x65, 0xa5, 0x62, 0xca, 0x95, 0xfa, 0x08, 0xca, 0x34, 0xb4, + 0x31, 0x64, 0xb5, 0xc2, 0x72, 0x71, 0xa5, 0xba, 0x76, 0x47, 0x3f, 0x7f, 0xc3, 0xba, 0x4c, 0xa8, + 0x7f, 0x16, 0xa3, 0x4c, 0x09, 0xd6, 0xfe, 0x53, 0x60, 0x42, 0x58, 0xd4, 0x25, 0xa8, 0xb6, 0x09, + 0xb7, 0xf6, 0x5a, 0x36, 0x06, 0xd4, 0x97, 0xd5, 0x40, 0x98, 0x1e, 0xc6, 0x16, 0x55, 0x83, 0xa9, + 0x6f, 0x22, 0x12, 0x70, 0x97, 0x1f, 0xd5, 0x0a, 0xc2, 0x9b, 0xae, 0xd5, 0x0f, 0xa0, 0x42, 0xd8, + 0x7e, 0xab, 0x13, 0xba, 0x16, 0xd6, 0x8a, 0xcb, 0xca, 0x4a, 0x75, 0xed, 0x75, 0x3d, 0x61, 0x50, + 0x8f, 0x19, 0xd6, 0x25, 0xc3, 0xfa, 0x03, 0xea, 0x06, 0xe6, 0x14, 0x61, 0xfb, 0x4f, 0xe3, 0x50, + 0x55, 0x87, 0x1b, 0xb6, 0xcb, 0x48, 0xdb, 0xc3, 0x16, 0x89, 0x38, 0x6d, 0x85, 0xc8, 0xdd, 0x10, + 0x6b, 0xa5, 0x65, 0x65, 0x65, 0xca, 0xbc, 0x2e, 0x5d, 0x9b, 0x11, 0xa7, 0xa6, 0x70, 0xa8, 0x1f, + 0x03, 0x60, 0xb7, 0xe3, 0x86, 0x84, 0xbb, 0x34, 0xa8, 0x4d, 0x88, 0x42, 0x9a, 0x9e, 0x70, 0xaf, + 0xf7, 0xb8, 0xd7, 0x9f, 0xf5, 0xb8, 0xdf, 0x2a, 0xbd, 0xfc, 0x6b, 0x49, 0x31, 0xfb, 0x30, 0xeb, + 0xd5, 0x6f, 0xff, 0xfd, 0xf5, 0xb6, 0x24, 0xb1, 0x71, 0x1f, 0xae, 0x4a, 0x5a, 0x4c, 0x64, 0x1d, + 0x1a, 0x30, 0x54, 0xdf, 0x86, 0xd9, 0xd8, 0xd9, 0x12, 0xfc, 0xb4, 0x5c, 0x9b, 0xd5, 0x94, 0xe5, + 0xe2, 0x4a, 0xc9, 0x9c, 0x8e, 0xad, 0x82, 0xa9, 0x4f, 0x6c, 0xd6, 0xf8, 0xb9, 0x08, 0x37, 0x9a, + 0xcc, 0xf9, 0xa2, 0x63, 0x13, 0x8e, 0x3b, 0x3d, 0x0f, 0x1b, 0xa9, 0xd6, 0x33, 0x98, 0x8c, 0x44, + 0x6c, 0x4f, 0xae, 0xf5, 0x1c, 0x72, 0x65, 0xb3, 0xeb, 0x89, 0xc1, 0xec, 0xa5, 0xd2, 0x7e, 0x28, + 0x40, 0x39, 0xb1, 0xa9, 0x0d, 0x98, 0x19, 0x68, 0x5b, 0xd4, 0x2f, 0x99, 0xd5, 0xbe, 0xae, 0xd5, + 0x37, 0x61, 0x3a, 0xc0, 0xc3, 0x56, 0x46, 0xc4, 0x6a, 0x80, 0x87, 0x9f, 0xf7, 0x74, 0xdc, 0x80, + 0x99, 0x38, 0xe4, 0x02, 0x5a, 0xc6, 0xf0, 0xcd, 0xcb, 0xca, 0xf9, 0x18, 0x66, 0xe3, 0x72, 0x97, + 0x90, 0x34, 0x6e, 0xf3, 0xd1, 0x08, 0x55, 0x17, 0xe1, 0x8d, 0x33, 0xd8, 0xeb, 0x29, 0xdc, 0xf8, + 0x0a, 0xd4, 0x26, 0x73, 0x1e, 0x90, 0xc0, 0x42, 0x2f, 0x75, 0x8f, 0x54, 0x6e, 0x88, 0xd8, 0xc2, + 0x10, 0xb1, 0x83, 0xd5, 0x17, 0x40, 0x1b, 0x4e, 0x9f, 0x16, 0xff, 0xbd, 0x08, 0xd3, 0x4d, 0xe6, + 0x6c, 0x45, 0x47, 0x0f, 0xdd, 0x10, 0x2d, 0xae, 0xce, 0xc1, 0x44, 0x3b, 0x3a, 0x4a, 0xcb, 0x26, + 0x0b, 0xf5, 0x49, 0xe6, 0x76, 0xaf, 0xe5, 0x38, 0x2e, 0x69, 0xce, 0xcc, 0x15, 0xff, 0xa3, 0xd0, + 0xbb, 0xe2, 0x39, 0xf6, 0x32, 0x70, 0xcb, 0x8b, 0xc3, 0xb7, 0xbc, 0xed, 0xda, 0xf2, 0x64, 0x94, + 0xc6, 0xde, 0xf2, 0xb6, 0x6b, 0x9f, 0x7b, 0x2c, 0x26, 0x46, 0x1d, 0x8b, 0xfb, 0x70, 0x33, 0x09, + 0xf1, 0x31, 0xe0, 0xad, 0xaf, 0xa3, 0xd0, 0x65, 0xb6, 0x6b, 0x89, 0xf3, 0x51, 0x16, 0x2d, 0xcd, + 0x9f, 0xba, 0x9f, 0xf4, 0x79, 0xd5, 0x77, 0xe1, 0x7a, 0x1f, 0x30, 0x44, 0xc2, 0x68, 0x50, 0x9b, + 0x14, 0x90, 0x6b, 0xa7, 0x0e, 0x53, 0xd8, 0xd5, 0x8f, 0x60, 0xd6, 0x27, 0xdd, 0xd6, 0x2e, 0x62, + 0x8b, 0xf8, 0x34, 0x0a, 0x78, 0x6d, 0x6a, 0xdc, 0x96, 0xa6, 0x7d, 0xd2, 0xdd, 0x46, 0xdc, 0x14, + 0xe1, 0xeb, 0x10, 0xcb, 0x9e, 0x08, 0xd6, 0x98, 0x87, 0xb9, 0x7e, 0x09, 0x52, 0xbd, 0x7f, 0x51, + 0xc4, 0x69, 0xdb, 0xb4, 0xed, 0x4d, 0xcf, 0xa3, 0x87, 0x68, 0x27, 0xb3, 0x74, 0x01, 0x2a, 0x24, + 0xe2, 0x7b, 0x34, 0x8c, 0x69, 0x4e, 0x94, 0x3f, 0x35, 0xa8, 0x8b, 0x00, 0x6d, 0x12, 0xec, 0xcb, + 0x49, 0x9c, 0x5c, 0xd3, 0x4a, 0x6c, 0x49, 0xc0, 0x6f, 0xc1, 0x8c, 0xed, 0xb2, 0x8e, 0x47, 0x8e, + 0x64, 0x44, 0xa2, 0xd3, 0xb4, 0x34, 0xa6, 0xd3, 0x1a, 0xbb, 0x1d, 0x1a, 0x60, 0xc0, 0x85, 0x54, + 0x33, 0x66, 0xba, 0x5e, 0x9f, 0x8d, 0x1b, 0x3f, 0xad, 0x27, 0x8f, 0x6c, 0xa6, 0xc7, 0x74, 0x0b, + 0x9f, 0xc2, 0x6b, 0x4d, 0xe6, 0x98, 0xe8, 0xd3, 0x03, 0xbc, 0xc0, 0x26, 0xe6, 0x60, 0xa2, 0xbf, + 0xff, 0x64, 0xd1, 0x58, 0x82, 0xc5, 0x33, 0x93, 0xa5, 0xd5, 0x5e, 0x24, 0x84, 0x3d, 0xa6, 0x07, + 0x3b, 0xc8, 0xb7, 0x11, 0x9f, 0x92, 0x90, 0xf8, 0x6c, 0x4c, 0xad, 0x0d, 0x28, 0xed, 0xa2, 0x98, + 0xad, 0xb1, 0x80, 0xef, 0x8c, 0xbb, 0x2c, 0x69, 0x5a, 0x53, 0xc0, 0x46, 0xf0, 0x91, 0x69, 0x21, + 0xed, 0xf0, 0x27, 0x45, 0x10, 0x22, 0xdc, 0x81, 0xbd, 0x1d, 0x52, 0x3f, 0x8e, 0xa1, 0xd4, 0x1b, + 0xd3, 0xe4, 0x02, 0x54, 0x42, 0xb4, 0xdc, 0x8e, 0x1b, 0x4b, 0x22, 0x45, 0x4d, 0x0d, 0xea, 0x2a, + 0x94, 0xe5, 0x29, 0x2c, 0x8a, 0x1b, 0x7f, 0xce, 0x29, 0x94, 0x81, 0x43, 0x6d, 0x27, 0xdc, 0x0e, + 0xf7, 0xd5, 0xeb, 0x7c, 0xed, 0xfb, 0x29, 0x28, 0x36, 0x99, 0xa3, 0x3e, 0x87, 0x92, 0xf8, 0xb6, + 0xb8, 0x95, 0xf3, 0x9b, 0x41, 0x33, 0x72, 0x06, 0xa6, 0x6f, 0xd1, 0xef, 0x14, 0xb8, 0x36, 0xf4, + 0x72, 0xbc, 0x7b, 0x89, 0x77, 0x9e, 0xf6, 0xe1, 0x25, 0x40, 0x69, 0x1b, 0x2f, 0x14, 0xb8, 0x9a, + 0x1d, 0xf4, 0x79, 0x46, 0x69, 0x06, 0xa3, 0xad, 0x5f, 0x1c, 0x93, 0xf6, 0x40, 0xa1, 0x72, 0x3a, + 0xed, 0xdf, 0xbb, 0xc8, 0x1c, 0xd7, 0xde, 0xbf, 0x48, 0xf4, 0xc0, 0xa6, 0xb3, 0xf3, 0x26, 0xcf, + 0xa6, 0x33, 0x98, 0x5c, 0x9b, 0x1e, 0x31, 0x33, 0xd4, 0x1f, 0x15, 0x50, 0xcf, 0x98, 0x18, 0xf7, + 0x72, 0xa4, 0x1c, 0x86, 0x69, 0x1b, 0x97, 0x82, 0x0d, 0x10, 0x92, 0x9d, 0x27, 0x79, 0x08, 0xc9, + 0x60, 0x72, 0x11, 0x32, 0x62, 0x68, 0x08, 0x42, 0xce, 0x98, 0x18, 0xf7, 0xf2, 0xa6, 0x1c, 0x80, + 0xe5, 0x22, 0x64, 0xf4, 0x1c, 0xd8, 0x7a, 0xfe, 0xdb, 0x71, 0x5d, 0x79, 0x75, 0x5c, 0x57, 0xfe, + 0x3e, 0xae, 0x2b, 0x2f, 0x4f, 0xea, 0x57, 0x5e, 0x9d, 0xd4, 0xaf, 0xfc, 0x79, 0x52, 0xbf, 0xf2, + 0xe5, 0xb6, 0xe3, 0xf2, 0xbd, 0xa8, 0xad, 0x5b, 0xd4, 0x37, 0x44, 0x89, 0x3b, 0x01, 0xf2, 0x43, + 0x1a, 0xee, 0xcb, 0x95, 0x87, 0xb6, 0x83, 0xa1, 0xd1, 0x1d, 0xf1, 0x1f, 0xc3, 0x8f, 0x3a, 0xc8, + 0xe2, 0xbf, 0xa9, 0xb2, 0xf8, 0x70, 0xbb, 0xfb, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xed, 0x37, + 0x86, 0x18, 0xaf, 0x0d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1134,6 +1241,11 @@ type MsgClient interface { // // Since Revision 3 GovSetFeeParams(ctx context.Context, in *MsgGovSetFeeParams, opts ...grpc.CallOption) (*MsgGovSetFeeParamsResponse, error) + // GovSendFromFeePool is a governance method that allows the sending of the + // marketplace fees. + // + // Since Revision 3 + GovSendFromFeePool(ctx context.Context, in *MsgGovSendFromFeePool, opts ...grpc.CallOption) (*MsgGovSendFromFeePoolResponse, error) } type msgClient struct { @@ -1207,6 +1319,15 @@ func (c *msgClient) GovSetFeeParams(ctx context.Context, in *MsgGovSetFeeParams, return out, nil } +func (c *msgClient) GovSendFromFeePool(ctx context.Context, in *MsgGovSendFromFeePool, opts ...grpc.CallOption) (*MsgGovSendFromFeePoolResponse, error) { + out := new(MsgGovSendFromFeePoolResponse) + err := c.cc.Invoke(ctx, "/regen.ecocredit.marketplace.v1.Msg/GovSendFromFeePool", 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. @@ -1230,6 +1351,11 @@ type MsgServer interface { // // Since Revision 3 GovSetFeeParams(context.Context, *MsgGovSetFeeParams) (*MsgGovSetFeeParamsResponse, error) + // GovSendFromFeePool is a governance method that allows the sending of the + // marketplace fees. + // + // Since Revision 3 + GovSendFromFeePool(context.Context, *MsgGovSendFromFeePool) (*MsgGovSendFromFeePoolResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -1257,6 +1383,9 @@ func (*UnimplementedMsgServer) RemoveAllowedDenom(ctx context.Context, req *MsgR func (*UnimplementedMsgServer) GovSetFeeParams(ctx context.Context, req *MsgGovSetFeeParams) (*MsgGovSetFeeParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GovSetFeeParams not implemented") } +func (*UnimplementedMsgServer) GovSendFromFeePool(ctx context.Context, req *MsgGovSendFromFeePool) (*MsgGovSendFromFeePoolResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GovSendFromFeePool not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -1388,6 +1517,24 @@ func _Msg_GovSetFeeParams_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Msg_GovSendFromFeePool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgGovSendFromFeePool) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).GovSendFromFeePool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/regen.ecocredit.marketplace.v1.Msg/GovSendFromFeePool", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).GovSendFromFeePool(ctx, req.(*MsgGovSendFromFeePool)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "regen.ecocredit.marketplace.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -1420,6 +1567,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "GovSetFeeParams", Handler: _Msg_GovSetFeeParams_Handler, }, + { + MethodName: "GovSendFromFeePool", + Handler: _Msg_GovSendFromFeePool_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "regen/ecocredit/marketplace/v1/tx.proto", @@ -2118,6 +2269,80 @@ func (m *MsgGovSetFeeParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } +func (m *MsgGovSendFromFeePool) 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 *MsgGovSendFromFeePool) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgGovSendFromFeePool) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Amount) > 0 { + for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Recipient) > 0 { + i -= len(m.Recipient) + copy(dAtA[i:], m.Recipient) + i = encodeVarintTx(dAtA, i, uint64(len(m.Recipient))) + 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 *MsgGovSendFromFeePoolResponse) 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 *MsgGovSendFromFeePoolResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgGovSendFromFeePoolResponse) 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 @@ -2420,6 +2645,38 @@ func (m *MsgGovSetFeeParamsResponse) Size() (n int) { return n } +func (m *MsgGovSendFromFeePool) 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)) + } + l = len(m.Recipient) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if len(m.Amount) > 0 { + for _, e := range m.Amount { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + return n +} + +func (m *MsgGovSendFromFeePoolResponse) 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 } @@ -4354,6 +4611,204 @@ func (m *MsgGovSetFeeParamsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgGovSendFromFeePool) 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: MsgGovSendFromFeePool: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgGovSendFromFeePool: 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 Recipient", 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.Recipient = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", 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 + } + m.Amount = append(m.Amount, &types.Coin{}) + if err := m.Amount[len(m.Amount)-1].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 *MsgGovSendFromFeePoolResponse) 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: MsgGovSendFromFeePoolResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgGovSendFromFeePoolResponse: 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 From 7442fe2873bc1672843b4a5bc36027c7606dfd9c Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Thu, 29 Feb 2024 16:53:17 -0500 Subject: [PATCH 26/27] fix coins --- .../ecocredit/marketplace/v1/tx.pulsar.go | 164 +++++++++--------- proto/regen/ecocredit/marketplace/v1/tx.proto | 5 +- .../keeper/msg_gov_send_from_fee_pool.go | 4 +- .../keeper/msg_gov_send_from_fee_pool_test.go | 6 +- .../types/v1/msg_gov_send_from_fee_pool.go | 10 +- .../v1/msg_gov_send_from_fee_pool_test.go | 6 +- x/ecocredit/marketplace/types/v1/tx.pb.go | 152 ++++++++-------- 7 files changed, 169 insertions(+), 178 deletions(-) diff --git a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go index fbd04916b2..83c9cb820f 100644 --- a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go @@ -10618,101 +10618,105 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_rawDesc = []byte{ 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, 0x22, 0x96, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, + 0x6e, 0x73, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x63, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 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, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0e, 0x82, 0xe7, - 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1f, 0x0a, 0x1d, - 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, - 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x85, 0x08, - 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, + 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0e, + 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1f, + 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, + 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0x85, 0x08, 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, 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, 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, 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, + 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, 0x1a, 0x34, 0x2e, + 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, 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, 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, + 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, 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, + 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, 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, 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, + 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, 0x12, 0x8a, 0x01, 0x0a, 0x12, 0x47, + 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, + 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x12, 0x47, 0x6f, 0x76, - 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, - 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, - 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, + 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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 ( diff --git a/proto/regen/ecocredit/marketplace/v1/tx.proto b/proto/regen/ecocredit/marketplace/v1/tx.proto index efcc3ed067..d63270f09b 100644 --- a/proto/regen/ecocredit/marketplace/v1/tx.proto +++ b/proto/regen/ecocredit/marketplace/v1/tx.proto @@ -271,7 +271,10 @@ message MsgGovSendFromFeePool { string recipient = 2; // amount is the amount of coins to send from the fee pool. - repeated cosmos.base.v1beta1.Coin amount = 3; + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; } // MsgSendFromFeePoolResponse is the Msg/SendFromFeePool response type. diff --git a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go index 40329069a3..3d18fcba7e 100644 --- a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go +++ b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go @@ -24,9 +24,7 @@ func (k Keeper) GovSendFromFeePool(ctx context.Context, msg *types.MsgGovSendFro return nil, err } - amount := types.ToSDKCoins(msg.Amount) - - err = k.bankKeeper.SendCoinsFromModuleToAccount(sdk.UnwrapSDKContext(ctx), k.feePoolName, recipient, amount) + err = k.bankKeeper.SendCoinsFromModuleToAccount(sdk.UnwrapSDKContext(ctx), k.feePoolName, recipient, msg.Amount) if err != nil { return nil, err } diff --git a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go index 6c73a6a6c7..98fb30ecb4 100644 --- a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go +++ b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go @@ -59,11 +59,7 @@ func (s *govSendFromFeePool) Recipient(a string) { func (s *govSendFromFeePool) SendAmount(a string) { coins, err := sdk.ParseCoinsNormalized(a) require.NoError(s.t, err) - var ptrCoins []*sdk.Coin - for _, coin := range coins { - ptrCoins = append(ptrCoins, &coin) - } - s.msg.Amount = ptrCoins + s.msg.Amount = coins } func (s *govSendFromFeePool) FeePoolBalance(a string) { diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go index 373495bf76..df5b3d8005 100644 --- a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go +++ b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go @@ -24,8 +24,7 @@ func (m *MsgGovSendFromFeePool) ValidateBasic() error { return sdkerrors.ErrInvalidRequest.Wrap("amount cannot be nil") } - amount := ToSDKCoins(m.Amount) - return amount.Validate() + return m.Amount.Validate() } // GetSigners implements the LegacyMsg interface. @@ -43,10 +42,3 @@ func (m *MsgGovSendFromFeePool) Type() string { return sdk.MsgTypeURL(m) } func (m *MsgGovSendFromFeePool) GetSignBytes() []byte { return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) } - -func ToSDKCoins(collection []*sdk.Coin) (coins sdk.Coins) { - for _, coin := range collection { - coins = append(coins, *coin) - } - return -} diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go index 4d4555f593..2b2673cecb 100644 --- a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go +++ b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go @@ -35,11 +35,7 @@ func (s *govSendFromFeePool) Recipient(a string) { func (s *govSendFromFeePool) Amount(a string) { coins, err := sdk.ParseCoinsNormalized(a) require.NoError(s, err) - var ptrCoins []*sdk.Coin - for _, coin := range coins { - ptrCoins = append(ptrCoins, &coin) - } - s.msg.Amount = ptrCoins + s.msg.Amount = coins } func (s *govSendFromFeePool) TheMessageIsValidated() { diff --git a/x/ecocredit/marketplace/types/v1/tx.pb.go b/x/ecocredit/marketplace/types/v1/tx.pb.go index 4c3398442b..3aa7f4eccb 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_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" _ "github.com/cosmos/gogoproto/gogoproto" @@ -1013,7 +1014,7 @@ type MsgGovSendFromFeePool struct { // recipient is the address of the account that will receive the funds. Recipient string `protobuf:"bytes,2,opt,name=recipient,proto3" json:"recipient,omitempty"` // amount is the amount of coins to send from the fee pool. - Amount []*types.Coin `protobuf:"bytes,3,rep,name=amount,proto3" json:"amount,omitempty"` + Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` } func (m *MsgGovSendFromFeePool) Reset() { *m = MsgGovSendFromFeePool{} } @@ -1063,7 +1064,7 @@ func (m *MsgGovSendFromFeePool) GetRecipient() string { return "" } -func (m *MsgGovSendFromFeePool) GetAmount() []*types.Coin { +func (m *MsgGovSendFromFeePool) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { if m != nil { return m.Amount } @@ -1134,78 +1135,79 @@ func init() { } var fileDescriptor_68c9b4e4b7fcb584 = []byte{ - // 1126 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x41, 0x6f, 0xdc, 0x44, - 0x14, 0xae, 0x77, 0x37, 0x9b, 0xec, 0xdb, 0x24, 0x6d, 0xdd, 0x90, 0x2e, 0x26, 0xd9, 0x84, 0x05, - 0xa9, 0xa1, 0x50, 0x5b, 0x49, 0x29, 0x95, 0x82, 0x22, 0x48, 0xda, 0xa6, 0xa2, 0x68, 0x45, 0x71, - 0xca, 0x05, 0x09, 0x6d, 0x67, 0xed, 0x17, 0xc7, 0xc4, 0xf6, 0x2c, 0x9e, 0x71, 0xb2, 0x39, 0x16, - 0x81, 0x90, 0x38, 0xf5, 0xc4, 0x81, 0x23, 0xbf, 0x80, 0x9f, 0xc1, 0xb1, 0x17, 0x10, 0x37, 0x50, - 0x22, 0xc1, 0x8d, 0xdf, 0x80, 0x3c, 0x9e, 0x75, 0x76, 0xbd, 0xd9, 0xac, 0x93, 0x9b, 0xe7, 0xbd, - 0xf7, 0xbd, 0xf7, 0xe6, 0xfb, 0x66, 0x9e, 0x6d, 0xb8, 0x15, 0xa2, 0x83, 0x81, 0x81, 0x16, 0xb5, - 0x42, 0xb4, 0x5d, 0x6e, 0xf8, 0x24, 0xdc, 0x47, 0xde, 0xf1, 0x88, 0x85, 0xc6, 0xc1, 0xaa, 0xc1, - 0xbb, 0x7a, 0x27, 0xa4, 0x9c, 0xaa, 0x75, 0x11, 0xa8, 0xa7, 0x81, 0x7a, 0x5f, 0xa0, 0x7e, 0xb0, - 0xaa, 0xd5, 0x2d, 0xca, 0x7c, 0xca, 0x8c, 0x36, 0x61, 0x31, 0xb0, 0x8d, 0x9c, 0xac, 0x1a, 0x16, - 0x75, 0x83, 0x04, 0xaf, 0xdd, 0x94, 0x7e, 0x9f, 0x39, 0x71, 0x5e, 0x9f, 0x39, 0xd2, 0x31, 0xe7, - 0x50, 0x87, 0x8a, 0x47, 0x23, 0x7e, 0x92, 0xd6, 0x25, 0x87, 0x52, 0xc7, 0x43, 0x43, 0xac, 0xda, - 0xd1, 0xae, 0xc1, 0x5d, 0x1f, 0x19, 0x27, 0x7e, 0x47, 0x06, 0xdc, 0x1e, 0xd3, 0x38, 0xe3, 0x84, - 0x63, 0x12, 0xdb, 0xf8, 0xa7, 0x00, 0x93, 0x4d, 0xe6, 0xec, 0xa0, 0xe7, 0xa9, 0xf3, 0x50, 0x66, - 0xe8, 0x79, 0x18, 0xd6, 0x94, 0x65, 0x65, 0xa5, 0x62, 0xca, 0x95, 0xfa, 0x08, 0xca, 0x34, 0xb4, - 0x31, 0x64, 0xb5, 0xc2, 0x72, 0x71, 0xa5, 0xba, 0x76, 0x47, 0x3f, 0x7f, 0xc3, 0xba, 0x4c, 0xa8, - 0x7f, 0x16, 0xa3, 0x4c, 0x09, 0xd6, 0xfe, 0x53, 0x60, 0x42, 0x58, 0xd4, 0x25, 0xa8, 0xb6, 0x09, - 0xb7, 0xf6, 0x5a, 0x36, 0x06, 0xd4, 0x97, 0xd5, 0x40, 0x98, 0x1e, 0xc6, 0x16, 0x55, 0x83, 0xa9, - 0x6f, 0x22, 0x12, 0x70, 0x97, 0x1f, 0xd5, 0x0a, 0xc2, 0x9b, 0xae, 0xd5, 0x0f, 0xa0, 0x42, 0xd8, - 0x7e, 0xab, 0x13, 0xba, 0x16, 0xd6, 0x8a, 0xcb, 0xca, 0x4a, 0x75, 0xed, 0x75, 0x3d, 0x61, 0x50, - 0x8f, 0x19, 0xd6, 0x25, 0xc3, 0xfa, 0x03, 0xea, 0x06, 0xe6, 0x14, 0x61, 0xfb, 0x4f, 0xe3, 0x50, - 0x55, 0x87, 0x1b, 0xb6, 0xcb, 0x48, 0xdb, 0xc3, 0x16, 0x89, 0x38, 0x6d, 0x85, 0xc8, 0xdd, 0x10, - 0x6b, 0xa5, 0x65, 0x65, 0x65, 0xca, 0xbc, 0x2e, 0x5d, 0x9b, 0x11, 0xa7, 0xa6, 0x70, 0xa8, 0x1f, - 0x03, 0x60, 0xb7, 0xe3, 0x86, 0x84, 0xbb, 0x34, 0xa8, 0x4d, 0x88, 0x42, 0x9a, 0x9e, 0x70, 0xaf, - 0xf7, 0xb8, 0xd7, 0x9f, 0xf5, 0xb8, 0xdf, 0x2a, 0xbd, 0xfc, 0x6b, 0x49, 0x31, 0xfb, 0x30, 0xeb, - 0xd5, 0x6f, 0xff, 0xfd, 0xf5, 0xb6, 0x24, 0xb1, 0x71, 0x1f, 0xae, 0x4a, 0x5a, 0x4c, 0x64, 0x1d, - 0x1a, 0x30, 0x54, 0xdf, 0x86, 0xd9, 0xd8, 0xd9, 0x12, 0xfc, 0xb4, 0x5c, 0x9b, 0xd5, 0x94, 0xe5, - 0xe2, 0x4a, 0xc9, 0x9c, 0x8e, 0xad, 0x82, 0xa9, 0x4f, 0x6c, 0xd6, 0xf8, 0xb9, 0x08, 0x37, 0x9a, - 0xcc, 0xf9, 0xa2, 0x63, 0x13, 0x8e, 0x3b, 0x3d, 0x0f, 0x1b, 0xa9, 0xd6, 0x33, 0x98, 0x8c, 0x44, - 0x6c, 0x4f, 0xae, 0xf5, 0x1c, 0x72, 0x65, 0xb3, 0xeb, 0x89, 0xc1, 0xec, 0xa5, 0xd2, 0x7e, 0x28, - 0x40, 0x39, 0xb1, 0xa9, 0x0d, 0x98, 0x19, 0x68, 0x5b, 0xd4, 0x2f, 0x99, 0xd5, 0xbe, 0xae, 0xd5, - 0x37, 0x61, 0x3a, 0xc0, 0xc3, 0x56, 0x46, 0xc4, 0x6a, 0x80, 0x87, 0x9f, 0xf7, 0x74, 0xdc, 0x80, - 0x99, 0x38, 0xe4, 0x02, 0x5a, 0xc6, 0xf0, 0xcd, 0xcb, 0xca, 0xf9, 0x18, 0x66, 0xe3, 0x72, 0x97, - 0x90, 0x34, 0x6e, 0xf3, 0xd1, 0x08, 0x55, 0x17, 0xe1, 0x8d, 0x33, 0xd8, 0xeb, 0x29, 0xdc, 0xf8, - 0x0a, 0xd4, 0x26, 0x73, 0x1e, 0x90, 0xc0, 0x42, 0x2f, 0x75, 0x8f, 0x54, 0x6e, 0x88, 0xd8, 0xc2, - 0x10, 0xb1, 0x83, 0xd5, 0x17, 0x40, 0x1b, 0x4e, 0x9f, 0x16, 0xff, 0xbd, 0x08, 0xd3, 0x4d, 0xe6, - 0x6c, 0x45, 0x47, 0x0f, 0xdd, 0x10, 0x2d, 0xae, 0xce, 0xc1, 0x44, 0x3b, 0x3a, 0x4a, 0xcb, 0x26, - 0x0b, 0xf5, 0x49, 0xe6, 0x76, 0xaf, 0xe5, 0x38, 0x2e, 0x69, 0xce, 0xcc, 0x15, 0xff, 0xa3, 0xd0, - 0xbb, 0xe2, 0x39, 0xf6, 0x32, 0x70, 0xcb, 0x8b, 0xc3, 0xb7, 0xbc, 0xed, 0xda, 0xf2, 0x64, 0x94, - 0xc6, 0xde, 0xf2, 0xb6, 0x6b, 0x9f, 0x7b, 0x2c, 0x26, 0x46, 0x1d, 0x8b, 0xfb, 0x70, 0x33, 0x09, - 0xf1, 0x31, 0xe0, 0xad, 0xaf, 0xa3, 0xd0, 0x65, 0xb6, 0x6b, 0x89, 0xf3, 0x51, 0x16, 0x2d, 0xcd, - 0x9f, 0xba, 0x9f, 0xf4, 0x79, 0xd5, 0x77, 0xe1, 0x7a, 0x1f, 0x30, 0x44, 0xc2, 0x68, 0x50, 0x9b, - 0x14, 0x90, 0x6b, 0xa7, 0x0e, 0x53, 0xd8, 0xd5, 0x8f, 0x60, 0xd6, 0x27, 0xdd, 0xd6, 0x2e, 0x62, - 0x8b, 0xf8, 0x34, 0x0a, 0x78, 0x6d, 0x6a, 0xdc, 0x96, 0xa6, 0x7d, 0xd2, 0xdd, 0x46, 0xdc, 0x14, - 0xe1, 0xeb, 0x10, 0xcb, 0x9e, 0x08, 0xd6, 0x98, 0x87, 0xb9, 0x7e, 0x09, 0x52, 0xbd, 0x7f, 0x51, - 0xc4, 0x69, 0xdb, 0xb4, 0xed, 0x4d, 0xcf, 0xa3, 0x87, 0x68, 0x27, 0xb3, 0x74, 0x01, 0x2a, 0x24, - 0xe2, 0x7b, 0x34, 0x8c, 0x69, 0x4e, 0x94, 0x3f, 0x35, 0xa8, 0x8b, 0x00, 0x6d, 0x12, 0xec, 0xcb, - 0x49, 0x9c, 0x5c, 0xd3, 0x4a, 0x6c, 0x49, 0xc0, 0x6f, 0xc1, 0x8c, 0xed, 0xb2, 0x8e, 0x47, 0x8e, - 0x64, 0x44, 0xa2, 0xd3, 0xb4, 0x34, 0xa6, 0xd3, 0x1a, 0xbb, 0x1d, 0x1a, 0x60, 0xc0, 0x85, 0x54, - 0x33, 0x66, 0xba, 0x5e, 0x9f, 0x8d, 0x1b, 0x3f, 0xad, 0x27, 0x8f, 0x6c, 0xa6, 0xc7, 0x74, 0x0b, - 0x9f, 0xc2, 0x6b, 0x4d, 0xe6, 0x98, 0xe8, 0xd3, 0x03, 0xbc, 0xc0, 0x26, 0xe6, 0x60, 0xa2, 0xbf, - 0xff, 0x64, 0xd1, 0x58, 0x82, 0xc5, 0x33, 0x93, 0xa5, 0xd5, 0x5e, 0x24, 0x84, 0x3d, 0xa6, 0x07, - 0x3b, 0xc8, 0xb7, 0x11, 0x9f, 0x92, 0x90, 0xf8, 0x6c, 0x4c, 0xad, 0x0d, 0x28, 0xed, 0xa2, 0x98, - 0xad, 0xb1, 0x80, 0xef, 0x8c, 0xbb, 0x2c, 0x69, 0x5a, 0x53, 0xc0, 0x46, 0xf0, 0x91, 0x69, 0x21, - 0xed, 0xf0, 0x27, 0x45, 0x10, 0x22, 0xdc, 0x81, 0xbd, 0x1d, 0x52, 0x3f, 0x8e, 0xa1, 0xd4, 0x1b, - 0xd3, 0xe4, 0x02, 0x54, 0x42, 0xb4, 0xdc, 0x8e, 0x1b, 0x4b, 0x22, 0x45, 0x4d, 0x0d, 0xea, 0x2a, - 0x94, 0xe5, 0x29, 0x2c, 0x8a, 0x1b, 0x7f, 0xce, 0x29, 0x94, 0x81, 0x43, 0x6d, 0x27, 0xdc, 0x0e, - 0xf7, 0xd5, 0xeb, 0x7c, 0xed, 0xfb, 0x29, 0x28, 0x36, 0x99, 0xa3, 0x3e, 0x87, 0x92, 0xf8, 0xb6, - 0xb8, 0x95, 0xf3, 0x9b, 0x41, 0x33, 0x72, 0x06, 0xa6, 0x6f, 0xd1, 0xef, 0x14, 0xb8, 0x36, 0xf4, - 0x72, 0xbc, 0x7b, 0x89, 0x77, 0x9e, 0xf6, 0xe1, 0x25, 0x40, 0x69, 0x1b, 0x2f, 0x14, 0xb8, 0x9a, - 0x1d, 0xf4, 0x79, 0x46, 0x69, 0x06, 0xa3, 0xad, 0x5f, 0x1c, 0x93, 0xf6, 0x40, 0xa1, 0x72, 0x3a, - 0xed, 0xdf, 0xbb, 0xc8, 0x1c, 0xd7, 0xde, 0xbf, 0x48, 0xf4, 0xc0, 0xa6, 0xb3, 0xf3, 0x26, 0xcf, - 0xa6, 0x33, 0x98, 0x5c, 0x9b, 0x1e, 0x31, 0x33, 0xd4, 0x1f, 0x15, 0x50, 0xcf, 0x98, 0x18, 0xf7, - 0x72, 0xa4, 0x1c, 0x86, 0x69, 0x1b, 0x97, 0x82, 0x0d, 0x10, 0x92, 0x9d, 0x27, 0x79, 0x08, 0xc9, - 0x60, 0x72, 0x11, 0x32, 0x62, 0x68, 0x08, 0x42, 0xce, 0x98, 0x18, 0xf7, 0xf2, 0xa6, 0x1c, 0x80, - 0xe5, 0x22, 0x64, 0xf4, 0x1c, 0xd8, 0x7a, 0xfe, 0xdb, 0x71, 0x5d, 0x79, 0x75, 0x5c, 0x57, 0xfe, - 0x3e, 0xae, 0x2b, 0x2f, 0x4f, 0xea, 0x57, 0x5e, 0x9d, 0xd4, 0xaf, 0xfc, 0x79, 0x52, 0xbf, 0xf2, - 0xe5, 0xb6, 0xe3, 0xf2, 0xbd, 0xa8, 0xad, 0x5b, 0xd4, 0x37, 0x44, 0x89, 0x3b, 0x01, 0xf2, 0x43, - 0x1a, 0xee, 0xcb, 0x95, 0x87, 0xb6, 0x83, 0xa1, 0xd1, 0x1d, 0xf1, 0x1f, 0xc3, 0x8f, 0x3a, 0xc8, - 0xe2, 0xbf, 0xa9, 0xb2, 0xf8, 0x70, 0xbb, 0xfb, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xed, 0x37, - 0x86, 0x18, 0xaf, 0x0d, 0x00, 0x00, + // 1151 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x5f, 0x6f, 0xdb, 0x54, + 0x14, 0xaf, 0x93, 0x34, 0x6b, 0x4e, 0xda, 0x6e, 0xf3, 0xca, 0x16, 0x4c, 0x9b, 0x94, 0x80, 0xb4, + 0x30, 0xa8, 0x4d, 0x3b, 0xc6, 0xa4, 0xa2, 0x0a, 0xda, 0x6d, 0x9d, 0x18, 0x8a, 0x18, 0xee, 0x78, + 0x41, 0x42, 0xd9, 0x8d, 0x7d, 0xea, 0x9a, 0xd8, 0xbe, 0xc1, 0xf7, 0xba, 0x4d, 0x1f, 0x87, 0x40, + 0x48, 0x3c, 0xed, 0x99, 0x47, 0x1e, 0x79, 0xe2, 0x63, 0xf4, 0x71, 0x2f, 0x20, 0x9e, 0x18, 0x6a, + 0x25, 0x78, 0xe3, 0x33, 0x20, 0x5f, 0x3b, 0x6e, 0xe2, 0x34, 0x8b, 0xdb, 0xa7, 0xf6, 0x9e, 0xff, + 0xe7, 0xf7, 0xbb, 0xe7, 0x5c, 0x07, 0x6e, 0xfa, 0x68, 0xa1, 0xa7, 0xa1, 0x41, 0x0d, 0x1f, 0x4d, + 0x9b, 0x6b, 0x2e, 0xf1, 0x3b, 0xc8, 0xbb, 0x0e, 0x31, 0x50, 0xdb, 0x5f, 0xd5, 0x78, 0x4f, 0xed, + 0xfa, 0x94, 0x53, 0xb9, 0x2a, 0x0c, 0xd5, 0xc4, 0x50, 0x1d, 0x30, 0x54, 0xf7, 0x57, 0x95, 0xaa, + 0x41, 0x99, 0x4b, 0x99, 0xd6, 0x26, 0x2c, 0x74, 0x6c, 0x23, 0x27, 0xab, 0x9a, 0x41, 0x6d, 0x2f, + 0xf2, 0x57, 0x6e, 0xc4, 0x7a, 0x97, 0x59, 0x61, 0x5c, 0x97, 0x59, 0xb1, 0x62, 0xc1, 0xa2, 0x16, + 0x15, 0xff, 0x6a, 0xe1, 0x7f, 0xb1, 0xb4, 0x66, 0x51, 0x6a, 0x39, 0xa8, 0x89, 0x53, 0x3b, 0xd8, + 0xd5, 0xb8, 0xed, 0x22, 0xe3, 0xc4, 0xed, 0xc6, 0x06, 0xb7, 0x26, 0x14, 0xce, 0x38, 0xe1, 0x18, + 0xd9, 0xd6, 0xff, 0xc9, 0xc1, 0xa5, 0x26, 0xb3, 0x76, 0xd0, 0x71, 0xe4, 0xeb, 0x50, 0x64, 0xe8, + 0x38, 0xe8, 0x57, 0xa4, 0x65, 0xa9, 0x51, 0xd2, 0xe3, 0x93, 0xfc, 0x00, 0x8a, 0xd4, 0x37, 0xd1, + 0x67, 0x95, 0xdc, 0x72, 0xbe, 0x51, 0x5e, 0x5b, 0x51, 0x5f, 0xdd, 0xb0, 0x1a, 0x07, 0x54, 0x3f, + 0x0f, 0xbd, 0xf4, 0xd8, 0x59, 0xf9, 0x4f, 0x82, 0x69, 0x21, 0x91, 0x6b, 0x50, 0x6e, 0x13, 0x6e, + 0xec, 0xb5, 0x4c, 0xf4, 0xa8, 0x1b, 0x67, 0x03, 0x21, 0xba, 0x1f, 0x4a, 0x64, 0x05, 0x66, 0xbe, + 0x0d, 0x88, 0xc7, 0x6d, 0x7e, 0x58, 0xc9, 0x09, 0x6d, 0x72, 0x96, 0x3f, 0x84, 0x12, 0x61, 0x9d, + 0x56, 0xd7, 0xb7, 0x0d, 0xac, 0xe4, 0x97, 0xa5, 0x46, 0x79, 0xed, 0x75, 0x35, 0x42, 0x50, 0x0d, + 0x11, 0x56, 0x63, 0x84, 0xd5, 0x7b, 0xd4, 0xf6, 0xf4, 0x19, 0xc2, 0x3a, 0x8f, 0x43, 0x53, 0x59, + 0x85, 0x6b, 0xa6, 0xcd, 0x48, 0xdb, 0xc1, 0x16, 0x09, 0x38, 0x6d, 0xf9, 0xc8, 0x6d, 0x1f, 0x2b, + 0x85, 0x65, 0xa9, 0x31, 0xa3, 0x5f, 0x8d, 0x55, 0x9b, 0x01, 0xa7, 0xba, 0x50, 0xc8, 0x9f, 0x00, + 0x60, 0xaf, 0x6b, 0xfb, 0x84, 0xdb, 0xd4, 0xab, 0x4c, 0x8b, 0x44, 0x8a, 0x1a, 0x61, 0xaf, 0xf6, + 0xb1, 0x57, 0x9f, 0xf4, 0xb1, 0xdf, 0x2a, 0x3c, 0x7f, 0x59, 0x93, 0xf4, 0x01, 0x9f, 0xf5, 0xf2, + 0x77, 0xff, 0xfe, 0x76, 0x2b, 0x06, 0xb1, 0x7e, 0x17, 0x2e, 0xc7, 0xb0, 0xe8, 0xc8, 0xba, 0xd4, + 0x63, 0x28, 0xbf, 0x0d, 0xf3, 0xa1, 0xb2, 0x25, 0xf0, 0x69, 0xd9, 0x26, 0xab, 0x48, 0xcb, 0xf9, + 0x46, 0x41, 0x9f, 0x0d, 0xa5, 0x02, 0xa9, 0x4f, 0x4d, 0x56, 0xff, 0x39, 0x0f, 0xd7, 0x9a, 0xcc, + 0xfa, 0xb2, 0x6b, 0x12, 0x8e, 0x3b, 0x7d, 0x0d, 0x1b, 0xcb, 0xd6, 0x13, 0xb8, 0x14, 0x08, 0xdb, + 0x3e, 0x5d, 0xeb, 0x19, 0xe8, 0x4a, 0x47, 0x57, 0x23, 0x81, 0xde, 0x0f, 0xa5, 0xfc, 0x98, 0x83, + 0x62, 0x24, 0x93, 0xeb, 0x30, 0x37, 0x54, 0xb6, 0xc8, 0x5f, 0xd0, 0xcb, 0x03, 0x55, 0xcb, 0x6f, + 0xc2, 0xac, 0x87, 0x07, 0xad, 0x14, 0x89, 0x65, 0x0f, 0x0f, 0xbe, 0xe8, 0xf3, 0xb8, 0x01, 0x73, + 0xa1, 0xc9, 0x39, 0xb8, 0x0c, 0xdd, 0x37, 0x2f, 0x4a, 0xe7, 0x43, 0x98, 0x0f, 0xd3, 0x5d, 0x80, + 0xd2, 0xb0, 0xcc, 0x07, 0x63, 0x58, 0x5d, 0x82, 0x37, 0xce, 0x40, 0xaf, 0xcf, 0x70, 0xfd, 0x6b, + 0x90, 0x9b, 0xcc, 0xba, 0x47, 0x3c, 0x03, 0x9d, 0x44, 0x3d, 0x96, 0xb9, 0x11, 0x60, 0x73, 0x23, + 0xc0, 0x0e, 0x67, 0x5f, 0x04, 0x65, 0x34, 0x7c, 0x92, 0xfc, 0xf7, 0x3c, 0xcc, 0x36, 0x99, 0xb5, + 0x15, 0x1c, 0xde, 0xb7, 0x7d, 0x34, 0xb8, 0xbc, 0x00, 0xd3, 0xed, 0xe0, 0x30, 0x49, 0x1b, 0x1d, + 0xe4, 0x47, 0xa9, 0xe9, 0x5e, 0xcb, 0x70, 0x5d, 0x92, 0x98, 0xa9, 0x11, 0xff, 0x23, 0xd7, 0x1f, + 0xf1, 0x0c, 0xbd, 0x0c, 0x4d, 0x79, 0x7e, 0x74, 0xca, 0xdb, 0xb6, 0x19, 0xdf, 0x8c, 0xc2, 0xc4, + 0x29, 0x6f, 0xdb, 0xe6, 0x2b, 0xaf, 0xc5, 0xf4, 0xb8, 0x6b, 0x71, 0x17, 0x6e, 0x44, 0x26, 0x2e, + 0x7a, 0xbc, 0xf5, 0x4d, 0xe0, 0xdb, 0xcc, 0xb4, 0x0d, 0x71, 0x3f, 0x8a, 0xa2, 0xa4, 0xeb, 0xa7, + 0xea, 0x47, 0x03, 0x5a, 0xf9, 0x5d, 0xb8, 0x3a, 0xe0, 0xe8, 0x23, 0x61, 0xd4, 0xab, 0x5c, 0x12, + 0x2e, 0x57, 0x4e, 0x15, 0xba, 0x90, 0xcb, 0x1f, 0xc3, 0xbc, 0x4b, 0x7a, 0xad, 0x5d, 0xc4, 0x16, + 0x71, 0x69, 0xe0, 0xf1, 0xca, 0xcc, 0xa4, 0x96, 0x66, 0x5d, 0xd2, 0xdb, 0x46, 0xdc, 0x14, 0xe6, + 0xeb, 0x10, 0xd2, 0x1e, 0x11, 0x56, 0xbf, 0x0e, 0x0b, 0x83, 0x14, 0x24, 0x7c, 0xff, 0x22, 0x89, + 0xdb, 0xb6, 0x69, 0x9a, 0x9b, 0x8e, 0x43, 0x0f, 0xd0, 0x8c, 0x76, 0xe9, 0x22, 0x94, 0x48, 0xc0, + 0xf7, 0xa8, 0x1f, 0xc2, 0x1c, 0x31, 0x7f, 0x2a, 0x90, 0x97, 0x00, 0xda, 0xc4, 0xeb, 0xc4, 0x9b, + 0x38, 0x1a, 0xd3, 0x52, 0x28, 0x89, 0x9c, 0xdf, 0x82, 0x39, 0xd3, 0x66, 0x5d, 0x87, 0x1c, 0xc6, + 0x16, 0x11, 0x4f, 0xb3, 0xb1, 0x30, 0xd9, 0xd6, 0xd8, 0xeb, 0x52, 0x0f, 0x3d, 0x2e, 0xa8, 0x9a, + 0xd3, 0x93, 0xf3, 0xfa, 0x7c, 0x58, 0xf8, 0x69, 0xbe, 0xf8, 0xca, 0xa6, 0x6a, 0x4c, 0x5a, 0xf8, + 0x0c, 0x5e, 0x6b, 0x32, 0x4b, 0x47, 0x97, 0xee, 0xe3, 0x39, 0x9a, 0x58, 0x80, 0xe9, 0xc1, 0xfa, + 0xa3, 0x43, 0xbd, 0x06, 0x4b, 0x67, 0x06, 0x4b, 0xb2, 0x3d, 0x8b, 0x00, 0x7b, 0x48, 0xf7, 0x77, + 0x90, 0x6f, 0x23, 0x3e, 0x26, 0x3e, 0x71, 0xd9, 0x84, 0x5c, 0x1b, 0x50, 0xd8, 0x45, 0xb1, 0x5b, + 0x43, 0x02, 0xdf, 0x99, 0x34, 0x2c, 0x49, 0x58, 0x5d, 0xb8, 0x8d, 0xc1, 0x23, 0x55, 0x42, 0x52, + 0xe1, 0x91, 0x24, 0x00, 0x11, 0x6a, 0xcf, 0xdc, 0xf6, 0xa9, 0x1b, 0xda, 0x50, 0xea, 0x4c, 0x28, + 0x72, 0x11, 0x4a, 0x3e, 0x1a, 0x76, 0xd7, 0x0e, 0x29, 0x89, 0x49, 0x4d, 0x04, 0xb2, 0x01, 0xc5, + 0xf8, 0x16, 0xe6, 0xc5, 0xc4, 0x8f, 0xbf, 0x85, 0x5b, 0xef, 0x1f, 0xfd, 0x55, 0x9b, 0xfa, 0xf5, + 0x65, 0xad, 0x61, 0xd9, 0x7c, 0x2f, 0x68, 0xab, 0x06, 0x75, 0xb5, 0xf8, 0x6b, 0x25, 0xfa, 0xb3, + 0xc2, 0xcc, 0x8e, 0xc6, 0x0f, 0xbb, 0xc8, 0x84, 0x03, 0xd3, 0xe3, 0xd0, 0x23, 0x8d, 0x46, 0x6c, + 0x8c, 0x76, 0xd2, 0xef, 0x75, 0xed, 0x87, 0x19, 0xc8, 0x37, 0x99, 0x25, 0x3f, 0x85, 0x82, 0xf8, + 0x1a, 0xb9, 0x99, 0xf1, 0x2b, 0x43, 0xd1, 0x32, 0x1a, 0x26, 0xef, 0xee, 0xf7, 0x12, 0x5c, 0x19, + 0x79, 0x4e, 0x6f, 0x5f, 0xe0, 0x95, 0x54, 0x3e, 0xba, 0x80, 0x53, 0x52, 0xc6, 0x33, 0x09, 0x2e, + 0xa7, 0x9f, 0x86, 0x2c, 0xcb, 0x37, 0xe5, 0xa3, 0xac, 0x9f, 0xdf, 0x27, 0xa9, 0x81, 0x42, 0xe9, + 0xf4, 0x7d, 0x78, 0xef, 0x3c, 0x9b, 0x5f, 0xf9, 0xe0, 0x3c, 0xd6, 0x43, 0x4d, 0xa7, 0x37, 0x54, + 0x96, 0xa6, 0x53, 0x3e, 0x99, 0x9a, 0x1e, 0xb3, 0x65, 0xe4, 0x9f, 0x24, 0x90, 0xcf, 0xd8, 0x31, + 0x77, 0x32, 0x84, 0x1c, 0x75, 0x53, 0x36, 0x2e, 0xe4, 0x36, 0x04, 0x48, 0x7a, 0x03, 0x65, 0x01, + 0x24, 0xe5, 0x93, 0x09, 0x90, 0x31, 0x6b, 0x46, 0x00, 0x72, 0xc6, 0x8e, 0xb9, 0x93, 0x35, 0xe4, + 0x90, 0x5b, 0x26, 0x40, 0xc6, 0xef, 0x81, 0xad, 0xa7, 0x47, 0xc7, 0x55, 0xe9, 0xc5, 0x71, 0x55, + 0xfa, 0xfb, 0xb8, 0x2a, 0x3d, 0x3f, 0xa9, 0x4e, 0xbd, 0x38, 0xa9, 0x4e, 0xfd, 0x79, 0x52, 0x9d, + 0xfa, 0x6a, 0x7b, 0x60, 0x09, 0x89, 0x14, 0x2b, 0x1e, 0xf2, 0x03, 0xea, 0x77, 0xe2, 0x93, 0x83, + 0xa6, 0x85, 0xbe, 0xd6, 0x1b, 0xf3, 0xcb, 0x47, 0x6c, 0xa9, 0xf0, 0xf7, 0x57, 0x51, 0x7c, 0xea, + 0xdd, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x79, 0x64, 0x35, 0xe1, 0x0d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4733,7 +4735,7 @@ func (m *MsgGovSendFromFeePool) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Amount = append(m.Amount, &types.Coin{}) + m.Amount = append(m.Amount, types.Coin{}) if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } From dbf4e141847dab3e5ee6fe97ea49bd655741dc33 Mon Sep 17 00:00:00 2001 From: Aaron Craelius Date: Thu, 29 Feb 2024 17:00:42 -0500 Subject: [PATCH 27/27] proto lint --- .../ecocredit/marketplace/v1/tx.pulsar.go | 235 +++++++++--------- proto/regen/ecocredit/marketplace/v1/tx.proto | 4 +- .../keeper/msg_gov_send_from_fee_pool.go | 2 +- .../keeper/msg_gov_send_from_fee_pool_test.go | 2 +- .../msg_gov_send_from_fee_pool.feature | 2 +- .../types/v1/msg_gov_send_from_fee_pool.go | 6 +- .../v1/msg_gov_send_from_fee_pool_test.go | 2 +- x/ecocredit/marketplace/types/v1/tx.pb.go | 171 ++++++------- 8 files changed, 212 insertions(+), 212 deletions(-) diff --git a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go index 83c9cb820f..87993b8a52 100644 --- a/api/regen/ecocredit/marketplace/v1/tx.pulsar.go +++ b/api/regen/ecocredit/marketplace/v1/tx.pulsar.go @@ -8648,7 +8648,7 @@ var ( md_MsgGovSendFromFeePool protoreflect.MessageDescriptor fd_MsgGovSendFromFeePool_authority protoreflect.FieldDescriptor fd_MsgGovSendFromFeePool_recipient protoreflect.FieldDescriptor - fd_MsgGovSendFromFeePool_amount protoreflect.FieldDescriptor + fd_MsgGovSendFromFeePool_coins protoreflect.FieldDescriptor ) func init() { @@ -8656,7 +8656,7 @@ func init() { md_MsgGovSendFromFeePool = File_regen_ecocredit_marketplace_v1_tx_proto.Messages().ByName("MsgGovSendFromFeePool") fd_MsgGovSendFromFeePool_authority = md_MsgGovSendFromFeePool.Fields().ByName("authority") fd_MsgGovSendFromFeePool_recipient = md_MsgGovSendFromFeePool.Fields().ByName("recipient") - fd_MsgGovSendFromFeePool_amount = md_MsgGovSendFromFeePool.Fields().ByName("amount") + fd_MsgGovSendFromFeePool_coins = md_MsgGovSendFromFeePool.Fields().ByName("coins") } var _ protoreflect.Message = (*fastReflection_MsgGovSendFromFeePool)(nil) @@ -8736,9 +8736,9 @@ func (x *fastReflection_MsgGovSendFromFeePool) Range(f func(protoreflect.FieldDe return } } - if len(x.Amount) != 0 { - value := protoreflect.ValueOfList(&_MsgGovSendFromFeePool_3_list{list: &x.Amount}) - if !f(fd_MsgGovSendFromFeePool_amount, value) { + if len(x.Coins) != 0 { + value := protoreflect.ValueOfList(&_MsgGovSendFromFeePool_3_list{list: &x.Coins}) + if !f(fd_MsgGovSendFromFeePool_coins, value) { return } } @@ -8761,8 +8761,8 @@ func (x *fastReflection_MsgGovSendFromFeePool) Has(fd protoreflect.FieldDescript return x.Authority != "" case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": return x.Recipient != "" - case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": - return len(x.Amount) != 0 + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.coins": + return len(x.Coins) != 0 default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) @@ -8783,8 +8783,8 @@ func (x *fastReflection_MsgGovSendFromFeePool) Clear(fd protoreflect.FieldDescri x.Authority = "" case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": x.Recipient = "" - case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": - x.Amount = nil + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.coins": + x.Coins = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) @@ -8807,11 +8807,11 @@ func (x *fastReflection_MsgGovSendFromFeePool) Get(descriptor protoreflect.Field case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": value := x.Recipient return protoreflect.ValueOfString(value) - case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": - if len(x.Amount) == 0 { + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.coins": + if len(x.Coins) == 0 { return protoreflect.ValueOfList(&_MsgGovSendFromFeePool_3_list{}) } - listValue := &_MsgGovSendFromFeePool_3_list{list: &x.Amount} + listValue := &_MsgGovSendFromFeePool_3_list{list: &x.Coins} return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { @@ -8837,10 +8837,10 @@ func (x *fastReflection_MsgGovSendFromFeePool) Set(fd protoreflect.FieldDescript x.Authority = value.Interface().(string) case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": x.Recipient = value.Interface().(string) - case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.coins": lv := value.List() clv := lv.(*_MsgGovSendFromFeePool_3_list) - x.Amount = *clv.list + x.Coins = *clv.list default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool")) @@ -8861,11 +8861,11 @@ func (x *fastReflection_MsgGovSendFromFeePool) Set(fd protoreflect.FieldDescript // Mutable is a mutating operation and unsafe for concurrent use. func (x *fastReflection_MsgGovSendFromFeePool) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": - if x.Amount == nil { - x.Amount = []*v1beta1.Coin{} + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.coins": + if x.Coins == nil { + x.Coins = []*v1beta1.Coin{} } - value := &_MsgGovSendFromFeePool_3_list{list: &x.Amount} + value := &_MsgGovSendFromFeePool_3_list{list: &x.Coins} return protoreflect.ValueOfList(value) case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.authority": panic(fmt.Errorf("field authority of message regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool is not mutable")) @@ -8888,7 +8888,7 @@ func (x *fastReflection_MsgGovSendFromFeePool) NewField(fd protoreflect.FieldDes return protoreflect.ValueOfString("") case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.recipient": return protoreflect.ValueOfString("") - case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount": + case "regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.coins": list := []*v1beta1.Coin{} return protoreflect.ValueOfList(&_MsgGovSendFromFeePool_3_list{list: &list}) default: @@ -8968,8 +8968,8 @@ func (x *fastReflection_MsgGovSendFromFeePool) ProtoMethods() *protoiface.Method if l > 0 { n += 1 + l + runtime.Sov(uint64(l)) } - if len(x.Amount) > 0 { - for _, e := range x.Amount { + if len(x.Coins) > 0 { + for _, e := range x.Coins { l = options.Size(e) n += 1 + l + runtime.Sov(uint64(l)) } @@ -9003,9 +9003,9 @@ func (x *fastReflection_MsgGovSendFromFeePool) ProtoMethods() *protoiface.Method i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if len(x.Amount) > 0 { - for iNdEx := len(x.Amount) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.Amount[iNdEx]) + if len(x.Coins) > 0 { + for iNdEx := len(x.Coins) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Coins[iNdEx]) if err != nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -9148,7 +9148,7 @@ func (x *fastReflection_MsgGovSendFromFeePool) ProtoMethods() *protoiface.Method iNdEx = postIndex case 3: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Coins", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9175,8 +9175,8 @@ func (x *fastReflection_MsgGovSendFromFeePool) ProtoMethods() *protoiface.Method if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Amount = append(x.Amount, &v1beta1.Coin{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Amount[len(x.Amount)-1]); err != nil { + x.Coins = append(x.Coins, &v1beta1.Coin{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Coins[len(x.Coins)-1]); err != nil { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex @@ -10145,8 +10145,8 @@ type MsgGovSendFromFeePool struct { Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` // recipient is the address of the account that will receive the funds. Recipient string `protobuf:"bytes,2,opt,name=recipient,proto3" json:"recipient,omitempty"` - // amount is the amount of coins to send from the fee pool. - Amount []*v1beta1.Coin `protobuf:"bytes,3,rep,name=amount,proto3" json:"amount,omitempty"` + // coins is the amount of coins to send from the fee pool. + Coins []*v1beta1.Coin `protobuf:"bytes,3,rep,name=coins,proto3" json:"coins,omitempty"` } func (x *MsgGovSendFromFeePool) Reset() { @@ -10183,9 +10183,9 @@ func (x *MsgGovSendFromFeePool) GetRecipient() string { return "" } -func (x *MsgGovSendFromFeePool) GetAmount() []*v1beta1.Coin { +func (x *MsgGovSendFromFeePool) GetCoins() []*v1beta1.Coin { if x != nil { - return x.Amount + return x.Coins } return nil } @@ -10618,105 +10618,104 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_rawDesc = []byte{ 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, 0x22, 0xc8, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, + 0x6e, 0x73, 0x65, 0x22, 0xc6, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x63, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0e, - 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1f, - 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, - 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, - 0x85, 0x08, 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, 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, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x05, 0x63, 0x6f, 0x69, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x0e, 0x82, 0xe7, + 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1f, 0x0a, 0x1d, + 0x4d, 0x73, 0x67, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, + 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x85, 0x08, + 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, 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, + 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, 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, 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, 0x41, 0x64, - 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x3a, 0x2e, + 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, 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, + 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, 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, 0x47, - 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x3a, + 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, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x12, 0x47, - 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, - 0x6c, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, - 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x3d, 0x2e, 0x72, 0x65, 0x67, 0x65, 0x6e, + 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, 0x47, 0x6f, 0x76, - 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, + 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x12, 0x47, 0x6f, 0x76, + 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, + 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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, 0x47, 0x6f, 0x76, 0x53, 0x65, + 0x6e, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 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 ( @@ -10761,7 +10760,7 @@ var file_regen_ecocredit_marketplace_v1_tx_proto_depIdxs = []int32{ 17, // 1: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.updates:type_name -> regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update 18, // 2: regen.ecocredit.marketplace.v1.MsgBuyDirect.orders:type_name -> regen.ecocredit.marketplace.v1.MsgBuyDirect.Order 19, // 3: regen.ecocredit.marketplace.v1.MsgGovSetFeeParams.fees:type_name -> regen.ecocredit.marketplace.v1.FeeParams - 20, // 4: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.amount:type_name -> cosmos.base.v1beta1.Coin + 20, // 4: regen.ecocredit.marketplace.v1.MsgGovSendFromFeePool.coins:type_name -> cosmos.base.v1beta1.Coin 20, // 5: regen.ecocredit.marketplace.v1.MsgSell.Order.ask_price:type_name -> cosmos.base.v1beta1.Coin 21, // 6: regen.ecocredit.marketplace.v1.MsgSell.Order.expiration:type_name -> google.protobuf.Timestamp 20, // 7: regen.ecocredit.marketplace.v1.MsgUpdateSellOrders.Update.new_ask_price:type_name -> cosmos.base.v1beta1.Coin diff --git a/proto/regen/ecocredit/marketplace/v1/tx.proto b/proto/regen/ecocredit/marketplace/v1/tx.proto index d63270f09b..d809f8b831 100644 --- a/proto/regen/ecocredit/marketplace/v1/tx.proto +++ b/proto/regen/ecocredit/marketplace/v1/tx.proto @@ -270,8 +270,8 @@ message MsgGovSendFromFeePool { // recipient is the address of the account that will receive the funds. string recipient = 2; - // amount is the amount of coins to send from the fee pool. - repeated cosmos.base.v1beta1.Coin amount = 3 [ + // coins is the amount of coins to send from the fee pool. + repeated cosmos.base.v1beta1.Coin coins = 3 [ (gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go index 3d18fcba7e..39ccf792cc 100644 --- a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go +++ b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool.go @@ -24,7 +24,7 @@ func (k Keeper) GovSendFromFeePool(ctx context.Context, msg *types.MsgGovSendFro return nil, err } - err = k.bankKeeper.SendCoinsFromModuleToAccount(sdk.UnwrapSDKContext(ctx), k.feePoolName, recipient, msg.Amount) + err = k.bankKeeper.SendCoinsFromModuleToAccount(sdk.UnwrapSDKContext(ctx), k.feePoolName, recipient, msg.Coins) if err != nil { return nil, err } diff --git a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go index 98fb30ecb4..6ca51c2733 100644 --- a/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go +++ b/x/ecocredit/marketplace/keeper/msg_gov_send_from_fee_pool_test.go @@ -59,7 +59,7 @@ func (s *govSendFromFeePool) Recipient(a string) { func (s *govSendFromFeePool) SendAmount(a string) { coins, err := sdk.ParseCoinsNormalized(a) require.NoError(s.t, err) - s.msg.Amount = coins + s.msg.Coins = coins } func (s *govSendFromFeePool) FeePoolBalance(a string) { diff --git a/x/ecocredit/marketplace/types/v1/features/msg_gov_send_from_fee_pool.feature b/x/ecocredit/marketplace/types/v1/features/msg_gov_send_from_fee_pool.feature index a98172a78f..aa04ba1a92 100644 --- a/x/ecocredit/marketplace/types/v1/features/msg_gov_send_from_fee_pool.feature +++ b/x/ecocredit/marketplace/types/v1/features/msg_gov_send_from_fee_pool.feature @@ -13,6 +13,6 @@ Feature: MsgGovSetFeeParams | foobar | | | bech32 | | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | | | empty address | | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | foobar | | bech32 | - | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68 | | amount | + | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68 | | coins | | regen1elq7ys34gpkj3jyvqee0h6yk4h9wsfxmgqelsw | regen1nzh226hxrsvf4k69sa8v0nfuzx5vgwkczk8j68 | 100foo | | diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go index df5b3d8005..320f0e0685 100644 --- a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go +++ b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool.go @@ -20,11 +20,11 @@ func (m *MsgGovSendFromFeePool) ValidateBasic() error { return err } - if m.Amount == nil { - return sdkerrors.ErrInvalidRequest.Wrap("amount cannot be nil") + if m.Coins == nil { + return sdkerrors.ErrInvalidRequest.Wrap("coins cannot be nil") } - return m.Amount.Validate() + return m.Coins.Validate() } // GetSigners implements the LegacyMsg interface. diff --git a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go index 2b2673cecb..8faff2dd3a 100644 --- a/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go +++ b/x/ecocredit/marketplace/types/v1/msg_gov_send_from_fee_pool_test.go @@ -35,7 +35,7 @@ func (s *govSendFromFeePool) Recipient(a string) { func (s *govSendFromFeePool) Amount(a string) { coins, err := sdk.ParseCoinsNormalized(a) require.NoError(s, err) - s.msg.Amount = coins + s.msg.Coins = coins } func (s *govSendFromFeePool) TheMessageIsValidated() { diff --git a/x/ecocredit/marketplace/types/v1/tx.pb.go b/x/ecocredit/marketplace/types/v1/tx.pb.go index 3aa7f4eccb..21a11cfa4a 100644 --- a/x/ecocredit/marketplace/types/v1/tx.pb.go +++ b/x/ecocredit/marketplace/types/v1/tx.pb.go @@ -1013,8 +1013,8 @@ type MsgGovSendFromFeePool struct { Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` // recipient is the address of the account that will receive the funds. Recipient string `protobuf:"bytes,2,opt,name=recipient,proto3" json:"recipient,omitempty"` - // amount is the amount of coins to send from the fee pool. - Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` + // coins is the amount of coins to send from the fee pool. + Coins github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=coins,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"coins"` } func (m *MsgGovSendFromFeePool) Reset() { *m = MsgGovSendFromFeePool{} } @@ -1064,9 +1064,9 @@ func (m *MsgGovSendFromFeePool) GetRecipient() string { return "" } -func (m *MsgGovSendFromFeePool) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { +func (m *MsgGovSendFromFeePool) GetCoins() github_com_cosmos_cosmos_sdk_types.Coins { if m != nil { - return m.Amount + return m.Coins } return nil } @@ -1135,79 +1135,80 @@ func init() { } var fileDescriptor_68c9b4e4b7fcb584 = []byte{ - // 1151 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x5f, 0x6f, 0xdb, 0x54, - 0x14, 0xaf, 0x93, 0x34, 0x6b, 0x4e, 0xda, 0x6e, 0xf3, 0xca, 0x16, 0x4c, 0x9b, 0x94, 0x80, 0xb4, - 0x30, 0xa8, 0x4d, 0x3b, 0xc6, 0xa4, 0xa2, 0x0a, 0xda, 0x6d, 0x9d, 0x18, 0x8a, 0x18, 0xee, 0x78, - 0x41, 0x42, 0xd9, 0x8d, 0x7d, 0xea, 0x9a, 0xd8, 0xbe, 0xc1, 0xf7, 0xba, 0x4d, 0x1f, 0x87, 0x40, - 0x48, 0x3c, 0xed, 0x99, 0x47, 0x1e, 0x79, 0xe2, 0x63, 0xf4, 0x71, 0x2f, 0x20, 0x9e, 0x18, 0x6a, - 0x25, 0x78, 0xe3, 0x33, 0x20, 0x5f, 0x3b, 0x6e, 0xe2, 0x34, 0x8b, 0xdb, 0xa7, 0xf6, 0x9e, 0xff, - 0xe7, 0xf7, 0xbb, 0xe7, 0x5c, 0x07, 0x6e, 0xfa, 0x68, 0xa1, 0xa7, 0xa1, 0x41, 0x0d, 0x1f, 0x4d, - 0x9b, 0x6b, 0x2e, 0xf1, 0x3b, 0xc8, 0xbb, 0x0e, 0x31, 0x50, 0xdb, 0x5f, 0xd5, 0x78, 0x4f, 0xed, - 0xfa, 0x94, 0x53, 0xb9, 0x2a, 0x0c, 0xd5, 0xc4, 0x50, 0x1d, 0x30, 0x54, 0xf7, 0x57, 0x95, 0xaa, - 0x41, 0x99, 0x4b, 0x99, 0xd6, 0x26, 0x2c, 0x74, 0x6c, 0x23, 0x27, 0xab, 0x9a, 0x41, 0x6d, 0x2f, - 0xf2, 0x57, 0x6e, 0xc4, 0x7a, 0x97, 0x59, 0x61, 0x5c, 0x97, 0x59, 0xb1, 0x62, 0xc1, 0xa2, 0x16, - 0x15, 0xff, 0x6a, 0xe1, 0x7f, 0xb1, 0xb4, 0x66, 0x51, 0x6a, 0x39, 0xa8, 0x89, 0x53, 0x3b, 0xd8, - 0xd5, 0xb8, 0xed, 0x22, 0xe3, 0xc4, 0xed, 0xc6, 0x06, 0xb7, 0x26, 0x14, 0xce, 0x38, 0xe1, 0x18, - 0xd9, 0xd6, 0xff, 0xc9, 0xc1, 0xa5, 0x26, 0xb3, 0x76, 0xd0, 0x71, 0xe4, 0xeb, 0x50, 0x64, 0xe8, - 0x38, 0xe8, 0x57, 0xa4, 0x65, 0xa9, 0x51, 0xd2, 0xe3, 0x93, 0xfc, 0x00, 0x8a, 0xd4, 0x37, 0xd1, - 0x67, 0x95, 0xdc, 0x72, 0xbe, 0x51, 0x5e, 0x5b, 0x51, 0x5f, 0xdd, 0xb0, 0x1a, 0x07, 0x54, 0x3f, - 0x0f, 0xbd, 0xf4, 0xd8, 0x59, 0xf9, 0x4f, 0x82, 0x69, 0x21, 0x91, 0x6b, 0x50, 0x6e, 0x13, 0x6e, - 0xec, 0xb5, 0x4c, 0xf4, 0xa8, 0x1b, 0x67, 0x03, 0x21, 0xba, 0x1f, 0x4a, 0x64, 0x05, 0x66, 0xbe, - 0x0d, 0x88, 0xc7, 0x6d, 0x7e, 0x58, 0xc9, 0x09, 0x6d, 0x72, 0x96, 0x3f, 0x84, 0x12, 0x61, 0x9d, - 0x56, 0xd7, 0xb7, 0x0d, 0xac, 0xe4, 0x97, 0xa5, 0x46, 0x79, 0xed, 0x75, 0x35, 0x42, 0x50, 0x0d, - 0x11, 0x56, 0x63, 0x84, 0xd5, 0x7b, 0xd4, 0xf6, 0xf4, 0x19, 0xc2, 0x3a, 0x8f, 0x43, 0x53, 0x59, - 0x85, 0x6b, 0xa6, 0xcd, 0x48, 0xdb, 0xc1, 0x16, 0x09, 0x38, 0x6d, 0xf9, 0xc8, 0x6d, 0x1f, 0x2b, - 0x85, 0x65, 0xa9, 0x31, 0xa3, 0x5f, 0x8d, 0x55, 0x9b, 0x01, 0xa7, 0xba, 0x50, 0xc8, 0x9f, 0x00, - 0x60, 0xaf, 0x6b, 0xfb, 0x84, 0xdb, 0xd4, 0xab, 0x4c, 0x8b, 0x44, 0x8a, 0x1a, 0x61, 0xaf, 0xf6, - 0xb1, 0x57, 0x9f, 0xf4, 0xb1, 0xdf, 0x2a, 0x3c, 0x7f, 0x59, 0x93, 0xf4, 0x01, 0x9f, 0xf5, 0xf2, - 0x77, 0xff, 0xfe, 0x76, 0x2b, 0x06, 0xb1, 0x7e, 0x17, 0x2e, 0xc7, 0xb0, 0xe8, 0xc8, 0xba, 0xd4, - 0x63, 0x28, 0xbf, 0x0d, 0xf3, 0xa1, 0xb2, 0x25, 0xf0, 0x69, 0xd9, 0x26, 0xab, 0x48, 0xcb, 0xf9, - 0x46, 0x41, 0x9f, 0x0d, 0xa5, 0x02, 0xa9, 0x4f, 0x4d, 0x56, 0xff, 0x39, 0x0f, 0xd7, 0x9a, 0xcc, - 0xfa, 0xb2, 0x6b, 0x12, 0x8e, 0x3b, 0x7d, 0x0d, 0x1b, 0xcb, 0xd6, 0x13, 0xb8, 0x14, 0x08, 0xdb, - 0x3e, 0x5d, 0xeb, 0x19, 0xe8, 0x4a, 0x47, 0x57, 0x23, 0x81, 0xde, 0x0f, 0xa5, 0xfc, 0x98, 0x83, - 0x62, 0x24, 0x93, 0xeb, 0x30, 0x37, 0x54, 0xb6, 0xc8, 0x5f, 0xd0, 0xcb, 0x03, 0x55, 0xcb, 0x6f, - 0xc2, 0xac, 0x87, 0x07, 0xad, 0x14, 0x89, 0x65, 0x0f, 0x0f, 0xbe, 0xe8, 0xf3, 0xb8, 0x01, 0x73, - 0xa1, 0xc9, 0x39, 0xb8, 0x0c, 0xdd, 0x37, 0x2f, 0x4a, 0xe7, 0x43, 0x98, 0x0f, 0xd3, 0x5d, 0x80, - 0xd2, 0xb0, 0xcc, 0x07, 0x63, 0x58, 0x5d, 0x82, 0x37, 0xce, 0x40, 0xaf, 0xcf, 0x70, 0xfd, 0x6b, - 0x90, 0x9b, 0xcc, 0xba, 0x47, 0x3c, 0x03, 0x9d, 0x44, 0x3d, 0x96, 0xb9, 0x11, 0x60, 0x73, 0x23, - 0xc0, 0x0e, 0x67, 0x5f, 0x04, 0x65, 0x34, 0x7c, 0x92, 0xfc, 0xf7, 0x3c, 0xcc, 0x36, 0x99, 0xb5, - 0x15, 0x1c, 0xde, 0xb7, 0x7d, 0x34, 0xb8, 0xbc, 0x00, 0xd3, 0xed, 0xe0, 0x30, 0x49, 0x1b, 0x1d, - 0xe4, 0x47, 0xa9, 0xe9, 0x5e, 0xcb, 0x70, 0x5d, 0x92, 0x98, 0xa9, 0x11, 0xff, 0x23, 0xd7, 0x1f, - 0xf1, 0x0c, 0xbd, 0x0c, 0x4d, 0x79, 0x7e, 0x74, 0xca, 0xdb, 0xb6, 0x19, 0xdf, 0x8c, 0xc2, 0xc4, - 0x29, 0x6f, 0xdb, 0xe6, 0x2b, 0xaf, 0xc5, 0xf4, 0xb8, 0x6b, 0x71, 0x17, 0x6e, 0x44, 0x26, 0x2e, - 0x7a, 0xbc, 0xf5, 0x4d, 0xe0, 0xdb, 0xcc, 0xb4, 0x0d, 0x71, 0x3f, 0x8a, 0xa2, 0xa4, 0xeb, 0xa7, - 0xea, 0x47, 0x03, 0x5a, 0xf9, 0x5d, 0xb8, 0x3a, 0xe0, 0xe8, 0x23, 0x61, 0xd4, 0xab, 0x5c, 0x12, - 0x2e, 0x57, 0x4e, 0x15, 0xba, 0x90, 0xcb, 0x1f, 0xc3, 0xbc, 0x4b, 0x7a, 0xad, 0x5d, 0xc4, 0x16, - 0x71, 0x69, 0xe0, 0xf1, 0xca, 0xcc, 0xa4, 0x96, 0x66, 0x5d, 0xd2, 0xdb, 0x46, 0xdc, 0x14, 0xe6, - 0xeb, 0x10, 0xd2, 0x1e, 0x11, 0x56, 0xbf, 0x0e, 0x0b, 0x83, 0x14, 0x24, 0x7c, 0xff, 0x22, 0x89, - 0xdb, 0xb6, 0x69, 0x9a, 0x9b, 0x8e, 0x43, 0x0f, 0xd0, 0x8c, 0x76, 0xe9, 0x22, 0x94, 0x48, 0xc0, - 0xf7, 0xa8, 0x1f, 0xc2, 0x1c, 0x31, 0x7f, 0x2a, 0x90, 0x97, 0x00, 0xda, 0xc4, 0xeb, 0xc4, 0x9b, - 0x38, 0x1a, 0xd3, 0x52, 0x28, 0x89, 0x9c, 0xdf, 0x82, 0x39, 0xd3, 0x66, 0x5d, 0x87, 0x1c, 0xc6, - 0x16, 0x11, 0x4f, 0xb3, 0xb1, 0x30, 0xd9, 0xd6, 0xd8, 0xeb, 0x52, 0x0f, 0x3d, 0x2e, 0xa8, 0x9a, - 0xd3, 0x93, 0xf3, 0xfa, 0x7c, 0x58, 0xf8, 0x69, 0xbe, 0xf8, 0xca, 0xa6, 0x6a, 0x4c, 0x5a, 0xf8, - 0x0c, 0x5e, 0x6b, 0x32, 0x4b, 0x47, 0x97, 0xee, 0xe3, 0x39, 0x9a, 0x58, 0x80, 0xe9, 0xc1, 0xfa, - 0xa3, 0x43, 0xbd, 0x06, 0x4b, 0x67, 0x06, 0x4b, 0xb2, 0x3d, 0x8b, 0x00, 0x7b, 0x48, 0xf7, 0x77, - 0x90, 0x6f, 0x23, 0x3e, 0x26, 0x3e, 0x71, 0xd9, 0x84, 0x5c, 0x1b, 0x50, 0xd8, 0x45, 0xb1, 0x5b, - 0x43, 0x02, 0xdf, 0x99, 0x34, 0x2c, 0x49, 0x58, 0x5d, 0xb8, 0x8d, 0xc1, 0x23, 0x55, 0x42, 0x52, - 0xe1, 0x91, 0x24, 0x00, 0x11, 0x6a, 0xcf, 0xdc, 0xf6, 0xa9, 0x1b, 0xda, 0x50, 0xea, 0x4c, 0x28, - 0x72, 0x11, 0x4a, 0x3e, 0x1a, 0x76, 0xd7, 0x0e, 0x29, 0x89, 0x49, 0x4d, 0x04, 0xb2, 0x01, 0xc5, - 0xf8, 0x16, 0xe6, 0xc5, 0xc4, 0x8f, 0xbf, 0x85, 0x5b, 0xef, 0x1f, 0xfd, 0x55, 0x9b, 0xfa, 0xf5, - 0x65, 0xad, 0x61, 0xd9, 0x7c, 0x2f, 0x68, 0xab, 0x06, 0x75, 0xb5, 0xf8, 0x6b, 0x25, 0xfa, 0xb3, - 0xc2, 0xcc, 0x8e, 0xc6, 0x0f, 0xbb, 0xc8, 0x84, 0x03, 0xd3, 0xe3, 0xd0, 0x23, 0x8d, 0x46, 0x6c, - 0x8c, 0x76, 0xd2, 0xef, 0x75, 0xed, 0x87, 0x19, 0xc8, 0x37, 0x99, 0x25, 0x3f, 0x85, 0x82, 0xf8, - 0x1a, 0xb9, 0x99, 0xf1, 0x2b, 0x43, 0xd1, 0x32, 0x1a, 0x26, 0xef, 0xee, 0xf7, 0x12, 0x5c, 0x19, - 0x79, 0x4e, 0x6f, 0x5f, 0xe0, 0x95, 0x54, 0x3e, 0xba, 0x80, 0x53, 0x52, 0xc6, 0x33, 0x09, 0x2e, - 0xa7, 0x9f, 0x86, 0x2c, 0xcb, 0x37, 0xe5, 0xa3, 0xac, 0x9f, 0xdf, 0x27, 0xa9, 0x81, 0x42, 0xe9, - 0xf4, 0x7d, 0x78, 0xef, 0x3c, 0x9b, 0x5f, 0xf9, 0xe0, 0x3c, 0xd6, 0x43, 0x4d, 0xa7, 0x37, 0x54, - 0x96, 0xa6, 0x53, 0x3e, 0x99, 0x9a, 0x1e, 0xb3, 0x65, 0xe4, 0x9f, 0x24, 0x90, 0xcf, 0xd8, 0x31, - 0x77, 0x32, 0x84, 0x1c, 0x75, 0x53, 0x36, 0x2e, 0xe4, 0x36, 0x04, 0x48, 0x7a, 0x03, 0x65, 0x01, - 0x24, 0xe5, 0x93, 0x09, 0x90, 0x31, 0x6b, 0x46, 0x00, 0x72, 0xc6, 0x8e, 0xb9, 0x93, 0x35, 0xe4, - 0x90, 0x5b, 0x26, 0x40, 0xc6, 0xef, 0x81, 0xad, 0xa7, 0x47, 0xc7, 0x55, 0xe9, 0xc5, 0x71, 0x55, - 0xfa, 0xfb, 0xb8, 0x2a, 0x3d, 0x3f, 0xa9, 0x4e, 0xbd, 0x38, 0xa9, 0x4e, 0xfd, 0x79, 0x52, 0x9d, - 0xfa, 0x6a, 0x7b, 0x60, 0x09, 0x89, 0x14, 0x2b, 0x1e, 0xf2, 0x03, 0xea, 0x77, 0xe2, 0x93, 0x83, - 0xa6, 0x85, 0xbe, 0xd6, 0x1b, 0xf3, 0xcb, 0x47, 0x6c, 0xa9, 0xf0, 0xf7, 0x57, 0x51, 0x7c, 0xea, - 0xdd, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x79, 0x64, 0x35, 0xe1, 0x0d, 0x00, 0x00, + // 1156 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xdf, 0x6f, 0xdb, 0xd4, + 0x17, 0xaf, 0xf3, 0xa3, 0x6b, 0x4e, 0xda, 0x6e, 0xf3, 0xfa, 0xed, 0xf2, 0x35, 0x6d, 0x52, 0x02, + 0xd2, 0xc2, 0xa0, 0x36, 0xed, 0x18, 0x93, 0x8a, 0x2a, 0x68, 0xb7, 0x75, 0x62, 0x28, 0x62, 0xb8, + 0xe3, 0x05, 0x09, 0x65, 0x37, 0xf6, 0xa9, 0x6b, 0x62, 0xfb, 0x06, 0xdf, 0xeb, 0x36, 0x7d, 0x1c, + 0x02, 0x21, 0xf1, 0xb4, 0x67, 0x1e, 0x79, 0xe4, 0x89, 0xbf, 0x02, 0xed, 0x71, 0x2f, 0x20, 0x9e, + 0x18, 0x6a, 0x25, 0x78, 0xe3, 0x6f, 0x40, 0xbe, 0x76, 0xdc, 0xc4, 0x69, 0x16, 0xb7, 0x4f, 0xc9, + 0x3d, 0xbf, 0xcf, 0xe7, 0x73, 0xef, 0xb9, 0xd7, 0x70, 0xc3, 0x47, 0x0b, 0x3d, 0x0d, 0x0d, 0x6a, + 0xf8, 0x68, 0xda, 0x5c, 0x73, 0x89, 0xdf, 0x41, 0xde, 0x75, 0x88, 0x81, 0xda, 0xc1, 0x9a, 0xc6, + 0x7b, 0x6a, 0xd7, 0xa7, 0x9c, 0xca, 0x55, 0x61, 0xa8, 0x26, 0x86, 0xea, 0x80, 0xa1, 0x7a, 0xb0, + 0xa6, 0x54, 0x0d, 0xca, 0x5c, 0xca, 0xb4, 0x36, 0x61, 0xa1, 0x63, 0x1b, 0x39, 0x59, 0xd3, 0x0c, + 0x6a, 0x7b, 0x91, 0xbf, 0x72, 0x3d, 0xd6, 0xbb, 0xcc, 0x0a, 0xe3, 0xba, 0xcc, 0x8a, 0x15, 0x0b, + 0x16, 0xb5, 0xa8, 0xf8, 0xab, 0x85, 0xff, 0x62, 0x69, 0xcd, 0xa2, 0xd4, 0x72, 0x50, 0x13, 0xab, + 0x76, 0xb0, 0xa7, 0x71, 0xdb, 0x45, 0xc6, 0x89, 0xdb, 0x8d, 0x0d, 0x6e, 0x4e, 0x28, 0x9c, 0x71, + 0xc2, 0x31, 0xb2, 0xad, 0xff, 0x9d, 0x83, 0x4b, 0x4d, 0x66, 0xed, 0xa2, 0xe3, 0xc8, 0x8b, 0x30, + 0xcd, 0xd0, 0x71, 0xd0, 0xaf, 0x48, 0x2b, 0x52, 0xa3, 0xa4, 0xc7, 0x2b, 0xf9, 0x3e, 0x4c, 0x53, + 0xdf, 0x44, 0x9f, 0x55, 0x72, 0x2b, 0xf9, 0x46, 0x79, 0x7d, 0x55, 0x7d, 0x75, 0xc3, 0x6a, 0x1c, + 0x50, 0xfd, 0x34, 0xf4, 0xd2, 0x63, 0x67, 0xe5, 0x5f, 0x09, 0x8a, 0x42, 0x22, 0xd7, 0xa0, 0xdc, + 0x26, 0xdc, 0xd8, 0x6f, 0x99, 0xe8, 0x51, 0x37, 0xce, 0x06, 0x42, 0x74, 0x2f, 0x94, 0xc8, 0x0a, + 0xcc, 0x7c, 0x1d, 0x10, 0x8f, 0xdb, 0xfc, 0xa8, 0x92, 0x13, 0xda, 0x64, 0x2d, 0xbf, 0x0f, 0x25, + 0xc2, 0x3a, 0xad, 0xae, 0x6f, 0x1b, 0x58, 0xc9, 0xaf, 0x48, 0x8d, 0xf2, 0xfa, 0xff, 0xd5, 0x08, + 0x41, 0x35, 0x44, 0x58, 0x8d, 0x11, 0x56, 0xef, 0x52, 0xdb, 0xd3, 0x67, 0x08, 0xeb, 0x3c, 0x0a, + 0x4d, 0x65, 0x15, 0xae, 0x99, 0x36, 0x23, 0x6d, 0x07, 0x5b, 0x24, 0xe0, 0xb4, 0xe5, 0x23, 0xb7, + 0x7d, 0xac, 0x14, 0x56, 0xa4, 0xc6, 0x8c, 0x7e, 0x35, 0x56, 0x6d, 0x05, 0x9c, 0xea, 0x42, 0x21, + 0x7f, 0x04, 0x80, 0xbd, 0xae, 0xed, 0x13, 0x6e, 0x53, 0xaf, 0x52, 0x14, 0x89, 0x14, 0x35, 0xc2, + 0x5e, 0xed, 0x63, 0xaf, 0x3e, 0xee, 0x63, 0xbf, 0x5d, 0x78, 0xf6, 0xb2, 0x26, 0xe9, 0x03, 0x3e, + 0x1b, 0xe5, 0x6f, 0xfe, 0xf9, 0xe5, 0x66, 0x0c, 0x62, 0xfd, 0x0e, 0x5c, 0x8e, 0x61, 0xd1, 0x91, + 0x75, 0xa9, 0xc7, 0x50, 0x7e, 0x13, 0xe6, 0x43, 0x65, 0x4b, 0xe0, 0xd3, 0xb2, 0x4d, 0x56, 0x91, + 0x56, 0xf2, 0x8d, 0x82, 0x3e, 0x1b, 0x4a, 0x05, 0x52, 0x1f, 0x9b, 0xac, 0xfe, 0x63, 0x1e, 0xae, + 0x35, 0x99, 0xf5, 0x79, 0xd7, 0x24, 0x1c, 0x77, 0xfb, 0x1a, 0x36, 0x96, 0xad, 0xc7, 0x70, 0x29, + 0x10, 0xb6, 0x7d, 0xba, 0x36, 0x32, 0xd0, 0x95, 0x8e, 0xae, 0x46, 0x02, 0xbd, 0x1f, 0x4a, 0xf9, + 0x3e, 0x07, 0xd3, 0x91, 0x4c, 0xae, 0xc3, 0xdc, 0x50, 0xd9, 0x22, 0x7f, 0x41, 0x2f, 0x0f, 0x54, + 0x2d, 0xbf, 0x0e, 0xb3, 0x1e, 0x1e, 0xb6, 0x52, 0x24, 0x96, 0x3d, 0x3c, 0xfc, 0xac, 0xcf, 0xe3, + 0x26, 0xcc, 0x85, 0x26, 0xe7, 0xe0, 0x32, 0x74, 0xdf, 0xba, 0x28, 0x9d, 0x0f, 0x60, 0x3e, 0x4c, + 0x77, 0x01, 0x4a, 0xc3, 0x32, 0xef, 0x8f, 0x61, 0x75, 0x19, 0x5e, 0x3b, 0x03, 0xbd, 0x3e, 0xc3, + 0xf5, 0x2f, 0x41, 0x6e, 0x32, 0xeb, 0x2e, 0xf1, 0x0c, 0x74, 0x12, 0xf5, 0x58, 0xe6, 0x46, 0x80, + 0xcd, 0x8d, 0x00, 0x3b, 0x9c, 0x7d, 0x09, 0x94, 0xd1, 0xf0, 0x49, 0xf2, 0xdf, 0xf2, 0x30, 0xdb, + 0x64, 0xd6, 0x76, 0x70, 0x74, 0xcf, 0xf6, 0xd1, 0xe0, 0xf2, 0x02, 0x14, 0xdb, 0xc1, 0x51, 0x92, + 0x36, 0x5a, 0xc8, 0x0f, 0x53, 0xa7, 0x7b, 0x3d, 0xc3, 0x76, 0x49, 0x62, 0xa6, 0x8e, 0xf8, 0xef, + 0xb9, 0xfe, 0x11, 0xcf, 0xd0, 0xcb, 0xd0, 0x29, 0xcf, 0x8f, 0x9e, 0xf2, 0xb6, 0x6d, 0xc6, 0x3b, + 0xa3, 0x30, 0xf1, 0x94, 0xb7, 0x6d, 0xf3, 0x95, 0xdb, 0xa2, 0x38, 0x6e, 0x5b, 0xdc, 0x81, 0xeb, + 0x91, 0x89, 0x8b, 0x1e, 0x6f, 0x7d, 0x15, 0xf8, 0x36, 0x33, 0x6d, 0x43, 0xec, 0x8f, 0x69, 0x51, + 0xd2, 0xe2, 0xa9, 0xfa, 0xe1, 0x80, 0x56, 0x7e, 0x1b, 0xae, 0x0e, 0x38, 0xfa, 0x48, 0x18, 0xf5, + 0x2a, 0x97, 0x84, 0xcb, 0x95, 0x53, 0x85, 0x2e, 0xe4, 0xf2, 0x87, 0x30, 0xef, 0x92, 0x5e, 0x6b, + 0x0f, 0xb1, 0x45, 0x5c, 0x1a, 0x78, 0xbc, 0x32, 0x33, 0xa9, 0xa5, 0x59, 0x97, 0xf4, 0x76, 0x10, + 0xb7, 0x84, 0xf9, 0x06, 0x84, 0xb4, 0x47, 0x84, 0xd5, 0x17, 0x61, 0x61, 0x90, 0x82, 0x84, 0xef, + 0x9f, 0x24, 0xb1, 0xdb, 0xb6, 0x4c, 0x73, 0xcb, 0x71, 0xe8, 0x21, 0x9a, 0xd1, 0x2c, 0x5d, 0x82, + 0x12, 0x09, 0xf8, 0x3e, 0xf5, 0x43, 0x98, 0x23, 0xe6, 0x4f, 0x05, 0xf2, 0x32, 0x40, 0x9b, 0x78, + 0x9d, 0x78, 0x12, 0x47, 0xc7, 0xb4, 0x14, 0x4a, 0x22, 0xe7, 0x37, 0x60, 0xce, 0xb4, 0x59, 0xd7, + 0x21, 0x47, 0xb1, 0x45, 0xc4, 0xd3, 0x6c, 0x2c, 0x4c, 0xa6, 0x35, 0xf6, 0xba, 0xd4, 0x43, 0x8f, + 0x0b, 0xaa, 0xe6, 0xf4, 0x64, 0xbd, 0x31, 0x1f, 0x16, 0x7e, 0x9a, 0x2f, 0xde, 0xb2, 0xa9, 0x1a, + 0x93, 0x16, 0x3e, 0x81, 0xff, 0x35, 0x99, 0xa5, 0xa3, 0x4b, 0x0f, 0xf0, 0x1c, 0x4d, 0x2c, 0x40, + 0x71, 0xb0, 0xfe, 0x68, 0x51, 0xaf, 0xc1, 0xf2, 0x99, 0xc1, 0x92, 0x6c, 0x4f, 0x23, 0xc0, 0x1e, + 0xd0, 0x83, 0x5d, 0xe4, 0x3b, 0x88, 0x8f, 0x88, 0x4f, 0x5c, 0x36, 0x21, 0xd7, 0x26, 0x14, 0xf6, + 0x50, 0xcc, 0xd6, 0x90, 0xc0, 0xb7, 0x26, 0x1d, 0x96, 0x24, 0xac, 0x2e, 0xdc, 0xc6, 0xe0, 0x91, + 0x2a, 0x21, 0xa9, 0xf0, 0x57, 0x49, 0x00, 0x22, 0xd4, 0x9e, 0xb9, 0xe3, 0x53, 0x37, 0xb4, 0xa1, + 0xd4, 0x99, 0x50, 0xe4, 0x12, 0x94, 0x7c, 0x34, 0xec, 0xae, 0x1d, 0x52, 0x12, 0x93, 0x9a, 0x08, + 0x64, 0x02, 0xc5, 0xf0, 0xf5, 0xc1, 0x2a, 0x79, 0x71, 0xe0, 0xc7, 0x6f, 0xc2, 0xed, 0x77, 0x9f, + 0xff, 0x59, 0x9b, 0xfa, 0xf9, 0x65, 0xad, 0x61, 0xd9, 0x7c, 0x3f, 0x68, 0xab, 0x06, 0x75, 0xb5, + 0xf8, 0xb1, 0x12, 0xfd, 0xac, 0x32, 0xb3, 0xa3, 0xf1, 0xa3, 0x2e, 0x32, 0xe1, 0xc0, 0xf4, 0x28, + 0xf2, 0x48, 0x9b, 0x11, 0x17, 0xa3, 0x7d, 0xf4, 0x3b, 0x5d, 0xff, 0x6e, 0x06, 0xf2, 0x4d, 0x66, + 0xc9, 0x4f, 0xa0, 0x20, 0xde, 0x22, 0x37, 0x32, 0xbe, 0x31, 0x14, 0x2d, 0xa3, 0x61, 0x72, 0xeb, + 0x7e, 0x2b, 0xc1, 0x95, 0x91, 0xcb, 0xf4, 0xd6, 0x05, 0xee, 0x48, 0xe5, 0x83, 0x0b, 0x38, 0x25, + 0x65, 0x3c, 0x95, 0xe0, 0x72, 0xfa, 0x62, 0xc8, 0x32, 0x7a, 0x53, 0x3e, 0xca, 0xc6, 0xf9, 0x7d, + 0x92, 0x1a, 0x28, 0x94, 0x4e, 0x6f, 0x87, 0x77, 0xce, 0x33, 0xf7, 0x95, 0xf7, 0xce, 0x63, 0x3d, + 0xd4, 0x74, 0x7a, 0x3e, 0x65, 0x69, 0x3a, 0xe5, 0x93, 0xa9, 0xe9, 0x31, 0x33, 0x46, 0xfe, 0x41, + 0x02, 0xf9, 0x8c, 0x09, 0x73, 0x3b, 0x43, 0xc8, 0x51, 0x37, 0x65, 0xf3, 0x42, 0x6e, 0x43, 0x80, + 0xa4, 0xe7, 0x4f, 0x16, 0x40, 0x52, 0x3e, 0x99, 0x00, 0x19, 0x33, 0x64, 0x04, 0x20, 0x67, 0x4c, + 0x98, 0xdb, 0x59, 0x43, 0x0e, 0xb9, 0x65, 0x02, 0x64, 0xfc, 0x1c, 0xd8, 0x7e, 0xf2, 0xfc, 0xb8, + 0x2a, 0xbd, 0x38, 0xae, 0x4a, 0x7f, 0x1d, 0x57, 0xa5, 0x67, 0x27, 0xd5, 0xa9, 0x17, 0x27, 0xd5, + 0xa9, 0x3f, 0x4e, 0xaa, 0x53, 0x5f, 0xec, 0x0c, 0xcc, 0x20, 0x91, 0x62, 0xd5, 0x43, 0x7e, 0x48, + 0xfd, 0x4e, 0xbc, 0x72, 0xd0, 0xb4, 0xd0, 0xd7, 0x7a, 0x63, 0xbe, 0x7b, 0xc4, 0x90, 0x0a, 0xbf, + 0xbe, 0xa6, 0xc5, 0x43, 0xef, 0xd6, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x55, 0x7d, 0x4e, 0x27, + 0xdf, 0x0d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2291,10 +2292,10 @@ func (m *MsgGovSendFromFeePool) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if len(m.Amount) > 0 { - for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { + if len(m.Coins) > 0 { + for iNdEx := len(m.Coins) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Coins[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2661,8 +2662,8 @@ func (m *MsgGovSendFromFeePool) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - if len(m.Amount) > 0 { - for _, e := range m.Amount { + if len(m.Coins) > 0 { + for _, e := range m.Coins { l = e.Size() n += 1 + l + sovTx(uint64(l)) } @@ -4708,7 +4709,7 @@ func (m *MsgGovSendFromFeePool) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Coins", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4735,8 +4736,8 @@ func (m *MsgGovSendFromFeePool) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Amount = append(m.Amount, types.Coin{}) - if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Coins = append(m.Coins, types.Coin{}) + if err := m.Coins[len(m.Coins)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex