Skip to content

Commit c46a588

Browse files
committed
fix tests
1 parent 2f85357 commit c46a588

File tree

4 files changed

+29
-24
lines changed

4 files changed

+29
-24
lines changed

pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator.go

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ type secureMintReport struct {
7070
}
7171

7272
type 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

115115
func (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

153153
func (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
298302
func (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

pkg/capabilities/consensus/ocr3/datafeeds/securemint_aggregator_test.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) {
185185
Block: 1000,
186186
Mintable: big.NewInt(99),
187187
},
188+
accCtx: solana.AccountMetaSlice{&solana.AccountMeta{PublicKey: acc1}, &solana.AccountMeta{PublicKey: acc2}},
188189
},
189190
{
190191
chainSelector: bnbTestnetChainSelector,
@@ -195,6 +196,7 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) {
195196
Block: 1100,
196197
Mintable: big.NewInt(200),
197198
},
199+
accCtx: solana.AccountMetaSlice{&solana.AccountMeta{PublicKey: acc1}, &solana.AccountMeta{PublicKey: acc2}},
198200
},
199201
}),
200202
f: 1,
@@ -383,6 +385,7 @@ type ocrTriggerEventData struct {
383385
chainSelector chainSelector
384386
seqNr uint64
385387
report *secureMintReport
388+
accCtx solana.AccountMetaSlice
386389
}
387390

388391
func createSecureMintObservations(t *testing.T, events []ocrTriggerEventData) map[ocrcommon.OracleID][]values.Value {
@@ -420,10 +423,12 @@ func createSecureMintObservations(t *testing.T, events []ocrTriggerEventData) ma
420423
},
421424
}
422425

423-
// Wrap in values.Value
424-
val, err := values.Wrap(triggerEvent)
426+
// wrap with account context if present
427+
val, err := values.Wrap(map[string]any{
428+
"event": triggerEvent,
429+
"solana": event.accCtx,
430+
})
425431
require.NoError(t, err)
426-
427432
oracleObservations = append(oracleObservations, val)
428433
}
429434

pkg/capabilities/consensus/ocr3/ocr3cap/ocr3cap_common-schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
},
4747
"encoder": {
4848
"type": "string",
49-
"enum": ["EVM", "ValueMap"]
49+
"enum": ["EVM", "Borsh","ValueMap"]
5050
},
5151
"encoder_config": {
5252
"type": "object",

pkg/capabilities/consensus/ocr3/ocr3cap/ocr3cap_common_generated.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)