@@ -70,8 +70,8 @@ type secureMintReport struct {
7070}
7171
7272type wrappedMintReport struct {
73- report secureMintReport `json:"report"`
74- solanaAccountContext solana.AccountMetaSlice `json:"solanaAccountContext"`
73+ Report secureMintReport `json:"report"`
74+ SolanaAccountContext solana.AccountMetaSlice `json:"solanaAccountContext,omitempty "`
7575}
7676
7777// chainSelector represents the chain selector type, mimics the ChainSelector type in the SM plugin repo
@@ -113,7 +113,7 @@ type evmReportFormatter struct {
113113}
114114
115115func (f * evmReportFormatter ) packReport (lggr logger.Logger , wreport * wrappedMintReport ) (* values.Map , error ) {
116- report := wreport .report
116+ report := wreport .Report
117117 smReportAsAnswer , err := packSecureMintReportIntoUint224ForEVM (report .Mintable , report .Block )
118118 if err != nil {
119119 return nil , fmt .Errorf ("failed to pack secure mint report for evm into uint224: %w" , err )
@@ -151,7 +151,7 @@ type solanaReportFormatter struct {
151151}
152152
153153func (f * solanaReportFormatter ) packReport (lggr logger.Logger , wreport * wrappedMintReport ) (* values.Map , error ) {
154- report := wreport .report
154+ report := wreport .Report
155155 // pack answer
156156 smReportAsAnswer , err := packSecureMintReportIntoU128ForSolana (report .Mintable , report .Block )
157157 if err != nil {
@@ -161,10 +161,10 @@ func (f *solanaReportFormatter) packReport(lggr logger.Logger, wreport *wrappedM
161161
162162 // hash account contexts
163163 var accounts = make ([]byte , 0 )
164- for _ , acc := range wreport .solanaAccountContext {
164+ for _ , acc := range wreport .SolanaAccountContext {
165165 accounts = append (accounts , acc .PublicKey [:]... )
166166 }
167- lggr .Debugf ("accounts length: %d" , len (wreport .solanaAccountContext ))
167+ lggr .Debugf ("accounts length: %d" , len (wreport .SolanaAccountContext ))
168168 accountContextHash := sha256 .Sum256 (accounts )
169169 lggr .Debugw ("calculated account context hash" , "accountContextHash" , accountContextHash )
170170
@@ -179,7 +179,6 @@ func (f *solanaReportFormatter) packReport(lggr logger.Logger, wreport *wrappedM
179179 SolDataIDOutputFieldName : f .dataID ,
180180 },
181181 }
182- lggr .Debugf ("pass dataID %x" , f .dataID )
183182
184183 wrappedReport , err := values .NewMap (map [string ]any {
185184 TopLevelAccountCtxHashFieldName : accountContextHash ,
@@ -294,6 +293,11 @@ func (a *SecureMintAggregator) Aggregate(lggr logger.Logger, previousOutcome *ty
294293 return outcome , nil
295294}
296295
296+ type ObsWithCtx struct {
297+ Event capabilities.OCRTriggerEvent `mapstructure:"event"`
298+ Solana solana.AccountMetaSlice `mapstructure:"solana"`
299+ }
300+
297301// extractAndValidateReports extracts OCRTriggerEvent from observations and validates them
298302func (a * SecureMintAggregator ) extractAndValidateReports (lggr logger.Logger , observations map [ocrcommon.OracleID ][]values.Value , previousOutcome * types.AggregationOutcome ) ([]* wrappedMintReport , error ) {
299303 var validReports []* wrappedMintReport
@@ -305,27 +309,20 @@ func (a *SecureMintAggregator) extractAndValidateReports(lggr logger.Logger, obs
305309 for _ , observation := range nodeObservations {
306310 lggr .Debugw ("processing observation" , "observation" , observation )
307311
308- // Extract OCRTriggerEvent from the observation
309- type ObsWithCtx struct {
310- Event capabilities.OCRTriggerEvent `mapstructure:"event"`
311- Solana solana.AccountMetaSlice `mapstructure:"solana"`
312- }
312+ // Extract OCRTriggerEvent from the observations
313313
314314 obsWithContext := & ObsWithCtx {}
315315
316316 if err := observation .UnwrapTo (obsWithContext ); err != nil {
317317 lggr .Warnw ("could not unwrap OCRTriggerEvent" , "err" , err , "observation" , observation )
318318 continue
319319 }
320- triggerEvent := obsWithContext .Event
321320
322321 lggr .Debugw ("Obs with context" , "obs with ctx" , obsWithContext )
323322
324- lggr .Debugw ("triggerEvent" , "triggerEvent" , triggerEvent )
325-
326323 // Deserialize the ReportWithInfo
327324 var reportWithInfo ocr3types.ReportWithInfo [chainSelector ]
328- if err := json .Unmarshal (triggerEvent .Report , & reportWithInfo ); err != nil {
325+ if err := json .Unmarshal (obsWithContext . Event .Report , & reportWithInfo ); err != nil {
329326 lggr .Errorw ("failed to unmarshal ReportWithInfo" , "err" , err )
330327 continue
331328 }
@@ -346,8 +343,8 @@ func (a *SecureMintAggregator) extractAndValidateReports(lggr logger.Logger, obs
346343 continue
347344 }
348345 report := & wrappedMintReport {
349- report : innerReport ,
350- solanaAccountContext : obsWithContext .Solana ,
346+ Report : innerReport ,
347+ SolanaAccountContext : obsWithContext .Solana ,
351348 }
352349
353350 validReports = append (validReports , report )
@@ -385,12 +382,12 @@ func (a *SecureMintAggregator) createOutcome(lggr logger.Logger, report *wrapped
385382 reportsProto := values .Proto (wrappedReport )
386383
387384 // Store the sequence number in metadata for next round
388- metadata := []byte {byte (report .report .SeqNr )} // Simple metadata for now
385+ metadata := []byte {byte (report .Report .SeqNr )} // Simple metadata for now
389386
390387 aggOutcome := & types.AggregationOutcome {
391388 EncodableOutcome : reportsProto .GetMapValue (),
392389 Metadata : metadata ,
393- LastSeenAt : report .report .SeqNr ,
390+ LastSeenAt : report .Report .SeqNr ,
394391 ShouldReport : true , // Always report since we found and verified the target report
395392 }
396393
0 commit comments