@@ -18,6 +18,7 @@ import (
1818 "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/mcms/proposalanalysis/formatter"
1919 "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/mcms/proposalanalysis/internal"
2020 "github.com/smartcontractkit/chainlink-deployments-framework/engine/cld/mcms/proposalanalysis/types"
21+ "github.com/smartcontractkit/chainlink-deployments-framework/pkg/logger"
2122 experimentalanalyzer "github.com/smartcontractkit/chainlink-deployments-framework/experimental/analyzer"
2223)
2324
@@ -32,12 +33,13 @@ type analyzerEngine struct {
3233 evmRegistry experimentalanalyzer.EVMABIRegistry
3334 solanaRegistry experimentalanalyzer.SolanaDecoderRegistry
3435 executionContext types.ExecutionContext // Store for formatters
36+ logger logger.Logger
3537}
3638
3739var _ types.AnalyzerEngine = & analyzerEngine {}
3840
3941// NewAnalyzerEngine creates a new analyzer engine
40- // Options can be provided to customize the engine behavior, such as injecting registries
42+ // Options can be provided to customize the engine behavior, such as injecting registries and logger
4143func NewAnalyzerEngine (opts ... EngineOption ) types.AnalyzerEngine {
4244 // Apply options to get configuration
4345 cfg := ApplyEngineOptions (opts ... )
@@ -47,6 +49,7 @@ func NewAnalyzerEngine(opts ...EngineOption) types.AnalyzerEngine {
4749 formatterRegistry : formatter .NewFormatterRegistry (),
4850 evmRegistry : cfg .GetEVMRegistry (),
4951 solanaRegistry : cfg .GetSolanaRegistry (),
52+ logger : cfg .GetLogger (),
5053 }
5154 return engine
5255}
@@ -220,7 +223,7 @@ func (ae *analyzerEngine) analyzeProposal(
220223 for _ , batchOp := range decodedProposal .BatchOperations () {
221224 analyzedBatchOp , err := ae .analyzeBatchOperation (ctx , actx , ectx , batchOp )
222225 if err != nil {
223- // log error but continue
226+ ae . logger . Errorw ( "Failed to analyze batch operation" , "chainSelector" , batchOp . ChainSelector (), "error" , err )
224227 continue
225228 }
226229 batchOps = append (batchOps , analyzedBatchOp )
@@ -261,7 +264,7 @@ func (ae *analyzerEngine) analyzeProposal(
261264
262265 annotations , err := proposalAnalyzer .Analyze (ctx , req , decodedProposal )
263266 if err != nil {
264- // log error but continue with other analyzers
267+ ae . logger . Errorw ( "Proposal analyzer failed" , "analyzerID" , proposalAnalyzer . ID (), "error" , err )
265268 continue
266269 }
267270 // Track which analyzer created the annotations
@@ -290,7 +293,7 @@ func (ae *analyzerEngine) analyzeBatchOperation(
290293 for _ , call := range decodedBatchOperation .Calls () {
291294 analyzedCall , err := ae .analyzeCall (ctx , actx , ectx , call )
292295 if err != nil {
293- // log error but continue
296+ ae . logger . Errorw ( "Failed to analyze call" , "callName" , call . Name (), "error" , err )
294297 continue
295298 }
296299 calls = append (calls , analyzedCall )
@@ -331,7 +334,7 @@ func (ae *analyzerEngine) analyzeBatchOperation(
331334
332335 annotations , err := batchOpAnalyzer .Analyze (ctx , req , decodedBatchOperation )
333336 if err != nil {
334- // log error but continue
337+ ae . logger . Errorw ( "Batch operation analyzer failed" , "analyzerID" , batchOpAnalyzer . ID (), "chainSelector" , decodedBatchOperation . ChainSelector (), "error" , err )
335338 continue
336339 }
337340 trackedAnnotations := trackAnnotations (annotations , batchOpAnalyzer .ID ())
@@ -359,7 +362,7 @@ func (ae *analyzerEngine) analyzeCall(
359362 for _ , param := range decodedCall .Inputs () {
360363 analyzedParam , err := ae .analyzeParameter (ctx , actx , ectx , param )
361364 if err != nil {
362- // log error but continue
365+ ae . logger . Errorw ( "Failed to analyze input parameter" , "paramName" , param . Name (), "paramType" , param . Type (), "error" , err )
363366 continue
364367 }
365368 inputs = append (inputs , analyzedParam )
@@ -369,7 +372,7 @@ func (ae *analyzerEngine) analyzeCall(
369372 for _ , param := range decodedCall .Outputs () {
370373 analyzedParam , err := ae .analyzeParameter (ctx , actx , ectx , param )
371374 if err != nil {
372- // log error but continue
375+ ae . logger . Errorw ( "Failed to analyze output parameter" , "paramName" , param . Name (), "paramType" , param . Type (), "error" , err )
373376 continue
374377 }
375378 outputs = append (outputs , analyzedParam )
@@ -412,7 +415,7 @@ func (ae *analyzerEngine) analyzeCall(
412415
413416 annotations , err := callAnalyzer .Analyze (ctx , req , decodedCall )
414417 if err != nil {
415- // log error but continue
418+ ae . logger . Errorw ( "Call analyzer failed" , "analyzerID" , callAnalyzer . ID (), "callName" , decodedCall . Name (), "error" , err )
416419 continue
417420 }
418421 trackedAnnotations := trackAnnotations (annotations , callAnalyzer .ID ())
@@ -466,7 +469,7 @@ func (ae *analyzerEngine) analyzeParameter(
466469
467470 annotations , err := paramAnalyzer .Analyze (ctx , req , decodedParameter )
468471 if err != nil {
469- // log error but continue
472+ ae . logger . Errorw ( "Parameter analyzer failed" , "analyzerID" , paramAnalyzer . ID (), "paramName" , decodedParameter . Name (), "paramType" , decodedParameter . Type (), "error" , err )
470473 continue
471474 }
472475 trackedAnnotations := trackAnnotations (annotations , paramAnalyzer .ID ())
0 commit comments