@@ -212,7 +212,7 @@ func (o *MockTriggerService) RegisterTrigger(ctx context.Context, req capabiliti
212212 }
213213
214214 // Only start the producer once a workflow is registered
215- o .producer = NewMockDataProducer (o , config .FeedIDs , o .lggr )
215+ o .producer = NewMockDataProducer (o , o . meta , o . signers , config .FeedIDs , o .lggr )
216216 if err := o .producer .Start (ctx ); err != nil {
217217 return nil , err
218218 }
@@ -298,21 +298,6 @@ func (o *MockTriggerService) process(timestamp int64) {
298298
299299 // use 32-byte-padded timestamp as EventID (human-readable)
300300 eventID := fmt .Sprintf ("streams_%024s" , strconv .FormatInt (timestamp , 10 ))
301- // ---
302- // sign reports with mock signers
303- for i := range reportList {
304- report := reportList [i ]
305- sigData := append (crypto .Keccak256 (report .FullReport ), report .ReportContext ... )
306- hash := crypto .Keccak256 (sigData )
307- for n := 0 ; n < o .meta .MinRequiredSignatures ; n ++ {
308- sig , err := crypto .Sign (hash , o .signers [n ])
309- if err != nil {
310- panic (err )
311- }
312- reportList [i ].Signatures = append (reportList [i ].Signatures , sig )
313- }
314- }
315- // ---
316301 capabilityResponse , err := wrapReports (reportList , eventID , timestamp , o .meta )
317302
318303 if err != nil {
@@ -390,16 +375,20 @@ type mockDataProducer struct {
390375 trigger * MockTriggerService
391376 wg sync.WaitGroup
392377 closeCh chan struct {}
378+ meta datastreams.SignersMetadata
379+ signers []* ecdsa.PrivateKey
393380 feedIDs []string
394381 lggr logger.Logger
395382}
396383
397384var _ services.Service = & mockDataProducer {}
398385
399- func NewMockDataProducer (trigger * MockTriggerService , feedIDs []string , lggr logger.Logger ) * mockDataProducer {
386+ func NewMockDataProducer (trigger * MockTriggerService , meta datastreams. SignersMetadata , signers [] * ecdsa. PrivateKey , feedIDs []string , lggr logger.Logger ) * mockDataProducer {
400387 return & mockDataProducer {
401388 trigger : trigger ,
402389 closeCh : make (chan struct {}),
390+ meta : meta ,
391+ signers : signers ,
403392 feedIDs : feedIDs ,
404393 lggr : lggr ,
405394 }
@@ -436,12 +425,24 @@ func (m *mockDataProducer) loop() {
436425
437426 reports := []datastreams.FeedReport {}
438427 for _ , feedID := range m .feedIDs {
439- reports = append ( reports , datastreams.FeedReport {
428+ report := datastreams.FeedReport {
440429 FeedID : feedID ,
441430 FullReport : newReport (m .lggr , common .HexToHash (feedID ), big .NewInt (prices [0 ]), timestamp ),
442431 ReportContext : rawReportContext (reportCtx ),
443432 ObservationTimestamp : timestamp ,
444- })
433+ }
434+ // sign report with mock signers
435+ sigData := append (crypto .Keccak256 (report .FullReport ), report .ReportContext ... )
436+ hash := crypto .Keccak256 (sigData )
437+ for n := 0 ; n < m .meta .MinRequiredSignatures ; n ++ {
438+ sig , err := crypto .Sign (hash , m .signers [n ])
439+ if err != nil {
440+ panic (err )
441+ }
442+ report .Signatures = append (report .Signatures , sig )
443+ }
444+
445+ reports = append (reports , report )
445446 }
446447
447448 m .lggr .Infow ("New set of Mock reports" , "timestamp" , time .Now ().Unix (), "payload" , reports )
0 commit comments