diff --git a/api/cosmos/base/abci/v1beta1/abci.pulsar.go b/api/cosmos/base/abci/v1beta1/abci.pulsar.go index 824ceb18f855..dbc76169d0a6 100644 --- a/api/cosmos/base/abci/v1beta1/abci.pulsar.go +++ b/api/cosmos/base/abci/v1beta1/abci.pulsar.go @@ -3512,6 +3512,7 @@ var ( fd_Result_log protoreflect.FieldDescriptor fd_Result_events protoreflect.FieldDescriptor fd_Result_msg_responses protoreflect.FieldDescriptor + fd_Result_lane_id protoreflect.FieldDescriptor ) func init() { @@ -3521,6 +3522,7 @@ func init() { fd_Result_log = md_Result.Fields().ByName("log") fd_Result_events = md_Result.Fields().ByName("events") fd_Result_msg_responses = md_Result.Fields().ByName("msg_responses") + fd_Result_lane_id = md_Result.Fields().ByName("lane_id") } var _ protoreflect.Message = (*fastReflection_Result)(nil) @@ -3612,6 +3614,12 @@ func (x *fastReflection_Result) Range(f func(protoreflect.FieldDescriptor, proto return } } + if x.LaneId != "" { + value := protoreflect.ValueOfString(x.LaneId) + if !f(fd_Result_lane_id, value) { + return + } + } } // Has reports whether a field is populated. @@ -3635,6 +3643,8 @@ func (x *fastReflection_Result) Has(fd protoreflect.FieldDescriptor) bool { return len(x.Events) != 0 case "cosmos.base.abci.v1beta1.Result.msg_responses": return len(x.MsgResponses) != 0 + case "cosmos.base.abci.v1beta1.Result.lane_id": + return x.LaneId != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.base.abci.v1beta1.Result")) @@ -3659,6 +3669,8 @@ func (x *fastReflection_Result) Clear(fd protoreflect.FieldDescriptor) { x.Events = nil case "cosmos.base.abci.v1beta1.Result.msg_responses": x.MsgResponses = nil + case "cosmos.base.abci.v1beta1.Result.lane_id": + x.LaneId = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.base.abci.v1beta1.Result")) @@ -3693,6 +3705,9 @@ func (x *fastReflection_Result) Get(descriptor protoreflect.FieldDescriptor) pro } listValue := &_Result_4_list{list: &x.MsgResponses} return protoreflect.ValueOfList(listValue) + case "cosmos.base.abci.v1beta1.Result.lane_id": + value := x.LaneId + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.base.abci.v1beta1.Result")) @@ -3725,6 +3740,8 @@ func (x *fastReflection_Result) Set(fd protoreflect.FieldDescriptor, value proto lv := value.List() clv := lv.(*_Result_4_list) x.MsgResponses = *clv.list + case "cosmos.base.abci.v1beta1.Result.lane_id": + x.LaneId = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.base.abci.v1beta1.Result")) @@ -3761,6 +3778,8 @@ func (x *fastReflection_Result) Mutable(fd protoreflect.FieldDescriptor) protore panic(fmt.Errorf("field data of message cosmos.base.abci.v1beta1.Result is not mutable")) case "cosmos.base.abci.v1beta1.Result.log": panic(fmt.Errorf("field log of message cosmos.base.abci.v1beta1.Result is not mutable")) + case "cosmos.base.abci.v1beta1.Result.lane_id": + panic(fmt.Errorf("field lane_id of message cosmos.base.abci.v1beta1.Result is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.base.abci.v1beta1.Result")) @@ -3784,6 +3803,8 @@ func (x *fastReflection_Result) NewField(fd protoreflect.FieldDescriptor) protor case "cosmos.base.abci.v1beta1.Result.msg_responses": list := []*anypb.Any{} return protoreflect.ValueOfList(&_Result_4_list{list: &list}) + case "cosmos.base.abci.v1beta1.Result.lane_id": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.base.abci.v1beta1.Result")) @@ -3873,6 +3894,10 @@ func (x *fastReflection_Result) ProtoMethods() *protoiface.Methods { n += 1 + l + runtime.Sov(uint64(l)) } } + l = len(x.LaneId) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -3902,6 +3927,13 @@ func (x *fastReflection_Result) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.LaneId) > 0 { + i -= len(x.LaneId) + copy(dAtA[i:], x.LaneId) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.LaneId))) + i-- + dAtA[i] = 0x2a + } if len(x.MsgResponses) > 0 { for iNdEx := len(x.MsgResponses) - 1; iNdEx >= 0; iNdEx-- { encoded, err := options.Marshal(x.MsgResponses[iNdEx]) @@ -4131,6 +4163,38 @@ func (x *fastReflection_Result) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LaneId", 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.LaneId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -7641,6 +7705,8 @@ type Result struct { Events []*v1.Event `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` // msg_responses contains the Msg handler responses type packed in Anys. MsgResponses []*anypb.Any `protobuf:"bytes,4,rep,name=msg_responses,json=msgResponses,proto3" json:"msg_responses,omitempty"` + // lane_id is used by the comet mempool to identify the lane that the transaction should be broadcast in. + LaneId string `protobuf:"bytes,5,opt,name=lane_id,json=laneId,proto3" json:"lane_id,omitempty"` } func (x *Result) Reset() { @@ -7692,6 +7758,13 @@ func (x *Result) GetMsgResponses() []*anypb.Any { return nil } +func (x *Result) GetLaneId() string { + if x != nil { + return x.LaneId + } + return "" +} + // SimulationResponse defines the response generated when a transaction is // successfully simulated. type SimulationResponse struct { @@ -8069,7 +8142,7 @@ var file_cosmos_base_abci_v1beta1_abci_proto_rawDesc = []byte{ 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x61, - 0x73, 0x55, 0x73, 0x65, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x55, 0x73, 0x65, 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x35, 0x0a, 0x06, 0x65, 0x76, @@ -8081,73 +8154,75 @@ var file_cosmos_base_abci_v1beta1_abci_proto_rawDesc = []byte{ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x13, 0xda, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, 0x34, 0x36, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x73, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0x96, 0x01, 0x0a, 0x12, 0x53, 0x69, 0x6d, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, - 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, - 0x62, 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x61, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x42, 0x08, 0xc8, 0xde, 0x1f, 0x00, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x07, 0x67, - 0x61, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x40, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x6d, - 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x06, 0x80, 0xdc, 0x20, 0x01, - 0x18, 0x01, 0x22, 0x9c, 0x01, 0x0a, 0x09, 0x54, 0x78, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, 0x63, - 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, - 0x61, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x0d, 0x6d, - 0x73, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x13, 0xda, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, 0x34, 0x36, 0x52, 0x0c, 0x6d, - 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x3a, 0x04, 0x80, 0xdc, 0x20, - 0x01, 0x22, 0xdc, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x78, 0x73, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, - 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x78, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x03, 0x74, 0x78, 0x73, 0x3a, 0x04, 0x80, 0xdc, 0x20, 0x01, - 0x22, 0xd9, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x3a, 0x04, 0x80, 0xdc, 0x20, 0x01, 0x42, 0xe7, 0x01, 0xd8, - 0xe1, 0x1e, 0x00, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x42, 0x09, 0x41, 0x62, 0x63, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x61, 0x62, 0x63, - 0x69, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x62, 0x63, 0x69, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x41, 0xaa, 0x02, 0x18, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x62, 0x63, 0x69, 0x2e, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x42, 0x61, 0x73, 0x65, 0x5c, 0x41, 0x62, 0x63, 0x69, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x24, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x73, 0x65, 0x5c, - 0x41, 0x62, 0x63, 0x69, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x73, 0x65, 0x3a, 0x3a, 0x41, 0x62, 0x63, 0x69, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, + 0x22, 0x96, 0x01, 0x0a, 0x12, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x61, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x08, 0xc8, 0xde, + 0x1f, 0x00, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x07, 0x67, 0x61, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x38, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, + 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x40, 0x0a, 0x07, 0x4d, 0x73, 0x67, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x3a, 0x06, 0x80, 0xdc, 0x20, 0x01, 0x18, 0x01, 0x22, 0x9c, 0x01, 0x0a, 0x09, + 0x54, 0x78, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x42, 0x13, 0xda, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x20, 0x30, 0x2e, 0x34, 0x36, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x73, 0x3a, 0x04, 0x80, 0xdc, 0x20, 0x01, 0x22, 0xdc, 0x01, 0x0a, 0x0f, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x78, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x74, + 0x78, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x03, + 0x74, 0x78, 0x73, 0x3a, 0x04, 0x80, 0xdc, 0x20, 0x01, 0x22, 0xd9, 0x01, 0x0a, 0x12, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, 0x0a, + 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x62, 0x66, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x3a, + 0x04, 0x80, 0xdc, 0x20, 0x01, 0x42, 0xe7, 0x01, 0xd8, 0xe1, 0x1e, 0x00, 0x0a, 0x1c, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x61, 0x62, + 0x63, 0x69, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x41, 0x62, 0x63, 0x69, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x61, 0x62, 0x63, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x3b, 0x61, 0x62, 0x63, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, + 0x03, 0x43, 0x42, 0x41, 0xaa, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, + 0x73, 0x65, 0x2e, 0x41, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x73, 0x65, 0x5c, 0x41, 0x62, + 0x63, 0x69, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x73, 0x65, 0x5c, 0x41, 0x62, 0x63, 0x69, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x73, 0x65, + 0x3a, 0x3a, 0x41, 0x62, 0x63, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/baseapp/abci.go b/baseapp/abci.go index 05b9e61794a7..bc87e48dcf36 100644 --- a/baseapp/abci.go +++ b/baseapp/abci.go @@ -152,12 +152,16 @@ func (app *BaseApp) Info(_ *abci.InfoRequest) (*abci.InfoResponse, error) { } } + lanes, defaultLane := app.laneHandler.GetLanes() + return &abci.InfoResponse{ Data: app.name, Version: app.version, AppVersion: appVersion, LastBlockHeight: lastCommitID.Version, LastBlockAppHash: lastCommitID.Hash, + LanePriorities: lanes, + DefaultLane: defaultLane, }, nil } @@ -377,6 +381,7 @@ func (app *BaseApp) CheckTx(req *abci.CheckTxRequest) (*abci.CheckTxResponse, er Log: result.Log, Data: result.Data, Events: sdk.MarkEventsToIndex(result.Events, app.indexEvents), + LaneId: result.LaneId, }, nil } diff --git a/baseapp/abci_utils.go b/baseapp/abci_utils.go index bc0cb9daccdd..75f8c0bd0284 100644 --- a/baseapp/abci_utils.go +++ b/baseapp/abci_utils.go @@ -538,3 +538,17 @@ func (ts *defaultTxSelector) SelectTxForProposal(_ context.Context, maxTxBytes, // check if we've reached capacity; if so, we cannot select any more transactions return ts.totalTxBytes >= maxTxBytes || (maxBlockGas > 0 && (ts.totalTxGas >= maxBlockGas)) } + +var _ mempool.Lanes = NoopLaneHandler{} + +// NoopLaneHandler is a LaneHandler that does not return any lanes. +// All transactions are considered to be in the default lane. +type NoopLaneHandler struct{} + +func (NoopLaneHandler) GetLanes() (map[string]uint32, string) { + return map[string]uint32{}, "" +} + +func (NoopLaneHandler) GetTxLane(_ context.Context, _ sdk.Tx) (string, error) { + return "", nil +} diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index 89748eadf053..85cf271e238b 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -91,6 +91,7 @@ type BaseApp struct { prepareCheckStater sdk.PrepareCheckStater // logic to run during commit using the checkState precommiter sdk.Precommiter // logic to run during commit using the deliverState versionModifier server.VersionModifier // interface to get and set the app version + laneHandler mempool.Lanes // lane handler for the comet mempool addrPeerFilter sdk.PeerFilter // filter peers by address and port idPeerFilter sdk.PeerFilter // filter peers by node ID @@ -938,6 +939,15 @@ func (app *BaseApp) runTx(mode execMode, txBytes []byte) (gInfo sdk.GasInfo, res if err != nil { return gInfo, nil, anteEvents, err } + if app.laneHandler != nil { + // if the laneHandler is set, we set the laneId in the result + // this takes advantage of https://github.com/cometbft/cometbft/blob/main/docs/references/architecture/adr-118-mempool-lanes.md + lane, err := app.laneHandler.GetTxLane(ctx, tx) + if err != nil { + return gInfo, nil, anteEvents, err + } + result.LaneId = lane + } } else if mode == execModeFinalize { err = app.mempool.Remove(tx) if err != nil && !errors.Is(err, mempool.ErrTxNotFound) { @@ -1003,6 +1013,8 @@ func (app *BaseApp) runTx(mode execMode, txBytes []byte) (gInfo sdk.GasInfo, res } } + // handleLaned mempool + return gInfo, result, anteEvents, err } diff --git a/baseapp/options.go b/baseapp/options.go index 53286b2540b9..586efed194eb 100644 --- a/baseapp/options.go +++ b/baseapp/options.go @@ -406,3 +406,9 @@ func (app *BaseApp) SetMsgServiceRouter(msgServiceRouter *MsgServiceRouter) { func (app *BaseApp) SetGRPCQueryRouter(grpcQueryRouter *GRPCQueryRouter) { app.grpcQueryRouter = grpcQueryRouter } + +// SetLaneHandler provides baseapp the LaneHandler +// 0 is a reserved lane, order of the lanes does not matter +func (app *BaseApp) SetLaneHandler(laneHandler mempool.Lanes) { + app.laneHandler = laneHandler +} diff --git a/docs/build/abci/04-checktx.md b/docs/build/abci/04-checktx.md new file mode 100644 index 000000000000..e08804eb34ed --- /dev/null +++ b/docs/build/abci/04-checktx.md @@ -0,0 +1,77 @@ +# CheckTx + +CheckTx is called by the `BaseApp` when comet receives a transaction from a client, over the p2p network or RPC. The CheckTx method is responsible for validating the transaction and returning an error if the transaction is invalid. + +```mermaid +graph TD + subgraph SDK[Cosmos SDK] + B[Baseapp] + A[AnteHandlers] + B <-->|Validate TX| A + end + C[CometBFT] <-->|CheckTx|SDK + U((User)) -->|Submit TX| C + N[P2P] -->|Receive TX| C +``` + +```go +// CheckTx implements the ABCI interface. +func (app *BaseApp) CheckTx(req abci.RequestCheckTx) abci.ResponseCheckTx { + var mode execMode + + switch { + case req.Type == abci.CHECK_TX_TYPE_CHECK: + mode = execModeCheck + + case req.Type == abci.CHECK_TX_TYPE_RECHECK: + mode = execModeReCheck + + default: + return nil, fmt.Errorf("unknown RequestCheckTx type: %s", req.Type) + } + + gInfo, result, anteEvents, err := app.runTx(mode, req.Tx, nil) + if err != nil { + return responseCheckTxWithEvents(err, gInfo.GasWanted, gInfo.GasUsed, anteEvents, app.trace), nil + } + + return &abci.CheckTxResponse{ + GasWanted: int64(gInfo.GasWanted), + GasUsed: int64(gInfo.GasUsed), + Log: result.Log, + Data: result.Data, + Events: sdk.MarkEventsToIndex(result.Events, app.indexEvents), + }, nil +} +``` + +## CheckTx Lane Handler + +Comet provides the optionality for application developers to set a lane for a specific type of transaction. This allows the application to set a form of priority for transaction dissemination. + +The `LaneHandler` interface is defined as follows: + +```go +type Lanes interface { + GetLanes() (lanes map[string]uint32, defaultLane string) + GetTxLane(context.Context, sdk.Tx) (string, error) +} +``` + +The `LaneHandler` is set on the `BaseApp` using the `SetLaneHandler` method. + +```go +func NewSimApp( + logger log.Logger, + db corestore.KVStoreWithBatch, + traceStore io.Writer, + loadLatest bool, + appOpts servertypes.AppOptions, + baseAppOptions ...func(*baseapp.BaseApp), +) *SimApp { + ... + laneHandler := mempool.CustomLaneHandler(map[string]uint32{}, "default") + app.SetLaneHandler(laneHandler) + ... +} +``` diff --git a/go.mod b/go.mod index 0c54a37dd9d4..8b213d0d7fa3 100644 --- a/go.mod +++ b/go.mod @@ -18,8 +18,8 @@ require ( cosmossdk.io/x/tx v0.13.3 github.com/99designs/keyring v1.2.2 github.com/bgentry/speakeasy v0.2.0 - github.com/cometbft/cometbft v1.0.0-rc1.0.20240908111210-ab0be101882f - github.com/cometbft/cometbft/api v1.0.0-rc.1 + github.com/cometbft/cometbft v1.0.0-rc1.0.20240925131815-d341b313d7e2 + github.com/cometbft/cometbft/api v1.0.0-rc.1.0.20240925131815-d341b313d7e2 github.com/cosmos/btcutil v1.0.5 github.com/cosmos/cosmos-db v1.0.3-0.20240911104526-ddc3f09bfc22 github.com/cosmos/cosmos-proto v1.0.0-beta.5 @@ -82,7 +82,7 @@ require ( github.com/cockroachdb/pebble v1.1.2 // indirect github.com/cockroachdb/redact v1.1.5 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect - github.com/cometbft/cometbft-db v0.15.0 // indirect + github.com/cometbft/cometbft-db v1.0.0 // indirect github.com/cosmos/iavl v1.3.0 // indirect github.com/cosmos/ics23/go v0.11.0 // indirect github.com/danieljoos/wincred v1.2.1 // indirect @@ -96,7 +96,6 @@ require ( github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/getsentry/sentry-go v0.27.0 // indirect - github.com/go-kit/kit v0.13.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect @@ -144,7 +143,7 @@ require ( github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/cors v1.11.0 // indirect + github.com/rs/cors v1.11.1 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.5 // indirect diff --git a/go.sum b/go.sum index 4508c5975094..164cf9ab9e09 100644 --- a/go.sum +++ b/go.sum @@ -34,8 +34,6 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/adlio/schema v1.3.6 h1:k1/zc2jNfeiZBA5aFTRy37jlBIuCkXCm0XmvpzCKI9I= github.com/adlio/schema v1.3.6/go.mod h1:qkxwLgPBd1FgLRHYVCmQT/rrBr3JH38J9LjmVzWNudg= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -90,12 +88,12 @@ github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwP github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= -github.com/cometbft/cometbft v1.0.0-rc1.0.20240908111210-ab0be101882f h1:rPWKqyc+CeuddICqlqptf+3NPE8exbC9SOGuDPTEN3k= -github.com/cometbft/cometbft v1.0.0-rc1.0.20240908111210-ab0be101882f/go.mod h1:MqZ5E5jLU1JdP10FSRXhItpm+GdHMbW7Myv3UARLxqg= -github.com/cometbft/cometbft-db v0.15.0 h1:VLtsRt8udD4jHCyjvrsTBpgz83qne5hnL245AcPJVRk= -github.com/cometbft/cometbft-db v0.15.0/go.mod h1:EBrFs1GDRiTqrWXYi4v90Awf/gcdD5ExzdPbg4X8+mk= -github.com/cometbft/cometbft/api v1.0.0-rc.1 h1:GtdXwDGlqwHYs16A4egjwylfYOMYyEacLBrs3Zvpt7g= -github.com/cometbft/cometbft/api v1.0.0-rc.1/go.mod h1:NDFKiBBD8HJC6QQLAoUI99YhsiRZtg2+FJWfk6A6m6o= +github.com/cometbft/cometbft v1.0.0-rc1.0.20240925131815-d341b313d7e2 h1:zMiCop6ZA3mqjhCjI61uMKbIbJuumIwA9PGPkkOTHC4= +github.com/cometbft/cometbft v1.0.0-rc1.0.20240925131815-d341b313d7e2/go.mod h1:vNUsiRz1tV9U0Opnvpw/WxPgvvFIi3Gdm+rkpxwnkas= +github.com/cometbft/cometbft-db v1.0.0 h1:AK805KzaWCzBYnWaUvMRiV4+uoZJIPRYn/VpDfke2ic= +github.com/cometbft/cometbft-db v1.0.0/go.mod h1:EBrFs1GDRiTqrWXYi4v90Awf/gcdD5ExzdPbg4X8+mk= +github.com/cometbft/cometbft/api v1.0.0-rc.1.0.20240925131815-d341b313d7e2 h1:fex0Z7zPKZMxHVSdWchKqkL/Ag9AuLDq+/kzDJNTOIQ= +github.com/cometbft/cometbft/api v1.0.0-rc.1.0.20240925131815-d341b313d7e2/go.mod h1:EkQiqVSu/p2ebrZEnB2z6Re7r8XNe//M7ylR0qEwWm0= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= @@ -177,8 +175,6 @@ github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxI github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= -github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= @@ -426,8 +422,8 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= -github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= +github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= diff --git a/proto/cosmos/base/abci/v1beta1/abci.proto b/proto/cosmos/base/abci/v1beta1/abci.proto index 63a09e73091e..622f88dc6d8c 100644 --- a/proto/cosmos/base/abci/v1beta1/abci.proto +++ b/proto/cosmos/base/abci/v1beta1/abci.proto @@ -105,6 +105,8 @@ message Result { // msg_responses contains the Msg handler responses type packed in Anys. repeated google.protobuf.Any msg_responses = 4 [(cosmos_proto.field_added_in) = "cosmos-sdk 0.46"]; + // lane_id is used by the comet mempool to identify the lane that the transaction should be broadcast in. + uint32`` lane_id = 5; } // SimulationResponse defines the response generated when a transaction is diff --git a/types/abci.pb.go b/types/abci.pb.go index b4dadfb2d040..5a443b141575 100644 --- a/types/abci.pb.go +++ b/types/abci.pb.go @@ -334,6 +334,8 @@ type Result struct { Events []v1.Event `protobuf:"bytes,3,rep,name=events,proto3" json:"events"` // msg_responses contains the Msg handler responses type packed in Anys. MsgResponses []*any.Any `protobuf:"bytes,4,rep,name=msg_responses,json=msgResponses,proto3" json:"msg_responses,omitempty"` + // lane_id is used by the comet mempool to identify the lane that the transaction should be broadcast in. + LaneId string `protobuf:"bytes,5,opt,name=lane_id,json=laneId,proto3" json:"lane_id,omitempty"` } func (m *Result) Reset() { *m = Result{} } @@ -724,70 +726,71 @@ func init() { } var fileDescriptor_4e37629bc7eb0df8 = []byte{ - // 1006 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xbf, 0x6f, 0x5b, 0x37, - 0x17, 0xd5, 0xd3, 0x53, 0x9e, 0x2c, 0xca, 0xfe, 0xfc, 0x81, 0x35, 0xe2, 0xe7, 0x20, 0x91, 0x54, - 0x25, 0x05, 0x84, 0x02, 0x79, 0x8a, 0x9d, 0x26, 0x68, 0x33, 0x25, 0x72, 0x7f, 0xc4, 0x40, 0x92, - 0x81, 0x56, 0x50, 0xa0, 0x8b, 0x40, 0x49, 0x34, 0xf5, 0x60, 0xbd, 0x47, 0x41, 0xa4, 0x6c, 0x79, - 0xeb, 0xd8, 0xb1, 0x53, 0xa7, 0x0e, 0x5d, 0xdb, 0xb9, 0x7b, 0xd7, 0x8c, 0x1e, 0xd3, 0x22, 0x70, - 0x53, 0x7b, 0xeb, 0x5f, 0x51, 0xdc, 0x4b, 0x3e, 0x49, 0xa9, 0x2b, 0x77, 0xe8, 0x46, 0x9e, 0x7b, - 0x49, 0xde, 0x73, 0xee, 0x21, 0x49, 0x6e, 0xf7, 0x94, 0x4e, 0x94, 0x6e, 0x76, 0xb9, 0x16, 0x4d, - 0xde, 0xed, 0xc5, 0xcd, 0xa3, 0xed, 0xae, 0x30, 0x7c, 0x1b, 0x27, 0xd1, 0x68, 0xac, 0x8c, 0xa2, - 0xa1, 0x4d, 0x8a, 0x20, 0x29, 0x42, 0xdc, 0x25, 0xdd, 0xd8, 0x90, 0x4a, 0x2a, 0x4c, 0x6a, 0xc2, - 0xc8, 0xe6, 0xdf, 0xb8, 0xd9, 0x53, 0x89, 0x30, 0xdd, 0x03, 0x93, 0xed, 0xd8, 0x34, 0x27, 0x23, - 0xa1, 0x5d, 0xf4, 0xd6, 0x2c, 0x8a, 0x28, 0x84, 0xbb, 0x43, 0xd5, 0x3b, 0x74, 0xe1, 0x2d, 0xa9, - 0x94, 0x1c, 0x8a, 0x26, 0xce, 0xba, 0x93, 0x83, 0x26, 0x4f, 0x4f, 0xb2, 0x90, 0xad, 0xa3, 0x63, - 0x0f, 0x74, 0x45, 0xe1, 0xa4, 0xfe, 0xd6, 0x27, 0xa4, 0x3d, 0x65, 0x42, 0x8f, 0x54, 0xaa, 0x05, - 0xbd, 0x4e, 0x82, 0x81, 0x88, 0xe5, 0xc0, 0x84, 0x5e, 0xcd, 0x6b, 0xf8, 0xcc, 0xcd, 0x68, 0x9d, - 0x04, 0x66, 0x3a, 0xe0, 0x7a, 0x10, 0xe6, 0x6b, 0x5e, 0xa3, 0xd4, 0x22, 0xe7, 0x67, 0xd5, 0xa0, - 0x3d, 0x7d, 0xca, 0xf5, 0x80, 0xb9, 0x08, 0xbd, 0x49, 0x4a, 0x3d, 0xd5, 0x17, 0x7a, 0xc4, 0x7b, - 0x22, 0xf4, 0x21, 0x8d, 0xcd, 0x01, 0x4a, 0x49, 0x01, 0x26, 0x61, 0xa1, 0xe6, 0x35, 0xd6, 0x18, - 0x8e, 0x01, 0xeb, 0x73, 0xc3, 0xc3, 0x6b, 0x98, 0x8c, 0x63, 0xba, 0x49, 0x8a, 0x63, 0x7e, 0xdc, - 0x19, 0x2a, 0x19, 0x06, 0x08, 0x07, 0x63, 0x7e, 0xfc, 0x4c, 0x49, 0xfa, 0x92, 0x14, 0x86, 0x4a, - 0xea, 0xb0, 0x58, 0xf3, 0x1b, 0xe5, 0x9d, 0x46, 0xb4, 0x4c, 0xdb, 0xe8, 0x49, 0x6b, 0x77, 0xef, - 0xb9, 0xd0, 0x9a, 0x4b, 0xf1, 0x4c, 0xc9, 0xd6, 0xe6, 0xab, 0xb3, 0x6a, 0xee, 0xa7, 0xdf, 0xab, - 0xeb, 0xef, 0xe2, 0x9a, 0xe1, 0x76, 0x50, 0x43, 0x9c, 0x1e, 0xa8, 0x70, 0xc5, 0xd6, 0x00, 0x63, - 0x7a, 0x8b, 0x10, 0xc9, 0x75, 0xe7, 0x98, 0xa7, 0x46, 0xf4, 0xc3, 0x12, 0x2a, 0x51, 0x92, 0x5c, - 0x7f, 0x89, 0x00, 0xdd, 0x22, 0x2b, 0x10, 0x9e, 0x68, 0xd1, 0x0f, 0x09, 0x06, 0x8b, 0x92, 0xeb, - 0x97, 0x5a, 0xf4, 0xe9, 0x1d, 0x92, 0x37, 0xd3, 0xb0, 0x5c, 0xf3, 0x1a, 0xe5, 0x9d, 0x8d, 0xc8, - 0x76, 0x24, 0xca, 0x3a, 0x12, 0x3d, 0x49, 0x4f, 0x58, 0xde, 0x4c, 0x41, 0x29, 0x13, 0x27, 0x42, - 0x1b, 0x9e, 0x8c, 0xc2, 0x55, 0xab, 0xd4, 0x0c, 0xa0, 0x4f, 0x49, 0x20, 0x8e, 0x44, 0x6a, 0x74, - 0xb8, 0x86, 0x54, 0x37, 0xa3, 0xac, 0xf1, 0x19, 0xcf, 0xe8, 0x33, 0x88, 0x5b, 0x66, 0xbf, 0xfd, - 0x7c, 0x77, 0xdd, 0x4a, 0x71, 0x57, 0xf7, 0x0f, 0x6b, 0xf7, 0xa2, 0x8f, 0x1e, 0x30, 0xb7, 0xfe, - 0x51, 0xe1, 0x9b, 0x1f, 0xaa, 0xb9, 0xfa, 0x8f, 0x1e, 0xf9, 0xdf, 0xbb, 0xdc, 0xe9, 0x87, 0xa4, - 0x94, 0x68, 0xd9, 0x89, 0xd3, 0xbe, 0x98, 0x62, 0xa7, 0xd7, 0x5a, 0x6b, 0x7f, 0x9e, 0x55, 0xe7, - 0x20, 0x5b, 0x49, 0xb4, 0xdc, 0x83, 0x11, 0xfd, 0x3f, 0xf1, 0xa1, 0x19, 0xd8, 0x77, 0x06, 0x43, - 0xba, 0x3f, 0x2b, 0xd0, 0xc7, 0x02, 0x3f, 0x58, 0xde, 0x8b, 0x7d, 0x33, 0x8e, 0x53, 0x69, 0xcb, - 0xdd, 0x70, 0x8d, 0x58, 0x5d, 0x00, 0xf5, 0xbc, 0xd6, 0xaf, 0xdf, 0xd4, 0xbc, 0xfa, 0x98, 0x94, - 0x17, 0xa2, 0xd0, 0x1c, 0xf0, 0x3a, 0x96, 0x58, 0x62, 0x38, 0xa6, 0x7b, 0x84, 0x70, 0x63, 0xc6, - 0x71, 0x77, 0x62, 0x84, 0x0e, 0xf3, 0x58, 0xc1, 0xed, 0x2b, 0xdc, 0x90, 0xe5, 0xb6, 0x0a, 0x70, - 0x3e, 0x5b, 0x58, 0xec, 0xce, 0xbc, 0x4f, 0x4a, 0xb3, 0x24, 0x60, 0x7b, 0x28, 0x4e, 0xdc, 0x81, - 0x30, 0xa4, 0x1b, 0xe4, 0xda, 0x11, 0x1f, 0x4e, 0x84, 0x53, 0xc0, 0x4e, 0xea, 0xbb, 0xa4, 0xf8, - 0x05, 0xd7, 0x7b, 0x97, 0xdd, 0x02, 0x2b, 0x0b, 0xcb, 0xdc, 0x92, 0xc7, 0x60, 0xe6, 0x96, 0xfa, - 0x2f, 0x1e, 0x09, 0x98, 0xd0, 0x93, 0xa1, 0xa1, 0xd7, 0xdd, 0x55, 0x80, 0xe5, 0xab, 0xad, 0x7c, - 0xe8, 0xb9, 0xeb, 0x70, 0x59, 0xfd, 0x07, 0x7f, 0x53, 0x7f, 0xa9, 0x3d, 0x2c, 0x5f, 0x97, 0x4c, - 0x5f, 0x90, 0x35, 0xe8, 0xee, 0xd8, 0xdd, 0x74, 0x1d, 0x16, 0x70, 0xf5, 0x3f, 0x9a, 0xb4, 0xf5, - 0xde, 0x65, 0x57, 0x3d, 0x64, 0xab, 0x89, 0x96, 0xd9, 0x43, 0x91, 0x79, 0xeb, 0x3b, 0x8f, 0xd0, - 0xfd, 0x38, 0x99, 0x0c, 0xb9, 0x89, 0x55, 0x3a, 0x7b, 0x46, 0x3e, 0xb7, 0x9c, 0xf1, 0x62, 0x79, - 0x78, 0x19, 0xde, 0x5f, 0xde, 0x21, 0xa7, 0x63, 0x6b, 0x05, 0xea, 0x3d, 0x3d, 0xab, 0x7a, 0x28, - 0x10, 0x4a, 0xfb, 0x31, 0x09, 0xc6, 0xa8, 0x0f, 0x0a, 0x50, 0xde, 0xa9, 0x2d, 0xdf, 0xc5, 0xea, - 0xc8, 0x5c, 0x7e, 0xfd, 0x31, 0x29, 0x3e, 0xd7, 0xf2, 0x53, 0x90, 0x70, 0x8b, 0x80, 0x99, 0x3b, - 0x0b, 0x46, 0x2a, 0x26, 0x5a, 0xb6, 0xc1, 0x4b, 0xd9, 0x03, 0x04, 0xbb, 0xaf, 0x5a, 0xc5, 0x1f, - 0x05, 0x60, 0x8a, 0xd0, 0xab, 0x7f, 0xef, 0x91, 0x52, 0x7b, 0x9a, 0x6d, 0xf2, 0xc9, 0xac, 0x3f, - 0xfe, 0xd5, 0x6c, 0xdc, 0x82, 0x85, 0x16, 0x5e, 0x52, 0x3e, 0xff, 0x1f, 0x95, 0x47, 0xd7, 0xbe, - 0xf1, 0xc8, 0xfa, 0xbe, 0xe0, 0xe3, 0xde, 0xa0, 0x3d, 0xd5, 0xce, 0x44, 0x55, 0x52, 0x36, 0xca, - 0xf0, 0x61, 0xa7, 0xa7, 0x26, 0xa9, 0x71, 0x56, 0x24, 0x08, 0xed, 0x02, 0x02, 0x5e, 0xb6, 0x21, - 0x6b, 0x44, 0x3b, 0x81, 0x65, 0x23, 0x2e, 0x45, 0x27, 0x9d, 0x24, 0x5d, 0x31, 0xc6, 0xa7, 0xbb, - 0xc0, 0x08, 0x40, 0x2f, 0x10, 0x01, 0x87, 0x63, 0x02, 0xee, 0x84, 0x2f, 0x78, 0x81, 0x95, 0x00, - 0x69, 0x03, 0x00, 0xbb, 0x0e, 0xe3, 0x24, 0x36, 0xf8, 0x8e, 0x17, 0x98, 0x9d, 0xd0, 0x87, 0xc4, - 0x37, 0x53, 0x1d, 0x06, 0x48, 0xf6, 0xce, 0x72, 0xc1, 0xe6, 0xbf, 0x0f, 0x83, 0x05, 0x8e, 0xde, - 0xaf, 0x60, 0x2c, 0xa4, 0xd7, 0x82, 0x3f, 0xee, 0x0a, 0x86, 0xfe, 0x72, 0x86, 0xfe, 0x15, 0x0c, - 0xfd, 0x7f, 0x61, 0xe8, 0x2f, 0x65, 0xe8, 0x67, 0x0c, 0xef, 0x91, 0x00, 0x3f, 0xe0, 0x8c, 0x64, - 0x38, 0xbf, 0x89, 0xf6, 0xdf, 0x3e, 0xda, 0x8e, 0xb0, 0x7a, 0xe6, 0xf2, 0x2c, 0xb7, 0xd6, 0xe3, - 0xd7, 0x7f, 0x54, 0x72, 0xaf, 0xce, 0x2b, 0xde, 0xe9, 0x79, 0xc5, 0x7b, 0x7b, 0x5e, 0xf1, 0xbe, - 0xbd, 0xa8, 0xe4, 0x4e, 0x2f, 0x2a, 0xb9, 0xd7, 0x17, 0x95, 0xdc, 0x57, 0x75, 0x19, 0x9b, 0xc1, - 0xa4, 0x0b, 0x7b, 0xb9, 0xaf, 0xba, 0x39, 0xf7, 0x83, 0xfd, 0xfa, 0xbb, 0x01, 0x7a, 0xe6, 0xfe, - 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x29, 0x1b, 0x28, 0xcc, 0x86, 0x08, 0x00, 0x00, + // 1019 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xbf, 0x6f, 0x1b, 0x37, + 0x14, 0xd6, 0xe9, 0x94, 0x93, 0x45, 0xd9, 0x4d, 0xc1, 0x1a, 0xf1, 0x39, 0x48, 0x24, 0x55, 0x49, + 0x01, 0xa1, 0x40, 0x4e, 0xb1, 0xd3, 0x04, 0x6d, 0xa6, 0x44, 0xee, 0x8f, 0x18, 0x48, 0x32, 0xd0, + 0x0a, 0x0a, 0x74, 0x11, 0x28, 0x89, 0xa6, 0x0e, 0xd6, 0x1d, 0x05, 0x91, 0xb2, 0xe5, 0xad, 0x63, + 0xc7, 0x4e, 0x9d, 0x3a, 0x74, 0x6d, 0xe7, 0xfe, 0x11, 0x19, 0x3d, 0xba, 0x45, 0xe0, 0xa6, 0xf6, + 0xd6, 0xbf, 0xa2, 0x78, 0x8f, 0x3c, 0x49, 0xa9, 0x2b, 0x77, 0xe8, 0xc6, 0xf7, 0x83, 0xbc, 0xf7, + 0x7d, 0xef, 0x7b, 0xe4, 0x91, 0x3b, 0x3d, 0xa5, 0x13, 0xa5, 0x9b, 0x5d, 0xae, 0x45, 0x93, 0x77, + 0x7b, 0x71, 0xf3, 0x70, 0xab, 0x2b, 0x0c, 0xdf, 0x42, 0x23, 0x1a, 0x8d, 0x95, 0x51, 0x34, 0xb4, + 0x49, 0x11, 0x24, 0x45, 0xe8, 0x77, 0x49, 0x37, 0xd7, 0xa5, 0x92, 0x0a, 0x93, 0x9a, 0xb0, 0xb2, + 0xf9, 0x37, 0x6f, 0xf5, 0x54, 0x22, 0x4c, 0x77, 0xdf, 0x64, 0x27, 0x36, 0xcd, 0xf1, 0x48, 0x68, + 0x17, 0xbd, 0x3d, 0x8b, 0xa2, 0x17, 0xc2, 0xdd, 0xa1, 0xea, 0x1d, 0xb8, 0xf0, 0xa6, 0x54, 0x4a, + 0x0e, 0x45, 0x13, 0xad, 0xee, 0x64, 0xbf, 0xc9, 0xd3, 0xe3, 0x2c, 0x64, 0xeb, 0xe8, 0xd8, 0x0f, + 0xba, 0xa2, 0xd0, 0xa8, 0xbf, 0xf5, 0x09, 0x69, 0x4f, 0x99, 0xd0, 0x23, 0x95, 0x6a, 0x41, 0x6f, + 0x90, 0x60, 0x20, 0x62, 0x39, 0x30, 0xa1, 0x57, 0xf3, 0x1a, 0x3e, 0x73, 0x16, 0xad, 0x93, 0xc0, + 0x4c, 0x07, 0x5c, 0x0f, 0xc2, 0x7c, 0xcd, 0x6b, 0x94, 0x5a, 0xe4, 0xfc, 0xac, 0x1a, 0xb4, 0xa7, + 0xcf, 0xb8, 0x1e, 0x30, 0x17, 0xa1, 0xb7, 0x48, 0xa9, 0xa7, 0xfa, 0x42, 0x8f, 0x78, 0x4f, 0x84, + 0x3e, 0xa4, 0xb1, 0xb9, 0x83, 0x52, 0x52, 0x00, 0x23, 0x2c, 0xd4, 0xbc, 0xc6, 0x1a, 0xc3, 0x35, + 0xf8, 0xfa, 0xdc, 0xf0, 0xf0, 0x1a, 0x26, 0xe3, 0x9a, 0x6e, 0x90, 0xe2, 0x98, 0x1f, 0x75, 0x86, + 0x4a, 0x86, 0x01, 0xba, 0x83, 0x31, 0x3f, 0x7a, 0xae, 0x24, 0x7d, 0x45, 0x0a, 0x43, 0x25, 0x75, + 0x58, 0xac, 0xf9, 0x8d, 0xf2, 0x76, 0x23, 0x5a, 0xc6, 0x6d, 0xf4, 0xb4, 0xb5, 0xb3, 0xfb, 0x42, + 0x68, 0xcd, 0xa5, 0x78, 0xae, 0x64, 0x6b, 0xe3, 0xf5, 0x59, 0x35, 0xf7, 0xcb, 0x1f, 0xd5, 0xeb, + 0xef, 0xfa, 0x35, 0xc3, 0xe3, 0xa0, 0x86, 0x38, 0xdd, 0x57, 0xe1, 0x8a, 0xad, 0x01, 0xd6, 0xf4, + 0x36, 0x21, 0x92, 0xeb, 0xce, 0x11, 0x4f, 0x8d, 0xe8, 0x87, 0x25, 0x64, 0xa2, 0x24, 0xb9, 0xfe, + 0x1a, 0x1d, 0x74, 0x93, 0xac, 0x40, 0x78, 0xa2, 0x45, 0x3f, 0x24, 0x18, 0x2c, 0x4a, 0xae, 0x5f, + 0x69, 0xd1, 0xa7, 0x77, 0x49, 0xde, 0x4c, 0xc3, 0x72, 0xcd, 0x6b, 0x94, 0xb7, 0xd7, 0x23, 0xdb, + 0x91, 0x28, 0xeb, 0x48, 0xf4, 0x34, 0x3d, 0x66, 0x79, 0x33, 0x05, 0xa6, 0x4c, 0x9c, 0x08, 0x6d, + 0x78, 0x32, 0x0a, 0x57, 0x2d, 0x53, 0x33, 0x07, 0x7d, 0x46, 0x02, 0x71, 0x28, 0x52, 0xa3, 0xc3, + 0x35, 0x84, 0xba, 0x11, 0x65, 0x8d, 0xcf, 0x70, 0x46, 0x5f, 0x40, 0xdc, 0x22, 0xfb, 0xfd, 0xd7, + 0x7b, 0xd7, 0x2d, 0x15, 0xf7, 0x74, 0xff, 0xa0, 0x76, 0x3f, 0xfa, 0xe4, 0x21, 0x73, 0xfb, 0x1f, + 0x17, 0xbe, 0xfb, 0xa9, 0x9a, 0xab, 0xff, 0xec, 0x91, 0xf7, 0xde, 0xc5, 0x4e, 0x3f, 0x26, 0xa5, + 0x44, 0xcb, 0x4e, 0x9c, 0xf6, 0xc5, 0x14, 0x3b, 0xbd, 0xd6, 0x5a, 0xfb, 0xeb, 0xac, 0x3a, 0x77, + 0xb2, 0x95, 0x44, 0xcb, 0x5d, 0x58, 0xd1, 0xf7, 0x89, 0x0f, 0xcd, 0xc0, 0xbe, 0x33, 0x58, 0xd2, + 0xbd, 0x59, 0x81, 0x3e, 0x16, 0xf8, 0xd1, 0xf2, 0x5e, 0xec, 0x99, 0x71, 0x9c, 0x4a, 0x5b, 0xee, + 0xba, 0x6b, 0xc4, 0xea, 0x82, 0x53, 0xcf, 0x6b, 0xfd, 0xf6, 0x4d, 0xcd, 0xab, 0x8f, 0x49, 0x79, + 0x21, 0x0a, 0xcd, 0x01, 0xad, 0x63, 0x89, 0x25, 0x86, 0x6b, 0xba, 0x4b, 0x08, 0x37, 0x66, 0x1c, + 0x77, 0x27, 0x46, 0xe8, 0x30, 0x8f, 0x15, 0xdc, 0xb9, 0x42, 0x0d, 0x59, 0x6e, 0xab, 0x00, 0xdf, + 0x67, 0x0b, 0x9b, 0xdd, 0x37, 0x1f, 0x90, 0xd2, 0x2c, 0x09, 0xd0, 0x1e, 0x88, 0x63, 0xf7, 0x41, + 0x58, 0xd2, 0x75, 0x72, 0xed, 0x90, 0x0f, 0x27, 0xc2, 0x31, 0x60, 0x8d, 0xfa, 0x0e, 0x29, 0x7e, + 0xc5, 0xf5, 0xee, 0x65, 0xb5, 0xc0, 0xce, 0xc2, 0x32, 0xb5, 0xe4, 0x31, 0x98, 0xa9, 0xa5, 0x7e, + 0xea, 0x91, 0x80, 0x09, 0x3d, 0x19, 0x1a, 0x7a, 0xc3, 0x8d, 0x02, 0x6c, 0x5f, 0x6d, 0xe5, 0x43, + 0xcf, 0x8d, 0xc3, 0x65, 0xf6, 0x1f, 0xfe, 0x83, 0xfd, 0xa5, 0xf2, 0xb0, 0x78, 0x5d, 0x32, 0x7d, + 0x49, 0xd6, 0xa0, 0xbb, 0x63, 0x37, 0xe9, 0x3a, 0x2c, 0xe0, 0xee, 0x7f, 0x15, 0x69, 0xeb, 0x83, + 0xcb, 0xaa, 0x7a, 0xc4, 0x56, 0x13, 0x2d, 0xb3, 0x8b, 0x42, 0xc3, 0x9c, 0x0e, 0x79, 0x2a, 0x3a, + 0x71, 0xdf, 0x8d, 0x6f, 0x00, 0xe6, 0x6e, 0xdf, 0x89, 0xee, 0x07, 0x8f, 0xd0, 0xbd, 0x38, 0x99, + 0x0c, 0xb9, 0x89, 0x55, 0x3a, 0xbb, 0x5f, 0xbe, 0xb4, 0x64, 0xe0, 0xc4, 0x79, 0x38, 0x25, 0x1f, + 0x2e, 0x6f, 0x9d, 0x23, 0xb8, 0xb5, 0x02, 0x40, 0x4e, 0xce, 0xaa, 0x1e, 0x32, 0x87, 0x9c, 0x7f, + 0x4a, 0x82, 0x31, 0x12, 0x87, 0xcc, 0x94, 0xb7, 0x6b, 0xcb, 0x4f, 0xb1, 0x04, 0x33, 0x97, 0x5f, + 0x7f, 0x42, 0x8a, 0x2f, 0xb4, 0xfc, 0x1c, 0xb8, 0xdd, 0x24, 0xa0, 0xf2, 0xce, 0x82, 0xc2, 0x8a, + 0x89, 0x96, 0x6d, 0x10, 0x59, 0x76, 0x33, 0xc1, 0xe9, 0xab, 0xb6, 0x15, 0x8f, 0x03, 0x50, 0x4b, + 0xe8, 0xd5, 0x7f, 0xf4, 0x48, 0xa9, 0x3d, 0xcd, 0x0e, 0xf9, 0x6c, 0xd6, 0x38, 0xff, 0x6a, 0x34, + 0x6e, 0xc3, 0x42, 0x6f, 0x2f, 0xb5, 0x24, 0xff, 0xbf, 0x5a, 0xe2, 0xe4, 0xfc, 0xc6, 0x23, 0xd7, + 0xf7, 0x04, 0x1f, 0xf7, 0x06, 0xed, 0xa9, 0x76, 0xea, 0xaa, 0x92, 0xb2, 0x51, 0x86, 0x0f, 0x3b, + 0x3d, 0x35, 0x49, 0x8d, 0xd3, 0x28, 0x41, 0xd7, 0x0e, 0x78, 0x40, 0xe4, 0x36, 0x64, 0x15, 0x6a, + 0x0d, 0xd8, 0x36, 0xe2, 0x52, 0x74, 0xd2, 0x49, 0xd2, 0x15, 0x63, 0xbc, 0xd3, 0x0b, 0x8c, 0x80, + 0xeb, 0x25, 0x7a, 0x40, 0xfa, 0x98, 0x80, 0x27, 0xe1, 0xd5, 0x5e, 0x60, 0x25, 0xf0, 0xb4, 0xc1, + 0x01, 0xa7, 0x0e, 0xe3, 0x24, 0x36, 0xa8, 0x90, 0x02, 0xb3, 0x06, 0x7d, 0x44, 0x7c, 0x33, 0xd5, + 0x61, 0x80, 0x60, 0xef, 0x2e, 0x27, 0x6c, 0xfe, 0x2c, 0x31, 0xd8, 0xe0, 0xe0, 0xfd, 0x06, 0xc2, + 0x42, 0x78, 0x2d, 0x78, 0xfc, 0xae, 0x40, 0xe8, 0x2f, 0x47, 0xe8, 0x5f, 0x81, 0xd0, 0xff, 0x0f, + 0x84, 0xfe, 0x52, 0x84, 0x7e, 0x86, 0xf0, 0x3e, 0x09, 0xf0, 0x65, 0xce, 0x40, 0x86, 0xf3, 0x11, + 0xb5, 0x0f, 0xfa, 0xe1, 0x56, 0x84, 0xd5, 0x33, 0x97, 0x67, 0xb1, 0xb5, 0x9e, 0x9c, 0xfe, 0x59, + 0xc9, 0xbd, 0x3e, 0xaf, 0x78, 0x27, 0xe7, 0x15, 0xef, 0xed, 0x79, 0xc5, 0xfb, 0xfe, 0xa2, 0x92, + 0x3b, 0xb9, 0xa8, 0xe4, 0x4e, 0x2f, 0x2a, 0xb9, 0x6f, 0xea, 0x32, 0x36, 0x83, 0x49, 0x17, 0xce, + 0x72, 0x6f, 0x78, 0x73, 0xae, 0x07, 0xfb, 0x4f, 0xd0, 0x0d, 0x50, 0x33, 0x0f, 0xfe, 0x0e, 0x00, + 0x00, 0xff, 0xff, 0x54, 0xc1, 0xc4, 0xf1, 0x9f, 0x08, 0x00, 0x00, } func (m *TxResponse) Marshal() (dAtA []byte, err error) { @@ -1098,6 +1101,13 @@ func (m *Result) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.LaneId) > 0 { + i -= len(m.LaneId) + copy(dAtA[i:], m.LaneId) + i = encodeVarintAbci(dAtA, i, uint64(len(m.LaneId))) + i-- + dAtA[i] = 0x2a + } if len(m.MsgResponses) > 0 { for iNdEx := len(m.MsgResponses) - 1; iNdEx >= 0; iNdEx-- { { @@ -1571,6 +1581,10 @@ func (m *Result) Size() (n int) { n += 1 + l + sovAbci(uint64(l)) } } + l = len(m.LaneId) + if l > 0 { + n += 1 + l + sovAbci(uint64(l)) + } return n } @@ -2844,6 +2858,38 @@ func (m *Result) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LaneId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAbci + } + 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 ErrInvalidLengthAbci + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAbci + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LaneId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipAbci(dAtA[iNdEx:]) diff --git a/types/mempool/mempool.go b/types/mempool/mempool.go index 6aa29ff3263c..ac24a4025f30 100644 --- a/types/mempool/mempool.go +++ b/types/mempool/mempool.go @@ -39,6 +39,14 @@ type Iterator interface { Tx() sdk.Tx } +type Lanes interface { + // GetLanes gets all the available lanes an application has with the default lane + GetLanes() (lanes map[string]uint32, defaultLane string) + + // GetTxLane returns the lane priority for the given transaction + GetTxLane(context.Context, sdk.Tx) (string, error) +} + var ( ErrTxNotFound = errors.New("tx not found in mempool") ErrMempoolTxMaxCapacity = errors.New("pool reached max tx capacity")