diff --git a/.changeset/wild-ducks-bake.md b/.changeset/wild-ducks-bake.md new file mode 100644 index 00000000000..cf34db81420 --- /dev/null +++ b/.changeset/wild-ducks-bake.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#internal Added FinalityDepth config where it was missing diff --git a/ccip/config/evm/Astar_Mainnet.toml b/ccip/config/evm/Astar_Mainnet.toml index 87808001eb7..ee2df8c1549 100644 --- a/ccip/config/evm/Astar_Mainnet.toml +++ b/ccip/config/evm/Astar_Mainnet.toml @@ -6,4 +6,9 @@ LogPollInterval = '6s' [GasEstimator] EIP1559DynamicFees = false PriceMax = '100000 gwei' -LimitDefault = 8000000 \ No newline at end of file +LimitDefault = 8000000 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Astar_Shibuya.toml b/ccip/config/evm/Astar_Shibuya.toml index 5a5df06f6f0..4a6299f50b2 100644 --- a/ccip/config/evm/Astar_Shibuya.toml +++ b/ccip/config/evm/Astar_Shibuya.toml @@ -6,4 +6,9 @@ LogPollInterval = '6s' [GasEstimator] EIP1559DynamicFees = false PriceMax = '100000 gwei' -LimitDefault = 8000000 \ No newline at end of file +LimitDefault = 8000000 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Avalanche_ANZ_testnet.toml b/ccip/config/evm/Avalanche_ANZ_testnet.toml index 1242e1ec06e..471584b6d2d 100644 --- a/ccip/config/evm/Avalanche_ANZ_testnet.toml +++ b/ccip/config/evm/Avalanche_ANZ_testnet.toml @@ -20,3 +20,6 @@ BlockHistorySize = 24 [HeadTracker] PersistenceEnabled = false +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Avalanche_Fuji.toml b/ccip/config/evm/Avalanche_Fuji.toml index 91b8bf6bab8..b12b2ae6b86 100644 --- a/ccip/config/evm/Avalanche_Fuji.toml +++ b/ccip/config/evm/Avalanche_Fuji.toml @@ -18,5 +18,7 @@ PriceMin = '25 gwei' BlockHistorySize = 24 [HeadTracker] -FinalityTagBypass = false PersistenceEnabled = false +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Avalanche_Mainnet.toml b/ccip/config/evm/Avalanche_Mainnet.toml index f51af60098d..54a0e42af79 100644 --- a/ccip/config/evm/Avalanche_Mainnet.toml +++ b/ccip/config/evm/Avalanche_Mainnet.toml @@ -20,3 +20,6 @@ BlockHistorySize = 24 [HeadTracker] PersistenceEnabled = false +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/BSC_Mainnet.toml b/ccip/config/evm/BSC_Mainnet.toml index 10f4c570bef..5d71b8d3fb4 100644 --- a/ccip/config/evm/BSC_Mainnet.toml +++ b/ccip/config/evm/BSC_Mainnet.toml @@ -26,3 +26,8 @@ ObservationGracePeriod = '500ms' [NodePool] SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/BSC_Testnet.toml b/ccip/config/evm/BSC_Testnet.toml index bb13501f1a2..a445617895a 100644 --- a/ccip/config/evm/BSC_Testnet.toml +++ b/ccip/config/evm/BSC_Testnet.toml @@ -22,6 +22,8 @@ BlockHistorySize = 24 [HeadTracker] HistoryDepth = 100 SamplingInterval = '1s' +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC FinalityTagBypass = false PersistenceEnabled = false diff --git a/ccip/config/evm/Base_Mainnet.toml b/ccip/config/evm/Base_Mainnet.toml index da38182b194..cc7239de9ca 100644 --- a/ccip/config/evm/Base_Mainnet.toml +++ b/ccip/config/evm/Base_Mainnet.toml @@ -20,6 +20,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/ccip/config/evm/Base_Sepolia.toml b/ccip/config/evm/Base_Sepolia.toml index 92f7717b27d..2f0534902ab 100644 --- a/ccip/config/evm/Base_Sepolia.toml +++ b/ccip/config/evm/Base_Sepolia.toml @@ -21,6 +21,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/ccip/config/evm/Blast_Mainnet.toml b/ccip/config/evm/Blast_Mainnet.toml index f8b501723ff..a8af11810f6 100644 --- a/ccip/config/evm/Blast_Mainnet.toml +++ b/ccip/config/evm/Blast_Mainnet.toml @@ -26,6 +26,9 @@ EIP1559FeeCapBufferBlocks = 0 [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] # 4 block sync time between nodes to ensure they aren't labelled unreachable too soon diff --git a/ccip/config/evm/Blast_Sepolia.toml b/ccip/config/evm/Blast_Sepolia.toml index 96dc5c67871..2d731631bbe 100644 --- a/ccip/config/evm/Blast_Sepolia.toml +++ b/ccip/config/evm/Blast_Sepolia.toml @@ -26,6 +26,9 @@ EIP1559FeeCapBufferBlocks = 0 [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] # 4 block sync time between nodes to ensure they aren't labelled unreachable too soon diff --git a/ccip/config/evm/Celo_Mainnet.toml b/ccip/config/evm/Celo_Mainnet.toml index 0ed08986d32..0cc35a00196 100644 --- a/ccip/config/evm/Celo_Mainnet.toml +++ b/ccip/config/evm/Celo_Mainnet.toml @@ -19,3 +19,6 @@ BlockHistorySize = 12 [HeadTracker] HistoryDepth = 50 PersistenceEnabled = false +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Gnosis_Chiado.toml b/ccip/config/evm/Gnosis_Chiado.toml index 379377a2266..f6a68a5dbc6 100644 --- a/ccip/config/evm/Gnosis_Chiado.toml +++ b/ccip/config/evm/Gnosis_Chiado.toml @@ -8,3 +8,8 @@ NoNewFinalizedHeadsThreshold = '2m' [GasEstimator] EIP1559DynamicFees = true PriceMax = '500 gwei' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Kroma_Mainnet.toml b/ccip/config/evm/Kroma_Mainnet.toml index 3a48aa8ae1b..93687e407c3 100644 --- a/ccip/config/evm/Kroma_Mainnet.toml +++ b/ccip/config/evm/Kroma_Mainnet.toml @@ -1,6 +1,6 @@ ChainID = '255' ChainType = 'kroma' # Kroma is based on the Optimism Bedrock architechture -FinalityDepth = 400 +FinalityDepth = 700 FinalityTagEnabled = true LogPollInterval = '2s' NoNewHeadsThreshold = '40s' @@ -19,6 +19,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 400 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/ccip/config/evm/Kroma_Sepolia.toml b/ccip/config/evm/Kroma_Sepolia.toml index 9609a09e076..68f03be93d9 100644 --- a/ccip/config/evm/Kroma_Sepolia.toml +++ b/ccip/config/evm/Kroma_Sepolia.toml @@ -1,6 +1,6 @@ ChainID = '2358' ChainType = 'kroma' # Kroma is based on the Optimism Bedrock architechture -FinalityDepth = 400 +FinalityDepth = 700 FinalityTagEnabled = true LogPollInterval = '2s' NoNewHeadsThreshold = '40s' @@ -19,6 +19,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 400 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/ccip/config/evm/L3X_Mainnet.toml b/ccip/config/evm/L3X_Mainnet.toml index 9dd33c9e15d..373c5517288 100644 --- a/ccip/config/evm/L3X_Mainnet.toml +++ b/ccip/config/evm/L3X_Mainnet.toml @@ -19,3 +19,8 @@ BumpThreshold = 5 [GasEstimator.DAOracle] OracleType = 'arbitrum' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/L3X_Sepolia.toml b/ccip/config/evm/L3X_Sepolia.toml index c0f6a60e943..ecbb78e50e2 100644 --- a/ccip/config/evm/L3X_Sepolia.toml +++ b/ccip/config/evm/L3X_Sepolia.toml @@ -19,3 +19,8 @@ BumpThreshold = 5 [GasEstimator.DAOracle] OracleType = 'arbitrum' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Linea_Mainnet.toml b/ccip/config/evm/Linea_Mainnet.toml index 5a89873acae..9591f917ee2 100644 --- a/ccip/config/evm/Linea_Mainnet.toml +++ b/ccip/config/evm/Linea_Mainnet.toml @@ -1,6 +1,6 @@ ChainID = '59144' # Block time 12s, finality < 60m -FinalityDepth = 300 +FinalityDepth = 600 # Blocks are only emitted when a transaction happens / no empty blocks NoNewHeadsThreshold = '0' @@ -15,6 +15,9 @@ ResendAfterThreshold = '3m' # set greater than finality depth [HeadTracker] HistoryDepth = 350 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [Transactions.AutoPurge] Enabled = true diff --git a/ccip/config/evm/Linea_Sepolia.toml b/ccip/config/evm/Linea_Sepolia.toml index 8f168ee93a6..f9a52635575 100644 --- a/ccip/config/evm/Linea_Sepolia.toml +++ b/ccip/config/evm/Linea_Sepolia.toml @@ -1,5 +1,5 @@ ChainID = '59141' -FinalityDepth = 900 +FinalityDepth = 200 NoNewHeadsThreshold = '0' [GasEstimator] @@ -11,6 +11,9 @@ ResendAfterThreshold = '3m' [HeadTracker] HistoryDepth = 1000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [Transactions.AutoPurge] Enabled = true diff --git a/ccip/config/evm/Mantle_Sepolia.toml b/ccip/config/evm/Mantle_Sepolia.toml index ee994a71826..9d416ff4a26 100644 --- a/ccip/config/evm/Mantle_Sepolia.toml +++ b/ccip/config/evm/Mantle_Sepolia.toml @@ -1,6 +1,6 @@ ChainID = '5003' ChainType = 'optimismBedrock' -FinalityDepth = 500 +FinalityDepth = 1200 LogPollInterval = '2s' NoNewHeadsThreshold = '0' MinIncomingConfirmations = 1 @@ -8,7 +8,7 @@ MinIncomingConfirmations = 1 [HeadTracker] HistoryDepth = 600 -[GasEstimator] +[GasEstimator] Mode = 'L2Suggested' PriceMax = '200 gwei' LimitDefault = 100000000 diff --git a/ccip/config/evm/Metis_Mainnet.toml b/ccip/config/evm/Metis_Mainnet.toml index f057400d014..7094478a291 100644 --- a/ccip/config/evm/Metis_Mainnet.toml +++ b/ccip/config/evm/Metis_Mainnet.toml @@ -19,3 +19,8 @@ BlockHistorySize = 0 [NodePool] SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Metis_Sepolia.toml b/ccip/config/evm/Metis_Sepolia.toml index 4ff4056c75d..90c83635543 100644 --- a/ccip/config/evm/Metis_Sepolia.toml +++ b/ccip/config/evm/Metis_Sepolia.toml @@ -15,3 +15,8 @@ BlockHistorySize = 0 [NodePool] SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/Mode_Mainnet.toml b/ccip/config/evm/Mode_Mainnet.toml index 69a8e93fecd..b4ad88c479d 100644 --- a/ccip/config/evm/Mode_Mainnet.toml +++ b/ccip/config/evm/Mode_Mainnet.toml @@ -24,6 +24,9 @@ EIP1559FeeCapBufferBlocks = 0 [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] PollFailureThreshold = 2 diff --git a/ccip/config/evm/Mode_Sepolia.toml b/ccip/config/evm/Mode_Sepolia.toml index f7398869beb..fbdd894f28d 100644 --- a/ccip/config/evm/Mode_Sepolia.toml +++ b/ccip/config/evm/Mode_Sepolia.toml @@ -24,6 +24,9 @@ EIP1559FeeCapBufferBlocks = 0 [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] PollFailureThreshold = 2 diff --git a/ccip/config/evm/Optimism_Mainnet.toml b/ccip/config/evm/Optimism_Mainnet.toml index b0f56a49d90..8f0d759a4e8 100644 --- a/ccip/config/evm/Optimism_Mainnet.toml +++ b/ccip/config/evm/Optimism_Mainnet.toml @@ -21,6 +21,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/ccip/config/evm/Optimism_Sepolia.toml b/ccip/config/evm/Optimism_Sepolia.toml index 1c71aa5dd83..d63925ad1fb 100644 --- a/ccip/config/evm/Optimism_Sepolia.toml +++ b/ccip/config/evm/Optimism_Sepolia.toml @@ -20,6 +20,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/ccip/config/evm/Polygon_Amoy.toml b/ccip/config/evm/Polygon_Amoy.toml index b05b3053a8e..195dda2ad6a 100644 --- a/ccip/config/evm/Polygon_Amoy.toml +++ b/ccip/config/evm/Polygon_Amoy.toml @@ -23,6 +23,9 @@ BlockHistorySize = 24 [HeadTracker] HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/ccip/config/evm/Polygon_Mainnet.toml b/ccip/config/evm/Polygon_Mainnet.toml index bf605cab3c6..523ae3f8e52 100644 --- a/ccip/config/evm/Polygon_Mainnet.toml +++ b/ccip/config/evm/Polygon_Mainnet.toml @@ -33,6 +33,9 @@ BlockHistorySize = 24 [HeadTracker] # Polygon suffers from a tremendous number of re-orgs, we need to set this to something very large to be conservative enough HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/ccip/config/evm/Polygon_Zkevm_Cardona.toml b/ccip/config/evm/Polygon_Zkevm_Cardona.toml index 5e4861f9d44..facb2dde638 100644 --- a/ccip/config/evm/Polygon_Zkevm_Cardona.toml +++ b/ccip/config/evm/Polygon_Zkevm_Cardona.toml @@ -22,6 +22,9 @@ BlockHistorySize = 12 [HeadTracker] HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [Transactions.AutoPurge] Enabled = true diff --git a/ccip/config/evm/Polygon_Zkevm_Mainnet.toml b/ccip/config/evm/Polygon_Zkevm_Mainnet.toml index b38a483ff35..65a9503d994 100644 --- a/ccip/config/evm/Polygon_Zkevm_Mainnet.toml +++ b/ccip/config/evm/Polygon_Zkevm_Mainnet.toml @@ -1,6 +1,6 @@ ChainID = '1101' ChainType = 'zkevm' -FinalityDepth = 500 +FinalityDepth = 1000 NoNewHeadsThreshold = '6m' MinIncomingConfirmations = 1 LogPollInterval = '30s' diff --git a/ccip/config/evm/Scroll_Mainnet.toml b/ccip/config/evm/Scroll_Mainnet.toml index b8e7bd09e80..311becf3480 100644 --- a/ccip/config/evm/Scroll_Mainnet.toml +++ b/ccip/config/evm/Scroll_Mainnet.toml @@ -17,6 +17,9 @@ BlockHistorySize = 24 [HeadTracker] HistoryDepth = 50 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [OCR] ContractConfirmations = 1 diff --git a/ccip/config/evm/Scroll_Sepolia.toml b/ccip/config/evm/Scroll_Sepolia.toml index baee2080d96..882e72ad303 100644 --- a/ccip/config/evm/Scroll_Sepolia.toml +++ b/ccip/config/evm/Scroll_Sepolia.toml @@ -17,6 +17,9 @@ BlockHistorySize = 24 [HeadTracker] HistoryDepth = 50 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [OCR] ContractConfirmations = 1 diff --git a/ccip/config/evm/Simulated.toml b/ccip/config/evm/Simulated.toml index e21dc0990f0..9bbef1d021d 100644 --- a/ccip/config/evm/Simulated.toml +++ b/ccip/config/evm/Simulated.toml @@ -20,6 +20,9 @@ HistoryDepth = 10 MaxBufferSize = 100 SamplingInterval = '0s' PersistenceEnabled = false +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [OCR] ContractConfirmations = 1 diff --git a/ccip/config/evm/WeMix_Mainnet.toml b/ccip/config/evm/WeMix_Mainnet.toml index be7c278f692..bee4d696f29 100644 --- a/ccip/config/evm/WeMix_Mainnet.toml +++ b/ccip/config/evm/WeMix_Mainnet.toml @@ -17,3 +17,6 @@ TipCapDefault = '100 gwei' [HeadTracker] PersistenceEnabled = false +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/ccip/config/evm/WeMix_Testnet.toml b/ccip/config/evm/WeMix_Testnet.toml index 4591fc4c572..17b87272252 100644 --- a/ccip/config/evm/WeMix_Testnet.toml +++ b/ccip/config/evm/WeMix_Testnet.toml @@ -16,5 +16,7 @@ EIP1559DynamicFees = true TipCapDefault = '100 gwei' [HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC FinalityTagBypass = false PersistenceEnabled = false diff --git a/ccip/config/evm/XLayer_Mainnet.toml b/ccip/config/evm/XLayer_Mainnet.toml index a39a9231ae2..28f7819276c 100644 --- a/ccip/config/evm/XLayer_Mainnet.toml +++ b/ccip/config/evm/XLayer_Mainnet.toml @@ -1,6 +1,6 @@ ChainID = '196' ChainType = 'xlayer' -FinalityDepth = 500 +FinalityDepth = 1000 NoNewHeadsThreshold = '6m' MinIncomingConfirmations = 1 LogPollInterval = '30s' diff --git a/ccip/config/evm/XLayer_Sepolia.toml b/ccip/config/evm/XLayer_Sepolia.toml index 2aa6e58469b..23d078f8456 100644 --- a/ccip/config/evm/XLayer_Sepolia.toml +++ b/ccip/config/evm/XLayer_Sepolia.toml @@ -23,6 +23,9 @@ BlockHistorySize = 12 [HeadTracker] HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [Transactions.AutoPurge] Enabled = true diff --git a/core/chains/evm/config/toml/defaults/Arbitrum_Goerli.toml b/core/chains/evm/config/toml/defaults/Arbitrum_Goerli.toml index 3d4b71347c4..1106d123ce3 100644 --- a/core/chains/evm/config/toml/defaults/Arbitrum_Goerli.toml +++ b/core/chains/evm/config/toml/defaults/Arbitrum_Goerli.toml @@ -1,5 +1,6 @@ ChainID = '421613' ChainType = 'arbitrum' +FinalityTagEnabled = true NoNewHeadsThreshold = '0' OCR.ContractConfirmations = 1 LinkContractAddress = '0xd14838A68E8AFBAdE5efb411d5871ea0011AFd28' diff --git a/core/chains/evm/config/toml/defaults/Arbitrum_Sepolia.toml b/core/chains/evm/config/toml/defaults/Arbitrum_Sepolia.toml index ab5351b9a74..2599456c6c0 100644 --- a/core/chains/evm/config/toml/defaults/Arbitrum_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Arbitrum_Sepolia.toml @@ -1,6 +1,7 @@ ChainID = '421614' ChainType = 'arbitrum' FinalityTagEnabled = true +LinkContractAddress = '0xE4aB69C077896252FAFBD49EFD26B5D171A32410' NoNewHeadsThreshold = '0' OCR.ContractConfirmations = 1 LogPollInterval = '1s' diff --git a/core/chains/evm/config/toml/defaults/Astar_Mainnet.toml b/core/chains/evm/config/toml/defaults/Astar_Mainnet.toml new file mode 100644 index 00000000000..3507da5f59d --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Astar_Mainnet.toml @@ -0,0 +1,15 @@ +ChainID = '592' +ChainType = 'astar' +FinalityTagEnabled = true +FinalityDepth = 100 +LogPollInterval = '6s' + +[GasEstimator] +EIP1559DynamicFees = false +PriceMax = '100000 gwei' +LimitDefault = 8000000 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Astar_Shibuya.toml b/core/chains/evm/config/toml/defaults/Astar_Shibuya.toml new file mode 100644 index 00000000000..4a6299f50b2 --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Astar_Shibuya.toml @@ -0,0 +1,14 @@ +ChainID = '81' +FinalityTagEnabled = true +FinalityDepth = 100 +LogPollInterval = '6s' + +[GasEstimator] +EIP1559DynamicFees = false +PriceMax = '100000 gwei' +LimitDefault = 8000000 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Avalanche_ANZ_testnet.toml b/core/chains/evm/config/toml/defaults/Avalanche_ANZ_testnet.toml new file mode 100644 index 00000000000..9f61d1a07a5 --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Avalanche_ANZ_testnet.toml @@ -0,0 +1,24 @@ +ChainID = '76578' +FinalityDepth = 1 +FinalityTagEnabled = false +LinkContractAddress = '0x779877A7B0D9E8603169DdbD7836e478b4624789' +LogPollInterval = '3s' +MinIncomingConfirmations = 1 +# Avax subnet only emits blocks when a new tx is received, so this method of liveness detection is not useful. +NoNewHeadsThreshold = '0' +OCR.ContractConfirmations = 1 +RPCBlockQueryDelay = 2 + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '25 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '25 gwei' + +[GasEstimator.BlockHistory] +BlockHistorySize = 24 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Avalanche_Fuji.toml b/core/chains/evm/config/toml/defaults/Avalanche_Fuji.toml index fbcc8e6f058..f8e02efc0f0 100644 --- a/core/chains/evm/config/toml/defaults/Avalanche_Fuji.toml +++ b/core/chains/evm/config/toml/defaults/Avalanche_Fuji.toml @@ -19,4 +19,6 @@ PriceMin = '25 gwei' BlockHistorySize = 24 [HeadTracker] -FinalityTagBypass = false \ No newline at end of file +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Avalanche_Mainnet.toml b/core/chains/evm/config/toml/defaults/Avalanche_Mainnet.toml index 309fdab1db9..02f58df1dbd 100644 --- a/core/chains/evm/config/toml/defaults/Avalanche_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Avalanche_Mainnet.toml @@ -18,3 +18,8 @@ PriceMin = '25 gwei' [GasEstimator.BlockHistory] # Average block time of 2s BlockHistorySize = 24 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/BSC_Mainnet.toml b/core/chains/evm/config/toml/defaults/BSC_Mainnet.toml index 710ef34d309..bc6e1fa5a7d 100644 --- a/core/chains/evm/config/toml/defaults/BSC_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/BSC_Mainnet.toml @@ -2,6 +2,8 @@ # Clique offers finality within (N/2)+1 blocks where N is number of signers # There are 21 BSC validators so theoretically finality should occur after 21/2+1 = 11 blocks ChainID = '56' +# Keeping this >> 11 because it's not expensive and gives us a safety margin +FinalityDepth = 50 FinalityTagEnabled = true LinkContractAddress = '0x404460C6A5EdE2D891e8297795264fDe62ADBB75' LogPollInterval = '3s' @@ -27,3 +29,8 @@ ObservationGracePeriod = '500ms' [NodePool] SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/BSC_Testnet.toml b/core/chains/evm/config/toml/defaults/BSC_Testnet.toml index 95eef689d00..8161ef3ad9f 100644 --- a/core/chains/evm/config/toml/defaults/BSC_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/BSC_Testnet.toml @@ -2,6 +2,8 @@ # Clique offers finality within (N/2)+1 blocks where N is number of signers # There are 21 BSC validators so theoretically finality should occur after 21/2+1 = 11 blocks ChainID = '97' +# Keeping this >> 11 because it's not expensive and gives us a safety margin +FinalityDepth = 50 FinalityTagEnabled = true LinkContractAddress = '0x84b9B910527Ad5C03A9Ca831909E21e236EA7b06' LogPollInterval = '3s' @@ -21,6 +23,8 @@ BlockHistorySize = 24 [HeadTracker] HistoryDepth = 100 SamplingInterval = '1s' +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC FinalityTagBypass = false [OCR] diff --git a/core/chains/evm/config/toml/defaults/Base_Goerli.toml b/core/chains/evm/config/toml/defaults/Base_Goerli.toml index 2dd4f4033c6..931ba5b24a3 100644 --- a/core/chains/evm/config/toml/defaults/Base_Goerli.toml +++ b/core/chains/evm/config/toml/defaults/Base_Goerli.toml @@ -1,6 +1,7 @@ ChainID = '84531' ChainType = 'optimismBedrock' FinalityDepth = 200 +FinalityTagEnabled = true LogPollInterval = '2s' NoNewHeadsThreshold = '40s' MinIncomingConfirmations = 1 @@ -22,6 +23,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Base_Mainnet.toml b/core/chains/evm/config/toml/defaults/Base_Mainnet.toml index b683aff9840..fcdb5b56877 100644 --- a/core/chains/evm/config/toml/defaults/Base_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Base_Mainnet.toml @@ -24,6 +24,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Base_Sepolia.toml b/core/chains/evm/config/toml/defaults/Base_Sepolia.toml index 3e6aee20e29..1f4a9a6f7bf 100644 --- a/core/chains/evm/config/toml/defaults/Base_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Base_Sepolia.toml @@ -2,6 +2,8 @@ ChainID = '84532' ChainType = 'optimismBedrock' FinalityDepth = 200 FinalityTagEnabled = true +# TODO: Check! Not sure if necessary +LinkContractAddress = '0xE4aB69C077896252FAFBD49EFD26B5D171A32410' LogPollInterval = '2s' NoNewHeadsThreshold = '40s' MinIncomingConfirmations = 1 @@ -24,6 +26,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Blast_Mainnet.toml b/core/chains/evm/config/toml/defaults/Blast_Mainnet.toml new file mode 100644 index 00000000000..a8af11810f6 --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Blast_Mainnet.toml @@ -0,0 +1,37 @@ +ChainID = '81457' +FinalityDepth = 200 +FinalityTagEnabled = true +ChainType = 'optimismBedrock' +# block rate is ~2sec, so this ensures blocks are polled correctly +LogPollInterval = '2s' + +[GasEstimator] +EIP1559DynamicFees = true +BumpThreshold = 60 +BumpPercent = 20 +BumpMin = '100 wei' +PriceMax = '120 gwei' +LimitDefault = 8000000 +FeeCapDefault = '120 gwei' + +[GasEstimator.BlockHistory] +# Default is 24, which leads to bumpy gas prices. In CCIP +# we want to smooth out the gas prices, so we increase the sample size. +BlockHistorySize = 200 +# The formula for FeeCap is (current block base fee * (1.125 ^ EIP1559FeeCapBufferBlocks) + tipcap) +# where tipcap is managed by the block history estimators. In the context of CCIP, +# the gas price is relayed to other changes for quotes so we want accurate/avg not pessimistic values. +# So we set this to zero so FeeCap = baseFee + tipcap. +EIP1559FeeCapBufferBlocks = 0 + +[HeadTracker] +HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false + +[NodePool] +# 4 block sync time between nodes to ensure they aren't labelled unreachable too soon +PollFailureThreshold = 4 +# polls every 4sec to check if there is a block produced, since blockRate is ~3sec +PollInterval = '4s' \ No newline at end of file diff --git a/core/chains/evm/config/toml/defaults/Blast_Sepolia.toml b/core/chains/evm/config/toml/defaults/Blast_Sepolia.toml new file mode 100644 index 00000000000..2d731631bbe --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Blast_Sepolia.toml @@ -0,0 +1,37 @@ +ChainID = '168587773' +FinalityDepth = 200 +FinalityTagEnabled = true +ChainType = 'optimismBedrock' +# block rate is ~2sec, so this ensures blocks are polled correctly +LogPollInterval = '2s' + +[GasEstimator] +EIP1559DynamicFees = true +BumpThreshold = 60 +BumpPercent = 20 +BumpMin = '100 wei' +PriceMax = '120 gwei' +LimitDefault = 8000000 +FeeCapDefault = '120 gwei' + +[GasEstimator.BlockHistory] +# Default is 24, which leads to bumpy gas prices. In CCIP +# we want to smooth out the gas prices, so we increase the sample size. +BlockHistorySize = 200 +# The formula for FeeCap is (current block base fee * (1.125 ^ EIP1559FeeCapBufferBlocks) + tipcap) +# where tipcap is managed by the block history estimators. In the context of CCIP, +# the gas price is relayed to other changes for quotes so we want accurate/avg not pessimistic values. +# So we set this to zero so FeeCap = baseFee + tipcap. +EIP1559FeeCapBufferBlocks = 0 + +[HeadTracker] +HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false + +[NodePool] +# 4 block sync time between nodes to ensure they aren't labelled unreachable too soon +PollFailureThreshold = 4 +# polls every 4sec to check if there is a block produced, since blockRate is ~3sec +PollInterval = '4s' \ No newline at end of file diff --git a/core/chains/evm/config/toml/defaults/Celo_Mainnet.toml b/core/chains/evm/config/toml/defaults/Celo_Mainnet.toml index b773f2d19f5..6941e0f0855 100644 --- a/core/chains/evm/config/toml/defaults/Celo_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Celo_Mainnet.toml @@ -1,6 +1,10 @@ ChainID = '42220' ChainType = 'celo' +# FT and FD are both present here because the dev effort rely only on FinalityTagEnabled are still in progress. +# We expect to be able to rely only on FinalityTagEnabled=true in the short future. +# https://chainlink-core.slack.com/archives/C05CS33N08N/p1715102940763339?thread_ts=1715102478.537529&cid=C05CS33N08N FinalityDepth = 10 +FinalityTagEnabled = true LogPollInterval = '5s' MinIncomingConfirmations = 1 NoNewHeadsThreshold = '1m' @@ -19,3 +23,6 @@ BlockHistorySize = 12 [HeadTracker] HistoryDepth = 50 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Celo_Testnet.toml b/core/chains/evm/config/toml/defaults/Celo_Testnet.toml index 0e4594150dd..c03d855acf6 100644 --- a/core/chains/evm/config/toml/defaults/Celo_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/Celo_Testnet.toml @@ -1,5 +1,8 @@ ChainID = '44787' ChainType = 'celo' +# FT and FD are both present here because the dev effort rely only on FinalityTagEnabled are still in progress. +# We expect to be able to rely only on FinalityTagEnabled=true in the short future. +# https://chainlink-core.slack.com/archives/C05CS33N08N/p1715102940763339?thread_ts=1715102478.537529&cid=C05CS33N08N FinalityTagEnabled = true FinalityDepth = 2750 # mean finality time of ~37 minutes + 500 block buffer LogPollInterval = '1s' # 1 sec block rate diff --git a/core/chains/evm/config/toml/defaults/Ethereum_Goerli.toml b/core/chains/evm/config/toml/defaults/Ethereum_Goerli.toml index 66e0bba8ca0..be13b7642ca 100644 --- a/core/chains/evm/config/toml/defaults/Ethereum_Goerli.toml +++ b/core/chains/evm/config/toml/defaults/Ethereum_Goerli.toml @@ -1,4 +1,5 @@ ChainID = '5' +FinalityDepth = 50 LinkContractAddress = '0x326C977E6efc84E512bB9C30f76E30c160eD06FB' MinContractPayment = '0.1 link' @@ -8,3 +9,8 @@ EIP1559DynamicFees = true [GasEstimator.BlockHistory] BlockHistorySize = 4 TransactionPercentile = 50 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Ethereum_Kovan.toml b/core/chains/evm/config/toml/defaults/Ethereum_Kovan.toml index 0a4a351ade9..11f60809891 100644 --- a/core/chains/evm/config/toml/defaults/Ethereum_Kovan.toml +++ b/core/chains/evm/config/toml/defaults/Ethereum_Kovan.toml @@ -1,4 +1,5 @@ ChainID = '42' +FinalityDepth = 50 LinkContractAddress = '0xa36085F69e2889c224210F603D836748e7dC0088' MinContractPayment = '0.1 link' OperatorFactoryAddress = '0x8007e24251b1D2Fc518Eb843A701d9cD21fe0aA3' @@ -10,4 +11,9 @@ EIP1559DynamicFees = false [GasEstimator.BlockHistory] BlockHistorySize = 4 -TransactionPercentile = 50 \ No newline at end of file +TransactionPercentile = 50 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Ethereum_Mainnet.toml b/core/chains/evm/config/toml/defaults/Ethereum_Mainnet.toml index 984150c694d..396cd5cc692 100644 --- a/core/chains/evm/config/toml/defaults/Ethereum_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Ethereum_Mainnet.toml @@ -1,6 +1,7 @@ ChainID = '1' FinalityTagEnabled = true LinkContractAddress = '0x514910771AF9Ca656af840dff83E8264EcF986CA' +FinalityDepth = 50 MinContractPayment = '0.1 link' OperatorFactoryAddress = '0x3E64Cd889482443324F91bFA9c84fE72A511f48A' NoNewFinalizedHeadsThreshold = '9m' @@ -15,3 +16,8 @@ TransactionPercentile = 50 [OCR2.Automation] GasLimit = 10500000 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Ethereum_Rinkeby.toml b/core/chains/evm/config/toml/defaults/Ethereum_Rinkeby.toml index 06dc2cb0f58..0c65f0b4df2 100644 --- a/core/chains/evm/config/toml/defaults/Ethereum_Rinkeby.toml +++ b/core/chains/evm/config/toml/defaults/Ethereum_Rinkeby.toml @@ -1,4 +1,5 @@ ChainID = '4' +FinalityDepth = 50 LinkContractAddress = '0x01BE23585060835E02B77ef475b0Cc51aA1e0709' MinContractPayment = '0.1 link' @@ -10,3 +11,8 @@ EIP1559DynamicFees = false [GasEstimator.BlockHistory] BlockHistorySize = 4 TransactionPercentile = 50 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Ethereum_Ropsten.toml b/core/chains/evm/config/toml/defaults/Ethereum_Ropsten.toml index 7ce9b3e8273..fb83e0d1cd2 100644 --- a/core/chains/evm/config/toml/defaults/Ethereum_Ropsten.toml +++ b/core/chains/evm/config/toml/defaults/Ethereum_Ropsten.toml @@ -1,4 +1,5 @@ ChainID = '3' +FinalityDepth = 50 LinkContractAddress = '0x20fE562d797A42Dcb3399062AE9546cd06f63280' MinContractPayment = '0.1 link' @@ -8,3 +9,8 @@ EIP1559DynamicFees = true [GasEstimator.BlockHistory] BlockHistorySize = 4 TransactionPercentile = 50 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Ethereum_Sepolia.toml b/core/chains/evm/config/toml/defaults/Ethereum_Sepolia.toml index 403ecd7c4b1..60bfc0c25dd 100644 --- a/core/chains/evm/config/toml/defaults/Ethereum_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Ethereum_Sepolia.toml @@ -1,4 +1,5 @@ ChainID = '11155111' +FinalityDepth = 50 FinalityTagEnabled = true LinkContractAddress = '0x779877A7B0D9E8603169DdbD7836e478b4624789' MinContractPayment = '0.1 link' @@ -14,4 +15,6 @@ TransactionPercentile = 50 GasLimit = 10500000 [HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Fantom_Mainnet.toml b/core/chains/evm/config/toml/defaults/Fantom_Mainnet.toml index 7e76d94278d..1a52b6c2a88 100644 --- a/core/chains/evm/config/toml/defaults/Fantom_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Fantom_Mainnet.toml @@ -1,4 +1,5 @@ ChainID = '250' +FinalityDepth = 50 LinkContractAddress = '0x6F43FF82CCA38001B6699a8AC47A2d0E66939407' LogPollInterval = '1s' NoNewHeadsThreshold = '30s' @@ -9,4 +10,9 @@ RPCBlockQueryDelay = 2 Mode = 'SuggestedPrice' [OCR2.Automation] -GasLimit = 3800000 \ No newline at end of file +GasLimit = 3800000 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Fantom_Testnet.toml b/core/chains/evm/config/toml/defaults/Fantom_Testnet.toml index 5f24a76c2e7..e6002291cc4 100644 --- a/core/chains/evm/config/toml/defaults/Fantom_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/Fantom_Testnet.toml @@ -1,4 +1,5 @@ ChainID = '4002' +FinalityDepth = 50 LinkContractAddress = '0xfaFedb041c0DD4fA2Dc0d87a6B0979Ee6FA7af5F' LogPollInterval = '1s' # Fantom testnet only emits blocks when a new tx is received, so this method of liveness detection is not useful @@ -9,4 +10,9 @@ RPCBlockQueryDelay = 2 Mode = 'SuggestedPrice' [OCR2.Automation] -GasLimit = 3800000 \ No newline at end of file +GasLimit = 3800000 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Gnosis_Chiado.toml b/core/chains/evm/config/toml/defaults/Gnosis_Chiado.toml index 4e54210455f..9d66cc2d6ed 100644 --- a/core/chains/evm/config/toml/defaults/Gnosis_Chiado.toml +++ b/core/chains/evm/config/toml/defaults/Gnosis_Chiado.toml @@ -9,3 +9,8 @@ NoNewFinalizedHeadsThreshold = '2m' [GasEstimator] EIP1559DynamicFees = true PriceMax = '500 gwei' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Gnosis_Mainnet.toml b/core/chains/evm/config/toml/defaults/Gnosis_Mainnet.toml index 862485b4d30..24097ab7a57 100644 --- a/core/chains/evm/config/toml/defaults/Gnosis_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Gnosis_Mainnet.toml @@ -6,6 +6,7 @@ # With xDai's current maximum of 19 validators then 40 blocks is the maximum possible re-org) # The mainnet default of 50 blocks is ok here ChainID = '100' +FinalityDepth = 50 ChainType = 'gnosis' LinkContractAddress = '0xE2e73A1c69ecF83F464EFCE6A5be353a37cA09b2' LogPollInterval = '5s' @@ -17,3 +18,8 @@ PriceDefault = '1 gwei' PriceMax = '500 gwei' # 1 Gwei is the minimum accepted by the validators (unless whitelisted) PriceMin = '1 gwei' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Harmony_Mainnet.toml b/core/chains/evm/config/toml/defaults/Harmony_Mainnet.toml index e90d2ff7b4f..cbc36449f61 100644 --- a/core/chains/evm/config/toml/defaults/Harmony_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Harmony_Mainnet.toml @@ -1,4 +1,5 @@ ChainID = '1666600000' +FinalityDepth = 50 LinkContractAddress = '0x218532a12a389a4a92fC0C5Fb22901D1c19198aA' LogPollInterval = '2s' MinIncomingConfirmations = 1 @@ -6,3 +7,8 @@ NoNewHeadsThreshold = '30s' [GasEstimator] PriceDefault = '5 gwei' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Harmony_Testnet.toml b/core/chains/evm/config/toml/defaults/Harmony_Testnet.toml index 382e3b215d9..2687f4114aa 100644 --- a/core/chains/evm/config/toml/defaults/Harmony_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/Harmony_Testnet.toml @@ -1,4 +1,5 @@ ChainID = '1666700000' +FinalityDepth = 50 LinkContractAddress = '0x8b12Ac23BFe11cAb03a634C1F117D64a7f2cFD3e' LogPollInterval = '2s' MinIncomingConfirmations = 1 @@ -6,3 +7,8 @@ NoNewHeadsThreshold = '30s' [GasEstimator] PriceDefault = '5 gwei' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Heco_Mainnet.toml b/core/chains/evm/config/toml/defaults/Heco_Mainnet.toml index b3d4074dba4..c191070ba7e 100644 --- a/core/chains/evm/config/toml/defaults/Heco_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Heco_Mainnet.toml @@ -1,5 +1,6 @@ # Heco uses BSC's settings. ChainID = '128' +FinalityDepth = 50 LinkContractAddress = '0x404460C6A5EdE2D891e8297795264fDe62ADBB75' LogPollInterval = '3s' NoNewHeadsThreshold = '30s' @@ -19,3 +20,8 @@ ObservationGracePeriod = '500ms' [NodePool] SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Hedera_Mainnet.toml b/core/chains/evm/config/toml/defaults/Hedera_Mainnet.toml index 591e486a8ec..3de7343c764 100644 --- a/core/chains/evm/config/toml/defaults/Hedera_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Hedera_Mainnet.toml @@ -3,7 +3,7 @@ ChainType = 'hedera' # Considering the 3-5 (6 including a buffer) seconds of finality and 2 seconds block production # We set the depth to 6/2 = 3 blocks, setting to 10 for safety FinalityDepth = 10 -# Hedera has high TPS, so polling less often +# Hedera has high TPS, so polling less often LogPollInterval = '10s' MinIncomingConfirmations = 1 FinalizedBlockOffset = 2 @@ -29,6 +29,10 @@ EstimateLimit = true # Accounting for Node syncs & avoid re-sending txns before fetching the receipt, setting to 2m ResendAfterThreshold = '2m' - [NodePool] -SyncThreshold = 10 \ No newline at end of file +SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Hedera_Testnet.toml b/core/chains/evm/config/toml/defaults/Hedera_Testnet.toml index 0e2f2c7cd2c..18f2b8b6abe 100644 --- a/core/chains/evm/config/toml/defaults/Hedera_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/Hedera_Testnet.toml @@ -3,7 +3,7 @@ ChainType = 'hedera' # Considering the 3-5 (6 including a buffer) seconds of finality and 2 seconds block production # We set the depth to 6/2 = 3 blocks, setting to 10 for safety FinalityDepth = 10 -# Hedera has high TPS, so polling less often +# Hedera has high TPS, so polling less often LogPollInterval = '10s' MinIncomingConfirmations = 1 FinalizedBlockOffset = 2 @@ -29,6 +29,10 @@ EstimateLimit = true # Accounting for Node syncs & avoid re-sending txns before fetching the receipt, setting to 2m ResendAfterThreshold = '2m' - [NodePool] -SyncThreshold = 10 \ No newline at end of file +SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Klaytn_Mainnet.toml b/core/chains/evm/config/toml/defaults/Klaytn_Mainnet.toml index 7cf7c2d62e3..357561422ca 100644 --- a/core/chains/evm/config/toml/defaults/Klaytn_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Klaytn_Mainnet.toml @@ -8,3 +8,8 @@ OCR.ContractConfirmations = 1 Mode = 'SuggestedPrice' PriceDefault = '750 gwei' # gwei = ston BumpThreshold = 5 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Klaytn_Testnet.toml b/core/chains/evm/config/toml/defaults/Klaytn_Testnet.toml index a938d46c5cd..693ac4f79d4 100644 --- a/core/chains/evm/config/toml/defaults/Klaytn_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/Klaytn_Testnet.toml @@ -8,3 +8,8 @@ OCR.ContractConfirmations = 1 Mode = 'SuggestedPrice' PriceDefault = '750 gwei' # gwei = ston BumpThreshold = 5 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Kroma_Mainnet.toml b/core/chains/evm/config/toml/defaults/Kroma_Mainnet.toml index c832d666aa6..1945ddd17fa 100644 --- a/core/chains/evm/config/toml/defaults/Kroma_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Kroma_Mainnet.toml @@ -1,6 +1,9 @@ ChainID = '255' ChainType = 'kroma' # Kroma is based on the Optimism Bedrock architechture -FinalityDepth = 400 +# FT and FD are both present here because the dev effort rely only on FinalityTagEnabled are still in progress. +# We expect to be able to rely only on FinalityTagEnabled=true in the short future. +# https://chainlink-core.slack.com/archives/C05CS33N08N/p1715102940763339?thread_ts=1715102478.537529&cid=C05CS33N08N +FinalityDepth = 700 FinalityTagEnabled = true LogPollInterval = '2s' NoNewHeadsThreshold = '40s' @@ -24,6 +27,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 400 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Kroma_Sepolia.toml b/core/chains/evm/config/toml/defaults/Kroma_Sepolia.toml index b0864d86c90..f593d75da88 100644 --- a/core/chains/evm/config/toml/defaults/Kroma_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Kroma_Sepolia.toml @@ -1,6 +1,9 @@ ChainID = '2358' ChainType = 'kroma' # Kroma is based on the Optimism Bedrock architechture -FinalityDepth = 400 +# FT and FD are both present here because the dev effort rely only on FinalityTagEnabled are still in progress. +# We expect to be able to rely only on FinalityTagEnabled=true in the short future. +# https://chainlink-core.slack.com/archives/C05CS33N08N/p1715102940763339?thread_ts=1715102478.537529&cid=C05CS33N08N +FinalityDepth = 700 FinalityTagEnabled = true LogPollInterval = '2s' NoNewHeadsThreshold = '40s' @@ -24,6 +27,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 400 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/L3X_Mainnet.toml b/core/chains/evm/config/toml/defaults/L3X_Mainnet.toml index 9dd33c9e15d..373c5517288 100644 --- a/core/chains/evm/config/toml/defaults/L3X_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/L3X_Mainnet.toml @@ -19,3 +19,8 @@ BumpThreshold = 5 [GasEstimator.DAOracle] OracleType = 'arbitrum' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/L3X_Sepolia.toml b/core/chains/evm/config/toml/defaults/L3X_Sepolia.toml index c0f6a60e943..ecbb78e50e2 100644 --- a/core/chains/evm/config/toml/defaults/L3X_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/L3X_Sepolia.toml @@ -19,3 +19,8 @@ BumpThreshold = 5 [GasEstimator.DAOracle] OracleType = 'arbitrum' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Linea_Goerli.toml b/core/chains/evm/config/toml/defaults/Linea_Goerli.toml index 915727267d2..68893b6acc5 100644 --- a/core/chains/evm/config/toml/defaults/Linea_Goerli.toml +++ b/core/chains/evm/config/toml/defaults/Linea_Goerli.toml @@ -10,3 +10,8 @@ BumpPercent = 40 [Transactions] # increase resend time to align with finality ResendAfterThreshold = '3m' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Linea_Mainnet.toml b/core/chains/evm/config/toml/defaults/Linea_Mainnet.toml index 5a89873acae..569554beed7 100644 --- a/core/chains/evm/config/toml/defaults/Linea_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Linea_Mainnet.toml @@ -1,6 +1,6 @@ ChainID = '59144' -# Block time 12s, finality < 60m -FinalityDepth = 300 +#3s block time ~ 20m finality based on committee decision +FinalityDepth = 600 # Blocks are only emitted when a transaction happens / no empty blocks NoNewHeadsThreshold = '0' @@ -15,6 +15,9 @@ ResendAfterThreshold = '3m' # set greater than finality depth [HeadTracker] HistoryDepth = 350 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [Transactions.AutoPurge] Enabled = true diff --git a/core/chains/evm/config/toml/defaults/Linea_Sepolia.toml b/core/chains/evm/config/toml/defaults/Linea_Sepolia.toml index 8f168ee93a6..f9a52635575 100644 --- a/core/chains/evm/config/toml/defaults/Linea_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Linea_Sepolia.toml @@ -1,5 +1,5 @@ ChainID = '59141' -FinalityDepth = 900 +FinalityDepth = 200 NoNewHeadsThreshold = '0' [GasEstimator] @@ -11,6 +11,9 @@ ResendAfterThreshold = '3m' [HeadTracker] HistoryDepth = 1000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [Transactions.AutoPurge] Enabled = true diff --git a/core/chains/evm/config/toml/defaults/Mantle_Sepolia.toml b/core/chains/evm/config/toml/defaults/Mantle_Sepolia.toml new file mode 100644 index 00000000000..45fbfc5e0d4 --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Mantle_Sepolia.toml @@ -0,0 +1,23 @@ +ChainID = '5003' +ChainType = 'optimismBedrock' +# FT and FD are both present here because the dev effort rely only on FinalityTagEnabled are still in progress. +# We expect to be able to rely only on FinalityTagEnabled=true in the short future. +# https://chainlink-core.slack.com/archives/C05CS33N08N/p1715102940763339?thread_ts=1715102478.537529&cid=C05CS33N08N +FinalityDepth = 1200 +FinalityTagEnabled = true +LogPollInterval = '2s' +NoNewHeadsThreshold = '0' +MinIncomingConfirmations = 1 + +[HeadTracker] +HistoryDepth = 600 + +[GasEstimator] +Mode = 'L2Suggested' +PriceMax = '200 gwei' +LimitDefault = 100000000 +FeeCapDefault = '200 gwei' + +[GasEstimator.BlockHistory] +BlockHistorySize = 200 +EIP1559FeeCapBufferBlocks = 0 \ No newline at end of file diff --git a/core/chains/evm/config/toml/defaults/Metis_Mainnet.toml b/core/chains/evm/config/toml/defaults/Metis_Mainnet.toml index f057400d014..4e89483111f 100644 --- a/core/chains/evm/config/toml/defaults/Metis_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Metis_Mainnet.toml @@ -1,8 +1,15 @@ # Metis is an L2 chain based on Optimism. ChainID = '1088' +# TODO: Check type against https://github.com/smartcontractkit/ccip/pull/1485 ChainType = 'metis' # Sequencer offers absolute finality -FinalityDepth = 10 +# High variation on finality depth triggered a commitee to investigate +# and set 500 as a secure finality depth. +# https://chainlink-core.slack.com/archives/C0725LNLJLA/p1717118469587219 +FinalityDepth = 500 +# FT and FD are both present here because the dev effort rely only on FinalityTagEnabled are still in progress. +# We expect to be able to rely only on FinalityTagEnabled=true in the short future. +# https://chainlink-core.slack.com/archives/C05CS33N08N/p1715102940763339?thread_ts=1715102478.537529&cid=C05CS33N08N FinalityTagEnabled = true MinIncomingConfirmations = 1 NoNewHeadsThreshold = '0' @@ -19,3 +26,8 @@ BlockHistorySize = 0 [NodePool] SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Metis_Rinkeby.toml b/core/chains/evm/config/toml/defaults/Metis_Rinkeby.toml index e481282abf1..07de383320b 100644 --- a/core/chains/evm/config/toml/defaults/Metis_Rinkeby.toml +++ b/core/chains/evm/config/toml/defaults/Metis_Rinkeby.toml @@ -14,3 +14,8 @@ BlockHistorySize = 0 [NodePool] SyncThreshold = 10 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Metis_Sepolia.toml b/core/chains/evm/config/toml/defaults/Metis_Sepolia.toml index 286b888e1a8..ea7ce7abf8e 100644 --- a/core/chains/evm/config/toml/defaults/Metis_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Metis_Sepolia.toml @@ -1,6 +1,10 @@ ChainID = '59902' +# TODO: Check type against https://github.com/smartcontractkit/ccip/pull/1485 ChainType = 'metis' -FinalityDepth = 10 +# FT and FD are both present here because the dev effort rely only on FinalityTagEnabled are still in progress. +# We expect to be able to rely only on FinalityTagEnabled=true in the short future. +# https://chainlink-core.slack.com/archives/C05CS33N08N/p1715102940763339?thread_ts=1715102478.537529&cid=C05CS33N08N +FinalityDepth = 3000 FinalityTagEnabled = true MinIncomingConfirmations = 1 NoNewHeadsThreshold = '0' diff --git a/core/chains/evm/config/toml/defaults/Mode_Mainnet.toml b/core/chains/evm/config/toml/defaults/Mode_Mainnet.toml new file mode 100644 index 00000000000..b4ad88c479d --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Mode_Mainnet.toml @@ -0,0 +1,33 @@ +ChainID = '34443' +FinalityDepth = 200 +FinalityTagEnabled = true +ChainType = 'optimismBedrock' + +[GasEstimator] +EIP1559DynamicFees = true +BumpThreshold = 60 +BumpPercent = 20 +BumpMin = '100 wei' +PriceMax = '120 gwei' +LimitDefault = 8000000 +FeeCapDefault = '120 gwei' + +[GasEstimator.BlockHistory] +# Default is 24, which leads to bumpy gas prices. In CCIP +# we want to smooth out the gas prices, so we increase the sample size. +BlockHistorySize = 200 +# The formula for FeeCap is (current block base fee * (1.125 ^ EIP1559FeeCapBufferBlocks) + tipcap) +# where tipcap is managed by the block history estimators. In the context of CCIP, +# the gas price is relayed to other changes for quotes so we want accurate/avg not pessimistic values. +# So we set this to zero so FeeCap = baseFee + tipcap. +EIP1559FeeCapBufferBlocks = 0 + +[HeadTracker] +HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false + +[NodePool] +PollFailureThreshold = 2 +PollInterval = '3s' diff --git a/core/chains/evm/config/toml/defaults/Mode_Sepolia.toml b/core/chains/evm/config/toml/defaults/Mode_Sepolia.toml new file mode 100644 index 00000000000..fbdd894f28d --- /dev/null +++ b/core/chains/evm/config/toml/defaults/Mode_Sepolia.toml @@ -0,0 +1,33 @@ +ChainID = '919' +FinalityDepth = 200 +FinalityTagEnabled = true +ChainType = 'optimismBedrock' + +[GasEstimator] +EIP1559DynamicFees = true +BumpThreshold = 60 +BumpPercent = 20 +BumpMin = '100 wei' +PriceMax = '120 gwei' +LimitDefault = 8000000 +FeeCapDefault = '120 gwei' + +[GasEstimator.BlockHistory] +# Default is 24, which leads to bumpy gas prices. In CCIP +# we want to smooth out the gas prices, so we increase the sample size. +BlockHistorySize = 200 +# The formula for FeeCap is (current block base fee * (1.125 ^ EIP1559FeeCapBufferBlocks) + tipcap) +# where tipcap is managed by the block history estimators. In the context of CCIP, +# the gas price is relayed to other changes for quotes so we want accurate/avg not pessimistic values. +# So we set this to zero so FeeCap = baseFee + tipcap. +EIP1559FeeCapBufferBlocks = 0 + +[HeadTracker] +HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false + +[NodePool] +PollFailureThreshold = 2 +PollInterval = '3s' diff --git a/core/chains/evm/config/toml/defaults/OKX_Mainnet.toml b/core/chains/evm/config/toml/defaults/OKX_Mainnet.toml index d0b26ede2e3..ef22fc04e12 100644 --- a/core/chains/evm/config/toml/defaults/OKX_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/OKX_Mainnet.toml @@ -1 +1,7 @@ ChainID = '66' +FinalityDepth = 50 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/OKX_Testnet.toml b/core/chains/evm/config/toml/defaults/OKX_Testnet.toml index 2587f010b18..494cafffc80 100644 --- a/core/chains/evm/config/toml/defaults/OKX_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/OKX_Testnet.toml @@ -1 +1,7 @@ ChainID = '65' +FinalityDepth = 50 + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Optimism_Goerli.toml b/core/chains/evm/config/toml/defaults/Optimism_Goerli.toml index 76c976a9114..c403421758c 100644 --- a/core/chains/evm/config/toml/defaults/Optimism_Goerli.toml +++ b/core/chains/evm/config/toml/defaults/Optimism_Goerli.toml @@ -1,6 +1,7 @@ ChainID = '420' ChainType = 'optimismBedrock' FinalityDepth = 200 +FinalityTagEnabled = true LinkContractAddress = '0xdc2CC710e42857672E7907CF474a69B63B93089f' LogPollInterval = '2s' NoNewHeadsThreshold = '40s' @@ -23,6 +24,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Optimism_Mainnet.toml b/core/chains/evm/config/toml/defaults/Optimism_Mainnet.toml index cd09ad4a60f..d1576203100 100644 --- a/core/chains/evm/config/toml/defaults/Optimism_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Optimism_Mainnet.toml @@ -25,6 +25,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Optimism_Sepolia.toml b/core/chains/evm/config/toml/defaults/Optimism_Sepolia.toml index ff367df0feb..b2fd2e1a578 100644 --- a/core/chains/evm/config/toml/defaults/Optimism_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Optimism_Sepolia.toml @@ -24,6 +24,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Polygon_Amoy.toml b/core/chains/evm/config/toml/defaults/Polygon_Amoy.toml index bca42d9b403..5cec7f84a42 100644 --- a/core/chains/evm/config/toml/defaults/Polygon_Amoy.toml +++ b/core/chains/evm/config/toml/defaults/Polygon_Amoy.toml @@ -23,6 +23,9 @@ BlockHistorySize = 24 [HeadTracker] HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Polygon_Mainnet.toml b/core/chains/evm/config/toml/defaults/Polygon_Mainnet.toml index bf605cab3c6..523ae3f8e52 100644 --- a/core/chains/evm/config/toml/defaults/Polygon_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Polygon_Mainnet.toml @@ -33,6 +33,9 @@ BlockHistorySize = 24 [HeadTracker] # Polygon suffers from a tremendous number of re-orgs, we need to set this to something very large to be conservative enough HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Polygon_Mumbai.toml b/core/chains/evm/config/toml/defaults/Polygon_Mumbai.toml index b9c993c6b23..111dd9f1ae0 100644 --- a/core/chains/evm/config/toml/defaults/Polygon_Mumbai.toml +++ b/core/chains/evm/config/toml/defaults/Polygon_Mumbai.toml @@ -1,5 +1,6 @@ ChainID = '80001' FinalityDepth = 500 +FinalityTagEnabled = true LinkContractAddress = '0x326C977E6efc84E512bB9C30f76E30c160eD06FB' LogPollInterval = '1s' MinIncomingConfirmations = 5 @@ -22,6 +23,9 @@ BlockHistorySize = 24 [HeadTracker] HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Cardona.toml b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Cardona.toml index 5e5bc573706..46ffbb45bff 100644 --- a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Cardona.toml +++ b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Cardona.toml @@ -24,6 +24,9 @@ CacheTimeout = '4s' [HeadTracker] HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [Transactions.AutoPurge] Enabled = true diff --git a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Mainnet.toml b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Mainnet.toml index 1952c40d590..d42ef9b057e 100644 --- a/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Polygon_Zkevm_Mainnet.toml @@ -1,6 +1,6 @@ ChainID = '1101' ChainType = 'zkevm' -FinalityDepth = 500 +FinalityDepth = 1000 NoNewHeadsThreshold = '6m' MinIncomingConfirmations = 1 LogPollInterval = '30s' diff --git a/core/chains/evm/config/toml/defaults/RSK_Mainnet.toml b/core/chains/evm/config/toml/defaults/RSK_Mainnet.toml index 8290481a331..2f846077d4c 100644 --- a/core/chains/evm/config/toml/defaults/RSK_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/RSK_Mainnet.toml @@ -1,5 +1,6 @@ # RSK prices its txes in sats not wei ChainID = '30' +FinalityDepth = 50 LinkContractAddress = '0x14AdaE34beF7ca957Ce2dDe5ADD97ea050123827' LogPollInterval = '30s' MinContractPayment = '0.001 link' @@ -11,3 +12,8 @@ PriceMax = '50 gwei' PriceMin = '0' # rsk does not yet support EIP-1559 but this allows validation to pass FeeCapDefault = '100 mwei' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/RSK_Testnet.toml b/core/chains/evm/config/toml/defaults/RSK_Testnet.toml index 2fde16aa7cc..3ea70822fea 100644 --- a/core/chains/evm/config/toml/defaults/RSK_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/RSK_Testnet.toml @@ -1,4 +1,5 @@ ChainID = '31' +FinalityDepth = 50 LinkContractAddress = '0x8bBbd80981FE76d44854D8DF305e8985c19f0e78' MinContractPayment = '0.001 link' LogPollInterval = '30s' @@ -8,3 +9,8 @@ PriceDefault = '50 mwei' PriceMax = '50 gwei' PriceMin = '0' FeeCapDefault = '100 mwei' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/Scroll_Mainnet.toml b/core/chains/evm/config/toml/defaults/Scroll_Mainnet.toml index 6a7441201ae..23dfa155773 100644 --- a/core/chains/evm/config/toml/defaults/Scroll_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/Scroll_Mainnet.toml @@ -21,6 +21,9 @@ OracleAddress = '0x5300000000000000000000000000000000000002' [HeadTracker] HistoryDepth = 50 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [OCR] ContractConfirmations = 1 diff --git a/core/chains/evm/config/toml/defaults/Scroll_Sepolia.toml b/core/chains/evm/config/toml/defaults/Scroll_Sepolia.toml index 1351bf73ded..e0e1c2cf46d 100644 --- a/core/chains/evm/config/toml/defaults/Scroll_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Scroll_Sepolia.toml @@ -21,6 +21,9 @@ OracleAddress = '0x5300000000000000000000000000000000000002' [HeadTracker] HistoryDepth = 50 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [OCR] ContractConfirmations = 1 diff --git a/core/chains/evm/config/toml/defaults/Simulated.toml b/core/chains/evm/config/toml/defaults/Simulated.toml index 65e627a7abd..d320e315fb2 100644 --- a/core/chains/evm/config/toml/defaults/Simulated.toml +++ b/core/chains/evm/config/toml/defaults/Simulated.toml @@ -19,6 +19,9 @@ PriceMax = '100 micro' HistoryDepth = 10 MaxBufferSize = 100 SamplingInterval = '0s' +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] EnforceRepeatableRead = false # disable for simulation to prevent failure of tests with manual commit and reorgs diff --git a/core/chains/evm/config/toml/defaults/Soneium_Sepolia.toml b/core/chains/evm/config/toml/defaults/Soneium_Sepolia.toml index 7ab92f04e5b..214e3f2895b 100755 --- a/core/chains/evm/config/toml/defaults/Soneium_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/Soneium_Sepolia.toml @@ -25,6 +25,9 @@ ResendAfterThreshold = '30s' [HeadTracker] HistoryDepth = 300 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [NodePool] SyncThreshold = 10 diff --git a/core/chains/evm/config/toml/defaults/WeMix_Mainnet.toml b/core/chains/evm/config/toml/defaults/WeMix_Mainnet.toml index 8af3f1bb9e5..e618263c36f 100644 --- a/core/chains/evm/config/toml/defaults/WeMix_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/WeMix_Mainnet.toml @@ -1,6 +1,6 @@ ChainID = '1111' ChainType = 'wemix' -FinalityDepth = 10 +FinalityDepth = 1 FinalityTagEnabled = true MinIncomingConfirmations = 1 # WeMix emits a block every 1 second, regardless of transactions @@ -15,3 +15,8 @@ ContractConfirmations = 1 [GasEstimator] EIP1559DynamicFees = true TipCapDefault = '100 gwei' + +[HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml b/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml index 451d22a1557..6ea694e8cb1 100644 --- a/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml +++ b/core/chains/evm/config/toml/defaults/WeMix_Testnet.toml @@ -1,6 +1,6 @@ ChainID = '1112' ChainType = 'wemix' -FinalityDepth = 10 +FinalityDepth = 1 FinalityTagEnabled = true MinIncomingConfirmations = 1 # WeMix emits a block every 1 second, regardless of transactions @@ -17,4 +17,6 @@ EIP1559DynamicFees = true TipCapDefault = '100 gwei' [HeadTracker] +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/XLayer_Mainnet.toml b/core/chains/evm/config/toml/defaults/XLayer_Mainnet.toml index 1d96e95e10d..b9b45e186ff 100644 --- a/core/chains/evm/config/toml/defaults/XLayer_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/XLayer_Mainnet.toml @@ -1,6 +1,6 @@ ChainID = '196' ChainType = 'xlayer' -FinalityDepth = 500 +FinalityDepth = 1000 NoNewHeadsThreshold = '6m' MinIncomingConfirmations = 1 LogPollInterval = '30s' diff --git a/core/chains/evm/config/toml/defaults/XLayer_Sepolia.toml b/core/chains/evm/config/toml/defaults/XLayer_Sepolia.toml index 3f4a5debde5..be35ef58555 100644 --- a/core/chains/evm/config/toml/defaults/XLayer_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/XLayer_Sepolia.toml @@ -24,6 +24,9 @@ BlockHistorySize = 12 [HeadTracker] HistoryDepth = 2000 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false [Transactions.AutoPurge] Enabled = true diff --git a/core/chains/evm/config/toml/defaults/fallback.toml b/core/chains/evm/config/toml/defaults/fallback.toml index ab349ee4688..15690420cd9 100644 --- a/core/chains/evm/config/toml/defaults/fallback.toml +++ b/core/chains/evm/config/toml/defaults/fallback.toml @@ -1,7 +1,7 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false -FinalityDepth = 50 +FinalityDepth = 10 FinalityTagEnabled = false LogBackfillBatchSize = 1000 LogPollInterval = '15s' @@ -64,6 +64,8 @@ CacheTimeout = '10s' HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC FinalityTagBypass = true MaxAllowedFinalityDepth = 10000 PersistenceEnabled = true diff --git a/core/chains/evm/config/toml/defaults/zkSync_Goerli.toml b/core/chains/evm/config/toml/defaults/zkSync_Goerli.toml index 035eec62d49..1f06789740f 100644 --- a/core/chains/evm/config/toml/defaults/zkSync_Goerli.toml +++ b/core/chains/evm/config/toml/defaults/zkSync_Goerli.toml @@ -15,3 +15,6 @@ OracleType = 'zksync' [HeadTracker] HistoryDepth = 50 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/core/chains/evm/config/toml/defaults/zkSync_Mainnet.toml b/core/chains/evm/config/toml/defaults/zkSync_Mainnet.toml index 85282ea81b3..edcdb45ac14 100644 --- a/core/chains/evm/config/toml/defaults/zkSync_Mainnet.toml +++ b/core/chains/evm/config/toml/defaults/zkSync_Mainnet.toml @@ -1,18 +1,32 @@ ChainID = '324' ChainType = 'zksync' -FinalityDepth = 10 +# 1200block ~ 20min concurrent with the l1_committed tag +FinalityDepth = 1200 +# block rate is ~2-5sec, so this ensures blocks are polled correctly LogPollInterval = '5s' -MinIncomingConfirmations = 1 +# sufficient time for RPC to be labelled out of sync, since blockRate is pretty fast NoNewHeadsThreshold = '1m' FinalizedBlockOffset = 2 [GasEstimator] -LimitDefault = 100_000_000 -PriceMax = 18446744073709551615 -PriceMin = 0 +# no EIP1559 to ensure our estimator doesnot estimate gas with MaxPriorityFee which will break minFunding requirement +EIP1559DynamicFees = false +# high LimitDefault for worst case pubdata bytes with BatchGasLimit reduced to 4M in OCR2Config +LimitDefault = 2_500_000_000 +FeeCapDefault = '500 mwei' +PriceDefault = '25 mwei' +# p999 value for gasPrice based on historical data +PriceMax = '500 mwei' +# avg gasPrices are at 0.025 gwei +PriceMin = '25 mwei' + +[GasEstimator.BlockHistory] +# increasing this to smooth out gas estimation +BlockHistorySize = 200 [GasEstimator.DAOracle] OracleType = 'zksync' [HeadTracker] -HistoryDepth = 50 +# tracks top N blocks to keep in heads database table. Should store atleast the same # of blocks as finalityDepth +HistoryDepth = 1500 \ No newline at end of file diff --git a/core/chains/evm/config/toml/defaults/zkSync_Sepolia.toml b/core/chains/evm/config/toml/defaults/zkSync_Sepolia.toml index 78ed3c0768d..d599af8450e 100644 --- a/core/chains/evm/config/toml/defaults/zkSync_Sepolia.toml +++ b/core/chains/evm/config/toml/defaults/zkSync_Sepolia.toml @@ -1,18 +1,35 @@ ChainID = '300' ChainType = 'zksync' -FinalityDepth = 10 +# 200block ~ 20min concurrent with the l1_committed tag +FinalityDepth = 200 +# block rate is ~2-5sec, so this ensures blocks are polled correctly LogPollInterval = '5s' -MinIncomingConfirmations = 1 +# sufficient time for RPC to be labelled out of sync, since blockRate is pretty fast NoNewHeadsThreshold = '1m' FinalizedBlockOffset = 2 [GasEstimator] -LimitDefault = 100_000_000 -PriceMax = 18446744073709551615 -PriceMin = 0 +# no EIP1559 to ensure our estimator doesnot estimate gas with MaxPriorityFee which will break minFunding requirement +EIP1559DynamicFees = false +# high LimitDefault for worst case pubdata bytes with BatchGasLimit reduced to 4M in OCR2Config +LimitDefault = 2_500_000_000 +FeeCapDefault = '500 mwei' +PriceDefault = '25 mwei' +# p999 value for gasPrice based on historical data +PriceMax = '500 mwei' +# avg gasPrices are at 0.025 gwei +PriceMin = '25 mwei' + +[GasEstimator.BlockHistory] +# increasing this to smooth out gas estimation +BlockHistorySize = 200 [GasEstimator.DAOracle] OracleType = 'zksync' [HeadTracker] -HistoryDepth = 50 +# tracks top N blocks to keep in heads database table. Should store atleast the same # of blocks as finalityDepth +HistoryDepth = 250 +# FinalityDepth > 1k => FinalityTagBypass = false +# https://chainlink-core.slack.com/archives/C07RA1B58CC/p1730983397689179?thread_ts=1730908333.814809&cid=C07RA1B58CC +FinalityTagBypass = false diff --git a/docs/CONFIG.md b/docs/CONFIG.md index 10177f9e4bb..12fee96c705 100644 --- a/docs/CONFIG.md +++ b/docs/CONFIG.md @@ -2030,7 +2030,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2134,7 +2134,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2238,7 +2238,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2342,7 +2342,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2451,7 +2451,7 @@ HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2555,7 +2555,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2659,7 +2659,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2764,7 +2764,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2868,7 +2868,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -2971,7 +2971,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -3074,7 +3074,110 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false +PersistenceEnabled = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' +NewHeadsPollInterval = '0s' + +[OCR] +ContractConfirmations = 4 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5400000 + +[Workflow] +GasLimitDefault = 400000 +``` + +

