Releases: smartcontractkit/ccip
v2.9.1-ccip1.4.6
- chore: bump chain-selectors to v1.0.12 #627
Full Changelog: v2.9.1-ccip1.4.5-release...v2.9.1-ccip1.4.6-release
v2.9.1-ccip1.4.5
Changelog
- Upgrading Chainlink Node to the latest version 2.9.1
- Checking if both source and destination chains are not cursed before starting processing. Besides that, we also verify finality violation and checks are applied on all ocr2 phases #583, #580
- Detecting OnRamp dynamic config changes to properly update Price Registry #544
v2.8.0-ccip1.4.3
High level changelog
-
Token pools are no longer configured with specific on- or offRamps but rather chains through chain selectors.
- Token pools validate callers through the router, which should now be passed in via the constructor
- Many events around adding/removing/updating allowed ramps now have an updated event around adding/removing/updating chains.
- Rate limits are set for inbound and outbound explicitly, this is not different from the previous method where onRamps and offRamps are set separately.
- Rate limits apply per remote chain, not per lane. This means that having multiple lanes enabled doesn't increase risk like it used to.
- Enabling a chain on a token pool will allow every on- and offRamp that is configured on the router for that remote chain.
- This also means that token pool ramp permissions do not need to be updated on a lane upgrade
-
OffRamp
offchain config format changed:- Renamed the
MaxGasPrice
field toDestMaxGasPrice
. - Removed obsolete
SourceFinalityDepth
andDestFinalityDepth
fields.
This change is not breaking: the config decoder still accepts old field names.
- Renamed the
-
CommitStore
offchain config format changed:- Renamed the
MaxGasPrice
field toSourceMaxGasPrice
. - Removed obsolete
SourceFinalityDepth
andDestFinalityDepth
fields.
This change is not breaking: the config decoder still accepts old field names.
- Renamed the
-
Minor changes to the Prometheus metrics emitted by plugins
ccip_unexpired_report_skipped
,ccip_execution_observation_reports_count
,ccip_execution_observation_build_duration
,ccip_execution_build_single_batch
,ccip_execution_reports_iteration_build_batch
removed, because they didn't introduce any additional value compared to the existing OCR2 metrics.- Some metrics added to track details of the processing
ccip_unexpired_commit_roots
number of unexpired Commit Roots processed by Exec during the OCR2 iterationccip_number_of_messages_processed
number of messages processed by the Exec when building the OCR2 reports and observationsccip_sequence_number_counter
latest sequence number that was used for generating Commit Report
-
New
DynamicPriceGetter
implementation ofPriceGetter
.- allows for dynamic price fetching from an aggregator contract as well as using static configuration of token prices.
- current pipeline implementation is still supported.
- only one of the two PriceGetter implementations can be used at a time (specified in the job spec).
What's Changed
- ccip loopp - migrate to relayer types by @dimkouv in #489
- [Chore] update chainselector version by @stackman27 in #516
- chore(ccip): use one telemetry type per OCR plugin by @roman-kashitsyn in #518
- Fix license and adjust mockRouter logic by @RensR in #529
- offchain - use 'latest' tag instead of using the lp by @dimkouv in #513
- offchain - include job id in usdc LP filter by @dimkouv in #525
- offchain - test usdc filters with real lp by @dimkouv in #538
- offchain - batch caller verbose errors and token pools fix by @dimkouv in #533
- Apply geth fix beta 4 by @matYang in #559
Full Changelog: v2.8.0-ccip1.4.0-release...v2.8.0-ccip1.4.3-release
v2.8.0-ccip1.4.0
High level changelog
-
Token pools are no longer configured with specific on- or offRamps but rather chains through chain selectors.
- Token pools validate callers through the router, which should now be passed in via the constructor
- Many events around adding/removing/updating allowed ramps now have an updated event around adding/removing/updating chains.
- Rate limits are set for inbound and outbound explicitly, this is not different from the previous method where onRamps and offRamps are set separately.
- Rate limits apply per remote chain, not per lane. This means that having multiple lanes enabled doesn't increase risk like it used to.
- Enabling a chain on a token pool will allow every on- and offRamp that is configured on the router for that remote chain.
- This also means that token pool ramp permissions do not need to be updated on a lane upgrade
-
OffRamp
offchain config format changed:- Renamed the
MaxGasPrice
field toDestMaxGasPrice
. - Removed obsolete
SourceFinalityDepth
andDestFinalityDepth
fields.
This change is not breaking: the config decoder still accepts old field names.
- Renamed the
-
CommitStore
offchain config format changed:- Renamed the
MaxGasPrice
field toSourceMaxGasPrice
. - Removed obsolete
SourceFinalityDepth
andDestFinalityDepth
fields.
This change is not breaking: the config decoder still accepts old field names.
- Renamed the
-
Minor changes to the Prometheus metrics emitted by plugins
ccip_unexpired_report_skipped
,ccip_execution_observation_reports_count
,ccip_execution_observation_build_duration
,ccip_execution_build_single_batch
,ccip_execution_reports_iteration_build_batch
removed, because they didn't introduce any additional value compared to the existing OCR2 metrics.- Some metrics added to track details of the processing
ccip_unexpired_commit_roots
number of unexpired Commit Roots processed by Exec during the OCR2 iterationccip_number_of_messages_processed
number of messages processed by the Exec when building the OCR2 reports and observationsccip_sequence_number_counter
latest sequence number that was used for generating Commit Report
-
New
DynamicPriceGetter
implementation ofPriceGetter
.- allows for dynamic price fetching from an aggregator contract as well as using static configuration of token prices.
- current pipeline implementation is still supported.
- only one of the two PriceGetter implementations can be used at a time (specified in the job spec).
New Contributors
Full Changelog: v2.7.1-ccip1.2.4-release...v2.8.0-ccip1.4.0
v2.7.1-ccip1.2.4
contracts-ccip/v1.2.1
v1.2.1
v2.7.1-ccip1.2.2
CCIP 1.2.2 Release
This release doesn't contain any new features or contract changes. Only off-chain improvements.
Changelog
Performance improvements:
- Processing Commit Roots in steps #284
- Fetching single Commit Root instead of list #291
- More performant caching behavior #287
- Upper bound limit when fetching Commit Reports in Commit Plugin #299
- RPC batching #233
Monitoring:
Other
- Switching Avalanche and Polygon (both testnet and mainnet) to use finality tags #307
- Adding various testnets to chain selectors #310
- Core repo merges, including
- Switching to LogPoller's finality from
SourceFinalityDepth
param #296 - Fixing database passing transaction context between CLO and CCIP plugins
- Adds supports for Optimism, Arbitrum, Base Sepolia networks #340
- Minor performance improvement. Exec doesn't require finalized messages when executing Commit Report #347
v2.6.0-ccip1.2.1
CCIP 1.2.1 Release
Feature Change Log
- Fixing database passing transaction context between CLO and CCIP plugins
v2.6.0-ccip1.2.0
CCIP 1.2.0 Release
Feature Change Log
USDC
- Support for sending USDC via native integration with Circle’s CCTP protocol.
- Added
USDC
token pool to interface with Circle'sITokenMessenger
andIMessageReceiver
- Jobspec changes to support USDC information
- USDC will be burned by CCTP on source chain and minted by CCTP to token receiver on destination chain.
- Added
Billing Changes
- TokenPool destination gas and TokenPool data sizes are now factored in billing to cover NOP costs.
- When the destination chain is a rollup, OnRamp additionally charges CCIP Sender L1 data availability fee to cover NOP costs.
- GasPrice changed to uint224, with higher-order 112 bits being l1BaseFee of dest L2, lower-order 112 bits being dest gas price.
- Token transfer premium fee min/max changed back to be per-token.
Token Pool Data and Gas Cap
- OnRamp limits return data size from source TokenPool to the token-specific
destBytesOverhead
. For most tokens, this value is 0. - OffRamp limits gas passed to TokenPools. Current default to 200K gas.
Public OnRamp
- Allowlist functionalities have been removed from OnRamp. OnRamp is now public.
Chain Expansion
- Add Wemix and Kroma support
Other Misc Changes
- LockReleaseTokenPool contract now has the option to reject outside liquidity.
- MessageId hashing scheme is updated.
- 0-amount token transfer is disallowed.
- PriceRegistry now accepts multiple gas price updates in a single update.
- All contracts implement TypeAndVersion. Previously, TokenPool and PriceRegistry were missing.
- Chain selectors moved to a dedicated repo: https://github.com/smartcontractkit/chain-selectors
- A number of offchain performance optimizations allowing for shorter OCR duration.
- Big versioning initiative to enable straightforward 0-downtime NOP upgrades.
- Fixing nil pointer reference from beta0
- Adding logs to debug missing L1 gas price in #217
- commit plugin - set offchain config n #218
- offchain - explicit initialisations in #219
- Add multi-chain telemetry support, exports OCR telemetry from commit and exec plugins.
- Update collision-resistent BytesOfBytesHashing
Full Change Log
fc59e6f1575355aaae2c0abe6b082a00e49e9fb5...9d5c3d420cb2ed03a11096bf57347c637af20f7f
v2.6.0-ccip1.2.0
CCIP 1.2.0 Release
Feature Change Log
USDC
- Support for sending USDC via native integration with Circle’s CCTP protocol.
- Added
USDC
token pool to interface with Circle'sITokenMessenger
andIMessageReceiver
- Jobspec changes to support USDC information
- USDC will be burned by CCTP on source chain and minted by CCTP to token receiver on destination chain.
- Added
Billing Changes
- TokenPool destination gas and TokenPool data sizes are now factored in billing to cover NOP costs.
- When the destination chain is a rollup, OnRamp additionally charges CCIP Sender L1 data availability fee to cover NOP costs.
- GasPrice changed to uint224, with higher-order 112 bits being l1BaseFee of dest L2, lower-order 112 bits being dest gas price.
- Token transfer premium fee min/max changed back to be per-token.
Token Pool Data and Gas Cap
- OnRamp limits return data size from source TokenPool to the token-specific
destBytesOverhead
. For most tokens, this value is 0. - OffRamp limits gas passed to TokenPools. Current default to 200K gas.
Public OnRamp
- Allowlist functionalities have been removed from OnRamp. OnRamp is now public.
Chain Expansion
- Add Wemix and Kroma support
Other Misc Changes
- LockReleaseTokenPool contract now has the option to reject outside liquidity.
- MessageId hashing scheme is updated.
- 0-amount token transfer is disallowed.
- PriceRegistry now accepts multiple gas price updates in a single update.
- All contracts implement TypeAndVersion. Previously, TokenPool and PriceRegistry were missing.
- Chain selectors moved to a dedicated repo: https://github.com/smartcontractkit/chain-selectors
- A number of offchain performance optimizations allowing for shorter OCR duration.
- Big versioning initiative to enable straightforward 0-downtime NOP upgrades.
- Fixing nil pointer reference from beta0
- Adding logs to debug missing L1 gas price in #217
- commit plugin - set offchain config n #218
- offchain - explicit initialisations in #219
- Add multi-chain telemetry support, exports OCR telemetry from commit and exec plugins.
- Update collision-resistent BytesOfBytesHashing
Full Change Log
fc59e6f1575355aaae2c0abe6b082a00e49e9fb5...9d5c3d420cb2ed03a11096bf57347c637af20f7f