@@ -28,6 +28,7 @@ import (
28
28
mn "github.com/smartcontractkit/chainlink-solana/pkg/solana/client/multinode"
29
29
"github.com/smartcontractkit/chainlink-solana/pkg/solana/config"
30
30
"github.com/smartcontractkit/chainlink-solana/pkg/solana/internal"
31
+ "github.com/smartcontractkit/chainlink-solana/pkg/solana/logpoller"
31
32
"github.com/smartcontractkit/chainlink-solana/pkg/solana/monitor"
32
33
"github.com/smartcontractkit/chainlink-solana/pkg/solana/txm"
33
34
)
@@ -37,6 +38,7 @@ type Chain interface {
37
38
38
39
ID () string
39
40
Config () config.Config
41
+ LogPoller () logpoller.ILogPoller
40
42
TxManager () TxManager
41
43
// Reader returns a new Reader from the available list of nodes (if there are multiple, it will randomly select one)
42
44
Reader () (client.Reader , error )
@@ -89,6 +91,7 @@ type chain struct {
89
91
services.StateMachine
90
92
id string
91
93
cfg * config.TOMLConfig
94
+ lp logpoller.ILogPoller
92
95
txm * txm.Txm
93
96
balanceMonitor services.Service
94
97
lggr logger.Logger
@@ -235,6 +238,7 @@ func newChain(id string, cfg *config.TOMLConfig, ks core.Keystore, lggr logger.L
235
238
clientCache : map [string ]* verifiedCachedClient {},
236
239
}
237
240
241
+ var lc internal.Loader [client.Reader ] = utils .NewLazyLoad (func () (client.Reader , error ) { return ch .getClient () })
238
242
var tc internal.Loader [client.ReaderWriter ] = utils .NewLazyLoad (func () (client.ReaderWriter , error ) { return ch .getClient () })
239
243
var bc internal.Loader [monitor.BalanceClient ] = utils .NewLazyLoad (func () (monitor.BalanceClient , error ) { return ch .getClient () })
240
244
@@ -303,10 +307,13 @@ func newChain(id string, cfg *config.TOMLConfig, ks core.Keystore, lggr logger.L
303
307
return result .Signature (), result .Error ()
304
308
}
305
309
306
- tc = internal.NewLoader [client.ReaderWriter ](func () (client.ReaderWriter , error ) { return ch .multiNode .SelectRPC () })
307
- bc = internal.NewLoader [monitor.BalanceClient ](func () (monitor.BalanceClient , error ) { return ch .multiNode .SelectRPC () })
310
+ // TODO: Can we just remove these? They nullify the lazy loaders initialized earlier, don't they?
311
+ //lc = internal.NewLoader[client.Reader](func() (client.Reader, error) { return ch.multiNode.SelectRPC() })
312
+ //tc = internal.NewLoader[client.ReaderWriter](func() (client.ReaderWriter, error) { return ch.multiNode.SelectRPC() })
313
+ //bc = internal.NewLoader[monitor.BalanceClient](func() (monitor.BalanceClient, error) { return ch.multiNode.SelectRPC() })
308
314
}
309
315
316
+ ch .lp = logpoller .NewLogPoller (lggr , logpoller .NewORM (ch .ID (), ds , lggr ), lc )
310
317
ch .txm = txm .NewTxm (ch .id , tc , sendTx , cfg , ks , lggr )
311
318
ch .balanceMonitor = monitor .NewBalanceMonitor (ch .id , cfg , lggr , ks , bc )
312
319
return & ch , nil
@@ -396,6 +403,10 @@ func (c *chain) Config() config.Config {
396
403
return c .cfg
397
404
}
398
405
406
+ func (c * chain ) LogPoller () logpoller.ILogPoller {
407
+ return c .lp
408
+ }
409
+
399
410
func (c * chain ) TxManager () TxManager {
400
411
return c .txm
401
412
}
0 commit comments