+ +
Astar Shibuya (81)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +FinalityDepth = 100 +FinalityTagEnabled = true +LogBackfillBatchSize = 1000 +LogPollInterval = '6s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 0 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 3 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '3m0s' +LogBroadcasterEnabled = true +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '1m0s' + +[Transactions.AutoPurge] +Enabled = false + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '100 micro' +PriceMin = '1 gwei' +LimitDefault = 8000000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '5 gwei' +BumpPercent = 20 +BumpThreshold = 3 +EIP1559DynamicFees = false +FeeCapDefault = '100 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 8 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 100 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -3283,7 +3386,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -3387,7 +3490,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -3491,7 +3594,7 @@ HistoryDepth = 2000 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -3596,7 +3699,7 @@ HistoryDepth = 2000 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -3636,7 +3739,7 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'xlayer' -FinalityDepth = 500 +FinalityDepth = 1000 FinalityTagEnabled = false LogBackfillBatchSize = 1000 LogPollInterval = '30s' @@ -3805,7 +3908,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -3845,7 +3948,7 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'kroma' -FinalityDepth = 400 +FinalityDepth = 700 FinalityTagEnabled = true LogBackfillBatchSize = 1000 LogPollInterval = '2s' @@ -3913,7 +4016,7 @@ HistoryDepth = 400 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -4020,7 +4123,7 @@ HistoryDepth = 50 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -4124,7 +4227,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -4228,7 +4331,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -4268,14 +4371,14 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'zksync' -FinalityDepth = 10 +FinalityDepth = 200 FinalityTagEnabled = false LogBackfillBatchSize = 1000 LogPollInterval = '5s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 1 +MinIncomingConfirmations = 3 MinContractPayment = '0.00001 link' NonceAutoSync = true NoNewHeadsThreshold = '1m0s' @@ -4301,10 +4404,10 @@ Enabled = true [GasEstimator] Mode = 'BlockHistory' -PriceDefault = '20 gwei' -PriceMax = '18.446744073709551615 ether' -PriceMin = '0' -LimitDefault = 100000000 +PriceDefault = '25 mwei' +PriceMax = '500 mwei' +PriceMin = '25 mwei' +LimitDefault = 2500000000 LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 @@ -4313,13 +4416,13 @@ BumpMin = '5 gwei' BumpPercent = 20 BumpThreshold = 3 EIP1559DynamicFees = false -FeeCapDefault = '100 gwei' +FeeCapDefault = '500 mwei' TipCapDefault = '1 wei' TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 8 +BlockHistorySize = 200 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 TransactionPercentile = 60 @@ -4331,11 +4434,11 @@ CacheTimeout = '10s' OracleType = 'zksync' [HeadTracker] -HistoryDepth = 50 +HistoryDepth = 250 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -4375,14 +4478,14 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'zksync' -FinalityDepth = 10 +FinalityDepth = 1200 FinalityTagEnabled = false LogBackfillBatchSize = 1000 LogPollInterval = '5s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 1 +MinIncomingConfirmations = 3 MinContractPayment = '0.00001 link' NonceAutoSync = true NoNewHeadsThreshold = '1m0s' @@ -4408,10 +4511,10 @@ Enabled = true [GasEstimator] Mode = 'BlockHistory' -PriceDefault = '20 gwei' -PriceMax = '18.446744073709551615 ether' -PriceMin = '0' -LimitDefault = 100000000 +PriceDefault = '25 mwei' +PriceMax = '500 mwei' +PriceMin = '25 mwei' +LimitDefault = 2500000000 LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 @@ -4420,13 +4523,13 @@ BumpMin = '5 gwei' BumpPercent = 20 BumpThreshold = 3 EIP1559DynamicFees = false -FeeCapDefault = '100 gwei' +FeeCapDefault = '500 mwei' TipCapDefault = '1 wei' TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 8 +BlockHistorySize = 200 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 TransactionPercentile = 60 @@ -4438,7 +4541,7 @@ CacheTimeout = '10s' OracleType = 'zksync' [HeadTracker] -HistoryDepth = 50 +HistoryDepth = 1500 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 @@ -4483,7 +4586,7 @@ BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'optimismBedrock' FinalityDepth = 200 -FinalityTagEnabled = false +FinalityTagEnabled = true LinkContractAddress = '0xdc2CC710e42857672E7907CF474a69B63B93089f' LogBackfillBatchSize = 1000 LogPollInterval = '2s' @@ -4551,7 +4654,7 @@ HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -4655,7 +4758,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -4688,23 +4791,24 @@ GasLimitDefault = 400000

