Skip to content

Commit cd5108f

Browse files
authored
Ccip-8548 deploy and update fee quoter changeset (#1641)
1 parent 6ea6cc1 commit cd5108f

File tree

27 files changed

+3191
-164
lines changed

27 files changed

+3191
-164
lines changed

ccv/chains/evm/deployment/go.mod

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ go 1.25.5
55
// Taken from CLDF go.mod: https://github.com/smartcontractkit/chainlink-deployments-framework/blob/main/go.mod
66
replace github.com/fbsobreira/gotron-sdk => github.com/smartcontractkit/chainlink-tron/relayer/gotron-sdk v0.0.4
77

8+
replace github.com/smartcontractkit/chainlink-ccip/deployment => ../../../../deployment
9+
10+
replace github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment => ../../../../chains/evm/deployment
11+
812
require (
913
github.com/Masterminds/semver/v3 v3.4.0
1014
github.com/ethereum/go-ethereum v1.16.8
@@ -18,6 +22,7 @@ require (
1822
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd
1923
github.com/smartcontractkit/mcms v0.34.0
2024
github.com/stretchr/testify v1.11.1
25+
golang.org/x/exp v0.0.0-20250711185948-6ae5c78190dc
2126
)
2227

2328
require (
@@ -203,10 +208,12 @@ require (
203208
github.com/shopspring/decimal v1.4.0 // indirect
204209
github.com/sigurn/crc16 v0.0.0-20211026045750-20ab5afb07e3 // indirect
205210
github.com/sirupsen/logrus v1.9.3 // indirect
211+
github.com/smartcontractkit/ccip-contract-examples/chains/evm v0.0.0-20250826190403-aed7f5f33cde // indirect
206212
github.com/smartcontractkit/chainlink-aptos v0.0.0-20251024142440-51f2ad2652a2 // indirect
207213
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260121163256-85accaf3d28d // indirect
208214
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250908144012-8184001834b5 // indirect
209215
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 // indirect
216+
github.com/smartcontractkit/chainlink-evm v0.3.3 // indirect
210217
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9 // indirect
211218
github.com/smartcontractkit/chainlink-protos/job-distributor v0.17.0 // indirect
212219
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b // indirect
@@ -265,7 +272,6 @@ require (
265272
go.uber.org/ratelimit v0.3.1 // indirect
266273
go.uber.org/zap v1.27.1 // indirect
267274
golang.org/x/crypto v0.47.0 // indirect
268-
golang.org/x/exp v0.0.0-20250711185948-6ae5c78190dc // indirect
269275
golang.org/x/net v0.48.0 // indirect
270276
golang.org/x/sync v0.19.0 // indirect
271277
golang.org/x/sys v0.40.0 // indirect

ccv/chains/evm/deployment/go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -584,8 +584,8 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J
584584
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
585585
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
586586
github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
587-
github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8=
588-
github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc=
587+
github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
588+
github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
589589
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
590590
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
591591
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
@@ -674,6 +674,8 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
674674
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
675675
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
676676
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
677+
github.com/smartcontractkit/ccip-contract-examples/chains/evm v0.0.0-20250826190403-aed7f5f33cde h1:dMUf1YOX5hdUkQDgnA/A/sWVoMaQWGB+EYBPuYffYIA=
678+
github.com/smartcontractkit/ccip-contract-examples/chains/evm v0.0.0-20250826190403-aed7f5f33cde/go.mod h1:SYc+BvAALmwsx2zMJIAczIyVNwsiXRIBXmejcTORxGE=
677679
github.com/smartcontractkit/chain-selectors v1.0.89 h1:L9oWZGqQXWyTPnC6ODXgu3b0DFyLmJ9eHv+uJrE9IZY=
678680
github.com/smartcontractkit/chain-selectors v1.0.89/go.mod h1:qy7whtgG5g+7z0jt0nRyii9bLND9m15NZTzuQPkMZ5w=
679681
github.com/smartcontractkit/chainlink-aptos v0.0.0-20251024142440-51f2ad2652a2 h1:vGdeMwHO3ow88HvxfhA4DDPYNY0X9jmdux7L83UF/W8=
@@ -682,20 +684,18 @@ github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20260206181544-f1613c
682684
github.com/smartcontractkit/chainlink-ccip v0.1.1-solana.0.20260206181544-f1613c67d071/go.mod h1:ZtZ+wtqU9JsJEmbiCsavVVEbhywpgMF7q/IpD9Eaq48=
683685
github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm v0.0.0-20260206181544-f1613c67d071 h1:64bvvq3x6F8sJD57B8fLFvaVTOSieEiTMqod2Nwo/ZU=
684686
github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm v0.0.0-20260206181544-f1613c67d071/go.mod h1:Gl35ExaFLinqVhp50+Yq1GnMuHb3fnDtZUFPCtcfV3M=
685-
github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment v0.0.0-20260206181544-f1613c67d071 h1:HbJ2HN7lL/eeYJXVYNpfE9uXW3BJ5r9dwA9Tbdv2AtU=
686-
github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment v0.0.0-20260206181544-f1613c67d071/go.mod h1:35R2jCvDmWdLe38d/23mdJ3D9lb1jzsvkb4g0JsFPCM=
687687
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260121163256-85accaf3d28d h1:xdFpzbApEMz4Rojg2Y2OjFlrh0wu7eB10V2tSZGW5y8=
688688
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20260121163256-85accaf3d28d/go.mod h1:bgmqE7x9xwmIVr8PqLbC0M5iPm4AV2DBl596lO6S5Sw=
689689
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250908144012-8184001834b5 h1:QhcYGEhRLInr1/qh/3RJiVdvJ0nxBHKhPe65WLbSBnU=
690690
github.com/smartcontractkit/chainlink-ccip/chains/solana/gobindings v0.0.0-20250908144012-8184001834b5/go.mod h1:xtZNi6pOKdC3sLvokDvXOhgHzT+cyBqH/gWwvxTxqrg=
691-
github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260206181544-f1613c67d071 h1:6cjdvsXpTRSM6jC/Vsc3SYcbKbVuVDmtkvsAcOXoK6M=
692-
github.com/smartcontractkit/chainlink-ccip/deployment v0.0.0-20260206181544-f1613c67d071/go.mod h1:gUbichNQBqk+fBF2aV40ZkzFmAJ8SygH6DEPd3cJkQE=
693691
github.com/smartcontractkit/chainlink-common v0.9.6-0.20260114142648-bd9e1b483e96 h1:ZnBBOLyMLJjgQQm7WRJl8sA9Q2RhwagJ+WR62VnA3MY=
694692
github.com/smartcontractkit/chainlink-common v0.9.6-0.20260114142648-bd9e1b483e96/go.mod h1:DAwaVSiQMgAsCjHa8nOnIAM9GixuIQWsgEZFGpf3JxE=
695693
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 h1:FJAFgXS9oqASnkS03RE1HQwYQQxrO4l46O5JSzxqLgg=
696694
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10/go.mod h1:oiDa54M0FwxevWwyAX773lwdWvFYYlYHHQV1LQ5HpWY=
697695
github.com/smartcontractkit/chainlink-deployments-framework v0.74.2 h1:OP4TAlIz8gz0iokYCBleQlpSoxXUBhqUPyV8Xfr34ek=
698696
github.com/smartcontractkit/chainlink-deployments-framework v0.74.2/go.mod h1:YHsMLM5bS9rhvXssmsJtvhmF4tDAm/kdmQi+ws/PLEw=
697+
github.com/smartcontractkit/chainlink-evm v0.3.3 h1:JqwyJEtnNEUaoQQPoOBTT4sn2lpdIZHtf0Hr0M60YDw=
698+
github.com/smartcontractkit/chainlink-evm v0.3.3/go.mod h1:q0ZBvaoisNaqC8NcMYWNPTjee88nQktDEeJMQHq3hVI=
699699
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd h1:sK+pK4epQp20yQ7XztwrVgkTkRAr4FY+TvEegW8RuQk=
700700
github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20260119171452-39c98c3b33cd/go.mod h1:7Jlt72+V9891y3LnGwHzmQwt9tfEGYryRKiGlQHo/o8=
701701
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20251124151448-0448aefdaab9 h1:QRWXJusIj/IRY5Pl3JclNvDre0cZPd/5NbILwc4RV2M=
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package adapters
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/Masterminds/semver/v3"
7+
cldf_chain "github.com/smartcontractkit/chainlink-deployments-framework/chain"
8+
cldf_ops "github.com/smartcontractkit/chainlink-deployments-framework/operations"
9+
10+
sequence1_7 "github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm/deployment/v1_7_0/sequences"
11+
"github.com/smartcontractkit/chainlink-ccip/deployment/deploy"
12+
"github.com/smartcontractkit/chainlink-ccip/deployment/utils/sequences"
13+
)
14+
15+
// feeQUpdateArgsFromConcrete converts the concrete v1.7 FeeQuoterUpdate to the type parameter (used as any when registered).
16+
func feeQUpdateArgsFromConcrete[T any](out sequence1_7.FeeQuoterUpdate) T {
17+
return any(out).(T)
18+
}
19+
20+
// FeeQuoterUpdater uses FeeQUpdateArgs any so it implements deploy.FeeQuoterUpdater[any] and can be registered directly.
21+
// The implementation is for v1.7.0 and uses sequence1_7.FeeQuoterUpdate internally.
22+
type FeeQuoterUpdater[FeeQUpdateArgs any] struct{}
23+
24+
func (fqu FeeQuoterUpdater[FeeQUpdateArgs]) SequenceFeeQuoterInputCreation() *cldf_ops.Sequence[deploy.FeeQuoterUpdateInput, FeeQUpdateArgs, cldf_chain.BlockChains] {
25+
return cldf_ops.NewSequence(
26+
"fee-quoter-updater:input-creation",
27+
semver.MustParse("1.7.0"),
28+
"Creates FeeQuoterUpdateInput for FeeQuoter update sequence",
29+
func(b cldf_ops.Bundle, chains cldf_chain.BlockChains, input deploy.FeeQuoterUpdateInput) (output FeeQUpdateArgs, err error) {
30+
var zero FeeQUpdateArgs
31+
chain, ok := chains.EVMChains()[input.ChainSelector]
32+
if !ok {
33+
return zero, fmt.Errorf("chain with selector %d not found in environment", input.ChainSelector)
34+
}
35+
// get the FeeQuoterUpdateOutput from both v1.6.0 and v1.5.0 sequences and combine them to create the input for the fee quoter update sequence
36+
report, err := cldf_ops.ExecuteSequence(b, sequence1_7.CreateFeeQuoterUpdateInputFromV163, chain, input)
37+
if err != nil {
38+
return zero, fmt.Errorf("failed to create FeeQuoterUpdateInput from v1.6.0: %w", err)
39+
}
40+
output16 := report.Output
41+
42+
report15, err := cldf_ops.ExecuteSequence(b, sequence1_7.CreateFeeQuoterUpdateInputFromV150, chain, input)
43+
if err != nil {
44+
return zero, fmt.Errorf("failed to create FeeQuoterUpdateInput from v1.5.0: %w", err)
45+
}
46+
output15 := report15.Output
47+
// combine the outputs from both sequences to create the input for the fee quoter update sequence
48+
out, err := sequence1_7.MergeFeeQuoterUpdateOutputs(output16, output15)
49+
if err != nil {
50+
return zero, fmt.Errorf("failed to merge FeeQuoterUpdateInput from v1.6.0 and v1.5.0: %w", err)
51+
}
52+
// check if output is empty, if so, return an error
53+
if empty, err := out.IsEmpty(); err != nil || empty {
54+
return zero, fmt.Errorf("could not create input for fee quoter 1.7 update sequence: %w", err)
55+
}
56+
out.ChainSelector = input.ChainSelector
57+
out.ExistingAddresses = input.ExistingAddresses
58+
return any(out).(FeeQUpdateArgs), nil
59+
},
60+
)
61+
}
62+
63+
func (fqu FeeQuoterUpdater[FeeQUpdateArgs]) SequenceDeployOrUpdateFeeQuoter() *cldf_ops.Sequence[FeeQUpdateArgs, sequences.OnChainOutput, cldf_chain.BlockChains] {
64+
return cldf_ops.NewSequence(
65+
"fee-quoter-v1.7.0:update-sequence",
66+
semver.MustParse("1.7.0"),
67+
"Deploys or fetches existing FeeQuoter contract and applies config updates",
68+
func(b cldf_ops.Bundle, chains cldf_chain.BlockChains, input FeeQUpdateArgs) (output sequences.OnChainOutput, err error) {
69+
fqInput, ok := any(input).(sequence1_7.FeeQuoterUpdate)
70+
if !ok {
71+
return sequences.OnChainOutput{}, fmt.Errorf("expected sequence1_7.FeeQuoterUpdate, got %T", input)
72+
}
73+
report, err := cldf_ops.ExecuteSequence(b, sequence1_7.SequenceFeeQuoterUpdate, chains, fqInput)
74+
if err != nil {
75+
return sequences.OnChainOutput{}, err
76+
}
77+
return report.Output, nil
78+
},
79+
)
80+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package adapters
2+
3+
import (
4+
"github.com/Masterminds/semver/v3"
5+
chainsel "github.com/smartcontractkit/chain-selectors"
6+
7+
adapters1_5 "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_5_0/adapters"
8+
adapters1_6 "github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/v1_6_0/adapters"
9+
"github.com/smartcontractkit/chainlink-ccip/deployment/deploy"
10+
)
11+
12+
func init() {
13+
fqReg := deploy.GetFQAndRampUpdaterRegistry()
14+
fqReg.RegisterFeeQuoterUpdater(chainsel.FamilyEVM, semver.MustParse("1.7.0"), FeeQuoterUpdater[any]{})
15+
fqReg.RegisterRampUpdater(chainsel.FamilyEVM, semver.MustParse("1.6.0"), adapters1_6.RampUpdateWithFQ{})
16+
fqReg.RegisterConfigImporter(chainsel.FamilyEVM, semver.MustParse("1.6.0"), &adapters1_6.ConfigImportAdapter{})
17+
fqReg.RegisterConfigImporter(chainsel.FamilyEVM, semver.MustParse("1.5.0"), &adapters1_5.ConfigImportAdapter{})
18+
}

ccv/chains/evm/deployment/v1_7_0/operations/fee_quoter/fee_quoter.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ import (
99
"github.com/ethereum/go-ethereum/common"
1010
"github.com/ethereum/go-ethereum/core/types"
1111
"github.com/smartcontractkit/chainlink-ccip/ccv/chains/evm/gobindings/generated/latest/fee_quoter"
12+
cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment"
13+
1214
"github.com/smartcontractkit/chainlink-ccip/chains/evm/deployment/utils/operations/contract"
1315
"github.com/smartcontractkit/chainlink-ccip/deployment/v1_7_0/adapters"
14-
cldf_deployment "github.com/smartcontractkit/chainlink-deployments-framework/deployment"
1516
)
1617

1718
var ContractType cldf_deployment.ContractType = "FeeQuoter"
@@ -36,6 +37,13 @@ type ConstructorArgs struct {
3637
DestChainConfigArgs []DestChainConfigArgs
3738
}
3839

40+
func (a ConstructorArgs) IsEmpty() bool {
41+
return (a.StaticConfig == StaticConfig{}) &&
42+
len(a.PriceUpdaters) == 0 &&
43+
len(a.TokenTransferFeeConfigArgs) == 0 &&
44+
len(a.DestChainConfigArgs) == 0
45+
}
46+
3947
type ApplyFeeTokensUpdatesArgs struct {
4048
FeeTokensToAdd []common.Address
4149
FeeTokensToRemove []common.Address
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# SequenceFeeQuoterInputCreation Mapping Document
2+
3+
## From v1.6.0 (`CreateFeeQuoterUpdateInputFromV160`)
4+
5+
**Source Contract**: FeeQuoter v1.6.3
6+
**Target Contract**: FeeQuoter v1.7.0
7+
8+
### Field Mapping
9+
| Target Field (FeeQuoter v1.7.0) | Source Field (FeeQuoter v1.6.3) | Notes |
10+
|----------------------------------|----------------------------------|-------|
11+
| `ConstructorArgs.StaticConfig.LinkToken` | `StaticCfg.LinkToken` | Direct copy |
12+
| `ConstructorArgs.StaticConfig.MaxFeeJuelsPerMsg` | `StaticCfg.MaxFeeJuelsPerMsg` | Direct copy |
13+
| `ConstructorArgs.PriceUpdaters` or `AuthorizedCallerUpdates.AddedCallers` | `PriceUpdaters` | Depends on new deployment vs update |
14+
| `DestChainConfig.IsEnabled` | `RemoteChainCfgs[chain].DestChainCfg.IsEnabled` | Direct copy |
15+
| `DestChainConfig.MaxDataBytes` | `RemoteChainCfgs[chain].DestChainCfg.MaxDataBytes` | Direct copy |
16+
| `DestChainConfig.MaxPerMsgGasLimit` | `RemoteChainCfgs[chain].DestChainCfg.MaxPerMsgGasLimit` | Direct copy |
17+
| `DestChainConfig.DestGasOverhead` | `RemoteChainCfgs[chain].DestChainCfg.DestGasOverhead` | Direct copy |
18+
| `DestChainConfig.DestGasPerPayloadByteBase` | `RemoteChainCfgs[chain].DestChainCfg.DestGasPerPayloadByteBase` | Direct copy |
19+
| `DestChainConfig.ChainFamilySelector` | `RemoteChainCfgs[chain].DestChainCfg.ChainFamilySelector` | Direct copy |
20+
| `DestChainConfig.DefaultTokenFeeUSDCents` | `RemoteChainCfgs[chain].DestChainCfg.DefaultTokenFeeUSDCents` | Direct copy |
21+
| `DestChainConfig.DefaultTokenDestGasOverhead` | `RemoteChainCfgs[chain].DestChainCfg.DefaultTokenDestGasOverhead` | Direct copy |
22+
| `DestChainConfig.DefaultTxGasLimit` | `RemoteChainCfgs[chain].DestChainCfg.DefaultTxGasLimit` | Direct copy |
23+
| `DestChainConfig.NetworkFeeUSDCents` | `RemoteChainCfgs[chain].DestChainCfg.NetworkFeeUSDCents` | Cast from `uint8` to `uint16` |
24+
| `DestChainConfig.LinkFeeMultiplierPercent` | N/A | Hardcoded to `90` |
25+
| `TokenTransferFeeConfig.FeeUSDCents` | `RemoteChainCfgs[chain].TokenTransferFeeCfgs[token].MinFeeUSDCents` | Direct copy |
26+
| `TokenTransferFeeConfig.DestGasOverhead` | `RemoteChainCfgs[chain].TokenTransferFeeCfgs[token].DestGasOverhead` | Direct copy |
27+
| `TokenTransferFeeConfig.DestBytesOverhead` | `RemoteChainCfgs[chain].TokenTransferFeeCfgs[token].DestBytesOverhead` | Direct copy |
28+
| `TokenTransferFeeConfig.IsEnabled` | `RemoteChainCfgs[chain].TokenTransferFeeCfgs[token].IsEnabled` | Direct copy |
29+
30+
## From v1.5.0 (`CreateFeeQuoterUpdateInputFromV150`)
31+
32+
**Source Contract**: EVM2EVMOnRamp v1.5.0
33+
**Target Contract**: FeeQuoter v1.7.0
34+
35+
### Field Mapping
36+
| Target Field (FeeQuoter v1.7.0) | Source Field (EVM2EVMOnRamp v1.5.0) | Notes |
37+
|----------------------------------|--------------------------------------|-------|
38+
| `ConstructorArgs.StaticConfig.LinkToken` | `OnRampCfg.StaticConfig.LinkToken` | From first OnRamp (if empty) |
39+
| `ConstructorArgs.StaticConfig.MaxFeeJuelsPerMsg` | `OnRampCfg.StaticConfig.MaxNopFeesJuels` | From first OnRamp (if empty) |
40+
| `ConstructorArgs.PriceUpdaters` | N/A | Empty array `[]` (TODO: what to do with price updaters for 1.5 if there is no 1.6 lanes here) |
41+
| `DestChainConfig.IsEnabled` | N/A | Hardcoded to `true` (if chain is supported on OnRamp, enable it on FeeQuoter) |
42+
| `DestChainConfig.MaxDataBytes` | `OnRampCfg.DynamicConfig.MaxDataBytes` | Direct copy |
43+
| `DestChainConfig.MaxPerMsgGasLimit` | `OnRampCfg.DynamicConfig.MaxPerMsgGasLimit` | Direct copy |
44+
| `DestChainConfig.DestGasOverhead` | `OnRampCfg.DynamicConfig.DestGasOverhead` | Direct copy |
45+
| `DestChainConfig.DestGasPerPayloadByteBase` | `OnRampCfg.DynamicConfig.DestGasPerPayloadByte` | Cast from `uint8` |
46+
| `DestChainConfig.ChainFamilySelector` | N/A | Hardcoded to EVM family selector `0x2812d52c` |
47+
| `DestChainConfig.DefaultTokenFeeUSDCents` | `OnRampCfg.DynamicConfig.DefaultTokenFeeUSDCents` | Direct copy |
48+
| `DestChainConfig.DefaultTokenDestGasOverhead` | `OnRampCfg.DynamicConfig.DefaultTokenDestGasOverhead` | Direct copy |
49+
| `DestChainConfig.DefaultTxGasLimit` | `OnRampCfg.StaticConfig.DefaultTxGasLimit` | Cast to `uint32` |
50+
| `DestChainConfig.NetworkFeeUSDCents` | `OnRampCfg.FeeTokenConfig[].NetworkFeeUSDCents` | From first non-zero value (same across all fee tokens) |
51+
| `DestChainConfig.LinkFeeMultiplierPercent` | N/A | Hardcoded to `90` |
52+
| `TokenTransferFeeConfig.FeeUSDCents` | `OnRampCfg.TokenTransferFeeConfig[token].MinFeeUSDCents` | Direct copy |
53+
| `TokenTransferFeeConfig.DestGasOverhead` | `OnRampCfg.TokenTransferFeeConfig[token].DestGasOverhead` | Direct copy |
54+
| `TokenTransferFeeConfig.DestBytesOverhead` | `OnRampCfg.TokenTransferFeeConfig[token].DestBytesOverhead` | Direct copy |
55+
| `TokenTransferFeeConfig.IsEnabled` | `OnRampCfg.TokenTransferFeeConfig[token].IsEnabled` | Direct copy |

0 commit comments

Comments
 (0)