From 0894ae5f056207206dccd8b2fbb8a02de64e9067 Mon Sep 17 00:00:00 2001 From: Awbrey Hughlett Date: Mon, 3 Feb 2025 10:55:15 -0600 Subject: [PATCH] address feedback --- pkg/solana/chain.go | 2 ++ pkg/solana/chainreader/event_read_binding.go | 16 ++++++++-------- pkg/solana/config/chain_reader.go | 5 ++--- pkg/solana/relay.go | 5 +---- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/pkg/solana/chain.go b/pkg/solana/chain.go index 5f5f63646..1e0b15d0c 100644 --- a/pkg/solana/chain.go +++ b/pkg/solana/chain.go @@ -22,6 +22,7 @@ import ( "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" "github.com/smartcontractkit/chainlink-common/pkg/types" "github.com/smartcontractkit/chainlink-common/pkg/types/core" + "github.com/smartcontractkit/chainlink-common/pkg/types/query" "github.com/smartcontractkit/chainlink-common/pkg/utils" mn "github.com/smartcontractkit/chainlink-framework/multinode" @@ -41,6 +42,7 @@ type LogPoller interface { Close() error RegisterFilter(ctx context.Context, filter logpoller.Filter) error UnregisterFilter(ctx context.Context, name string) error + FilteredLogs(context.Context, []query.Expression, query.LimitAndSort, string) ([]logpoller.Log, error) } type Chain interface { diff --git a/pkg/solana/chainreader/event_read_binding.go b/pkg/solana/chainreader/event_read_binding.go index dcd70d5ac..a75e86ff7 100644 --- a/pkg/solana/chainreader/event_read_binding.go +++ b/pkg/solana/chainreader/event_read_binding.go @@ -28,22 +28,22 @@ type eventReadBinding struct { modifier commoncodec.Modifier key solana.PublicKey remapper remapHelper - indexedSubkeys map[string]subkeyTuple - events EventsReader + indexedSubKeys map[string]subkeyTuple + reader EventsReader eventSig [logpoller.EventSignatureLength]byte } func newEventReadBinding( namespace, genericName string, - indexedSubkeys map[string]subkeyTuple, - events EventsReader, + indexedSubKeys map[string]subkeyTuple, + reader EventsReader, eventSig [logpoller.EventSignatureLength]byte, ) *eventReadBinding { binding := &eventReadBinding{ namespace: namespace, genericName: genericName, - indexedSubkeys: indexedSubkeys, - events: events, + indexedSubKeys: indexedSubKeys, + reader: reader, eventSig: eventSig, } @@ -107,7 +107,7 @@ func (b *eventReadBinding) QueryKey( itemType := strings.Join([]string{b.namespace, b.genericName}, ".") - logs, err := b.events.FilteredLogs(ctx, filter.Expressions, limitAndSort, itemType) + logs, err := b.reader.FilteredLogs(ctx, filter.Expressions, limitAndSort, itemType) if err != nil { return nil, err } @@ -140,7 +140,7 @@ func (b *eventReadBinding) remapPrimitive(expression query.Expression) (query.Ex } func (b *eventReadBinding) encodeComparator(comparator *primitives.Comparator) (query.Expression, error) { - onChainTuple, ok := b.indexedSubkeys[comparator.Name] + onChainTuple, ok := b.indexedSubKeys[comparator.Name] if !ok { return query.Expression{}, fmt.Errorf("%w: unknown indexed subkey mapping %s", types.ErrInvalidConfig, comparator.Name) } diff --git a/pkg/solana/config/chain_reader.go b/pkg/solana/config/chain_reader.go index de3fa361e..d7d4432a8 100644 --- a/pkg/solana/config/chain_reader.go +++ b/pkg/solana/config/chain_reader.go @@ -58,9 +58,8 @@ func (r ReadType) String() string { } type IndexedField struct { - OffChainPath string `json:"offChainPath"` - OnChainPath string `json:"onChainPath"` - IndexPosition int `json:"-"` + OffChainPath string `json:"offChainPath"` + OnChainPath string `json:"onChainPath"` } func (c *ChainContractReader) UnmarshalJSON(bytes []byte) error { diff --git a/pkg/solana/relay.go b/pkg/solana/relay.go index 057d71ac6..07a0830d4 100644 --- a/pkg/solana/relay.go +++ b/pkg/solana/relay.go @@ -162,10 +162,7 @@ func (r *Relayer) NewContractReader(_ context.Context, chainReaderConfig []byte) return nil, fmt.Errorf("failed to init account reader err: %s", err) } - // TODO: create a logpoller - var logpoller chainreader.EventsReader - - return chainreader.NewContractReaderService(r.lggr, &chainreader.RPCClientWrapper{AccountReader: accountReader}, cfg, logpoller) + return chainreader.NewContractReaderService(r.lggr, &chainreader.RPCClientWrapper{AccountReader: accountReader}, cfg, r.chain.LogPoller()) } func (r *Relayer) NewMedianProvider(ctx context.Context, rargs relaytypes.RelayArgs, pargs relaytypes.PluginArgs) (relaytypes.MedianProvider, error) {