-
Klaytn Testnet (1001)

+

Astar Mainnet (592)

```toml AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false -FinalityDepth = 10 -FinalityTagEnabled = false +ChainType = 'astar' +FinalityDepth = 100 +FinalityTagEnabled = true LogBackfillBatchSize = 1000 -LogPollInterval = '15s' +LogPollInterval = '6s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 1 +MinIncomingConfirmations = 3 MinContractPayment = '0.00001 link' NonceAutoSync = true -NoNewHeadsThreshold = '30s' +NoNewHeadsThreshold = '3m0s' LogBroadcasterEnabled = true RPCDefaultBatchSize = 250 RPCBlockQueryDelay = 1 @@ -4726,18 +4830,18 @@ Enabled = false Enabled = true [GasEstimator] -Mode = 'SuggestedPrice' -PriceDefault = '750 gwei' -PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '100 micro' PriceMin = '1 gwei' -LimitDefault = 500000 +LimitDefault = 8000000 LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false BumpMin = '5 gwei' BumpPercent = 20 -BumpThreshold = 5 +BumpThreshold = 3 EIP1559DynamicFees = false FeeCapDefault = '100 gwei' TipCapDefault = '1 wei' @@ -4758,7 +4862,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -4774,7 +4878,7 @@ DeathDeclarationDelay = '1m0s' NewHeadsPollInterval = '0s' [OCR] -ContractConfirmations = 1 +ContractConfirmations = 4 ContractTransmitterTransmitTimeout = '10s' DatabaseTimeout = '10s' DeltaCOverride = '168h0m0s' @@ -4791,24 +4895,24 @@ GasLimitDefault = 400000

-
Metis Mainnet (1088)

+

Mode Sepolia (919)

```toml AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false -ChainType = 'metis' -FinalityDepth = 10 +ChainType = 'optimismBedrock' +FinalityDepth = 200 FinalityTagEnabled = true LogBackfillBatchSize = 1000 LogPollInterval = '15s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 1 +MinIncomingConfirmations = 3 MinContractPayment = '0.00001 link' NonceAutoSync = true -NoNewHeadsThreshold = '0s' +NoNewHeadsThreshold = '3m0s' LogBroadcasterEnabled = true RPCDefaultBatchSize = 250 RPCBlockQueryDelay = 1 @@ -4830,46 +4934,47 @@ Enabled = false Enabled = true [GasEstimator] -Mode = 'SuggestedPrice' +Mode = 'BlockHistory' PriceDefault = '20 gwei' -PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '0' -LimitDefault = 500000 +PriceMax = '120 gwei' +PriceMin = '1 gwei' +LimitDefault = 8000000 LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false -BumpMin = '5 gwei' +BumpMin = '100 wei' BumpPercent = 20 -BumpThreshold = 3 -EIP1559DynamicFees = false -FeeCapDefault = '100 gwei' +BumpThreshold = 60 +EIP1559DynamicFees = true +FeeCapDefault = '120 gwei' TipCapDefault = '1 wei' TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 0 +BlockHistorySize = 200 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 +EIP1559FeeCapBufferBlocks = 0 TransactionPercentile = 60 [GasEstimator.FeeHistory] CacheTimeout = '10s' [HeadTracker] -HistoryDepth = 100 +HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] -PollFailureThreshold = 5 -PollInterval = '10s' +PollFailureThreshold = 2 +PollInterval = '3s' SelectionMode = 'HighestHead' -SyncThreshold = 10 +SyncThreshold = 5 LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' @@ -4878,7 +4983,7 @@ DeathDeclarationDelay = '1m0s' NewHeadsPollInterval = '0s' [OCR] -ContractConfirmations = 1 +ContractConfirmations = 4 ContractTransmitterTransmitTimeout = '10s' DatabaseTimeout = '10s' DeltaCOverride = '168h0m0s' @@ -4895,27 +5000,26 @@ GasLimitDefault = 400000

