Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions ccv/chains/evm/deployment/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ go 1.25.5
// Taken from CLDF go.mod: https://github.com/smartcontractkit/chainlink-deployments-framework/blob/main/go.mod
replace github.com/fbsobreira/gotron-sdk => github.com/smartcontractkit/chainlink-tron/relayer/gotron-sdk v0.0.4

replace github.com/smartcontractkit/chainlink-ccip/deployment => ../../../../deployment

replace github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment => ../../../../chains/evm/deployment

require (
github.com/Masterminds/semver/v3 v3.4.0
github.com/ethereum/go-ethereum v1.16.8
Expand Down Expand Up @@ -203,10 +207,12 @@ require (
github.com/shopspring/decimal v1.4.0 // indirect
github.com/sigurn/crc16 v0.0.0-20211026045750-20ab5afb07e3 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/smartcontractkit/ccip-contract-examples/chains/evm v0.0.0-20250826190403-aed7f5f33cde // indirect
github.com/smartcontractkit/chainlink-aptos v0.0.0-20251024142440-51f2ad2652a2 // indirect
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260121163256-85accaf3d28d // indirect
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250908144012-8184001834b5 // indirect
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 // indirect
github.com/smartcontractkit/chainlink-evm v0.3.3 // indirect
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9 // indirect
github.com/smartcontractkit/chainlink-protos/job-distributor v0.17.0 // indirect
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b // indirect
Expand Down
12 changes: 6 additions & 6 deletions ccv/chains/evm/deployment/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -584,8 +584,8 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8=
github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc=
github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
Expand Down Expand Up @@ -674,6 +674,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartcontractkit/ccip-contract-examples/chains/evm v0.0.0-20250826190403-aed7f5f33cde h1:dMUf1YOX5hdUkQDgnA/A/sWVoMaQWGB+EYBPuYffYIA=
github.com/smartcontractkit/ccip-contract-examples/chains/evm v0.0.0-20250826190403-aed7f5f33cde/go.mod h1:SYc+BvAALmwsx2zMJIAczIyVNwsiXRIBXmejcTORxGE=
github.com/smartcontractkit/chain-selectors v1.0.89 h1:L9oWZGqQXWyTPnC6ODXgu3b0DFyLmJ9eHv+uJrE9IZY=
github.com/smartcontractkit/chain-selectors v1.0.89/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w=
github.com/smartcontractkit/chainlink-aptos v0.0.0-20251024142440-51f2ad2652a2 h1:vGdeMwHO3ow88HvxfhA4DDPYNY0X9jmdux7L83UF/W8=
Expand All @@ -682,20 +684,18 @@ github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20260205102529-e2d2cc
github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20260205102529-e2d2cca4a4f6/go.mod h1:ZtZ+wtqU9JsJEmbiCsavVVEbhywpgMF7q/IpD9Eaq48=
github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm v0.0.0-20260205102529-e2d2cca4a4f6 h1:5pViFgmgqP6SggLUifgELyk8ijyjAQuOlVGGWtqB8AM=
github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm v0.0.0-20260205102529-e2d2cca4a4f6/go.mod h1:Gl35ExaFLinqVhp50+Yq1GnMuHb3fnDtZUFPCtcfV3M=
github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment v0.0.0-20260205102529-e2d2cca4a4f6 h1:9u0qiWstNZwP+BhohlUqSPGT85YyPA1Pi5kpVjHK2LA=
github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment v0.0.0-20260205102529-e2d2cca4a4f6/go.mod h1:4KI4yNG9CgPzWfYocMOnaCYsE9ZAa0HAbTJ58j/7xr4=
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260121163256-85accaf3d28d h1:xdFpzbApEMz4Rojg2Y2OjFlrh0wu7eB10V2tSZGW5y8=
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260121163256-85accaf3d28d/go.mod h1:bgmqE7x9xwmIVr8PqLbC0M5iPm4AV2DBl596lO6S5Sw=
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250908144012-8184001834b5 h1:QhcYGEhRLInr1/qh/3RJiVdvJ0nxBHKhPe65WLbSBnU=
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250908144012-8184001834b5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg=
github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260205102529-e2d2cca4a4f6 h1:zAza2gQ2gK3JcSPDvMz0+2sEq/TZBlnFqU0itdeMD1k=
github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260205102529-e2d2cca4a4f6/go.mod h1:gUbichNQBqk+fBF2aV40ZkzFmAJ8SygH6DEPd3cJkQE=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20260114142648-bd9e1b483e96 h1:ZnBBOLyMLJjgQQm7WRJl8sA9Q2RhwagJ+WR62VnA3MY=
github.com/smartcontractkit/chainlink-common v0.9.6-0.20260114142648-bd9e1b483e96/go.mod h1:DAwaVSiQMgAsCjHa8nOnIAM9GixuIQWsgEZFGpf3JxE=
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg=
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY=
github.com/smartcontractkit/chainlink-deployments-framework v0.74.2 h1:OP4TAlIz8gz0iokYCBleQlpSoxXUBhqUPyV8Xfr34ek=
github.com/smartcontractkit/chainlink-deployments-framework v0.74.2/go.mod h1:YHsMLM5bS9rhvXssmsJtvhmF4tDAm/kdmQi+ws/PLEw=
github.com/smartcontractkit/chainlink-evm v0.3.3 h1:JqwyJEtnNEUaoQQPoOBTT4sn2lpdIZHtf0Hr0M60YDw=
github.com/smartcontractkit/chainlink-evm v0.3.3/go.mod h1:q0ZBvaoisNaqC8NcMYWNPTjee88nQktDEeJMQHq3hVI=
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd h1:sK+pK4epQp20yQ7XztwrVgkTkRAr4FY+TvEegW8RuQk=
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd/go.mod h1:7Jlt72+V9891y3LnGwHzmQwt9tfEGYryRKiGlQHo/o8=
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9 h1:QRWXJusIj/IRY5Pl3JclNvDre0cZPd/5NbILwc4RV2M=
Expand Down
55 changes: 55 additions & 0 deletions ccv/chains/evm/deployment/v1_7_0/adapters/feequoterupdater.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package adapters

import (
"fmt"

"github.com/Masterminds/semver/v3"
cldf_chain "github.com/smartcontractkit/chainlink-deployments-framework/chain"
cldf_ops "github.com/smartcontractkit/chainlink-deployments-framework/operations"

sequence1_7 "github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm/deployment/v1_7_0/sequences"
"github.com/smartcontractkit/chainlink-ccip/deployment/deploy"
"github.com/smartcontractkit/chainlink-ccip/deployment/utils/sequences"
)

type FeeQuoterUpdater struct{}

func (fqu FeeQuoterUpdater) SequenceFeeQuoterInputCreation() *cldf_ops.Sequence[deploy.FeeQuoterUpdateInput, sequence1_7.FeeQuoterUpdate, cldf_chain.BlockChains] {
return cldf_ops.NewSequence(
"fee-quoter-updater:input-creation",
semver.MustParse("1.7.0"),
"Creates FeeQuoterUpdateInput for FeeQuoter update sequence",
func(b cldf_ops.Bundle, chains cldf_chain.BlockChains, input deploy.FeeQuoterUpdateInput) (output sequence1_7.FeeQuoterUpdate, err error) {
chain, ok := chains.EVMChains()[input.ChainSelector]
if !ok {
return sequence1_7.FeeQuoterUpdate{}, fmt.Errorf("chain with selector %d not found in environment", input.ChainSelector)
}
switch input.ImportConfigFromVersion {
case semver.MustParse("1.6.0"):
report, err := cldf_ops.ExecuteSequence(b, sequence1_7.CreateFeeQuoterUpdateInputFromV160, chain, input)
if err != nil {
return sequence1_7.FeeQuoterUpdate{}, fmt.Errorf("failed to create FeeQuoterUpdateInput from v1.6.0: %w", err)
}
output = report.Output
output.ChainSelector = input.ChainSelector
output.ExistingAddresses = input.ExistingAddresses
return output, nil
case semver.MustParse("1.5.0"):
report, err := cldf_ops.ExecuteSequence(b, sequence1_7.CreateFeeQuoterUpdateInputFromV150, chain, input)
if err != nil {
return sequence1_7.FeeQuoterUpdate{}, fmt.Errorf("failed to create FeeQuoterUpdateInput from v1.5.0: %w", err)
}
output = report.Output
output.ChainSelector = input.ChainSelector
output.ExistingAddresses = input.ExistingAddresses
return output, nil
default:
return sequence1_7.FeeQuoterUpdate{}, fmt.Errorf("unsupported ImportFeeQuoterConfigFromVersion: %s", input.ImportConfigFromVersion.String())
}
},
)
}

func (fqu FeeQuoterUpdater) SequenceDeployOrUpdateFeeQuoter() *cldf_ops.Sequence[sequence1_7.FeeQuoterUpdate, sequences.OnChainOutput, cldf_chain.BlockChains] {
return sequence1_7.SequenceFeeQuoterUpdate
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package changesets
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm/gobindings/generated/latest/fee_quoter"
cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment"

"github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract"
"github.com/smartcontractkit/chainlink-ccip/deployment/v1_7_0/adapters"
cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment"
)

var ContractType cldf_deployment.ContractType = "FeeQuoter"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# SequenceFeeQuoterInputCreation Mapping Document

## From v1.6.0 (`CreateFeeQuoterUpdateInputFromV160`)

**Source Contract**: FeeQuoter v1.6.3
**Target Contract**: FeeQuoter v1.7.0

### Field Mapping
| Target Field (FeeQuoter v1.7.0) | Source Field (FeeQuoter v1.6.3) | Notes |
|----------------------------------|----------------------------------|-------|
| `ConstructorArgs.StaticConfig.LinkToken` | `StaticCfg.LinkToken` | Direct copy |
| `ConstructorArgs.StaticConfig.MaxFeeJuelsPerMsg` | `StaticCfg.MaxFeeJuelsPerMsg` | Direct copy |
| `ConstructorArgs.PriceUpdaters` or `AuthorizedCallerUpdates.AddedCallers` | `PriceUpdaters` | Depends on new deployment vs update |
| `DestChainConfig.IsEnabled` | `RemoteChainCfgs[chain].DestChainCfg.IsEnabled` | Direct copy |
| `DestChainConfig.MaxDataBytes` | `RemoteChainCfgs[chain].DestChainCfg.MaxDataBytes` | Direct copy |
| `DestChainConfig.MaxPerMsgGasLimit` | `RemoteChainCfgs[chain].DestChainCfg.MaxPerMsgGasLimit` | Direct copy |
| `DestChainConfig.DestGasOverhead` | `RemoteChainCfgs[chain].DestChainCfg.DestGasOverhead` | Direct copy |
| `DestChainConfig.DestGasPerPayloadByteBase` | `RemoteChainCfgs[chain].DestChainCfg.DestGasPerPayloadByteBase` | Direct copy |
| `DestChainConfig.ChainFamilySelector` | `RemoteChainCfgs[chain].DestChainCfg.ChainFamilySelector` | Direct copy |
| `DestChainConfig.DefaultTokenFeeUSDCents` | `RemoteChainCfgs[chain].DestChainCfg.DefaultTokenFeeUSDCents` | Direct copy |
| `DestChainConfig.DefaultTokenDestGasOverhead` | `RemoteChainCfgs[chain].DestChainCfg.DefaultTokenDestGasOverhead` | Direct copy |
| `DestChainConfig.DefaultTxGasLimit` | `RemoteChainCfgs[chain].DestChainCfg.DefaultTxGasLimit` | Direct copy |
| `DestChainConfig.NetworkFeeUSDCents` | `RemoteChainCfgs[chain].DestChainCfg.NetworkFeeUSDCents` | Cast from `uint8` to `uint16` |
| `DestChainConfig.LinkFeeMultiplierPercent` | N/A | Hardcoded to `90` |
| `TokenTransferFeeConfig.FeeUSDCents` | `RemoteChainCfgs[chain].TokenTransferFeeCfgs[token].MinFeeUSDCents` | Direct copy |
| `TokenTransferFeeConfig.DestGasOverhead` | `RemoteChainCfgs[chain].TokenTransferFeeCfgs[token].DestGasOverhead` | Direct copy |
| `TokenTransferFeeConfig.DestBytesOverhead` | `RemoteChainCfgs[chain].TokenTransferFeeCfgs[token].DestBytesOverhead` | Direct copy |
| `TokenTransferFeeConfig.IsEnabled` | `RemoteChainCfgs[chain].TokenTransferFeeCfgs[token].IsEnabled` | Direct copy |

## From v1.5.0 (`CreateFeeQuoterUpdateInputFromV150`)

**Source Contract**: EVM2EVMOnRamp v1.5.0
**Target Contract**: FeeQuoter v1.7.0

### Field Mapping
| Target Field (FeeQuoter v1.7.0) | Source Field (EVM2EVMOnRamp v1.5.0) | Notes |
|----------------------------------|--------------------------------------|-------|
| `ConstructorArgs.StaticConfig.LinkToken` | `OnRampCfg.StaticConfig.LinkToken` | From first OnRamp (if empty) |
| `ConstructorArgs.StaticConfig.MaxFeeJuelsPerMsg` | `OnRampCfg.StaticConfig.MaxNopFeesJuels` | From first OnRamp (if empty) |
| `ConstructorArgs.PriceUpdaters` | N/A | Empty array `[]` (TODO: what to do with price updaters for 1.5 if there is no 1.6 lanes here) |
| `DestChainConfig.IsEnabled` | N/A | Hardcoded to `true` (if chain is supported on OnRamp, enable it on FeeQuoter) |
| `DestChainConfig.MaxDataBytes` | `OnRampCfg.DynamicConfig.MaxDataBytes` | Direct copy |
| `DestChainConfig.MaxPerMsgGasLimit` | `OnRampCfg.DynamicConfig.MaxPerMsgGasLimit` | Direct copy |
| `DestChainConfig.DestGasOverhead` | `OnRampCfg.DynamicConfig.DestGasOverhead` | Direct copy |
| `DestChainConfig.DestGasPerPayloadByteBase` | `OnRampCfg.DynamicConfig.DestGasPerPayloadByte` | Cast from `uint8` |
| `DestChainConfig.ChainFamilySelector` | N/A | Hardcoded to EVM family selector `0x2812d52c` |
| `DestChainConfig.DefaultTokenFeeUSDCents` | `OnRampCfg.DynamicConfig.DefaultTokenFeeUSDCents` | Direct copy |
| `DestChainConfig.DefaultTokenDestGasOverhead` | `OnRampCfg.DynamicConfig.DefaultTokenDestGasOverhead` | Direct copy |
| `DestChainConfig.DefaultTxGasLimit` | `OnRampCfg.StaticConfig.DefaultTxGasLimit` | Cast to `uint32` |
| `DestChainConfig.NetworkFeeUSDCents` | `OnRampCfg.FeeTokenConfig[].NetworkFeeUSDCents` | From first non-zero value (same across all fee tokens) |
| `DestChainConfig.LinkFeeMultiplierPercent` | N/A | Hardcoded to `90` |
| `TokenTransferFeeConfig.FeeUSDCents` | `OnRampCfg.TokenTransferFeeConfig[token].MinFeeUSDCents` | Direct copy |
| `TokenTransferFeeConfig.DestGasOverhead` | `OnRampCfg.TokenTransferFeeConfig[token].DestGasOverhead` | Direct copy |
| `TokenTransferFeeConfig.DestBytesOverhead` | `OnRampCfg.TokenTransferFeeConfig[token].DestBytesOverhead` | Direct copy |
| `TokenTransferFeeConfig.IsEnabled` | `OnRampCfg.TokenTransferFeeConfig[token].IsEnabled` | Direct copy |
Loading
Loading