Skip to content

Commit a9834d0

Browse files
fix: min fee usd cents default (#20320)
* fix: make default 25 * fix: automatically update minFeeUsdCents for ETH * fix: update default value in test cases
1 parent 29fd301 commit a9834d0

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

deployment/ccip/changeset/crossfamily/cs_set_token_transfer_fee_config_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ func TestSetTokenTransferFeeConfig_Solana_V0_1_0_Only(t *testing.T) {
530530
solCfgX := getSolanaTokenTransferFeeConfig(t, env.Env, src, dst, state.SolChains[src].FeeQuoter, tokenAddressX)
531531
require.Equal(t, tokenAddressX, solCfgX.Mint)
532532
require.Equal(t, uint32(math.MaxUint32), solCfgX.TokenTransferConfig.MaxFeeUsdcents)
533-
require.Equal(t, uint32(175_000), solCfgX.TokenTransferConfig.MinFeeUsdcents)
533+
require.Equal(t, uint32(25), solCfgX.TokenTransferConfig.MinFeeUsdcents)
534534
require.Equal(t, uint32(32), solCfgX.TokenTransferConfig.DestBytesOverhead)
535535
require.Equal(t, uint32(10), solCfgX.TokenTransferConfig.DestGasOverhead)
536536
require.Equal(t, uint16(0), solCfgX.TokenTransferConfig.DeciBps)
@@ -540,7 +540,7 @@ func TestSetTokenTransferFeeConfig_Solana_V0_1_0_Only(t *testing.T) {
540540
solCfgY := getSolanaTokenTransferFeeConfig(t, env.Env, src, dst, state.SolChains[src].FeeQuoter, tokenAddressY)
541541
require.Equal(t, tokenAddressY, solCfgY.Mint)
542542
require.Equal(t, uint32(math.MaxUint32), solCfgY.TokenTransferConfig.MaxFeeUsdcents)
543-
require.Equal(t, uint32(175_000), solCfgY.TokenTransferConfig.MinFeeUsdcents)
543+
require.Equal(t, uint32(25), solCfgY.TokenTransferConfig.MinFeeUsdcents)
544544
require.Equal(t, uint32(64), solCfgY.TokenTransferConfig.DestBytesOverhead)
545545
require.Equal(t, uint32(10), solCfgY.TokenTransferConfig.DestGasOverhead)
546546
require.Equal(t, uint16(0), solCfgY.TokenTransferConfig.DeciBps)

deployment/ccip/changeset/solana_v0_1_1/cs_billing.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
ata "github.com/gagliardetto/solana-go/programs/associated-token-account"
1212
"github.com/gagliardetto/solana-go/rpc"
1313

14+
chain_selectors "github.com/smartcontractkit/chain-selectors"
1415
"github.com/smartcontractkit/mcms"
1516
mcmsTypes "github.com/smartcontractkit/mcms/types"
1617

@@ -817,8 +818,19 @@ func (cfg TokenTransferFeeForRemoteChainConfigV2) buildOrchestrateChangesetsConf
817818
// if the config has not been set yet, we auto-fill any missing input fields with sensible defaults
818819
env.Logger.Infof("current config = %+v", curConfig)
819820
if !curConfig.TokenTransferConfig.IsEnabled {
821+
// this config is dynamically adjusted (ethereum is very expensive)
822+
minFeeUsdCentsVal := uint32(25)
823+
824+
// NOTE: we validate that src != dst so only one of these if statements will execute
825+
if srcSelector == chain_selectors.ETHEREUM_MAINNET.Selector {
826+
minFeeUsdCentsVal = 50
827+
}
828+
if dstSelector == chain_selectors.ETHEREUM_MAINNET.Selector {
829+
minFeeUsdCentsVal = 150
830+
}
831+
820832
// only use sensible defaults to fill in missing fields - do not overwrite anything that the user provided
821-
minFeeUsdCents := pointer.Coalesce(feeConfig.MinFeeUsdcents, uint32(175_000))
833+
minFeeUsdCents := pointer.Coalesce(feeConfig.MinFeeUsdcents, minFeeUsdCentsVal)
822834
maxFeeUsdCents := pointer.Coalesce(feeConfig.MaxFeeUsdcents, math.MaxUint32)
823835
destGasOverhead := pointer.Coalesce(feeConfig.DestGasOverhead, uint32(90_000))
824836
destBytesOverhead := pointer.Coalesce(feeConfig.DestBytesOverhead, uint32(32))

0 commit comments

Comments
 (0)