-
Polygon Zkevm Mainnet (1101)

+

Klaytn Testnet (1001)

```toml AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false -ChainType = 'zkevm' -FinalityDepth = 500 +FinalityDepth = 10 FinalityTagEnabled = false LogBackfillBatchSize = 1000 -LogPollInterval = '30s' +LogPollInterval = '15s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 MinIncomingConfirmations = 1 MinContractPayment = '0.00001 link' NonceAutoSync = true -NoNewHeadsThreshold = '6m0s' +NoNewHeadsThreshold = '30s' LogBroadcasterEnabled = true -RPCDefaultBatchSize = 100 -RPCBlockQueryDelay = 15 +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 FinalizedBlockOffset = 0 NoNewFinalizedHeadsThreshold = '0s' @@ -4925,29 +5029,237 @@ MaxInFlight = 16 MaxQueued = 250 ReaperInterval = '1h0m0s' ReaperThreshold = '168h0m0s' -ResendAfterThreshold = '3m0s' +ResendAfterThreshold = '1m0s' [Transactions.AutoPurge] -Enabled = true -MinAttempts = 3 +Enabled = false [BalanceMonitor] Enabled = true [GasEstimator] -Mode = 'FeeHistory' -PriceDefault = '20 gwei' +Mode = 'SuggestedPrice' +PriceDefault = '750 gwei' PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '0' +PriceMin = '1 gwei' LimitDefault = 500000 LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false BumpMin = '5 gwei' -BumpPercent = 40 -BumpThreshold = 3 -EIP1559DynamicFees = false +BumpPercent = 20 +BumpThreshold = 5 +EIP1559DynamicFees = false +FeeCapDefault = '100 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 8 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 100 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = false +PersistenceEnabled = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' +NewHeadsPollInterval = '0s' + +[OCR] +ContractConfirmations = 1 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5400000 + +[Workflow] +GasLimitDefault = 400000 +``` + +

