77 "fmt"
88 "math/big"
99 "reflect"
10+ "slices"
1011 "testing"
1112
1213 "github.com/google/uuid"
@@ -72,6 +73,7 @@ type staticRelayerConfig struct {
7273 relayArgs types.RelayArgs
7374 pluginArgs types.PluginArgs
7475 contractReaderConfig []byte
76+ chainWriterConfig []byte
7577 medianProvider testtypes.MedianProviderTester
7678 agnosticProvider testtypes.PluginProviderTester
7779 mercuryProvider mercurytest.MercuryProviderTester
@@ -96,6 +98,7 @@ func newStaticRelayerConfig(lggr logger.Logger, staticChecks bool) staticRelayer
9698 relayArgs : RelayArgs ,
9799 pluginArgs : PluginArgs ,
98100 contractReaderConfig : []byte ("test" ),
101+ chainWriterConfig : []byte ("chainwriterconfig" ),
99102 medianProvider : mediantest .MedianProvider (lggr ),
100103 mercuryProvider : mercurytest .MercuryProvider (lggr ),
101104 executionProvider : cciptest .ExecutionProvider (lggr ),
@@ -306,8 +309,13 @@ func (s staticRelayer) NewLLOProvider(ctx context.Context, r types.RelayArgs, p
306309 return nil , errors .New ("not implemented" )
307310}
308311
309- func (s staticRelayer ) NewCCIPProvider (ctx context.Context , r types.RelayArgs ) (types.CCIPProvider , error ) {
310- if s .StaticChecks && ! equalRelayArgs (r , s .relayArgs ) {
312+ func (s staticRelayer ) NewCCIPProvider (ctx context.Context , r types.CCIPProviderArgs ) (types.CCIPProvider , error ) {
313+ ccipProviderArgs := types.CCIPProviderArgs {
314+ ExternalJobID : s .relayArgs .ExternalJobID ,
315+ ContractReaderConfig : s .contractReaderConfig ,
316+ ChainWriterConfig : s .chainWriterConfig ,
317+ }
318+ if s .StaticChecks && ! equalCCIPProviderArgs (r , ccipProviderArgs ) {
311319 return nil , fmt .Errorf ("expected relay args:\n \t %v\n but got:\n \t %v" , s .relayArgs , r )
312320 }
313321 return ccipocr3test .CCIPProvider (logger .Nop ()), nil
@@ -459,6 +467,12 @@ func equalRelayArgs(a, b types.RelayArgs) bool {
459467 bytes .Equal (a .RelayConfig , b .RelayConfig )
460468}
461469
470+ func equalCCIPProviderArgs (a , b types.CCIPProviderArgs ) bool {
471+ return a .ExternalJobID == b .ExternalJobID &&
472+ slices .Equal (a .ContractReaderConfig , b .ContractReaderConfig ) &&
473+ slices .Equal (a .ChainWriterConfig , b .ChainWriterConfig )
474+ }
475+
462476func newRelayArgsWithProviderType (_type types.OCR2PluginType ) types.RelayArgs {
463477 return types.RelayArgs {
464478 ExternalJobID : RelayArgs .ExternalJobID ,
0 commit comments