@@ -12,13 +12,13 @@ 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"
1918 "github.com/smartcontractkit/chainlink-common/pkg/capabilities/consensus/ocr3/types"
2019 "github.com/smartcontractkit/chainlink-common/pkg/logger"
2120 "github.com/smartcontractkit/chainlink-common/pkg/types/chains/solana"
21+ "github.com/smartcontractkit/chainlink-common/pkg/types/core/securemint"
2222 "github.com/smartcontractkit/chainlink-protos/cre/go/values"
2323)
2424
@@ -60,28 +60,17 @@ const (
6060 SolDataIDOutputFieldName = SolanaEncoderKey ("dataId" )
6161)
6262
63- // secureMintReport represents the inner report structure, mimics the Report type in the SM plugin repo
64- type secureMintReport struct {
65- ConfigDigest ocr2types.ConfigDigest `json:"configDigest"`
66- SeqNr uint64 `json:"seqNr"`
67- Block uint64 `json:"block"`
68- Mintable * big.Int `json:"mintable"`
69- }
70-
7163type wrappedMintReport struct {
72- Report secureMintReport `json:"report"`
64+ Report securemint. Report `json:"report"`
7365 SolanaAccountContext solana.AccountMetaSlice `json:"solanaAccountContext,omitempty"`
7466}
7567
76- // chainSelector represents the chain selector type, mimics the ChainSelector type in the SM plugin repo
77- type chainSelector uint64
78-
7968// SecureMintAggregatorConfig is the config for the SecureMint aggregator.
8069// This aggregator is designed to pick out reports for a specific chain selector.
8170type SecureMintAggregatorConfig struct {
8271 // TargetChainSelector is the chain selector to look for
83- TargetChainSelector chainSelector `mapstructure:"targetChainSelector"`
84- DataID [16 ]byte `mapstructure:"dataID"`
72+ TargetChainSelector securemint. ChainSelector `mapstructure:"targetChainSelector"`
73+ DataID [16 ]byte `mapstructure:"dataID"`
8574}
8675
8776// ToMap converts the SecureMintAggregatorConfig to a values.Map, which is suitable for the
@@ -107,13 +96,13 @@ type chainReportFormatter interface {
10796}
10897
10998type evmReportFormatter struct {
110- targetChainSelector chainSelector
99+ targetChainSelector securemint. ChainSelector
111100 dataID [16 ]byte
112101}
113102
114103func (f * evmReportFormatter ) packReport (lggr logger.Logger , wreport * wrappedMintReport ) (* values.Map , error ) {
115104 report := wreport .Report
116- smReportAsAnswer , err := packSecureMintReportIntoUint224ForEVM (report .Mintable , report .Block )
105+ smReportAsAnswer , err := packSecureMintReportIntoUint224ForEVM (report .Mintable , uint64 ( report .Block ) )
117106 if err != nil {
118107 return nil , fmt .Errorf ("failed to pack secure mint report for evm into uint224: %w" , err )
119108 }
@@ -140,19 +129,19 @@ func (f *evmReportFormatter) packReport(lggr logger.Logger, wreport *wrappedMint
140129 return wrappedReport , nil
141130}
142131
143- func newEVMReportFormatter (chainSelector chainSelector , config SecureMintAggregatorConfig ) chainReportFormatter {
132+ func newEVMReportFormatter (chainSelector securemint. ChainSelector , config SecureMintAggregatorConfig ) chainReportFormatter {
144133 return & evmReportFormatter {targetChainSelector : chainSelector , dataID : config .DataID }
145134}
146135
147136type solanaReportFormatter struct {
148- targetChainSelector chainSelector
137+ targetChainSelector securemint. ChainSelector
149138 dataID [16 ]byte
150139}
151140
152141func (f * solanaReportFormatter ) packReport (lggr logger.Logger , wreport * wrappedMintReport ) (* values.Map , error ) {
153142 report := wreport .Report
154143 // pack answer
155- smReportAsAnswer , err := packSecureMintReportIntoU128ForSolana (report .Mintable , report .Block )
144+ smReportAsAnswer , err := packSecureMintReportIntoU128ForSolana (report .Mintable , uint64 ( report .Block ) )
156145 if err != nil {
157146 return nil , fmt .Errorf ("failed to pack secure mint report for solana into u128: %w" , err )
158147 }
@@ -191,24 +180,24 @@ func (f *solanaReportFormatter) packReport(lggr logger.Logger, wreport *wrappedM
191180 return wrappedReport , nil
192181}
193182
194- func newSolanaReportFormatter (chainSelector chainSelector , config SecureMintAggregatorConfig ) chainReportFormatter {
183+ func newSolanaReportFormatter (chainSelector securemint. ChainSelector , config SecureMintAggregatorConfig ) chainReportFormatter {
195184 return & solanaReportFormatter {targetChainSelector : chainSelector , dataID : config .DataID }
196185}
197186
198187// chainReportFormatterBuilder is a function that returns a chainReportFormatter for a given chain selector and config
199- type chainReportFormatterBuilder func (chainSelector chainSelector , config SecureMintAggregatorConfig ) chainReportFormatter
188+ type chainReportFormatterBuilder func (chainSelector securemint. ChainSelector , config SecureMintAggregatorConfig ) chainReportFormatter
200189
201190type formatterFactory struct {
202- builders map [chainSelector ]chainReportFormatterBuilder
191+ builders map [securemint. ChainSelector ]chainReportFormatterBuilder
203192}
204193
205194// register registers a new chain report formatter builder for a given chain selector
206- func (r * formatterFactory ) register (chSel chainSelector , builder chainReportFormatterBuilder ) {
195+ func (r * formatterFactory ) register (chSel securemint. ChainSelector , builder chainReportFormatterBuilder ) {
207196 r .builders [chSel ] = builder
208197}
209198
210199// get uses a chain report formatter builder to create a chain report formatter
211- func (r * formatterFactory ) get (chSel chainSelector , config SecureMintAggregatorConfig ) (chainReportFormatter , error ) {
200+ func (r * formatterFactory ) get (chSel securemint. ChainSelector , config SecureMintAggregatorConfig ) (chainReportFormatter , error ) {
212201 b , ok := r .builders [chSel ]
213202 if ! ok {
214203 return nil , fmt .Errorf ("no formatter registered for chain selector: %d" , chSel )
@@ -220,17 +209,17 @@ func (r *formatterFactory) get(chSel chainSelector, config SecureMintAggregatorC
220209// newFormatterFactory collects all chain report formatters per chain family so that they can be used to pack reports for different chains
221210func newFormatterFactory () * formatterFactory {
222211 r := formatterFactory {
223- builders : map [chainSelector ]chainReportFormatterBuilder {},
212+ builders : map [securemint. ChainSelector ]chainReportFormatterBuilder {},
224213 }
225214
226215 // EVM
227216 for _ , selector := range chainselectors .EvmChainIdToChainSelector () {
228- r .register (chainSelector (selector ), newEVMReportFormatter )
217+ r .register (securemint . ChainSelector (selector ), newEVMReportFormatter )
229218 }
230219
231220 // Solana
232221 for _ , selector := range chainselectors .SolanaChainIdToChainSelector () {
233- r .register (chainSelector (selector ), newSolanaReportFormatter )
222+ r .register (securemint . ChainSelector (selector ), newSolanaReportFormatter )
234223 }
235224
236225 return & r
@@ -320,7 +309,7 @@ func (a *SecureMintAggregator) extractAndValidateReports(lggr logger.Logger, obs
320309 lggr .Debugw ("Obs with context" , "obs with ctx" , obsWithContext )
321310
322311 // Deserialize the ReportWithInfo
323- var reportWithInfo ocr3types.ReportWithInfo [chainSelector ]
312+ var reportWithInfo ocr3types.ReportWithInfo [securemint. ChainSelector ]
324313 if err := json .Unmarshal (obsWithContext .Event .Report , & reportWithInfo ); err != nil {
325314 lggr .Errorw ("failed to unmarshal ReportWithInfo" , "err" , err )
326315 continue
@@ -336,9 +325,9 @@ func (a *SecureMintAggregator) extractAndValidateReports(lggr logger.Logger, obs
336325 foundMatchingChainSelector = true
337326
338327 // Deserialize the inner secureMintReport
339- var innerReport secureMintReport
328+ var innerReport securemint. Report
340329 if err := json .Unmarshal (reportWithInfo .Report , & innerReport ); err != nil {
341- lggr .Errorw ("failed to unmarshal secureMintReport " , "err" , err )
330+ lggr .Errorw ("failed to unmarshal securemint.Report " , "err" , err )
342331 continue
343332 }
344333 report := & wrappedMintReport {
@@ -432,7 +421,7 @@ func parseSecureMintConfig(config values.Map) (SecureMintAggregatorConfig, error
432421 }
433422
434423 parsedConfig := SecureMintAggregatorConfig {
435- TargetChainSelector : chainSelector (sel ),
424+ TargetChainSelector : securemint . ChainSelector (sel ),
436425 DataID : [16 ]byte (decodedDataID ),
437426 }
438427
0 commit comments