+ +
Metis Mainnet (1088)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'metis' +FinalityDepth = 500 +FinalityTagEnabled = true +LogBackfillBatchSize = 1000 +LogPollInterval = '15s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 0 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 1 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '0s' +LogBroadcasterEnabled = true +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '1m0s' + +[Transactions.AutoPurge] +Enabled = false + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'SuggestedPrice' +PriceDefault = '20 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '0' +LimitDefault = 500000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '5 gwei' +BumpPercent = 20 +BumpThreshold = 3 +EIP1559DynamicFees = false +FeeCapDefault = '100 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 0 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 100 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = false +PersistenceEnabled = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 10 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' +NewHeadsPollInterval = '0s' + +[OCR] +ContractConfirmations = 1 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5400000 + +[Workflow] +GasLimitDefault = 400000 +``` + +

+ +
Polygon Zkevm Mainnet (1101)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'zkevm' +FinalityDepth = 1000 +FinalityTagEnabled = false +LogBackfillBatchSize = 1000 +LogPollInterval = '30s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 0 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 1 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '6m0s' +LogBroadcasterEnabled = true +RPCDefaultBatchSize = 100 +RPCBlockQueryDelay = 15 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '3m0s' + +[Transactions.AutoPurge] +Enabled = true +MinAttempts = 3 + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'FeeHistory' +PriceDefault = '20 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '0' +LimitDefault = 500000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '5 gwei' +BumpPercent = 40 +BumpThreshold = 3 +EIP1559DynamicFees = false FeeCapDefault = '100 gwei' TipCapDefault = '1 wei' TipCapMin = '1 wei' @@ -5007,7 +5319,7 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'wemix' -FinalityDepth = 10 +FinalityDepth = 1 FinalityTagEnabled = true LogBackfillBatchSize = 1000 LogPollInterval = '3s' @@ -5071,7 +5383,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -5111,7 +5423,7 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'wemix' -FinalityDepth = 10 +FinalityDepth = 1 FinalityTagEnabled = true LogBackfillBatchSize = 1000 LogPollInterval = '3s' @@ -5278,7 +5590,7 @@ HistoryDepth = 10 MaxBufferSize = 100 SamplingInterval = '0s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -5387,7 +5699,7 @@ HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -5427,7 +5739,7 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'kroma' -FinalityDepth = 400 +FinalityDepth = 700 FinalityTagEnabled = true LogBackfillBatchSize = 1000 LogPollInterval = '2s' @@ -5495,7 +5807,7 @@ HistoryDepth = 400 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -5600,7 +5912,7 @@ HistoryDepth = 2000 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -5704,7 +6016,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -5737,6 +6049,111 @@ GasLimitDefault = 400000

+
Mantle Sepolia (5003)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'optimismBedrock' +FinalityDepth = 1200 +FinalityTagEnabled = true +LogBackfillBatchSize = 1000 +LogPollInterval = '2s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 0 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 1 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '0s' +LogBroadcasterEnabled = true +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '1m0s' + +[Transactions.AutoPurge] +Enabled = false + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'L2Suggested' +PriceDefault = '20 gwei' +PriceMax = '200 gwei' +PriceMin = '1 gwei' +LimitDefault = 100000000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '5 gwei' +BumpPercent = 20 +BumpThreshold = 3 +EIP1559DynamicFees = false +FeeCapDefault = '200 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 200 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +EIP1559FeeCapBufferBlocks = 0 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 600 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = true +PersistenceEnabled = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' +NewHeadsPollInterval = '0s' + +[OCR] +ContractConfirmations = 4 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5400000 + +[Workflow] +GasLimitDefault = 400000 +``` + +

