77
88 "github.com/smartcontractkit/chainlink-common/pkg/loop"
99 "github.com/smartcontractkit/chainlink-common/pkg/types"
10+ coretypes "github.com/smartcontractkit/chainlink-common/pkg/types/core"
1011 "github.com/smartcontractkit/chainlink/v2/core/config/env"
1112 "github.com/smartcontractkit/chainlink/v2/core/logger"
1213 "github.com/smartcontractkit/chainlink/v2/core/services"
@@ -16,9 +17,9 @@ import (
1617 sm_ea "github.com/smartcontractkit/chainlink/v2/core/services/ocr3/securemint/ea"
1718 "github.com/smartcontractkit/chainlink/v2/core/services/ocrcommon"
1819 "github.com/smartcontractkit/chainlink/v2/core/services/pipeline"
20+ evm_types "github.com/smartcontractkit/chainlink/v2/core/services/relay/evm/types"
1921 "github.com/smartcontractkit/chainlink/v2/plugins"
2022 libocr "github.com/smartcontractkit/libocr/offchainreporting2plus"
21- ocr2plus_types "github.com/smartcontractkit/libocr/offchainreporting2plus/types"
2223 "github.com/smartcontractkit/por_mock_ocr3plugin/por"
2324 sm_plugin "github.com/smartcontractkit/por_mock_ocr3plugin/por"
2425)
@@ -63,6 +64,7 @@ func NewSecureMintServices(ctx context.Context,
6364 lggr logger.Logger ,
6465 argsNoPlugin libocr.OCR3OracleArgs [por.ChainSelector ],
6566 cfg JobConfig ,
67+ capabilitiesRegistry coretypes.CapabilitiesRegistry ,
6668) (srvs []job.ServiceCtx , err error ) {
6769 // Parse and validate the secure mint plugin configuration
6870 secureMintPluginConfig , err := sm_plugin_config .Parse (jb .OCR2OracleSpec .PluginConfig .Bytes ())
@@ -76,6 +78,19 @@ func NewSecureMintServices(ctx context.Context,
7678
7779 spec := jb .OCR2OracleSpec
7880
81+ // Get relay config to extract don ID
82+ relayConfig , err := evm_types .NewRelayOpts (types.RelayArgs {
83+ ExternalJobID : jb .ExternalJobID ,
84+ JobID : jb .ID ,
85+ ContractID : spec .ContractID ,
86+ New : isNewlyCreatedJob ,
87+ RelayConfig : spec .RelayConfig .Bytes (),
88+ ProviderType : string (spec .PluginType ),
89+ }).RelayConfig ()
90+ if err != nil {
91+ return nil , fmt .Errorf ("failed to get relay config: %w" , err )
92+ }
93+
7994 // Create result run saver for pipeline execution
8095 runSaver := ocrcommon .NewResultRunSaver (
8196 pipelineRunner ,
@@ -101,8 +116,23 @@ func NewSecureMintServices(ctx context.Context,
101116 argsNoPlugin .ContractConfigTracker = configProvider .ContractConfigTracker ()
102117 argsNoPlugin .OffchainConfigDigester = configProvider .OffchainConfigDigester ()
103118
104- // Using a stub contract transmitter for testing purposes until DF-21404 is done
105- argsNoPlugin .ContractTransmitter = newStubContractTransmitter (lggr , ocr2plus_types .Account (spec .TransmitterID .String ))
119+ // Create the new secure mint transmitter with trigger capabilities
120+ transmitterConfig := TransmitterConfig {
121+ Logger : lggr ,
122+ CapabilitiesRegistry : capabilitiesRegistry ,
123+ DonID : relayConfig .LLODONID ,
124+ TriggerCapabilityName : secureMintPluginConfig .TriggerCapabilityName ,
125+ TriggerCapabilityVersion : secureMintPluginConfig .TriggerCapabilityVersion ,
126+ TriggerTickerMinResolutionMs : secureMintPluginConfig .TriggerTickerMinResolutionMs ,
127+ TriggerSendChannelBufferSize : secureMintPluginConfig .TriggerSendChannelBufferSize ,
128+ }
129+
130+ transmitter , err := transmitterConfig .NewTransmitter (spec .TransmitterID .String )
131+ if err != nil {
132+ return nil , fmt .Errorf ("failed to create secure mint transmitter: %w" , err )
133+ }
134+ argsNoPlugin .ContractTransmitter = transmitter
135+ srvs = append (srvs , transmitter )
106136
107137 abort := func () {
108138 if cerr := services .MultiCloser (srvs ).Close (); cerr != nil {
0 commit comments