diff --git a/pkg/chains/evm/evm.pb.go b/pkg/chains/evm/evm.pb.go index c096023d7..e30385a83 100644 --- a/pkg/chains/evm/evm.pb.go +++ b/pkg/chains/evm/evm.pb.go @@ -2246,6 +2246,50 @@ func (x *GetTransactionStatusReply) GetTransactionStatus() TransactionStatus { return TransactionStatus_TRANSACTION_STATUS_UNKNOWN } +type GetFiltersNamesReply struct { + state protoimpl.MessageState `protogen:"open.v1"` + Items []string `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetFiltersNamesReply) Reset() { + *x = GetFiltersNamesReply{} + mi := &file_chains_evm_evm_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetFiltersNamesReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFiltersNamesReply) ProtoMessage() {} + +func (x *GetFiltersNamesReply) ProtoReflect() protoreflect.Message { + mi := &file_chains_evm_evm_proto_msgTypes[37] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFiltersNamesReply.ProtoReflect.Descriptor instead. +func (*GetFiltersNamesReply) Descriptor() ([]byte, []int) { + return file_chains_evm_evm_proto_rawDescGZIP(), []int{37} +} + +func (x *GetFiltersNamesReply) GetItems() []string { + if x != nil { + return x.Items + } + return nil +} + var File_chains_evm_evm_proto protoreflect.FileDescriptor const file_chains_evm_evm_proto_rawDesc = "" + @@ -2394,14 +2438,16 @@ const file_chains_evm_evm_proto_rawDesc = "" + "\x1bGetTransactionStatusRequest\x12%\n" + "\x0etransaction_id\x18\x01 \x01(\tR\rtransactionId\"g\n" + "\x19GetTransactionStatusReply\x12J\n" + - "\x12transaction_status\x18\x01 \x01(\x0e2\x1b.loop.evm.TransactionStatusR\x11transactionStatus*\xd6\x01\n" + + "\x12transaction_status\x18\x01 \x01(\x0e2\x1b.loop.evm.TransactionStatusR\x11transactionStatus\",\n" + + "\x14GetFiltersNamesReply\x12\x14\n" + + "\x05items\x18\x01 \x03(\tR\x05items*\xd6\x01\n" + "\x11TransactionStatus\x12\x1e\n" + "\x1aTRANSACTION_STATUS_UNKNOWN\x10\x00\x12\x1e\n" + "\x1aTRANSACTION_STATUS_PENDING\x10\x01\x12\"\n" + "\x1eTRANSACTION_STATUS_UNCONFIRMED\x10\x02\x12 \n" + "\x1cTRANSACTION_STATUS_FINALIZED\x10\x03\x12\x1d\n" + "\x19TRANSACTION_STATUS_FAILED\x10\x04\x12\x1c\n" + - "\x18TRANSACTION_STATUS_FATAL\x10\x052\x8e\b\n" + + "\x18TRANSACTION_STATUS_FATAL\x10\x052\xd9\b\n" + "\x03EVM\x12[\n" + "\x11GetTransactionFee\x12\".loop.evm.GetTransactionFeeRequest\x1a .loop.evm.GetTransactionFeeReply\"\x00\x12J\n" + "\fCallContract\x12\x1d.loop.evm.CallContractRequest\x1a\x1b.loop.evm.CallContractReply\x12D\n" + @@ -2415,7 +2461,8 @@ const file_chains_evm_evm_proto_rawDesc = "" + "\x10QueryTrackedLogs\x12!.loop.evm.QueryTrackedLogsRequest\x1a\x1f.loop.evm.QueryTrackedLogsReply\x12S\n" + "\x13RegisterLogTracking\x12$.loop.evm.RegisterLogTrackingRequest\x1a\x16.google.protobuf.Empty\x12W\n" + "\x15UnregisterLogTracking\x12&.loop.evm.UnregisterLogTrackingRequest\x1a\x16.google.protobuf.Empty\x12b\n" + - "\x14GetTransactionStatus\x12%.loop.evm.GetTransactionStatusRequest\x1a#.loop.evm.GetTransactionStatusReplyB=Z;github.com/smartcontractkit/chainlink-common/pkg/chains/evmb\x06proto3" + "\x14GetTransactionStatus\x12%.loop.evm.GetTransactionStatusRequest\x1a#.loop.evm.GetTransactionStatusReply\x12I\n" + + "\x0fGetFiltersNames\x12\x16.google.protobuf.Empty\x1a\x1e.loop.evm.GetFiltersNamesReplyB=Z;github.com/smartcontractkit/chainlink-common/pkg/chains/evmb\x06proto3" var ( file_chains_evm_evm_proto_rawDescOnce sync.Once @@ -2430,7 +2477,7 @@ func file_chains_evm_evm_proto_rawDescGZIP() []byte { } var file_chains_evm_evm_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_chains_evm_evm_proto_msgTypes = make([]protoimpl.MessageInfo, 37) +var file_chains_evm_evm_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_chains_evm_evm_proto_goTypes = []any{ (TransactionStatus)(0), // 0: loop.evm.TransactionStatus (*CallMsg)(nil), // 1: loop.evm.CallMsg @@ -2470,53 +2517,54 @@ var file_chains_evm_evm_proto_goTypes = []any{ (*QueryTrackedLogsReply)(nil), // 35: loop.evm.QueryTrackedLogsReply (*GetTransactionStatusRequest)(nil), // 36: loop.evm.GetTransactionStatusRequest (*GetTransactionStatusReply)(nil), // 37: loop.evm.GetTransactionStatusReply - (*pb.BigInt)(nil), // 38: values.BigInt - (chain_common.BooleanOperator)(0), // 39: loop.chain.common.BooleanOperator - (chain_common.ComparisonOperator)(0), // 40: loop.chain.common.ComparisonOperator - (*chain_common.Primitive)(nil), // 41: loop.chain.common.Primitive - (*chain_common.LimitAndSort)(nil), // 42: loop.chain.common.LimitAndSort - (chain_common.Confidence)(0), // 43: loop.chain.common.Confidence - (*emptypb.Empty)(nil), // 44: google.protobuf.Empty + (*GetFiltersNamesReply)(nil), // 38: loop.evm.GetFiltersNamesReply + (*pb.BigInt)(nil), // 39: values.BigInt + (chain_common.BooleanOperator)(0), // 40: loop.chain.common.BooleanOperator + (chain_common.ComparisonOperator)(0), // 41: loop.chain.common.ComparisonOperator + (*chain_common.Primitive)(nil), // 42: loop.chain.common.Primitive + (*chain_common.LimitAndSort)(nil), // 43: loop.chain.common.LimitAndSort + (chain_common.Confidence)(0), // 44: loop.chain.common.Confidence + (*emptypb.Empty)(nil), // 45: google.protobuf.Empty } var file_chains_evm_evm_proto_depIdxs = []int32{ - 38, // 0: loop.evm.Log.block_number:type_name -> values.BigInt - 38, // 1: loop.evm.FilterQuery.fromBlock:type_name -> values.BigInt - 38, // 2: loop.evm.FilterQuery.toBlock:type_name -> values.BigInt + 39, // 0: loop.evm.Log.block_number:type_name -> values.BigInt + 39, // 1: loop.evm.FilterQuery.fromBlock:type_name -> values.BigInt + 39, // 2: loop.evm.FilterQuery.toBlock:type_name -> values.BigInt 2, // 3: loop.evm.FilterQuery.topics:type_name -> loop.evm.Topics - 38, // 4: loop.evm.Transaction.value:type_name -> values.BigInt - 38, // 5: loop.evm.Transaction.gas_price:type_name -> values.BigInt + 39, // 4: loop.evm.Transaction.value:type_name -> values.BigInt + 39, // 5: loop.evm.Transaction.gas_price:type_name -> values.BigInt 3, // 6: loop.evm.Receipt.logs:type_name -> loop.evm.Log - 38, // 7: loop.evm.Receipt.effective_gas_price:type_name -> values.BigInt - 38, // 8: loop.evm.Receipt.block_number:type_name -> values.BigInt - 38, // 9: loop.evm.Head.block_number:type_name -> values.BigInt + 39, // 7: loop.evm.Receipt.effective_gas_price:type_name -> values.BigInt + 39, // 8: loop.evm.Receipt.block_number:type_name -> values.BigInt + 39, // 9: loop.evm.Head.block_number:type_name -> values.BigInt 16, // 10: loop.evm.Expression.primitive:type_name -> loop.evm.Primitive 10, // 11: loop.evm.Expression.boolean_expression:type_name -> loop.evm.BooleanExpression - 39, // 12: loop.evm.BooleanExpression.boolean_operator:type_name -> loop.chain.common.BooleanOperator + 40, // 12: loop.evm.BooleanExpression.boolean_operator:type_name -> loop.chain.common.BooleanOperator 9, // 13: loop.evm.BooleanExpression.expression:type_name -> loop.evm.Expression 9, // 14: loop.evm.And.expr:type_name -> loop.evm.Expression 9, // 15: loop.evm.Or.expr:type_name -> loop.evm.Expression - 40, // 16: loop.evm.HashValueComparator.operator:type_name -> loop.chain.common.ComparisonOperator + 41, // 16: loop.evm.HashValueComparator.operator:type_name -> loop.chain.common.ComparisonOperator 13, // 17: loop.evm.EventByWord.hashed_value_comparers:type_name -> loop.evm.HashValueComparator 13, // 18: loop.evm.EventByTopic.hashed_value_comparers:type_name -> loop.evm.HashValueComparator - 41, // 19: loop.evm.Primitive.general_primitive:type_name -> loop.chain.common.Primitive + 42, // 19: loop.evm.Primitive.general_primitive:type_name -> loop.chain.common.Primitive 14, // 20: loop.evm.Primitive.event_by_word:type_name -> loop.evm.EventByWord 15, // 21: loop.evm.Primitive.event_by_topic:type_name -> loop.evm.EventByTopic 8, // 22: loop.evm.LatestAndFinalizedHeadReply.latest:type_name -> loop.evm.Head 8, // 23: loop.evm.LatestAndFinalizedHeadReply.finalized:type_name -> loop.evm.Head 1, // 24: loop.evm.CallContractRequest.call:type_name -> loop.evm.CallMsg - 38, // 25: loop.evm.CallContractRequest.block_number:type_name -> values.BigInt - 38, // 26: loop.evm.GetTransactionFeeReply.transaction_fee:type_name -> values.BigInt + 39, // 25: loop.evm.CallContractRequest.block_number:type_name -> values.BigInt + 39, // 26: loop.evm.GetTransactionFeeReply.transaction_fee:type_name -> values.BigInt 4, // 27: loop.evm.FilterLogsRequest.filter_query:type_name -> loop.evm.FilterQuery 3, // 28: loop.evm.FilterLogsReply.logs:type_name -> loop.evm.Log - 38, // 29: loop.evm.BalanceAtRequest.block_number:type_name -> values.BigInt - 38, // 30: loop.evm.BalanceAtReply.balance:type_name -> values.BigInt + 39, // 29: loop.evm.BalanceAtRequest.block_number:type_name -> values.BigInt + 39, // 30: loop.evm.BalanceAtReply.balance:type_name -> values.BigInt 1, // 31: loop.evm.EstimateGasRequest.msg:type_name -> loop.evm.CallMsg 5, // 32: loop.evm.GetTransactionByHashReply.transaction:type_name -> loop.evm.Transaction 6, // 33: loop.evm.GetTransactionReceiptReply.receipt:type_name -> loop.evm.Receipt 7, // 34: loop.evm.RegisterLogTrackingRequest.filter:type_name -> loop.evm.LPFilter 9, // 35: loop.evm.QueryTrackedLogsRequest.expression:type_name -> loop.evm.Expression - 42, // 36: loop.evm.QueryTrackedLogsRequest.limit_and_sort:type_name -> loop.chain.common.LimitAndSort - 43, // 37: loop.evm.QueryTrackedLogsRequest.confidence_level:type_name -> loop.chain.common.Confidence + 43, // 36: loop.evm.QueryTrackedLogsRequest.limit_and_sort:type_name -> loop.chain.common.LimitAndSort + 44, // 37: loop.evm.QueryTrackedLogsRequest.confidence_level:type_name -> loop.chain.common.Confidence 3, // 38: loop.evm.QueryTrackedLogsReply.logs:type_name -> loop.evm.Log 0, // 39: loop.evm.GetTransactionStatusReply.transaction_status:type_name -> loop.evm.TransactionStatus 20, // 40: loop.evm.EVM.GetTransactionFee:input_type -> loop.evm.GetTransactionFeeRequest @@ -2526,25 +2574,27 @@ var file_chains_evm_evm_proto_depIdxs = []int32{ 26, // 44: loop.evm.EVM.EstimateGas:input_type -> loop.evm.EstimateGasRequest 28, // 45: loop.evm.EVM.GetTransactionByHash:input_type -> loop.evm.GetTransactionByHashRequest 30, // 46: loop.evm.EVM.GetTransactionReceipt:input_type -> loop.evm.GetTransactionReceiptRequest - 44, // 47: loop.evm.EVM.LatestAndFinalizedHead:input_type -> google.protobuf.Empty + 45, // 47: loop.evm.EVM.LatestAndFinalizedHead:input_type -> google.protobuf.Empty 34, // 48: loop.evm.EVM.QueryTrackedLogs:input_type -> loop.evm.QueryTrackedLogsRequest 32, // 49: loop.evm.EVM.RegisterLogTracking:input_type -> loop.evm.RegisterLogTrackingRequest 33, // 50: loop.evm.EVM.UnregisterLogTracking:input_type -> loop.evm.UnregisterLogTrackingRequest 36, // 51: loop.evm.EVM.GetTransactionStatus:input_type -> loop.evm.GetTransactionStatusRequest - 21, // 52: loop.evm.EVM.GetTransactionFee:output_type -> loop.evm.GetTransactionFeeReply - 19, // 53: loop.evm.EVM.CallContract:output_type -> loop.evm.CallContractReply - 23, // 54: loop.evm.EVM.FilterLogs:output_type -> loop.evm.FilterLogsReply - 25, // 55: loop.evm.EVM.BalanceAt:output_type -> loop.evm.BalanceAtReply - 27, // 56: loop.evm.EVM.EstimateGas:output_type -> loop.evm.EstimateGasReply - 29, // 57: loop.evm.EVM.GetTransactionByHash:output_type -> loop.evm.GetTransactionByHashReply - 31, // 58: loop.evm.EVM.GetTransactionReceipt:output_type -> loop.evm.GetTransactionReceiptReply - 17, // 59: loop.evm.EVM.LatestAndFinalizedHead:output_type -> loop.evm.LatestAndFinalizedHeadReply - 35, // 60: loop.evm.EVM.QueryTrackedLogs:output_type -> loop.evm.QueryTrackedLogsReply - 44, // 61: loop.evm.EVM.RegisterLogTracking:output_type -> google.protobuf.Empty - 44, // 62: loop.evm.EVM.UnregisterLogTracking:output_type -> google.protobuf.Empty - 37, // 63: loop.evm.EVM.GetTransactionStatus:output_type -> loop.evm.GetTransactionStatusReply - 52, // [52:64] is the sub-list for method output_type - 40, // [40:52] is the sub-list for method input_type + 45, // 52: loop.evm.EVM.GetFiltersNames:input_type -> google.protobuf.Empty + 21, // 53: loop.evm.EVM.GetTransactionFee:output_type -> loop.evm.GetTransactionFeeReply + 19, // 54: loop.evm.EVM.CallContract:output_type -> loop.evm.CallContractReply + 23, // 55: loop.evm.EVM.FilterLogs:output_type -> loop.evm.FilterLogsReply + 25, // 56: loop.evm.EVM.BalanceAt:output_type -> loop.evm.BalanceAtReply + 27, // 57: loop.evm.EVM.EstimateGas:output_type -> loop.evm.EstimateGasReply + 29, // 58: loop.evm.EVM.GetTransactionByHash:output_type -> loop.evm.GetTransactionByHashReply + 31, // 59: loop.evm.EVM.GetTransactionReceipt:output_type -> loop.evm.GetTransactionReceiptReply + 17, // 60: loop.evm.EVM.LatestAndFinalizedHead:output_type -> loop.evm.LatestAndFinalizedHeadReply + 35, // 61: loop.evm.EVM.QueryTrackedLogs:output_type -> loop.evm.QueryTrackedLogsReply + 45, // 62: loop.evm.EVM.RegisterLogTracking:output_type -> google.protobuf.Empty + 45, // 63: loop.evm.EVM.UnregisterLogTracking:output_type -> google.protobuf.Empty + 37, // 64: loop.evm.EVM.GetTransactionStatus:output_type -> loop.evm.GetTransactionStatusReply + 38, // 65: loop.evm.EVM.GetFiltersNames:output_type -> loop.evm.GetFiltersNamesReply + 53, // [53:66] is the sub-list for method output_type + 40, // [40:53] is the sub-list for method input_type 40, // [40:40] is the sub-list for extension type_name 40, // [40:40] is the sub-list for extension extendee 0, // [0:40] is the sub-list for field type_name @@ -2572,7 +2622,7 @@ func file_chains_evm_evm_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_chains_evm_evm_proto_rawDesc), len(file_chains_evm_evm_proto_rawDesc)), NumEnums: 1, - NumMessages: 37, + NumMessages: 38, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/chains/evm/evm.proto b/pkg/chains/evm/evm.proto index 518e998ec..3be182bd0 100644 --- a/pkg/chains/evm/evm.proto +++ b/pkg/chains/evm/evm.proto @@ -20,6 +20,7 @@ service EVM{ rpc RegisterLogTracking(RegisterLogTrackingRequest) returns (google.protobuf.Empty); rpc UnregisterLogTracking(UnregisterLogTrackingRequest) returns (google.protobuf.Empty); rpc GetTransactionStatus(GetTransactionStatusRequest) returns (GetTransactionStatusReply); + rpc GetFiltersNames(google.protobuf.Empty) returns (GetFiltersNamesReply); // TODO PLEX-1465: once code is moved away, remove this GetFiltersNames RPC method } // represents simplified evm-style CallMsg @@ -256,3 +257,7 @@ enum TransactionStatus { TRANSACTION_STATUS_FAILED = 4; TRANSACTION_STATUS_FATAL = 5; } + +message GetFiltersNamesReply { + repeated string items = 1; +} diff --git a/pkg/chains/evm/evm_grpc.pb.go b/pkg/chains/evm/evm_grpc.pb.go index d467381ab..baeaacb5e 100644 --- a/pkg/chains/evm/evm_grpc.pb.go +++ b/pkg/chains/evm/evm_grpc.pb.go @@ -32,6 +32,7 @@ const ( EVM_RegisterLogTracking_FullMethodName = "/loop.evm.EVM/RegisterLogTracking" EVM_UnregisterLogTracking_FullMethodName = "/loop.evm.EVM/UnregisterLogTracking" EVM_GetTransactionStatus_FullMethodName = "/loop.evm.EVM/GetTransactionStatus" + EVM_GetFiltersNames_FullMethodName = "/loop.evm.EVM/GetFiltersNames" ) // EVMClient is the client API for EVM service. @@ -50,6 +51,7 @@ type EVMClient interface { RegisterLogTracking(ctx context.Context, in *RegisterLogTrackingRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) UnregisterLogTracking(ctx context.Context, in *UnregisterLogTrackingRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) GetTransactionStatus(ctx context.Context, in *GetTransactionStatusRequest, opts ...grpc.CallOption) (*GetTransactionStatusReply, error) + GetFiltersNames(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetFiltersNamesReply, error) } type eVMClient struct { @@ -180,6 +182,16 @@ func (c *eVMClient) GetTransactionStatus(ctx context.Context, in *GetTransaction return out, nil } +func (c *eVMClient) GetFiltersNames(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetFiltersNamesReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetFiltersNamesReply) + err := c.cc.Invoke(ctx, EVM_GetFiltersNames_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // EVMServer is the server API for EVM service. // All implementations must embed UnimplementedEVMServer // for forward compatibility. @@ -196,6 +208,7 @@ type EVMServer interface { RegisterLogTracking(context.Context, *RegisterLogTrackingRequest) (*emptypb.Empty, error) UnregisterLogTracking(context.Context, *UnregisterLogTrackingRequest) (*emptypb.Empty, error) GetTransactionStatus(context.Context, *GetTransactionStatusRequest) (*GetTransactionStatusReply, error) + GetFiltersNames(context.Context, *emptypb.Empty) (*GetFiltersNamesReply, error) mustEmbedUnimplementedEVMServer() } @@ -242,6 +255,9 @@ func (UnimplementedEVMServer) UnregisterLogTracking(context.Context, *Unregister func (UnimplementedEVMServer) GetTransactionStatus(context.Context, *GetTransactionStatusRequest) (*GetTransactionStatusReply, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTransactionStatus not implemented") } +func (UnimplementedEVMServer) GetFiltersNames(context.Context, *emptypb.Empty) (*GetFiltersNamesReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFiltersNames not implemented") +} func (UnimplementedEVMServer) mustEmbedUnimplementedEVMServer() {} func (UnimplementedEVMServer) testEmbeddedByValue() {} @@ -479,6 +495,24 @@ func _EVM_GetTransactionStatus_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _EVM_GetFiltersNames_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EVMServer).GetFiltersNames(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EVM_GetFiltersNames_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EVMServer).GetFiltersNames(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + // EVM_ServiceDesc is the grpc.ServiceDesc for EVM service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -534,6 +568,10 @@ var EVM_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetTransactionStatus", Handler: _EVM_GetTransactionStatus_Handler, }, + { + MethodName: "GetFiltersNames", + Handler: _EVM_GetFiltersNames_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "chains/evm/evm.proto", diff --git a/pkg/loop/internal/pb/relayerset/relayerset.pb.go b/pkg/loop/internal/pb/relayerset/relayerset.pb.go index 6ba9c38f6..e6ccb3a76 100644 --- a/pkg/loop/internal/pb/relayerset/relayerset.pb.go +++ b/pkg/loop/internal/pb/relayerset/relayerset.pb.go @@ -2042,7 +2042,7 @@ const file_loop_internal_pb_relayerset_relayerset_proto_rawDesc = "" + "\x12ContractReaderBind\x12*.loop.relayerset.ContractReaderBindRequest\x1a\x16.google.protobuf.Empty\"\x00\x12^\n" + "\x14ContractReaderUnbind\x12,.loop.relayerset.ContractReaderUnbindRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\\\n" + "\x13ContractReaderStart\x12+.loop.relayerset.ContractReaderStartRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\\\n" + - "\x13ContractReaderClose\x12+.loop.relayerset.ContractReaderCloseRequest\x1a\x16.google.protobuf.Empty\"\x002\xf1\b\n" + + "\x13ContractReaderClose\x12+.loop.relayerset.ContractReaderCloseRequest\x1a\x16.google.protobuf.Empty\"\x002\xbc\t\n" + "\rEVMRelayerSet\x12b\n" + "\x11GetTransactionFee\x12).loop.relayerset.GetTransactionFeeRequest\x1a .loop.evm.GetTransactionFeeReply\"\x00\x12Q\n" + "\fCallContract\x12$.loop.relayerset.CallContractRequest\x1a\x1b.loop.evm.CallContractReply\x12K\n" + @@ -2056,7 +2056,8 @@ const file_loop_internal_pb_relayerset_relayerset_proto_rawDesc = "" + "\x10QueryTrackedLogs\x12(.loop.relayerset.QueryTrackedLogsRequest\x1a\x1f.loop.evm.QueryTrackedLogsReply\x12Z\n" + "\x13RegisterLogTracking\x12+.loop.relayerset.RegisterLogTrackingRequest\x1a\x16.google.protobuf.Empty\x12^\n" + "\x15UnregisterLogTracking\x12-.loop.relayerset.UnregisterLogTrackingRequest\x1a\x16.google.protobuf.Empty\x12i\n" + - "\x14GetTransactionStatus\x12,.loop.relayerset.GetTransactionStatusRequest\x1a#.loop.evm.GetTransactionStatusReplyBNZLgithub.com/smartcontractkit/chainlink-common/pkg/loop/internal/pb/relayersetb\x06proto3" + "\x14GetTransactionStatus\x12,.loop.relayerset.GetTransactionStatusRequest\x1a#.loop.evm.GetTransactionStatusReply\x12I\n" + + "\x0fGetFiltersNames\x12\x16.google.protobuf.Empty\x1a\x1e.loop.evm.GetFiltersNamesReplyBNZLgithub.com/smartcontractkit/chainlink-common/pkg/loop/internal/pb/relayersetb\x06proto3" var ( file_loop_internal_pb_relayerset_relayerset_proto_rawDescOnce sync.Once @@ -2143,6 +2144,7 @@ var file_loop_internal_pb_relayerset_relayerset_proto_goTypes = []any{ (*evm.LatestAndFinalizedHeadReply)(nil), // 68: loop.evm.LatestAndFinalizedHeadReply (*evm.QueryTrackedLogsReply)(nil), // 69: loop.evm.QueryTrackedLogsReply (*evm.GetTransactionStatusReply)(nil), // 70: loop.evm.GetTransactionStatusReply + (*evm.GetFiltersNamesReply)(nil), // 71: loop.evm.GetFiltersNamesReply } var file_loop_internal_pb_relayerset_relayerset_proto_depIdxs = []int32{ 0, // 0: loop.relayerset.GetRelayerRequest.id:type_name -> loop.relayerset.RelayerId @@ -2217,40 +2219,42 @@ var file_loop_internal_pb_relayerset_relayerset_proto_depIdxs = []int32{ 34, // 69: loop.relayerset.EVMRelayerSet.RegisterLogTracking:input_type -> loop.relayerset.RegisterLogTrackingRequest 35, // 70: loop.relayerset.EVMRelayerSet.UnregisterLogTracking:input_type -> loop.relayerset.UnregisterLogTrackingRequest 36, // 71: loop.relayerset.EVMRelayerSet.GetTransactionStatus:input_type -> loop.relayerset.GetTransactionStatusRequest - 2, // 72: loop.relayerset.RelayerSet.Get:output_type -> loop.relayerset.GetRelayerResponse - 4, // 73: loop.relayerset.RelayerSet.List:output_type -> loop.relayerset.ListAllRelayersResponse - 9, // 74: loop.relayerset.RelayerSet.NewPluginProvider:output_type -> loop.relayerset.NewPluginProviderResponse - 11, // 75: loop.relayerset.RelayerSet.NewContractReader:output_type -> loop.relayerset.NewContractReaderResponse - 13, // 76: loop.relayerset.RelayerSet.NewContractWriter:output_type -> loop.relayerset.NewContractWriterResponse - 55, // 77: loop.relayerset.RelayerSet.StartRelayer:output_type -> google.protobuf.Empty - 55, // 78: loop.relayerset.RelayerSet.CloseRelayer:output_type -> google.protobuf.Empty - 55, // 79: loop.relayerset.RelayerSet.RelayerReady:output_type -> google.protobuf.Empty - 16, // 80: loop.relayerset.RelayerSet.RelayerHealthReport:output_type -> loop.relayerset.RelayerHealthReportResponse - 17, // 81: loop.relayerset.RelayerSet.RelayerName:output_type -> loop.relayerset.RelayerNameResponse - 15, // 82: loop.relayerset.RelayerSet.RelayerLatestHead:output_type -> loop.relayerset.LatestHeadResponse - 56, // 83: loop.relayerset.RelayerSet.ContractReaderGetLatestValue:output_type -> loop.GetLatestValueReply - 57, // 84: loop.relayerset.RelayerSet.ContractReaderGetLatestValueWithHeadData:output_type -> loop.GetLatestValueWithHeadDataReply - 58, // 85: loop.relayerset.RelayerSet.ContractReaderBatchGetLatestValues:output_type -> loop.BatchGetLatestValuesReply - 59, // 86: loop.relayerset.RelayerSet.ContractReaderQueryKey:output_type -> loop.QueryKeyReply - 60, // 87: loop.relayerset.RelayerSet.ContractReaderQueryKeys:output_type -> loop.QueryKeysReply - 55, // 88: loop.relayerset.RelayerSet.ContractReaderBind:output_type -> google.protobuf.Empty - 55, // 89: loop.relayerset.RelayerSet.ContractReaderUnbind:output_type -> google.protobuf.Empty - 55, // 90: loop.relayerset.RelayerSet.ContractReaderStart:output_type -> google.protobuf.Empty - 55, // 91: loop.relayerset.RelayerSet.ContractReaderClose:output_type -> google.protobuf.Empty - 61, // 92: loop.relayerset.EVMRelayerSet.GetTransactionFee:output_type -> loop.evm.GetTransactionFeeReply - 62, // 93: loop.relayerset.EVMRelayerSet.CallContract:output_type -> loop.evm.CallContractReply - 63, // 94: loop.relayerset.EVMRelayerSet.FilterLogs:output_type -> loop.evm.FilterLogsReply - 64, // 95: loop.relayerset.EVMRelayerSet.BalanceAt:output_type -> loop.evm.BalanceAtReply - 65, // 96: loop.relayerset.EVMRelayerSet.EstimateGas:output_type -> loop.evm.EstimateGasReply - 66, // 97: loop.relayerset.EVMRelayerSet.GetTransactionByHash:output_type -> loop.evm.GetTransactionByHashReply - 67, // 98: loop.relayerset.EVMRelayerSet.GetTransactionReceipt:output_type -> loop.evm.GetTransactionReceiptReply - 68, // 99: loop.relayerset.EVMRelayerSet.LatestAndFinalizedHead:output_type -> loop.evm.LatestAndFinalizedHeadReply - 69, // 100: loop.relayerset.EVMRelayerSet.QueryTrackedLogs:output_type -> loop.evm.QueryTrackedLogsReply - 55, // 101: loop.relayerset.EVMRelayerSet.RegisterLogTracking:output_type -> google.protobuf.Empty - 55, // 102: loop.relayerset.EVMRelayerSet.UnregisterLogTracking:output_type -> google.protobuf.Empty - 70, // 103: loop.relayerset.EVMRelayerSet.GetTransactionStatus:output_type -> loop.evm.GetTransactionStatusReply - 72, // [72:104] is the sub-list for method output_type - 40, // [40:72] is the sub-list for method input_type + 55, // 72: loop.relayerset.EVMRelayerSet.GetFiltersNames:input_type -> google.protobuf.Empty + 2, // 73: loop.relayerset.RelayerSet.Get:output_type -> loop.relayerset.GetRelayerResponse + 4, // 74: loop.relayerset.RelayerSet.List:output_type -> loop.relayerset.ListAllRelayersResponse + 9, // 75: loop.relayerset.RelayerSet.NewPluginProvider:output_type -> loop.relayerset.NewPluginProviderResponse + 11, // 76: loop.relayerset.RelayerSet.NewContractReader:output_type -> loop.relayerset.NewContractReaderResponse + 13, // 77: loop.relayerset.RelayerSet.NewContractWriter:output_type -> loop.relayerset.NewContractWriterResponse + 55, // 78: loop.relayerset.RelayerSet.StartRelayer:output_type -> google.protobuf.Empty + 55, // 79: loop.relayerset.RelayerSet.CloseRelayer:output_type -> google.protobuf.Empty + 55, // 80: loop.relayerset.RelayerSet.RelayerReady:output_type -> google.protobuf.Empty + 16, // 81: loop.relayerset.RelayerSet.RelayerHealthReport:output_type -> loop.relayerset.RelayerHealthReportResponse + 17, // 82: loop.relayerset.RelayerSet.RelayerName:output_type -> loop.relayerset.RelayerNameResponse + 15, // 83: loop.relayerset.RelayerSet.RelayerLatestHead:output_type -> loop.relayerset.LatestHeadResponse + 56, // 84: loop.relayerset.RelayerSet.ContractReaderGetLatestValue:output_type -> loop.GetLatestValueReply + 57, // 85: loop.relayerset.RelayerSet.ContractReaderGetLatestValueWithHeadData:output_type -> loop.GetLatestValueWithHeadDataReply + 58, // 86: loop.relayerset.RelayerSet.ContractReaderBatchGetLatestValues:output_type -> loop.BatchGetLatestValuesReply + 59, // 87: loop.relayerset.RelayerSet.ContractReaderQueryKey:output_type -> loop.QueryKeyReply + 60, // 88: loop.relayerset.RelayerSet.ContractReaderQueryKeys:output_type -> loop.QueryKeysReply + 55, // 89: loop.relayerset.RelayerSet.ContractReaderBind:output_type -> google.protobuf.Empty + 55, // 90: loop.relayerset.RelayerSet.ContractReaderUnbind:output_type -> google.protobuf.Empty + 55, // 91: loop.relayerset.RelayerSet.ContractReaderStart:output_type -> google.protobuf.Empty + 55, // 92: loop.relayerset.RelayerSet.ContractReaderClose:output_type -> google.protobuf.Empty + 61, // 93: loop.relayerset.EVMRelayerSet.GetTransactionFee:output_type -> loop.evm.GetTransactionFeeReply + 62, // 94: loop.relayerset.EVMRelayerSet.CallContract:output_type -> loop.evm.CallContractReply + 63, // 95: loop.relayerset.EVMRelayerSet.FilterLogs:output_type -> loop.evm.FilterLogsReply + 64, // 96: loop.relayerset.EVMRelayerSet.BalanceAt:output_type -> loop.evm.BalanceAtReply + 65, // 97: loop.relayerset.EVMRelayerSet.EstimateGas:output_type -> loop.evm.EstimateGasReply + 66, // 98: loop.relayerset.EVMRelayerSet.GetTransactionByHash:output_type -> loop.evm.GetTransactionByHashReply + 67, // 99: loop.relayerset.EVMRelayerSet.GetTransactionReceipt:output_type -> loop.evm.GetTransactionReceiptReply + 68, // 100: loop.relayerset.EVMRelayerSet.LatestAndFinalizedHead:output_type -> loop.evm.LatestAndFinalizedHeadReply + 69, // 101: loop.relayerset.EVMRelayerSet.QueryTrackedLogs:output_type -> loop.evm.QueryTrackedLogsReply + 55, // 102: loop.relayerset.EVMRelayerSet.RegisterLogTracking:output_type -> google.protobuf.Empty + 55, // 103: loop.relayerset.EVMRelayerSet.UnregisterLogTracking:output_type -> google.protobuf.Empty + 70, // 104: loop.relayerset.EVMRelayerSet.GetTransactionStatus:output_type -> loop.evm.GetTransactionStatusReply + 71, // 105: loop.relayerset.EVMRelayerSet.GetFiltersNames:output_type -> loop.evm.GetFiltersNamesReply + 73, // [73:106] is the sub-list for method output_type + 40, // [40:73] is the sub-list for method input_type 40, // [40:40] is the sub-list for extension type_name 40, // [40:40] is the sub-list for extension extendee 0, // [0:40] is the sub-list for field type_name diff --git a/pkg/loop/internal/pb/relayerset/relayerset.proto b/pkg/loop/internal/pb/relayerset/relayerset.proto index 7f5c2e807..4dccf37a2 100644 --- a/pkg/loop/internal/pb/relayerset/relayerset.proto +++ b/pkg/loop/internal/pb/relayerset/relayerset.proto @@ -135,6 +135,7 @@ service EVMRelayerSet { rpc RegisterLogTracking(RegisterLogTrackingRequest) returns (google.protobuf.Empty); rpc UnregisterLogTracking(UnregisterLogTrackingRequest) returns (google.protobuf.Empty); rpc GetTransactionStatus(GetTransactionStatusRequest) returns (loop.evm.GetTransactionStatusReply); + rpc GetFiltersNames(google.protobuf.Empty) returns (loop.evm.GetFiltersNamesReply); // TODO PLEX-1465: once code is moved away, remove this GetFiltersNames RPC method } message ContractReaderGetLatestValueRequest { diff --git a/pkg/loop/internal/pb/relayerset/relayerset_grpc.pb.go b/pkg/loop/internal/pb/relayerset/relayerset_grpc.pb.go index c9eb315bb..bbd9d587f 100644 --- a/pkg/loop/internal/pb/relayerset/relayerset_grpc.pb.go +++ b/pkg/loop/internal/pb/relayerset/relayerset_grpc.pb.go @@ -858,6 +858,7 @@ const ( EVMRelayerSet_RegisterLogTracking_FullMethodName = "/loop.relayerset.EVMRelayerSet/RegisterLogTracking" EVMRelayerSet_UnregisterLogTracking_FullMethodName = "/loop.relayerset.EVMRelayerSet/UnregisterLogTracking" EVMRelayerSet_GetTransactionStatus_FullMethodName = "/loop.relayerset.EVMRelayerSet/GetTransactionStatus" + EVMRelayerSet_GetFiltersNames_FullMethodName = "/loop.relayerset.EVMRelayerSet/GetFiltersNames" ) // EVMRelayerSetClient is the client API for EVMRelayerSet service. @@ -876,6 +877,7 @@ type EVMRelayerSetClient interface { RegisterLogTracking(ctx context.Context, in *RegisterLogTrackingRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) UnregisterLogTracking(ctx context.Context, in *UnregisterLogTrackingRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) GetTransactionStatus(ctx context.Context, in *GetTransactionStatusRequest, opts ...grpc.CallOption) (*evm.GetTransactionStatusReply, error) + GetFiltersNames(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*evm.GetFiltersNamesReply, error) } type eVMRelayerSetClient struct { @@ -1006,6 +1008,16 @@ func (c *eVMRelayerSetClient) GetTransactionStatus(ctx context.Context, in *GetT return out, nil } +func (c *eVMRelayerSetClient) GetFiltersNames(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*evm.GetFiltersNamesReply, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(evm.GetFiltersNamesReply) + err := c.cc.Invoke(ctx, EVMRelayerSet_GetFiltersNames_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // EVMRelayerSetServer is the server API for EVMRelayerSet service. // All implementations must embed UnimplementedEVMRelayerSetServer // for forward compatibility. @@ -1022,6 +1034,7 @@ type EVMRelayerSetServer interface { RegisterLogTracking(context.Context, *RegisterLogTrackingRequest) (*emptypb.Empty, error) UnregisterLogTracking(context.Context, *UnregisterLogTrackingRequest) (*emptypb.Empty, error) GetTransactionStatus(context.Context, *GetTransactionStatusRequest) (*evm.GetTransactionStatusReply, error) + GetFiltersNames(context.Context, *emptypb.Empty) (*evm.GetFiltersNamesReply, error) mustEmbedUnimplementedEVMRelayerSetServer() } @@ -1068,6 +1081,9 @@ func (UnimplementedEVMRelayerSetServer) UnregisterLogTracking(context.Context, * func (UnimplementedEVMRelayerSetServer) GetTransactionStatus(context.Context, *GetTransactionStatusRequest) (*evm.GetTransactionStatusReply, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTransactionStatus not implemented") } +func (UnimplementedEVMRelayerSetServer) GetFiltersNames(context.Context, *emptypb.Empty) (*evm.GetFiltersNamesReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFiltersNames not implemented") +} func (UnimplementedEVMRelayerSetServer) mustEmbedUnimplementedEVMRelayerSetServer() {} func (UnimplementedEVMRelayerSetServer) testEmbeddedByValue() {} @@ -1305,6 +1321,24 @@ func _EVMRelayerSet_GetTransactionStatus_Handler(srv interface{}, ctx context.Co return interceptor(ctx, in, info, handler) } +func _EVMRelayerSet_GetFiltersNames_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EVMRelayerSetServer).GetFiltersNames(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EVMRelayerSet_GetFiltersNames_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EVMRelayerSetServer).GetFiltersNames(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + // EVMRelayerSet_ServiceDesc is the grpc.ServiceDesc for EVMRelayerSet service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -1360,6 +1394,10 @@ var EVMRelayerSet_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetTransactionStatus", Handler: _EVMRelayerSet_GetTransactionStatus_Handler, }, + { + MethodName: "GetFiltersNames", + Handler: _EVMRelayerSet_GetFiltersNames_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "loop/internal/pb/relayerset/relayerset.proto", diff --git a/pkg/loop/internal/relayer/evm.go b/pkg/loop/internal/relayer/evm.go index 582872848..654956fdd 100644 --- a/pkg/loop/internal/relayer/evm.go +++ b/pkg/loop/internal/relayer/evm.go @@ -160,6 +160,15 @@ func (e *EVMClient) RegisterLogTracking(ctx context.Context, filter evmtypes.LPF return net.WrapRPCErr(err) } +func (e *EVMClient) GetFiltersNames(ctx context.Context) ([]string, error) { + // TODO PLEX-1465: once code is moved away, remove this GetFiltersNames method + names, err := e.grpcClient.GetFiltersNames(ctx, &emptypb.Empty{}) + if err != nil { + return nil, net.WrapRPCErr(err) + } + return names.GetItems(), nil +} + func (e *EVMClient) UnregisterLogTracking(ctx context.Context, filterName string) error { _, err := e.grpcClient.UnregisterLogTracking(ctx, &evmpb.UnregisterLogTrackingRequest{FilterName: filterName}) return net.WrapRPCErr(err) @@ -331,3 +340,12 @@ func (e *evmServer) GetTransactionStatus(ctx context.Context, request *evmpb.Get //nolint: gosec // G115 return &evmpb.GetTransactionStatusReply{TransactionStatus: evmpb.TransactionStatus(txStatus)}, nil } + +func (e *evmServer) GetFiltersNames(ctx context.Context, _ *emptypb.Empty) (*evmpb.GetFiltersNamesReply, error) { + // TODO PLEX-1465: once code is moved away, remove this GetFiltersNames method + names, err := e.impl.GetFiltersNames(ctx) + if err != nil { + return nil, err + } + return &evmpb.GetFiltersNamesReply{Items: names}, nil +} diff --git a/pkg/loop/internal/relayer/evm_test.go b/pkg/loop/internal/relayer/evm_test.go index cb9443b7e..f6c7083e5 100644 --- a/pkg/loop/internal/relayer/evm_test.go +++ b/pkg/loop/internal/relayer/evm_test.go @@ -305,6 +305,18 @@ func Test_EVMDomainRoundTripThroughGRPC(t *testing.T) { require.Equal(t, expLog, got) }) + + t.Run("GetFiltersNames", func(t *testing.T) { + expectedNames := []string{"filter1", "filter2"} + evmService.staticGetFiltersNames = func(ctx context.Context) ([]string, error) { + //require.Equal(t, expectedNames, []string{}) + return expectedNames, nil + } + + names, err := client.GetFiltersNames(ctx) + require.NoError(t, err) + require.Equal(t, expectedNames, names) + }) } type staticEVMService struct { @@ -320,6 +332,12 @@ type staticEVMService struct { staticRegisterLogTracking func(ctx context.Context, filter evm.LPFilterQuery) error staticUnregisterLogTracking func(ctx context.Context, filterName string) error staticGetTransactionStatus func(ctx context.Context, transactionID types.IdempotencyKey) (types.TransactionStatus, error) + staticGetFiltersNames func(ctx context.Context) ([]string, error) // TODO PLEX-1465: once code is moved away, remove this GetFiltersNames method +} + +func (s *staticEVMService) GetFiltersNames(ctx context.Context) ([]string, error) { + // TODO PLEX-1465: once code is moved away, remove this GetFiltersNames method + return s.staticGetFiltersNames(ctx) } func (s *staticEVMService) CallContract(ctx context.Context, msg *evm.CallMsg, blockNumber *big.Int) ([]byte, error) { diff --git a/pkg/loop/internal/relayerset/evm.go b/pkg/loop/internal/relayerset/evm.go index 0c9ab2ba6..9348ad822 100644 --- a/pkg/loop/internal/relayerset/evm.go +++ b/pkg/loop/internal/relayerset/evm.go @@ -2,7 +2,6 @@ package relayerset import ( "context" - "google.golang.org/grpc" "google.golang.org/protobuf/types/known/emptypb" @@ -141,6 +140,11 @@ func (e evmClient) GetTransactionStatus(ctx context.Context, in *evmpb.GetTransa }, opts...) } +func (e evmClient) GetFiltersNames(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*evmpb.GetFiltersNamesReply, error) { + // TODO PLEX-1465: once code is moved away, remove this GetFiltersNames method + return e.client.GetFiltersNames(ctx, &emptypb.Empty{}, opts...) +} + func (s *Server) GetTransactionFee(ctx context.Context, request *relayerset.GetTransactionFeeRequest) (*evmpb.GetTransactionFeeReply, error) { evmService, err := s.getEVMService(ctx, request.GetRelayerId()) if err != nil { diff --git a/pkg/types/relayer.go b/pkg/types/relayer.go index 6497dfac1..1d79620c4 100644 --- a/pkg/types/relayer.go +++ b/pkg/types/relayer.go @@ -143,6 +143,10 @@ type EVMService interface { // GetTransactionStatus returns the current status of a transaction in the underlying chain's TXM. GetTransactionStatus(ctx context.Context, transactionID IdempotencyKey) (TransactionStatus, error) + + // GetFiltersNames returns all registered filters' names for later pruning + // TODO PLEX-1465: once code is moved away, remove this GetFiltersNames method + GetFiltersNames(ctx context.Context) ([]string, error) } // Relayer extends ChainService with providers for each product.