+
Klaytn Mainnet (8217)

```toml @@ -5807,7 +6224,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -5915,7 +6332,7 @@ HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -6019,7 +6436,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -6127,7 +6544,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -6169,16 +6586,123 @@ BlockBackfillSkip = false ChainType = 'arbitrum' FinalityDepth = 10 FinalityTagEnabled = true -LinkContractAddress = '0xa71848C99155DA0b245981E5ebD1C94C4be51c43' +LinkContractAddress = '0xa71848C99155DA0b245981E5ebD1C94C4be51c43' +LogBackfillBatchSize = 1000 +LogPollInterval = '10s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 0 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 3 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '0s' +LogBroadcasterEnabled = true +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '1m0s' + +[Transactions.AutoPurge] +Enabled = false + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'Arbitrum' +PriceDefault = '100 mwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '0' +LimitDefault = 500000 +LimitMax = 1000000000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '5 gwei' +BumpPercent = 20 +BumpThreshold = 5 +EIP1559DynamicFees = false +FeeCapDefault = '1 micro' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 8 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[GasEstimator.DAOracle] +OracleType = 'arbitrum' + +[HeadTracker] +HistoryDepth = 100 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = false +PersistenceEnabled = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' +NewHeadsPollInterval = '0s' + +[OCR] +ContractConfirmations = 1 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5400000 + +[Workflow] +GasLimitDefault = 400000 +``` + +

