Skip to content

Commit 2e763fb

Browse files
committed
Move securemint.Report from plugin repo to cl-common
1 parent 33154ed commit 2e763fb

File tree

3 files changed

+27
-22
lines changed

3 files changed

+27
-22
lines changed

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

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212

1313
chainselectors "github.com/smartcontractkit/chain-selectors"
1414
ocrcommon "github.com/smartcontractkit/libocr/commontypes"
15-
ocr2types "github.com/smartcontractkit/libocr/offchainreporting2/types"
1615
ocr3types "github.com/smartcontractkit/libocr/offchainreporting2plus/ocr3types"
1716

1817
"github.com/smartcontractkit/chainlink-common/pkg/capabilities"
@@ -61,17 +60,8 @@ const (
6160
SolDataIDOutputFieldName = SolanaEncoderKey("dataId")
6261
)
6362

64-
// secureMintReport represents the inner report structure, mimics the Report type in the SM plugin repo
65-
// TODO(gg): move this from chainlink-secure-mint to cl-common?
66-
type secureMintReport struct {
67-
ConfigDigest ocr2types.ConfigDigest `json:"configDigest"`
68-
SeqNr uint64 `json:"seqNr"`
69-
Block uint64 `json:"block"`
70-
Mintable *big.Int `json:"mintable"`
71-
}
72-
7363
type wrappedMintReport struct {
74-
Report secureMintReport `json:"report"`
64+
Report securemint.Report `json:"report"`
7565
SolanaAccountContext solana.AccountMetaSlice `json:"solanaAccountContext,omitempty"`
7666
}
7767

@@ -112,7 +102,7 @@ type evmReportFormatter struct {
112102

113103
func (f *evmReportFormatter) packReport(lggr logger.Logger, wreport *wrappedMintReport) (*values.Map, error) {
114104
report := wreport.Report
115-
smReportAsAnswer, err := packSecureMintReportIntoUint224ForEVM(report.Mintable, report.Block)
105+
smReportAsAnswer, err := packSecureMintReportIntoUint224ForEVM(report.Mintable, uint64(report.Block))
116106
if err != nil {
117107
return nil, fmt.Errorf("failed to pack secure mint report for evm into uint224: %w", err)
118108
}
@@ -151,7 +141,7 @@ type solanaReportFormatter struct {
151141
func (f *solanaReportFormatter) packReport(lggr logger.Logger, wreport *wrappedMintReport) (*values.Map, error) {
152142
report := wreport.Report
153143
// pack answer
154-
smReportAsAnswer, err := packSecureMintReportIntoU128ForSolana(report.Mintable, report.Block)
144+
smReportAsAnswer, err := packSecureMintReportIntoU128ForSolana(report.Mintable, uint64(report.Block))
155145
if err != nil {
156146
return nil, fmt.Errorf("failed to pack secure mint report for solana into u128: %w", err)
157147
}
@@ -335,9 +325,9 @@ func (a *SecureMintAggregator) extractAndValidateReports(lggr logger.Logger, obs
335325
foundMatchingChainSelector = true
336326

337327
// Deserialize the inner secureMintReport
338-
var innerReport secureMintReport
328+
var innerReport securemint.Report
339329
if err := json.Unmarshal(reportWithInfo.Report, &innerReport); err != nil {
340-
lggr.Errorw("failed to unmarshal secureMintReport", "err", err)
330+
lggr.Errorw("failed to unmarshal securemint.Report", "err", err)
341331
continue
342332
}
343333
report := &wrappedMintReport{

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) {
115115
{
116116
chainSelector: ethSepoliaChainSelector,
117117
seqNr: 10,
118-
report: &secureMintReport{
118+
report: &securemint.Report{
119119
ConfigDigest: ocr2types.ConfigDigest{0: 1, 31: 2},
120120
SeqNr: 10,
121121
Block: 1000,
@@ -125,7 +125,7 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) {
125125
{
126126
chainSelector: bnbTestnetChainSelector,
127127
seqNr: 10,
128-
report: &secureMintReport{
128+
report: &securemint.Report{
129129
ConfigDigest: ocr2types.ConfigDigest{0: 2, 31: 3},
130130
SeqNr: 10,
131131
Block: 1100,
@@ -147,7 +147,7 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) {
147147
{
148148
chainSelector: bnbTestnetChainSelector,
149149
seqNr: 10,
150-
report: &secureMintReport{
150+
report: &securemint.Report{
151151
ConfigDigest: ocr2types.ConfigDigest{0: 1, 31: 2},
152152
SeqNr: 10,
153153
Block: 1000,
@@ -180,7 +180,7 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) {
180180
{
181181
chainSelector: solDevnetChainSelector,
182182
seqNr: 10,
183-
report: &secureMintReport{
183+
report: &securemint.Report{
184184
ConfigDigest: ocr2types.ConfigDigest{0: 1, 31: 2},
185185
SeqNr: 10,
186186
Block: 1000,
@@ -191,7 +191,7 @@ func TestSecureMintAggregator_Aggregate(t *testing.T) {
191191
{
192192
chainSelector: bnbTestnetChainSelector,
193193
seqNr: 10,
194-
report: &secureMintReport{
194+
report: &securemint.Report{
195195
ConfigDigest: ocr2types.ConfigDigest{0: 2, 31: 3},
196196
SeqNr: 10,
197197
Block: 1100,
@@ -377,7 +377,7 @@ func TestSecureMintAggregatorConfig_Validation(t *testing.T) {
377377
type ocrTriggerEventData struct {
378378
chainSelector securemint.ChainSelector
379379
seqNr uint64
380-
report *secureMintReport
380+
report *securemint.Report
381381
accCtx solana.AccountMetaSlice
382382
}
383383

@@ -431,7 +431,7 @@ func createSecureMintObservations(t *testing.T, events []ocrTriggerEventData) ma
431431
return observations
432432
}
433433

434-
func createReportBytes(t *testing.T, report *secureMintReport) []byte {
434+
func createReportBytes(t *testing.T, report *securemint.Report) []byte {
435435
reportBytes, err := json.Marshal(report)
436436
require.NoError(t, err)
437437
return reportBytes

pkg/types/core/securemint/types.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,23 @@ import (
44
"context"
55
"math/big"
66
"time"
7+
8+
"github.com/smartcontractkit/libocr/offchainreporting2/types"
79
)
810

11+
// Report is the report that's created by the secure mint plugin.
12+
// It contains a mintable token amount at a certain block number for a specific chain.
13+
type Report struct {
14+
ConfigDigest types.ConfigDigest
15+
SeqNr uint64
16+
Block BlockNumber
17+
Mintable *big.Int
18+
19+
// The following fields might be useful in the future, but are not currently used
20+
// ReserveAmount *big.Int
21+
// ReserveTimestamp time.Time
22+
}
23+
924
// ExternalAdapter is the component used by the secure mint plugin to request various secure mint related data points.
1025
type ExternalAdapter interface {
1126
GetPayload(ctx context.Context, blocks Blocks) (ExternalAdapterPayload, error)

0 commit comments

Comments
 (0)