Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ require (
github.com/smartcontractkit/chain-selectors v1.0.100
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.11-0.20260528204832-58c7145c53f8
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251024234028-0988426d98f4
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260602131523-5168ac1ba014
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260603162809-d3f4a3c7b58a
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b
github.com/smartcontractkit/chainlink-protos/node-platform v0.0.0-20260205130626-db2a2aab956b
github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 11 additions & 2 deletions pkg/capabilities/v2/chain-capabilities/solana/client.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 12 additions & 2 deletions pkg/chains/solana/solana.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pkg/chains/solana/solana.proto
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,7 @@ message Log {
message QueryTrackedLogsRequest {
repeated Expression filterQuery = 1; // filter tree
loop.chain.common.LimitAndSort limit_and_sort = 2; // paging
string filter_name = 3; // registered filter name for query scoping
}

message QueryTrackedLogsReply {
Expand Down
5 changes: 3 additions & 2 deletions pkg/loop/internal/relayer/solana.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func (sc *SolClient) UnregisterLogTracking(ctx context.Context, filterName strin
return net.WrapRPCErr(err)
}

func (sc *SolClient) QueryTrackedLogs(ctx context.Context, filterQuery []query.Expression, limitAndSort query.LimitAndSort) ([]*solana.Log, error) {
func (sc *SolClient) QueryTrackedLogs(ctx context.Context, filterQuery []query.Expression, limitAndSort query.LimitAndSort, filterName string) ([]*solana.Log, error) {
pExprs, err := solpb.ConvertExpressionsToProto(filterQuery)
if err != nil {
return nil, net.WrapRPCErr(err)
Expand All @@ -88,6 +88,7 @@ func (sc *SolClient) QueryTrackedLogs(ctx context.Context, filterQuery []query.E
pReq := &solpb.QueryTrackedLogsRequest{
FilterQuery: pExprs,
LimitAndSort: protoLimitAndSort,
FilterName: filterName,
}

pResp, err := sc.grpcClient.QueryTrackedLogs(ctx, pReq)
Expand Down Expand Up @@ -308,7 +309,7 @@ func (s *solServer) QueryTrackedLogs(ctx context.Context, req *solpb.QueryTracke
return nil, net.WrapRPCErr(err)
}

logs, err := s.impl.QueryTrackedLogs(ctx, dExprs, ls)
logs, err := s.impl.QueryTrackedLogs(ctx, dExprs, ls, req.GetFilterName())
if err != nil {
return nil, net.WrapRPCErr(err)
}
Expand Down
6 changes: 4 additions & 2 deletions pkg/loop/internal/relayerset/relayerset_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -896,12 +896,14 @@ func Test_RelayerSet_SolanaService(t *testing.T) {
{BlockNumber: 2, LogIndex: 5},
}

filterName := "query-filter"

expLimitAndSort := query.NewLimitAndSort(query.CountLimit(10), query.SortByTimestamp{})
mockSol.EXPECT().
QueryTrackedLogs(mock.Anything, filterExpr, expLimitAndSort).
QueryTrackedLogs(mock.Anything, filterExpr, expLimitAndSort, filterName).
Return(expected, nil)

out, err := sol.QueryTrackedLogs(ctx, filterExpr, expLimitAndSort)
out, err := sol.QueryTrackedLogs(ctx, filterExpr, expLimitAndSort, filterName)
require.NoError(t, err)
require.Len(t, out, 2)
require.Equal(t, int64(2), out[1].BlockNumber)
Expand Down
2 changes: 1 addition & 1 deletion pkg/loop/internal/relayerset/solana.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ func (ss *solServer) QueryTrackedLogs(ctx context.Context, req *solpb.QueryTrack
return nil, net.WrapRPCErr(err)
}

logs, err := solService.QueryTrackedLogs(ctx, dExprs, ls)
logs, err := solService.QueryTrackedLogs(ctx, dExprs, ls, req.GetFilterName())
if err != nil {
return nil, net.WrapRPCErr(err)
}
Expand Down
29 changes: 15 additions & 14 deletions pkg/types/mocks/solana_service.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions pkg/types/relayer.go
Original file line number Diff line number Diff line change
Expand Up @@ -250,11 +250,11 @@ type SolanaService interface {
// noop guaranteed when filterName doesn't exist
UnregisterLogTracking(ctx context.Context, filterName string) error

// QueryTrackedLogs retrieves logs from the log storage based on the provided
// query expression, sorting, and confidence level. It only returns logs that were
// collected through previously registered log filters.
// QueryTrackedLogs retrieves logs from log storage based on the provided query
// expression and sorting. When filterName is non-empty, results are scoped to
// that registered filter; an empty filterName queries across all filters (legacy).
QueryTrackedLogs(ctx context.Context, filterQuery []query.Expression,
limitAndSort query.LimitAndSort) ([]*solana.Log, error)
limitAndSort query.LimitAndSort, filterName string) ([]*solana.Log, error)

// GetLatestLPBlock retrieves current LatestBlock from cache perspective
GetLatestLPBlock(ctx context.Context) (*solana.LPBlock, error)
Expand Down Expand Up @@ -573,7 +573,7 @@ func (uss *UnimplementedSolanaService) RegisterLogTracking(ctx context.Context,
func (uss *UnimplementedSolanaService) UnregisterLogTracking(ctx context.Context, filterName string) error {
return status.Errorf(codes.Unimplemented, "method UnregisterLogTracking not implemented")
}
func (uss *UnimplementedSolanaService) QueryTrackedLogs(ctx context.Context, filterQuery []query.Expression, limitAndSort query.LimitAndSort) ([]*solana.Log, error) {
func (uss *UnimplementedSolanaService) QueryTrackedLogs(ctx context.Context, filterQuery []query.Expression, limitAndSort query.LimitAndSort, filterName string) ([]*solana.Log, error) {
return nil, status.Errorf(codes.Unimplemented, "method QueryTrackedLogs not implemented")
}
func (uss *UnimplementedSolanaService) GetBalance(ctx context.Context, req solana.GetBalanceRequest) (*solana.GetBalanceReply, error) {
Expand Down
Loading