Skip to content

Commit c0da446

Browse files
committed
Merge branch 'develop' into chore/skip-flaky-tests-may-12
2 parents fe9a17b + dd0e239 commit c0da446

File tree

19 files changed

+134
-76
lines changed

19 files changed

+134
-76
lines changed

core/scripts/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ require (
3232
github.com/prometheus/client_golang v1.22.0
3333
github.com/shopspring/decimal v1.4.0
3434
github.com/smartcontractkit/chainlink-automation v0.8.1
35-
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250506195202-6a3f20db41c6
35+
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250512155317-4615e5659ce4
3636
github.com/smartcontractkit/chainlink-common v0.7.1-0.20250509155341-2b5a5170a351
3737
github.com/smartcontractkit/chainlink-data-streams v0.1.1-0.20250417193446-eeb0a7d1e049
3838
github.com/smartcontractkit/chainlink-deployments-framework v0.0.15-0.20250508081139-ee24199564bd
@@ -382,7 +382,7 @@ require (
382382
github.com/smartcontractkit/ccip-owner-contracts v0.1.0 // indirect
383383
github.com/smartcontractkit/chain-selectors v1.0.55 // indirect
384384
github.com/smartcontractkit/chainlink-aptos v0.0.0-20250414155853-651b4e583ee9 // indirect
385-
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250508225633-13a092427990 // indirect
385+
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250512155317-4615e5659ce4 // indirect
386386
github.com/smartcontractkit/chainlink-feeds v0.1.2-0.20250227211209-7cd000095135 // indirect
387387
github.com/smartcontractkit/chainlink-framework/chains v0.0.0-20250509160340-4f4a9265e657 // indirect
388388
github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20250502210357-2df484128afa // indirect

core/scripts/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1260,10 +1260,10 @@ github.com/smartcontractkit/chainlink-aptos v0.0.0-20250414155853-651b4e583ee9 h
12601260
github.com/smartcontractkit/chainlink-aptos v0.0.0-20250414155853-651b4e583ee9/go.mod h1:Sq/ddMOYch6ZuAnW2k5u9V4+TlGKFzuHQnTM8JXEU+g=
12611261
github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU=
12621262
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
1263-
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250506195202-6a3f20db41c6 h1:9EAwDMu3nvLsgzC4kv58qvFP3OjWivYOxA21/QBsUdE=
1264-
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250506195202-6a3f20db41c6/go.mod h1:Jb05WL6lj5H89XGcaaOinxTf4Gdj+vXO4TcUhqTgqIM=
1265-
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250508225633-13a092427990 h1:jswzyxv1bIt9gjmEaMPyTRDVMnOjH+AZEFJfHP94sdY=
1266-
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250508225633-13a092427990/go.mod h1:k3/Z6AvwurPUlfuDFEonRbkkiTSgNSrtVNhJEWNlUZA=
1263+
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250512155317-4615e5659ce4 h1:9IJkq8DBvT/SawwnnnNqAMdOZ/n5MmcXTR1fnmd84pk=
1264+
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250512155317-4615e5659ce4/go.mod h1:Jb05WL6lj5H89XGcaaOinxTf4Gdj+vXO4TcUhqTgqIM=
1265+
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250512155317-4615e5659ce4 h1:ZopJiCUcshj79A3tjh0f5cncXEjlfp7QOPWFppb4gxM=
1266+
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250512155317-4615e5659ce4/go.mod h1:k3/Z6AvwurPUlfuDFEonRbkkiTSgNSrtVNhJEWNlUZA=
12671267
github.com/smartcontractkit/chainlink-common v0.7.1-0.20250509155341-2b5a5170a351 h1:luR7oS01qzkw8anxnSYaXurzKzMdgl5ROKFm1/I6llY=
12681268
github.com/smartcontractkit/chainlink-common v0.7.1-0.20250509155341-2b5a5170a351/go.mod h1:uNF6+noody47ZdmRwymDZAnQ7eKTXLzMKvl41LA63lo=
12691269
github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw=

core/services/workflows/engine.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -157,13 +157,13 @@ func (e *Engine) Start(_ context.Context) error {
157157
// validate if adding another workflow would exceed either the global or per owner engine count limit
158158
ownerAllow, globalAllow := e.workflowLimits.Allow(e.workflow.owner)
159159
if !globalAllow {
160-
e.metrics.with(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowOwner, e.workflow.owner).incrementWorkflowLimitGlobalCounter(ctx)
160+
e.metrics.incrementWorkflowLimitGlobalCounter(ctx)
161161
logCustMsg(ctx, e.cma.With(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowOwner, e.workflow.owner), types.ErrGlobalWorkflowCountLimitReached.Error(), e.logger)
162162
return types.ErrGlobalWorkflowCountLimitReached
163163
}
164164

165165
if !ownerAllow {
166-
e.metrics.with(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowOwner, e.workflow.owner).incrementWorkflowLimitPerOwnerCounter(ctx)
166+
e.metrics.incrementWorkflowLimitPerOwnerCounter(ctx)
167167
logCustMsg(ctx, e.cma.With(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowOwner, e.workflow.owner), types.ErrPerOwnerWorkflowCountLimitReached.Error(), e.logger)
168168
return types.ErrPerOwnerWorkflowCountLimitReached
169169
}
@@ -649,13 +649,13 @@ func (e *Engine) finishExecution(ctx context.Context, cma custmsg.MessageEmitter
649649
if exists {
650650
// send metering report to beholder
651651
if err = events.EmitMeteringReport(ctx, cma, report.Message()); err != nil {
652-
e.metrics.with(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowExecutionID, executionID).incrementWorkflowMissingMeteringReport(ctx)
652+
e.metrics.incrementWorkflowMissingMeteringReport(ctx)
653653
l.Warn(fmt.Sprintf("metering report send to beholder error %s", err))
654654
}
655655

656656
// send metering report to billing if billing client is not nil
657657
if err = e.sendMeteringReportToBilling(ctx, report, e.workflow.id, executionID); err != nil {
658-
e.metrics.with(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowExecutionID, executionID).incrementWorkflowMissingMeteringReport(ctx)
658+
e.metrics.incrementWorkflowMissingMeteringReport(ctx)
659659
l.Warn(fmt.Sprintf("metering report send to billing error %s", err))
660660
}
661661
}
@@ -735,14 +735,14 @@ func (e *Engine) worker(ctx context.Context) {
735735
e.onRateLimit(executionID)
736736
e.logger.With(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowOwner, e.workflow.owner, platform.KeyWorkflowExecutionID, executionID).Errorf("failed to start execution: per sender rate limit exceeded")
737737
logCustMsg(ctx, e.cma.With(platform.KeyCapabilityID, te.ID), "failed to start execution: per sender rate limit exceeded", e.logger)
738-
e.metrics.with(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowExecutionID, executionID, platform.KeyTriggerID, te.ID, platform.KeyWorkflowOwner, e.workflow.owner).incrementWorkflowExecutionRateLimitPerUserCounter(ctx)
738+
e.metrics.with(platform.KeyTriggerID, te.ID).incrementWorkflowExecutionRateLimitPerUserCounter(ctx)
739739
continue
740740
}
741741
if !globalAllowed {
742742
e.onRateLimit(executionID)
743743
e.logger.With(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowOwner, e.workflow.owner, platform.KeyWorkflowExecutionID, executionID).Errorf("failed to start execution: global rate limit exceeded")
744744
logCustMsg(ctx, e.cma.With(platform.KeyCapabilityID, te.ID), "failed to start execution: global rate limit exceeded", e.logger)
745-
e.metrics.with(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowExecutionID, executionID, platform.KeyTriggerID, te.ID, platform.KeyWorkflowOwner, e.workflow.owner).incrementWorkflowExecutionRateLimitGlobalCounter(ctx)
745+
e.metrics.with(platform.KeyTriggerID, te.ID).incrementWorkflowExecutionRateLimitGlobalCounter(ctx)
746746
continue
747747
}
748748

@@ -830,9 +830,9 @@ func (e *Engine) workerForStepRequest(ctx context.Context, msg stepRequest) {
830830
if err := rpt.SetStep(MeteringReportStepRef(stepState.Ref), meteringSteps); err != nil {
831831
l.Error(fmt.Sprintf("failed to set metering report step for ref %s: %s", stepState.Ref, err))
832832
}
833-
e.metrics.with(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowExecutionID, msg.state.ExecutionID).incrementWorkflowMissingMeteringReport(ctx)
833+
e.metrics.with(platform.KeyWorkflowID, e.workflow.id).incrementWorkflowMissingMeteringReport(ctx)
834834
} else {
835-
e.metrics.with(platform.KeyWorkflowID, e.workflow.id, platform.KeyWorkflowExecutionID, msg.state.ExecutionID).incrementWorkflowMissingMeteringReport(ctx)
835+
e.metrics.with(platform.KeyWorkflowID, e.workflow.id).incrementWorkflowMissingMeteringReport(ctx)
836836
// TODO: to be bumped to error if all capabilities must implement metering
837837
l.Warnf("no metering report found for %v", msg.state.ExecutionID)
838838
}

deployment/ccip/changeset/globals/config.go

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package globals
22

33
import (
4+
"fmt"
45
"time"
56

7+
"dario.cat/mergo"
8+
69
"github.com/smartcontractkit/chainlink-ccip/pluginconfig"
710
"github.com/smartcontractkit/chainlink-common/pkg/config"
811
"github.com/smartcontractkit/chainlink-common/pkg/merklemulti"
@@ -15,8 +18,8 @@ const (
1518
ConfigTypeCandidate ConfigType = "candidate"
1619
// ========= Changeset Defaults =========
1720
PermissionLessExecutionThreshold = 1 * time.Hour
18-
RemoteGasPriceBatchWriteFrequency = 30 * time.Minute
19-
TokenPriceBatchWriteFrequency = 30 * time.Minute
21+
RemoteGasPriceBatchWriteFrequency = 20 * time.Minute
22+
TokenPriceBatchWriteFrequency = 2 * time.Hour
2023
// Building batches with 6.5m and transmit with 8m to account for overhead.
2124
BatchGasLimit = 6_500_000
2225
InflightCacheExpiry = 1 * time.Minute
@@ -89,4 +92,20 @@ var (
8992
// Remaining fields cannot be statically set:
9093
// TokenDataObservers: , // Must be configured in CLD
9194
}
95+
96+
DefaultCommitOffChainCfgForEth = withCommitOffchainConfigOverrides(
97+
DefaultCommitOffChainCfg,
98+
pluginconfig.CommitOffchainConfig{
99+
RemoteGasPriceBatchWriteFrequency: *config.MustNewDuration(2 * time.Hour),
100+
TokenPriceBatchWriteFrequency: *config.MustNewDuration(12 * time.Hour),
101+
},
102+
)
92103
)
104+
105+
func withCommitOffchainConfigOverrides(base pluginconfig.CommitOffchainConfig, overrides pluginconfig.CommitOffchainConfig) pluginconfig.CommitOffchainConfig {
106+
outcome := base
107+
if err := mergo.Merge(&outcome, overrides, mergo.WithOverride); err != nil {
108+
panic(fmt.Sprintf("error while building an OCR config %v", err))
109+
}
110+
return outcome
111+
}

deployment/ccip/changeset/solana/cs_token_pool.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -987,8 +987,11 @@ func SetPool(e deployment.Environment, cfg SetPoolConfig) (cldf.ChangesetOutput,
987987
routerProgramAddress, routerConfigPDA, _ := chainState.GetRouterInfo()
988988
solRouter.SetProgramID(routerProgramAddress)
989989
tokenAdminRegistryPDA, _, _ := solState.FindTokenAdminRegistryPDA(tokenPubKey, routerProgramAddress)
990-
lookupTablePubKey := chainState.TokenPoolLookupTable[tokenPubKey][*cfg.PoolType][cfg.Metadata]
991-
990+
metadata := ccipChangeset.CLLMetadata
991+
if cfg.Metadata != "" {
992+
metadata = cfg.Metadata
993+
}
994+
lookupTablePubKey := chainState.TokenPoolLookupTable[tokenPubKey][*cfg.PoolType][metadata]
992995
routerUsingMCMS := ccipChangeset.IsSolanaProgramOwnedByTimelock(
993996
&e,
994997
chain,

deployment/ccip/changeset/v1_6/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ var (
2121

2222
DefaultOCRParamsForCommitForETH = CCIPOCRParams{
2323
OCRParameters: globals.CommitOCRParamsForEthereum,
24-
CommitOffChainConfig: &globals.DefaultCommitOffChainCfg,
24+
CommitOffChainConfig: &globals.DefaultCommitOffChainCfgForEth,
2525
}
2626

2727
DefaultOCRParamsForExecForNonETH = CCIPOCRParams{

deployment/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ require (
3232
github.com/smartcontractkit/ccip-owner-contracts v0.1.0
3333
github.com/smartcontractkit/chain-selectors v1.0.55
3434
github.com/smartcontractkit/chainlink-aptos v0.0.0-20250414155853-651b4e583ee9
35-
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250506195202-6a3f20db41c6
36-
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250508225633-13a092427990
35+
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250512155317-4615e5659ce4
36+
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250512155317-4615e5659ce4
3737
github.com/smartcontractkit/chainlink-common v0.7.1-0.20250509155341-2b5a5170a351
3838
github.com/smartcontractkit/chainlink-deployments-framework v0.0.15-0.20250508081139-ee24199564bd
3939
github.com/smartcontractkit/chainlink-evm v0.0.0-20250509162544-26e3267013ca

deployment/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,10 +1236,10 @@ github.com/smartcontractkit/chainlink-aptos v0.0.0-20250414155853-651b4e583ee9 h
12361236
github.com/smartcontractkit/chainlink-aptos v0.0.0-20250414155853-651b4e583ee9/go.mod h1:Sq/ddMOYch6ZuAnW2k5u9V4+TlGKFzuHQnTM8JXEU+g=
12371237
github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgBc2xpDKBco/Q4h4ydl6+UUU=
12381238
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
1239-
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250506195202-6a3f20db41c6 h1:9EAwDMu3nvLsgzC4kv58qvFP3OjWivYOxA21/QBsUdE=
1240-
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250506195202-6a3f20db41c6/go.mod h1:Jb05WL6lj5H89XGcaaOinxTf4Gdj+vXO4TcUhqTgqIM=
1241-
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250508225633-13a092427990 h1:jswzyxv1bIt9gjmEaMPyTRDVMnOjH+AZEFJfHP94sdY=
1242-
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250508225633-13a092427990/go.mod h1:k3/Z6AvwurPUlfuDFEonRbkkiTSgNSrtVNhJEWNlUZA=
1239+
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250512155317-4615e5659ce4 h1:9IJkq8DBvT/SawwnnnNqAMdOZ/n5MmcXTR1fnmd84pk=
1240+
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250512155317-4615e5659ce4/go.mod h1:Jb05WL6lj5H89XGcaaOinxTf4Gdj+vXO4TcUhqTgqIM=
1241+
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250512155317-4615e5659ce4 h1:ZopJiCUcshj79A3tjh0f5cncXEjlfp7QOPWFppb4gxM=
1242+
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250512155317-4615e5659ce4/go.mod h1:k3/Z6AvwurPUlfuDFEonRbkkiTSgNSrtVNhJEWNlUZA=
12431243
github.com/smartcontractkit/chainlink-common v0.7.1-0.20250509155341-2b5a5170a351 h1:luR7oS01qzkw8anxnSYaXurzKzMdgl5ROKFm1/I6llY=
12441244
github.com/smartcontractkit/chainlink-common v0.7.1-0.20250509155341-2b5a5170a351/go.mod h1:uNF6+noody47ZdmRwymDZAnQ7eKTXLzMKvl41LA63lo=
12451245
github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw=

0 commit comments

Comments
 (0)