+ +
Mode Mainnet (34443)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'optimismBedrock' +FinalityDepth = 200 +FinalityTagEnabled = true LogBackfillBatchSize = 1000 -LogPollInterval = '10s' +LogPollInterval = '15s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 MinIncomingConfirmations = 3 MinContractPayment = '0.00001 link' NonceAutoSync = true -NoNewHeadsThreshold = '0s' +NoNewHeadsThreshold = '3m0s' LogBroadcasterEnabled = true RPCDefaultBatchSize = 250 RPCBlockQueryDelay = 1 @@ -6200,47 +6724,45 @@ Enabled = false Enabled = true [GasEstimator] -Mode = 'Arbitrum' -PriceDefault = '100 mwei' -PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '0' -LimitDefault = 500000 -LimitMax = 1000000000 +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '120 gwei' +PriceMin = '1 gwei' +LimitDefault = 8000000 +LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false -BumpMin = '5 gwei' +BumpMin = '100 wei' BumpPercent = 20 -BumpThreshold = 5 -EIP1559DynamicFees = false -FeeCapDefault = '1 micro' +BumpThreshold = 60 +EIP1559DynamicFees = true +FeeCapDefault = '120 gwei' TipCapDefault = '1 wei' TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 8 +BlockHistorySize = 200 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 +EIP1559FeeCapBufferBlocks = 0 TransactionPercentile = 60 [GasEstimator.FeeHistory] CacheTimeout = '10s' -[GasEstimator.DAOracle] -OracleType = 'arbitrum' - [HeadTracker] -HistoryDepth = 100 +HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] -PollFailureThreshold = 5 -PollInterval = '10s' +PollFailureThreshold = 2 +PollInterval = '3s' SelectionMode = 'HighestHead' SyncThreshold = 5 LeaseDuration = '0s' @@ -6251,7 +6773,7 @@ DeathDeclarationDelay = '1m0s' NewHeadsPollInterval = '0s' [OCR] -ContractConfirmations = 1 +ContractConfirmations = 4 ContractTransmitterTransmitTimeout = '10s' DatabaseTimeout = '10s' DeltaCOverride = '168h0m0s' @@ -6275,7 +6797,7 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'arbitrum' -FinalityDepth = 50 +FinalityDepth = 10 FinalityTagEnabled = true LinkContractAddress = '0xf97f4df75117a78c1A5a0DBb814Af92458539FB4' LogBackfillBatchSize = 1000 @@ -6384,7 +6906,7 @@ BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'celo' FinalityDepth = 10 -FinalityTagEnabled = false +FinalityTagEnabled = true LogBackfillBatchSize = 1000 LogPollInterval = '5s' LogKeepBlocksDepth = 100000 @@ -6447,7 +6969,7 @@ HistoryDepth = 50 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -6655,7 +7177,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -7084,7 +7606,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -7123,14 +7645,225 @@ GasLimitDefault = 400000 AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false -FinalityDepth = 900 +FinalityDepth = 200 +FinalityTagEnabled = false +LogBackfillBatchSize = 1000 +LogPollInterval = '15s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 0 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 3 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '0s' +LogBroadcasterEnabled = true +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '3m0s' + +[Transactions.AutoPurge] +Enabled = true +Threshold = 50 +MinAttempts = 3 + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '1 wei' +LimitDefault = 500000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '5 gwei' +BumpPercent = 20 +BumpThreshold = 3 +EIP1559DynamicFees = true +FeeCapDefault = '100 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 8 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 1000 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = false +PersistenceEnabled = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' +NewHeadsPollInterval = '0s' + +[OCR] +ContractConfirmations = 4 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5400000 + +[Workflow] +GasLimitDefault = 400000 +``` + +

+ +
Linea Mainnet (59144)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +FinalityDepth = 600 FinalityTagEnabled = false LogBackfillBatchSize = 1000 LogPollInterval = '15s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 3 +MinIncomingConfirmations = 3 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '0s' +LogBroadcasterEnabled = true +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '3m0s' + +[Transactions.AutoPurge] +Enabled = true +Threshold = 50 +MinAttempts = 3 + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' +PriceMin = '400 mwei' +LimitDefault = 500000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '5 gwei' +BumpPercent = 40 +BumpThreshold = 3 +EIP1559DynamicFees = false +FeeCapDefault = '100 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 8 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 350 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = false +PersistenceEnabled = true + +[NodePool] +PollFailureThreshold = 5 +PollInterval = '10s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' +NewHeadsPollInterval = '0s' + +[OCR] +ContractConfirmations = 4 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5400000 + +[Workflow] +GasLimitDefault = 400000 +``` + +

+ +
Metis Sepolia (59902)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'metis' +FinalityDepth = 3000 +FinalityTagEnabled = true +LogBackfillBatchSize = 1000 +LogPollInterval = '15s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 0 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 1 MinContractPayment = '0.00001 link' NonceAutoSync = true NoNewHeadsThreshold = '0s' @@ -7146,21 +7879,19 @@ MaxInFlight = 16 MaxQueued = 250 ReaperInterval = '1h0m0s' ReaperThreshold = '168h0m0s' -ResendAfterThreshold = '3m0s' +ResendAfterThreshold = '1m0s' [Transactions.AutoPurge] -Enabled = true -Threshold = 50 -MinAttempts = 3 +Enabled = false [BalanceMonitor] Enabled = true [GasEstimator] -Mode = 'BlockHistory' +Mode = 'SuggestedPrice' PriceDefault = '20 gwei' PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '1 wei' +PriceMin = '0' LimitDefault = 500000 LimitMax = 500000 LimitMultiplier = '1' @@ -7169,14 +7900,14 @@ EstimateLimit = false BumpMin = '5 gwei' BumpPercent = 20 BumpThreshold = 3 -EIP1559DynamicFees = true +EIP1559DynamicFees = false FeeCapDefault = '100 gwei' TipCapDefault = '1 wei' TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 8 +BlockHistorySize = 0 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 TransactionPercentile = 60 @@ -7185,7 +7916,7 @@ TransactionPercentile = 60 CacheTimeout = '10s' [HeadTracker] -HistoryDepth = 1000 +HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 @@ -7196,7 +7927,7 @@ PersistenceEnabled = true PollFailureThreshold = 5 PollInterval = '10s' SelectionMode = 'HighestHead' -SyncThreshold = 5 +SyncThreshold = 10 LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' @@ -7205,7 +7936,7 @@ DeathDeclarationDelay = '1m0s' NewHeadsPollInterval = '0s' [OCR] -ContractConfirmations = 4 +ContractConfirmations = 1 ContractTransmitterTransmitTimeout = '10s' DatabaseTimeout = '10s' DeltaCOverride = '168h0m0s' @@ -7222,26 +7953,27 @@ GasLimitDefault = 400000

-
Linea Mainnet (59144)

+

Avalanche ANZ testnet (76578)

```toml AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false -FinalityDepth = 300 +FinalityDepth = 1 FinalityTagEnabled = false +LinkContractAddress = '0x779877A7B0D9E8603169DdbD7836e478b4624789' LogBackfillBatchSize = 1000 -LogPollInterval = '15s' +LogPollInterval = '3s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 3 +MinIncomingConfirmations = 1 MinContractPayment = '0.00001 link' NonceAutoSync = true NoNewHeadsThreshold = '0s' LogBroadcasterEnabled = true RPCDefaultBatchSize = 250 -RPCBlockQueryDelay = 1 +RPCBlockQueryDelay = 2 FinalizedBlockOffset = 0 NoNewFinalizedHeadsThreshold = '0s' @@ -7251,28 +7983,26 @@ MaxInFlight = 16 MaxQueued = 250 ReaperInterval = '1h0m0s' ReaperThreshold = '168h0m0s' -ResendAfterThreshold = '3m0s' +ResendAfterThreshold = '1m0s' [Transactions.AutoPurge] -Enabled = true -Threshold = 50 -MinAttempts = 3 +Enabled = false [BalanceMonitor] Enabled = true [GasEstimator] Mode = 'BlockHistory' -PriceDefault = '20 gwei' +PriceDefault = '25 gwei' PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '400 mwei' +PriceMin = '25 gwei' LimitDefault = 500000 LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false BumpMin = '5 gwei' -BumpPercent = 40 +BumpPercent = 20 BumpThreshold = 3 EIP1559DynamicFees = false FeeCapDefault = '100 gwei' @@ -7281,7 +8011,7 @@ TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 8 +BlockHistorySize = 24 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 TransactionPercentile = 60 @@ -7290,11 +8020,11 @@ TransactionPercentile = 60 CacheTimeout = '10s' [HeadTracker] -HistoryDepth = 350 +HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -7310,7 +8040,7 @@ DeathDeclarationDelay = '1m0s' NewHeadsPollInterval = '0s' [OCR] -ContractConfirmations = 4 +ContractConfirmations = 1 ContractTransmitterTransmitTimeout = '10s' DatabaseTimeout = '10s' DeltaCOverride = '168h0m0s' @@ -7327,34 +8057,34 @@ GasLimitDefault = 400000

-
Metis Sepolia (59902)

+

Polygon Mumbai (80001)

```toml AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false -ChainType = 'metis' -FinalityDepth = 10 +FinalityDepth = 500 FinalityTagEnabled = true +LinkContractAddress = '0x326C977E6efc84E512bB9C30f76E30c160eD06FB' LogBackfillBatchSize = 1000 -LogPollInterval = '15s' +LogPollInterval = '1s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 1 +MinIncomingConfirmations = 5 MinContractPayment = '0.00001 link' NonceAutoSync = true -NoNewHeadsThreshold = '0s' +NoNewHeadsThreshold = '30s' LogBroadcasterEnabled = true -RPCDefaultBatchSize = 250 -RPCBlockQueryDelay = 1 +RPCDefaultBatchSize = 100 +RPCBlockQueryDelay = 10 FinalizedBlockOffset = 0 NoNewFinalizedHeadsThreshold = '0s' [Transactions] ForwardersEnabled = false MaxInFlight = 16 -MaxQueued = 250 +MaxQueued = 5000 ReaperInterval = '1h0m0s' ReaperThreshold = '168h0m0s' ResendAfterThreshold = '1m0s' @@ -7366,18 +8096,18 @@ Enabled = false Enabled = true [GasEstimator] -Mode = 'SuggestedPrice' -PriceDefault = '20 gwei' +Mode = 'BlockHistory' +PriceDefault = '25 gwei' PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '0' +PriceMin = '25 gwei' LimitDefault = 500000 LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false -BumpMin = '5 gwei' +BumpMin = '20 gwei' BumpPercent = 20 -BumpThreshold = 3 +BumpThreshold = 5 EIP1559DynamicFees = false FeeCapDefault = '100 gwei' TipCapDefault = '1 wei' @@ -7385,7 +8115,7 @@ TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 0 +BlockHistorySize = 24 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 TransactionPercentile = 60 @@ -7394,11 +8124,11 @@ TransactionPercentile = 60 CacheTimeout = '10s' [HeadTracker] -HistoryDepth = 100 +HistoryDepth = 2000 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -7414,7 +8144,7 @@ DeathDeclarationDelay = '1m0s' NewHeadsPollInterval = '0s' [OCR] -ContractConfirmations = 1 +ContractConfirmations = 4 ContractTransmitterTransmitTimeout = '10s' DatabaseTimeout = '10s' DeltaCOverride = '168h0m0s' @@ -7431,7 +8161,7 @@ GasLimitDefault = 400000

-
Polygon Mumbai (80001)

+

Polygon Amoy (80002)

```toml AutoCreateKey = true @@ -7439,7 +8169,6 @@ BlockBackfillDepth = 10 BlockBackfillSkip = false FinalityDepth = 500 FinalityTagEnabled = false -LinkContractAddress = '0x326C977E6efc84E512bB9C30f76E30c160eD06FB' LogBackfillBatchSize = 1000 LogPollInterval = '1s' LogKeepBlocksDepth = 100000 @@ -7453,7 +8182,7 @@ LogBroadcasterEnabled = true RPCDefaultBatchSize = 100 RPCBlockQueryDelay = 10 FinalizedBlockOffset = 0 -NoNewFinalizedHeadsThreshold = '0s' +NoNewFinalizedHeadsThreshold = '12m0s' [Transactions] ForwardersEnabled = false @@ -7482,7 +8211,7 @@ EstimateLimit = false BumpMin = '20 gwei' BumpPercent = 20 BumpThreshold = 5 -EIP1559DynamicFees = false +EIP1559DynamicFees = true FeeCapDefault = '100 gwei' TipCapDefault = '1 wei' TipCapMin = '1 wei' @@ -7502,7 +8231,7 @@ HistoryDepth = 2000 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -7535,33 +8264,34 @@ GasLimitDefault = 400000

-
Polygon Amoy (80002)

+

Blast Mainnet (81457)

```toml AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false -FinalityDepth = 500 -FinalityTagEnabled = false +ChainType = 'optimismBedrock' +FinalityDepth = 200 +FinalityTagEnabled = true LogBackfillBatchSize = 1000 -LogPollInterval = '1s' +LogPollInterval = '2s' LogKeepBlocksDepth = 100000 LogPrunePageSize = 0 BackupLogPollerBlockDelay = 100 -MinIncomingConfirmations = 5 +MinIncomingConfirmations = 3 MinContractPayment = '0.00001 link' NonceAutoSync = true -NoNewHeadsThreshold = '30s' +NoNewHeadsThreshold = '3m0s' LogBroadcasterEnabled = true -RPCDefaultBatchSize = 100 -RPCBlockQueryDelay = 10 +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 FinalizedBlockOffset = 0 -NoNewFinalizedHeadsThreshold = '12m0s' +NoNewFinalizedHeadsThreshold = '0s' [Transactions] ForwardersEnabled = false MaxInFlight = 16 -MaxQueued = 5000 +MaxQueued = 250 ReaperInterval = '1h0m0s' ReaperThreshold = '168h0m0s' ResendAfterThreshold = '1m0s' @@ -7574,45 +8304,46 @@ Enabled = true [GasEstimator] Mode = 'BlockHistory' -PriceDefault = '25 gwei' -PriceMax = '115792089237316195423570985008687907853269984665.640564039457584007913129639935 tether' -PriceMin = '25 gwei' -LimitDefault = 500000 +PriceDefault = '20 gwei' +PriceMax = '120 gwei' +PriceMin = '1 gwei' +LimitDefault = 8000000 LimitMax = 500000 LimitMultiplier = '1' LimitTransfer = 21000 EstimateLimit = false -BumpMin = '20 gwei' +BumpMin = '100 wei' BumpPercent = 20 -BumpThreshold = 5 +BumpThreshold = 60 EIP1559DynamicFees = true -FeeCapDefault = '100 gwei' +FeeCapDefault = '120 gwei' TipCapDefault = '1 wei' TipCapMin = '1 wei' [GasEstimator.BlockHistory] BatchSize = 25 -BlockHistorySize = 24 +BlockHistorySize = 200 CheckInclusionBlocks = 12 CheckInclusionPercentile = 90 +EIP1559FeeCapBufferBlocks = 0 TransactionPercentile = 60 [GasEstimator.FeeHistory] CacheTimeout = '10s' [HeadTracker] -HistoryDepth = 2000 +HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] -PollFailureThreshold = 5 -PollInterval = '10s' +PollFailureThreshold = 4 +PollInterval = '4s' SelectionMode = 'HighestHead' -SyncThreshold = 10 +SyncThreshold = 5 LeaseDuration = '0s' NodeIsSyncingEnabled = false FinalizedBlockPollInterval = '5s' @@ -7646,7 +8377,7 @@ BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'optimismBedrock' FinalityDepth = 200 -FinalityTagEnabled = false +FinalityTagEnabled = true LogBackfillBatchSize = 1000 LogPollInterval = '2s' LogKeepBlocksDepth = 100000 @@ -7713,7 +8444,7 @@ HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -7755,6 +8486,7 @@ BlockBackfillSkip = false ChainType = 'optimismBedrock' FinalityDepth = 200 FinalityTagEnabled = true +LinkContractAddress = '0xE4aB69C077896252FAFBD49EFD26B5D171A32410' LogBackfillBatchSize = 1000 LogPollInterval = '2s' LogKeepBlocksDepth = 100000 @@ -7821,7 +8553,7 @@ HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -7861,7 +8593,7 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'arbitrum' -FinalityDepth = 50 +FinalityDepth = 10 FinalityTagEnabled = false LinkContractAddress = '0x615fBe6372676474d9e6933d310469c9b68e9726' LogBackfillBatchSize = 1000 @@ -7969,8 +8701,8 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'arbitrum' -FinalityDepth = 50 -FinalityTagEnabled = false +FinalityDepth = 10 +FinalityTagEnabled = true LinkContractAddress = '0xd14838A68E8AFBAdE5efb411d5871ea0011AFd28' LogBackfillBatchSize = 1000 LogPollInterval = '1s' @@ -8077,8 +8809,9 @@ AutoCreateKey = true BlockBackfillDepth = 10 BlockBackfillSkip = false ChainType = 'arbitrum' -FinalityDepth = 50 +FinalityDepth = 10 FinalityTagEnabled = true +LinkContractAddress = '0xE4aB69C077896252FAFBD49EFD26B5D171A32410' LogBackfillBatchSize = 1000 LogPollInterval = '1s' LogKeepBlocksDepth = 100000 @@ -8253,7 +8986,7 @@ HistoryDepth = 50 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -8362,7 +9095,7 @@ HistoryDepth = 50 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -8574,7 +9307,7 @@ HistoryDepth = 300 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -8607,6 +9340,111 @@ GasLimitDefault = 400000

+
Blast Sepolia (168587773)

+ +```toml +AutoCreateKey = true +BlockBackfillDepth = 10 +BlockBackfillSkip = false +ChainType = 'optimismBedrock' +FinalityDepth = 200 +FinalityTagEnabled = true +LogBackfillBatchSize = 1000 +LogPollInterval = '2s' +LogKeepBlocksDepth = 100000 +LogPrunePageSize = 0 +BackupLogPollerBlockDelay = 100 +MinIncomingConfirmations = 3 +MinContractPayment = '0.00001 link' +NonceAutoSync = true +NoNewHeadsThreshold = '3m0s' +LogBroadcasterEnabled = true +RPCDefaultBatchSize = 250 +RPCBlockQueryDelay = 1 +FinalizedBlockOffset = 0 +NoNewFinalizedHeadsThreshold = '0s' + +[Transactions] +ForwardersEnabled = false +MaxInFlight = 16 +MaxQueued = 250 +ReaperInterval = '1h0m0s' +ReaperThreshold = '168h0m0s' +ResendAfterThreshold = '1m0s' + +[Transactions.AutoPurge] +Enabled = false + +[BalanceMonitor] +Enabled = true + +[GasEstimator] +Mode = 'BlockHistory' +PriceDefault = '20 gwei' +PriceMax = '120 gwei' +PriceMin = '1 gwei' +LimitDefault = 8000000 +LimitMax = 500000 +LimitMultiplier = '1' +LimitTransfer = 21000 +EstimateLimit = false +BumpMin = '100 wei' +BumpPercent = 20 +BumpThreshold = 60 +EIP1559DynamicFees = true +FeeCapDefault = '120 gwei' +TipCapDefault = '1 wei' +TipCapMin = '1 wei' + +[GasEstimator.BlockHistory] +BatchSize = 25 +BlockHistorySize = 200 +CheckInclusionBlocks = 12 +CheckInclusionPercentile = 90 +EIP1559FeeCapBufferBlocks = 0 +TransactionPercentile = 60 + +[GasEstimator.FeeHistory] +CacheTimeout = '10s' + +[HeadTracker] +HistoryDepth = 300 +MaxBufferSize = 3 +SamplingInterval = '1s' +MaxAllowedFinalityDepth = 10000 +FinalityTagBypass = false +PersistenceEnabled = true + +[NodePool] +PollFailureThreshold = 4 +PollInterval = '4s' +SelectionMode = 'HighestHead' +SyncThreshold = 5 +LeaseDuration = '0s' +NodeIsSyncingEnabled = false +FinalizedBlockPollInterval = '5s' +EnforceRepeatableRead = true +DeathDeclarationDelay = '1m0s' +NewHeadsPollInterval = '0s' + +[OCR] +ContractConfirmations = 4 +ContractTransmitterTransmitTimeout = '10s' +DatabaseTimeout = '10s' +DeltaCOverride = '168h0m0s' +DeltaCJitterOverride = '1h0m0s' +ObservationGracePeriod = '1s' + +[OCR2] +[OCR2.Automation] +GasLimit = 5400000 + +[Workflow] +GasLimitDefault = 400000 +``` + +

+
Harmony Mainnet (1666600000)

```toml @@ -8678,7 +9516,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool] @@ -8782,7 +9620,7 @@ HistoryDepth = 100 MaxBufferSize = 3 SamplingInterval = '1s' MaxAllowedFinalityDepth = 10000 -FinalityTagBypass = true +FinalityTagBypass = false PersistenceEnabled = true [NodePool]