Skip to content

[CCTP] Deploy & configure 1.6.4 as part of sequence#1612

Merged
kylesmartin merged 21 commits intodevelopfrom
cctp/deploy-1.6.4
Feb 2, 2026
Merged

[CCTP] Deploy & configure 1.6.4 as part of sequence#1612
kylesmartin merged 21 commits intodevelopfrom
cctp/deploy-1.6.4

Conversation

@kylesmartin
Copy link
Copy Markdown
Contributor

@kylesmartin kylesmartin commented Jan 30, 2026

This PR:

  • Deploy and configure 1.6.4 CCTPV2 pool as part of sequence (+ remote chain configuration on the CCTP V1 pool)
  • Add remote chain configuration for siloed USDC token pool
  • Address comments from [CCTP] Split deploy and configure sequences #1606
  • Code readability and test coverage improvements

Another PR:

@kylesmartin kylesmartin changed the base branch from develop to cctp/separate-deploy-and-configure January 30, 2026 02:02
@mateusz-sekara mateusz-sekara force-pushed the cctp/separate-deploy-and-configure branch from d27df94 to 186c13d Compare January 30, 2026 09:39
Base automatically changed from cctp/separate-deploy-and-configure to develop January 30, 2026 11:33
@kylesmartin kylesmartin marked this pull request as ready for review January 31, 2026 00:00
@kylesmartin kylesmartin requested review from a team as code owners January 31, 2026 00:00
if siloedPoolAddr == "" {
poolReport, err := cldf_ops.ExecuteOperation(b, lock_release_token_pool.Deploy, chain, contract_utils.DeployInput[lock_release_token_pool.ConstructorArgs]{
TypeAndVersion: deployment.NewTypeAndVersion(lock_release_token_pool.SiloedUSDCTokenPoolContractType, *lock_release_token_pool.Version),
poolReport, err := cldf_ops.ExecuteOperation(b, siloed_usdc_token_pool.Deploy, chain, contract_utils.DeployInput[siloed_usdc_token_pool.ConstructorArgs]{
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we rename the sequence name to DeployAndConfigureSiloedUSDCTokenPool ?

batchOps = append(batchOps, batchOp)
}

// Configure remote chains on the siloed pool (1.7.0 sequence)
Copy link
Copy Markdown
Member

@0xsuryansh 0xsuryansh Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to confirm my understanding:

  • DeploySiloedUSDCLockRelease, when invoked from DeployCCTPChain, only deploys the siloed pool.
  • Lockbox deployment and its configuration happen later when ConfigureCCTPChainForLanes is called.

Conceptually, this split is a bit unintuitive from a design-pattern perspective, since lockbox is a single-chain concern rather than a lane-specific one (unlike configurations that depend on remote chain counterparts). And lockbox deployment is not dependent on deployment of other chains.. I think if we don't want to do that then we will have to separately invoke DeploySiloedLockRelease to deploy lockboxes

That said, this still works in practice, especially since we also configure the lockOrBurn mechanism in the proxy, so I’m okay keeping it as is unless we want to refactor for stricter separation of chain vs lane responsibilities.

Copy link
Copy Markdown
Collaborator

@RensR RensR Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since lockbox is a single-chain concern rather than a lane-specific one

Is it though? Lockboxes are per remote chain (with some potential but unlikely sharing)

Copy link
Copy Markdown
Member

@0xsuryansh 0xsuryansh Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lockbox deployment and configuration happens only on the home chain, that way it is a single chain concern
You don't need to wait for remote chain contracts to be deployed to set up the lockbox right ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lockbox deployment and its configuration happen later when ConfigureCCTPChainForLanes is called.
Yes that is correct.

Lockboxes are deployed per chain selector and therefore relate more to "configuring a chain for lanes". I agree the language could be better though, as ConfigureForLanes does not suggest contract deployments. Will think more about how we can address this in a later PR.

@0xsuryansh
Copy link
Copy Markdown
Member

TestCCTPChainAdapter_HomeToNonHomeChain is failing

Router: routerAddress,
},
}, existingAddresses)
siloedLockReleaseReport, err := cldf_ops.ExecuteSequence(b, DeploySiloedUSDCLockRelease, dep.BlockChains, DeploySiloedUSDCLockReleaseInput{
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be worth adding a comment clarifying the behaviour when this sequence is invoked here with these set of params (e.g., it only deploys SiloedUSDCTokenPool in this case). It would also be call out that the lockbox must be deployed separately using the DeploySiloedUSDCLockRelease or via ConfigureCCTPChainForLanes.

@kylesmartin kylesmartin enabled auto-merge (squash) February 2, 2026 15:56
0xsuryansh
0xsuryansh previously approved these changes Feb 2, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 2, 2026

Metric cctp/deploy-1.6.4 develop
Coverage 69.8% 69.5%

@kylesmartin kylesmartin requested a review from a team February 2, 2026 18:46
@kylesmartin kylesmartin merged commit 36d42e5 into develop Feb 2, 2026
26 of 28 checks passed
@kylesmartin kylesmartin deleted the cctp/deploy-1.6.4 branch February 2, 2026 19:03
RensR added a commit that referenced this pull request Mar 17, 2026
* Add exec gas limit, ccv-exec hash to msg & fix missing RMN check (#1374)

* OnRamp TokenPool getFee integration (#1368)

* Use ERC20LockBox in LnR pool (#1386)

* integrate lockbox


* update TokenPoolFactory for LnR pool deployment

* bump to stable ref (#1391)

* Correct fee reporting (#1385)

* Rename instances of ccvData, CcvData, and CCVData to verifierResults, VerifierResults and VerifierResults

* Fee distribution (#1392)

* FeeQuoter simplification, fix non-evm & apply link discount (#1408)

* Update go bindings

* Change instances of ccv data to verifier results

* link to a stable commit ref (#1419)

* [CCIP-7559] Add CCTPVerifier Contract (#1396)

* Add contract draft, populate forwardToVerifier

* verifyMessage

* Rename, add more configuration

* Add initial tests

* Rm cctp_v2_verifier bindings

* More tests

* Initial forwardToVerifier test

* forwardToVerifier tests

* verifyMessage tests

* Format tests, make wrappers

* Comments

* Revert nested if, add VERIFIER_VERSION_SIZE

* Comments abt verifier version

* Simplify finality

* Add comment

* Enforce receiver.len == 32

* Add USD per unit gas to FeeQuoterDestChainConfig (#1424)

* Integrate USD per unit gas with `ccv/chains/evm/deployment` (#1425)

* Integrate USD per unit gas with ccv/chains/evm/deployment

* Fix workflow

* assert msg.offramp in offramp (#1422)

* bump OZ 5.0.2 to 5.3.0 (#1426)

* Golf Pool size (#1420)

* Golf TokenPool Rate Limits & add postFlight hook (#1429)

* add feeToken to CCIPMessageSent event (#1433)

* Add protocol fee (#1427)

add network fee

* Lombard Token Pool v2 flow (#1437)

* Rename seqNum -> msgNum & exec state key (#1439)

* rn seqNum->msgNum & exec state key

* diff

* wrappers

* chains/evm/deployment/v1_7_0: support multiple executors (#1455)

Note: this is a breaking change to the deploy chain changeset API.

* Alter the deploy_chain_contracts.go changeset to support deploying
  multiple executors, with different qualifiers.
* Update test defaults to add a custom executor deployment.
* Run `make wrappers` to update lbtc pool wrappers, they were out of date.

This is needed to support testing custom executors.

* Feat/8075 committee verifier make signing per source (#1417)

* Make signer per source and refactor tests

* Add comment explaining test

* Add gas snapshot

* Update go bindings

* Use SOURCE_CHAIN_SELECTOR and remove DEFAULT_SOURCE_CHAIN_SELECTOR

* Add UintSet to make chain selector querying easier, and replace setSignatureConfig with applySignersUpdates so it can make multiple updates at once

* Update go bindings and fix solhint warnings in test

* Update go bindings

* Fix remaining references of ccv data to verifier results

* Address fixes and regenerate go bindings

* Re order logic so we do removals than updates

* Refactor instances of removing all elements from a set to use new clear function

* Add missing getAllSignatureConfigs tests

* Add test to OnRamp to increase overall code covergae for CI

* Rename SignersUpdate to SignatureConfigs for readability and remove length sload and replace it with threshold check for gas efficiency.

* [CCIP-7558] CCTPTokenPool & USDCTokenPoolProxy updates (#1423)

* Very WIP

* Fix proxy tests, add wrappers

* Very WIP

* MintBalanceMismatch check in CCTPVerifier

* Fixes

* Update CCTPVerifier tests

* Very WIP

* Rm unused

* Fix compilation

* Comments

* CCTPTokenPool tests

* Tests passing

* More tests

* More tests

* Wrappers

* Improve test cov

* More coverage

* Snapshot

* Improve coverage

* Improve coverage

* Revert IPoolV1 calls, no advanced pool hook

* Rm encoding func

* Comments

* getTransferFee

* More tests

* Make wrappers

* Add token tests to execSingleMsg

* Comments

* Lint

* Comments

* separate function for minBlockConfirmations (#1445)

* separate function for minBlockConfirmation

* Various bugfixes (#1454)

* only allow custom block config when enabled

* add missing gasLimit & bytes overhead sum

* guard against malicious third party getFee

* set rmn in base verifier

* add finality check to pool getFee

* Lombard v2 pool backward compatibility (#1440)

* Update storage locations and rate limit fee exclusion (#1463)

* Complete CCIP-8193

* Complete CCIP-8236

Refactor TokenPool to replace _applyFee with _getFee, making a small gas optimization in it by not loading the entire struct into memory. Then call _getFee where needed, and pass the fee into _validateLockOrBurn so that we only deduct the non fee amount from the rate limit.

* Work on storage location admin logic

* Complete CCIP-8395

* Refactor storage locations to support setting arrays

* Fix compile error

* Simplify _setStorageLocations logic

* Simplify _getFee logic for readability

* Fix small nits

* Allow duplictes in storage locations

* Fix lint error

* Add inline returns for _getFee

* rm unused events/errors (#1480)

* rm unused events/errors

* use error references

* Mutable pool hook (#1479)

* mutable hook

* Lombard verifier (#1415)

* [CCIP-8243] E2E CCTP Test (#1473)

* WIP

* Source side

* Expect deposit for burn

* Complete test

* Make wrappers

* Cleanup

* Wrappers

* Comments

* Wrappers

* Comments

* Add

* Use OnRampSetup

* Rm virtual

* Rm space

* Lint

* Fix license

* Don't add (default) sender/receiver CCVs if pure token transfer (#1484)

* only query exec ccvs for non-pure tt

* disallow token receivers

* Lombard TP minor fixes (#1488)

* Fix comments & wording (#1486)

* fix comments

* rename sourceTokenAmount

* add missing params

* Ccip 6749 address validation refactor (#1476)

* Refactor validateDestChainAddress

* Fix abi encode packed tokenReceiver not being packed on source. Added tests showing casing all user address byte inputs are properly handled if they are encoded or packed, and add test for missing revert checks in OffRamp

* Refactor address byte convention so that if the address is from an evm source chain it is treated as 32 bytes abi encoded, if the address is on the destiation chain, then it is represented in the minimum bytes needed with no padding


* Fix TokenPool receiver encoding issue and comments

* getCCVsForMessage deduplication fix (#1492)

correctly deduplicate optional against required

* Custom CCTP maxFee via verifierArgs (#1475)

Custom CCTP maxFee via verifierArgs

* bump & forge fmt (#1501)

* Allow gas limit override (#1500)

* reduce assembly

* improve message encoding

* add check to pool data

* ccv dups

* gas limit override

* update diagram

* test, snap wrap

* [12/16/25] CCV deployment code update (#1489)

* Add AdvancedPoolHooks bindings

* WIP - resolve compile issues

* Update deployment pkg

* Add transferFeeConfig

* Updates

* Update OnRamp optimizations

* WIP

* Imports

* Fix tests

* More tests

* Add CCVs above thresh to deployment

* CCVs above threshold to EVM

* Bump

* Decimals

* Precommit

* Bump

* [12/19] Update USDC getRequiredCCVs, info-level fixes (#1502)

* Add AdvancedPoolHooks bindings

* WIP - resolve compile issues

* Update deployment pkg

* Add transferFeeConfig

* Updates

* Update OnRamp optimizations

* WIP

* Imports

* Fix tests

* More tests

* Add CCVs above thresh to deployment

* CCVs above threshold to EVM

* [12/19] Update USDC getRequiredCCVs, info-level fixes

* Wrappers & tests

* Bump

* Decimals

* Precommit

* Bump

* Various minor fixes (#1505)

* maximum the fee per msg

* executor has fee token

* split IPool interfaces

* use cont v value

* golf

* pack reentrancy guard

* swap out msg num for sender in CCIPMessageSent

* fix allowlist order

* ⛳ remove pointer storing

* extract withdrawal into lib

* lombard config fee token receiver

* clean up fee token logic

* rename threshold to make clearer

* [12/22/25] Pin deployment deps to develop (#1506)

* [12/22/25] Pin deps to develop

* Update impl

* Left pad

* Add qualifier to advanced hooks

* Pass qualifier to op input

* Move all Openzeppelin 4.8.3 -> 5.3.0 (#1510)

* Token network fee usd cents (#1514)

add tokenNetworkFeeUSDCents

* Resolve address(0) in ccv list + minor fix (#1495)

resolve zero address in ccv list to default

* Pin deployment deps (#1517)

* Lockbox per pool (#1485)

local lockbox

* Impl Pool v2 for remaining pools (#1513)

pool v2 impls

* USDC cleanup (#1515)

* Add ability for proxy and versioned verifier resolver to withdraw fee… (#1511)

Allows Proxy.sol to withdraw tokens from it
Allows VersionedVerifierResolver to withdraw tokens from it
Adds a zero address check to the fee token handler lib.
Changes MAX_GAS_BUFFER_TO_UPDATE_STATE to immutable

* [CCIP 8187] CCTP deployment tooling (#1523)

* Ccip 7421 (#1528)

* Write laneMandatedCCVs into memory once and cache lengths in memory once. Saves ~300 gas on e2e test

* Make bindings

* [12/30/25] Misc. deployment fixes (#1520)

* rm silo config from SiloedLockReleaseTokenPool (#1529)

 rm silo config + liquidity management

* Mark all functions as virtual in TokenPool (#1531)

* Fix various minor issues (#1533)

* Add 1.6.1 adapter (#1532)

* Golf pools, cleanup unused code (#1539)

* gold 2k gas by putting s_minBlockConfirmation with s_router

* clean up USDC codec

* rm unused files

* Cleanup TokenSetup

* Token pool fee admin (#1536)

* Changes made in TokenPool need to refactor tests

* Fix tests

* Fix stale natspec

* Clean up test

* Generate go bindings

* merge fixes

* fix: support recipient in token pool operations

* fix: fee aggregator -> fee admin

* Don't enforce 1.6.4 pools presence during USDCTokenPoolProxy deployment (#1548)

* Add metadata to on-chain sequence outputs (#1526)

Co-authored-by: crispymangoes <ryan.buxman@smartcontract.com>

* Filling datastore while deploying cctp chain (#1557)

* use v1.6.2 for v1 USDCTp and comment fix (#1563)

* fix: register usdc proxy as pool and use IsSupportedToken (#1568)

* update 1_6 sequence to use isSupported token
add new field

* ref previous commit in go.mod + fix wrapper gen

* lockbox & onramp fix (#1571)

* Generating usdc mock transmitter v2 (#1581)

* Make dest chain configs enumerable (#1564)

* Make dest chain configs enumerable

* Make FeeQuoter::DestChainConfigs enumerable

* Generate bindings

* Add in enumeration for token transfer fee config in Fee Quoter

* transfer token is not the same as a fee token fix

* Adjsut OnRamp and FeeQuoter optimization runs

* Updating Bindings

* SiloedUSDCTokenPool  + ERC20LockBox changeset (#1580)

* mock router extra args support (#1586)

* use force approve (#1596)

* remove stale USDC TP wrappers (#1600)

* Add missing type and version (#1610)

* add typeAndVersion + make hook overrides non-pure

* comment

* [CCTP] Split deploy and configure sequences (#1606)

* Split deploy and configure sequences

* Updates to sequence inputs & adapters

* Update CCTP sequence impls

* Reduce code size of SiloedUSDCTokenPool

* Fix up tests

* Update deployment pkg

* Bump ccv/chains/evm/deployment

* Address comments

* Post review fixes

---------

Co-authored-by: Mateusz Sekara <mateusz.sekara@gmail.com>

* Bump deployments (#1613)

* Pin deps to develop (#1616)

* CCIP-9312 Lombard chain deployment changeset (#1591)

* [CCTP] Deploy & configure 1.6.4 as part of sequence (#1612)

* Split deploy and configure sequences

* Updates to sequence inputs & adapters

* Update CCTP sequence impls

* Reduce code size of SiloedUSDCTokenPool

* Fix up tests

* Update deployment pkg

* Bump ccv/chains/evm/deployment

* Address comments

* [CCTP] Deploy and configure 1.6.4 as part of sequence

* Comments

* More comments

* Use sequence

* Fix test

* Configure CCTP V2 and CCTP V1 pools

* Improve readability, checks

* gomod, add clarifying comments

* [02/02/26] Export CCV contract metadata (#1622)

* [CCTP] Filter for addrs on chain sel (#1628)

* fix v1_6_1 changeset :  Only append if there's an actual write (#1629)

* Rename postflight hook (#1618)

* rename postflight hook

* metadata

* fix OZ ref

* Ccip-8552 import config from 1.5 and 1.6 contracts to be used for 1.7 deployment (#1626) (#1630)

* CCIP-9312 Lombard lanes configuration changeset / ops (#1624)

* [CCTP] Enable flexible pool registration (#1631)

* [CCTP] Enable flexible pool registration

* Fix test

* Update tests to confirm expected interop with V1

* gomodtidy

* Update deps

* CCIP-9314 Lombard changesets fixes (#1633)

* Deployment/dsutil: add FindAndFormatFirstRef

* Pin to develop (#1640)

* V2 naming (#1635)

* pool naming update

* 1.7 -> 2.0

* v2 wrappers

* pass in amount post fee to hook

* change extra args 3 tag

* CCIP-9313 MockMailbox adjustments (#1642)

* Add ace to pool hook (#1593)

* introduce policy enginer to AdvancedPoolHooks

* add tests

* use versioned encoding when passing to policy engine

* refresh wapper

* add auth callers

* further prettify

* better struct packing

* further minor improvements

* wording tweak

* wrappers and snapshot

* fmt

* update i_authorizedCallerEnabled

* generalizing bytes test helper

* wording nits

* further nits

* wrappers

* update deployments

* re-gen wappers

* address comments

* address test comments

* extract setPolicyEngineAllowFailedDetach

* address comments

* wrapper and snapshot

* update wrapper version in deployment scripts

* override authorized caller

* address PolicyEngineDetachFailed conflict

* onchain gen

* update offchain

* go mod tidy

* bump ref

* address comments

* snapshot

* refresh go mod

---------

Co-authored-by: Rens Rooimans <github@rensrooimans.nl>

* 02/06/26 Pin deployment deps (#1646)

* Import Chainlink ACE package (#1648)

* Ccip-8548 deploy and update fee quoter changeset (#1641)

* Minor fixes, USDC, billing, events (#1643)

* split pool v1/v2

* emit token as passed in

* add missing allowlist event

* fix address not included in fee

* USDC proxy call IPoolV2 siloed USDC pool

* Fix comment wording for tokenReceiverAllowed

* disallow linkFeeMultiplierPercent being zero

* snap & wrap

* add tests

* Minor feeQuoter fixes

* emit event per update and only on update

* Add ace pool hook extractor (#1649)

* Import Chainlink ACE package

* Add AdvancedPoolHooksExtractor

* wrapper

* add deployment

* go.mod tidy

* further go.mod tidy

* refresh wrappers

* force OOO (#1655)

* Use token pool version instead of ChainAdapterVersion in ConfigureTokenForTransfers

* Bump chains/evm and chains/solana based on deployment pkg

* Bump ccv/chains/evm/deployment based on dependencies

* bug fix (#1661)

* rm USDCSourcePoolDataCodec.CCTP_VERSION_1_TAG (#1657)

* multi token pool (#1597)

* rm HL token (#1667)

* rm HL token

* usdc test uses correct token

* use 5.3 for non-erc-20

* fix zero address error (#1665)

* [CCIP 9387] Fix maxFee bug in CCTPVerifier (#1669)

* [CCIP 9387] Fix maxFee bug in CCTPVerifier

* make wrappers-release

* make wrappers-release

* [02/13] Pin deployment deps to develop (#1673)

* add USDCTokenPool v1.6.5 deployment to changeset (#1670)

various bug fixes + v1.6.5 USDC deployment

* Create metadata in each changeset run instead of fetching from existing (#1671)

* Expose VersionTag in  BaseVerifier (#1678)

- expose VersionTag BaseVerifier
- metadata fix

* Fix AllowedCallerOnSource configuration (#1679)

* [02/16] Pin deployment deps (#1680)

* Make AdvancedPoolHooks always require AuthorizedCaller (#1676)

* Make PoolHook always use AuthCaller

* make wrappers

* fix lombard deployment

* CI lint fixes

* nit comment fixes

* update chainlink ace remapping path

* refresh wrappers

* refresh go mod

* [1.7.0 deployment] Add TestRouter, deploy ExecutorProxy with CREATE2 (#1681)

* [1.7.0 deployment] Add TestRouter, deploy ExecutorProxy with CREATE2

* Make optional

* Fix handling

* Move import of proxy_latest to v1_7_0 proxy operations (#1683)

* Add test router params to ccv deploy cs

* Utility CS to discover WETH and LINK

* Fix issues

* Add multi return value support (#1686) (#1698)

* add multi return value support

* fix lint

Co-authored-by: Rens Rooimans <5789419+RensR@users.noreply.github.com>

* Adding lane migrater interface for updating router with new ramps and ramps with existing router (#1684) (#1699)

* Ccip-9208 Adding lane migrator for 1.7 onramp and offramp (#1700)

* adding option to override (#1712)

* Use FeeQuoter 1.6.0 or 1.6.3 based on whichever is found on datastore (#1701)

* Update ConfigureLanes changeset to skip resetting FeeQuoter Params Part 2 - update changeset (#1713)

* Misc minor onchain fixes, threshold ccv, lombard allowed caller (#1668)

* apply ccv threshold on post fee amount

* disallow 0 allowedCaller

* expose allowlist in lombard ccv

* wrap

* add comment to getTokenTransferFee

* add lombard validation

* fix comments

* wrap, snap

* Additional checks in feequoter

* fix errors

* fix post-fee bps ccv threshold

* mcms config same as main (#1723)

* release FQ (#1719)

* Fix FQ optimizer value & Ops generation logic (#1728)

* fix feequoter opts

* copy to release

* fix ops automation

* derive versions of lanes

* An adapter to derive lane versions connected to a particular chain (#1731)

* Post-merge fixes to deployment

* Post-merge fixes to chains/evm, chains/solana, devenv, integration-tests

Post-merge fixes to ccv/chains/evm/deployment

Post-merge fixes to chains/evm

Post-merge fixes to ccv/chains/evm

* Post-merge fixes to ccv/chains/evm

* SiloedUSDCTP Migration Snapshot Accounting + Add Lombard adapter path with validation + Variable renames (#1725)

* Including lane version resolver in feequoterupdater changeset  (#1739)

* upgrade dependency

* Decrease optimizer runs for SiloedLockReleaseTokenPool

* Upgrade go mod with recent develop version (#1740)

* Bump ccv/chains/evm/deployment

* Update wrappers

* Bump ccv/chains/evm/deployment

* Fix LaneMigrator and FeeQuoter updater changeset output to create one batch operation per chain selector (#1745)

* Upgrade deployment dependency everywhere (#1746)

* Pin to dev

* Comments

* Fix

* Minor ramp fixes + rename v1.7 -> v2.0 (#1726)

* NoStateProgressMade error on no state progress

* replace 1.7 refs with 2.0

* Revert with correct USD amount

* cache price multiplier

* revert early on invalid optional threshold

* wrap

* [CCIP-9348] Support configuration of non-canonical USDC (#1730)

* Add canonical/non-canonical param

* Add CCTPV1 and CCTPV2 allowedCallerOnDest

* Add 1.6.1 impl

* Bump deps

* Update

* Add rate limiters, decimals, cctpType -> usdcType

* non canonical cctp chain -> non canonical usdc

* Bump

* Bump chains/evm

* Reduce FeeQuoter optimizations

* Fix tests

* feequoter address version fix

* Add canonical<>noncanonical, mixture of fq versions

* Post-merge fixes to deployment pkg

* Post-merge fixes to chains/evm/deployment and integration-tests

Post-merge fixes to ccv/chains/evm/deployment

Post merge fixes to go.md

Fix FQ optimizer value & Ops generation logic (#1728)

* fix feequoter opts

* copy to release

* fix ops automation

* Post-merge fixes to ccv/chains/evm/deployment

* Pin deps

* Post-merge fixes to ccv/chains/evm

* Update deployment pkg

* Update chains/evm/deployment

* Update ccv/chains/evm/deployment

* Bump deps

* Update

---------

Co-authored-by: AnieeG <anindita.ghosh@smartcontract.com>

* CCV Offchain changesets. Add topology and shared types

* Mod tidy

* 02-27-26 Merge main into develop (#1757)

* bump go deps (#1734)

* bump go deps

* bump chain selectors

* bump filippo.io/edwards25519

* Solana contracts/v1.6.1 candidate (#1565)

* Fee Quoter changes to support ton and aptos (#1518)

* Fee Quoter changes to support ton and aptos

* add tests for other families

* Add tests for all remote chain selectors

* Bump versios (#1550)

* Bump versios

* Bump all contracts

* Add cpi event

* Reenable tests

* Fix ping-pong test setup

* Fix devenv CI setup and enable verbose logs in some integration tests

* devenv go mod tidy

* Fix CI command

* Fix CI command

* Disable broken tests again, unrelated to these changes

* Update changelog and remove `-candidate` version suffix

---------

Co-authored-by: Tobías Lichtig <toblich@users.noreply.github.com>

* token expansion e2e fixes (#1732)

* e2e fixes

* casting

* casting

* cll

* pass token pool version

* skip ownership transfer

* fix devenv

* fix: use proper bindings based on token pool version

* feat: infer TokenTransferConfig chain selector for TokenExpansion

* fix transfer in devenv

* fix: remove unnecessary SetPool call after RegisterToken

* bubble up

* skip rate limit admin with authority

* action update

* fix flake

* fix flake

* fix flake

---------

Co-authored-by: chris-de-leon-cll <147140544+chris-de-leon-cll@users.noreply.github.com>

* Fix 1.6.1 commit (#1738)

* Implement disable lane (#1741)

* Implement disable lane

* extend existing adaptor as opposed to creating new one

* cleaner file names

* disable ton in devenv (#1751)

* disable ton

* generate

* condense remotes into top level (#1747)

* condense remotes into top level

* fix test

* nilptr

* move up check

* move up check

* Revert "Implement disable lane (#1741)" (#1752)

This reverts commit a4824ec.

* Add various read ops (#1753)

* Post-merge fixes to deployment

* Post merge fixes to chains/evm/deployment

* Post merge fixes to ccv/chains/evm/deployment

---------

Co-authored-by: Rens Rooimans <5789419+RensR@users.noreply.github.com>
Co-authored-by: Agustina Aldasoro <agusaldasoro@users.noreply.github.com>
Co-authored-by: Tobías Lichtig <toblich@users.noreply.github.com>
Co-authored-by: tt-cll <141346969+tt-cll@users.noreply.github.com>
Co-authored-by: chris-de-leon-cll <147140544+chris-de-leon-cll@users.noreply.github.com>
Co-authored-by: Chunkai Yang <matYang@users.noreply.github.com>

* LombardVerifier: move remoteAdapter from Path to per-token per-chain mapping (#1749)

* CCV Offchain: Add job proposal operations, sequence, and sync changeset

Add shared JD-interaction operations for CCV offchain job management:
- propose_jobs: Creates/updates job proposals via JD
- revoke_jobs: Revokes active job proposals via JD
- sync_job_proposals: Syncs proposal statuses from JD, detects spec drift
- fetch_signing_keys: Retrieves NOP signing keys from JD chain configs
- fetch_node_chain_support: Queries NOP chain support from JD

Add ManageJobProposals sequence orchestrating propose + optional revoke.
Add SyncJobProposals changeset as thin wrapper over the sync operation.

* Mod tidy

* [CCIP-8576] Improve idempotency (#1742)

* Add canonical/non-canonical param

* Add CCTPV1 and CCTPV2 allowedCallerOnDest

* Add 1.6.1 impl

* Bump deps

* Update

* Add rate limiters, decimals, cctpType -> usdcType

* non canonical cctp chain -> non canonical usdc

* Bump

* Bump chains/evm

* Reduce FeeQuoter optimizations

* Fix tests

* feequoter address version fix

* Add canonical<>noncanonical, mixture of fq versions

* Post-merge fixes to deployment pkg

* Post-merge fixes to chains/evm/deployment and integration-tests

Post-merge fixes to ccv/chains/evm/deployment

Post merge fixes to go.md

Fix FQ optimizer value & Ops generation logic (#1728)

* fix feequoter opts

* copy to release

* fix ops automation

* Post-merge fixes to ccv/chains/evm/deployment

* Pin deps

* Post-merge fixes to ccv/chains/evm

* Update deployment pkg

* Update chains/evm/deployment

* Update ccv/chains/evm/deployment

* Add RMNProxy and Router ops

* Bump deps

* WIP

* Update

* Fix tests

* Various idempotency improvements

* Update

* Update core deployment

* Update tokenReceiverAllowed

* Update

* Update

---------

Co-authored-by: AnieeG <anindita.ghosh@smartcontract.com>

* Fix pool issues (#1771)

* account for decimals in getRequiredCCVs

* fallback RL and remove RL on chain delete

* add isSupportedChain check

* check source domain

* add min length check & return correct ccv in USDC proxy

* fix comments & test

* disallow setting self in usdcProxy

* re-use LOCK_RELEASE_FLAG from codec

* disallow address(0)

* check initcode for zero length

* cache remoteTokenBytes

* wrap

* CCV Offchain: Add IndexerConfig adapter and generate_indexer_config changeset

- Add IndexerConfigAdapter interface and IndexerConfigRegistry in adapters/indexer_config.go
- Add EVM implementation in ccv/chains/evm/.../adapters/indexer_config_adapter.go
- Add GenerateIndexerConfig changeset and test
- Register EVM indexer adapter in init

* CCV Offchain: Add ExecutorConfig adapter and apply_executor_config changeset

- Add ExecutorConfigAdapter interface and ExecutorConfigRegistry in adapters/executor_config.go
- Add EVM implementation in ccv/chains/evm/.../adapters/executor_config_adapter.go
- Add ApplyExecutorConfig changeset and test
- Register EVM executor adapter in init

* CCV Offchain: Add DeployChainContracts adapter and deploy_chain_contracts changeset

- Add DeployChainContractsAdapter interface and DeployChainContractsRegistry in adapters/deploy_chain_contracts.go
- Add EVM implementation in ccv/chains/evm/.../adapters/deploy_chain_contracts_adapter.go
- Add DeployChainContracts changeset and test
- Register EVM deploy chain contracts adapter in init

* Lombard Verifier Bug fix + configure adapter changeset updates (#1765)

* Fix tests

* FQv2 in operations (#1786)

* use fq v2

* fix comments, version

* move sequence to v2 folder

* move adapter

* imports

* go mod tidy

* fix go refs

* fix new lombard ref

* enable chains before setting config

* Update update_to_FeeQuoter_1_7_test.go

* Import config from pre 2.0.0 pools (#1768)

* Add canonical/non-canonical param

* Add CCTPV1 and CCTPV2 allowedCallerOnDest

* Add 1.6.1 impl

* Bump deps

* Update

* Add rate limiters, decimals, cctpType -> usdcType

* non canonical cctp chain -> non canonical usdc

* Bump

* Bump chains/evm

* Reduce FeeQuoter optimizations

* Fix tests

* feequoter address version fix

* Add canonical<>noncanonical, mixture of fq versions

* Post-merge fixes to deployment pkg

* Post-merge fixes to chains/evm/deployment and integration-tests

Post-merge fixes to ccv/chains/evm/deployment

Post merge fixes to go.md

Fix FQ optimizer value & Ops generation logic (#1728)

* fix feequoter opts

* copy to release

* fix ops automation

* Post-merge fixes to ccv/chains/evm/deployment

* Pin deps

* Post-merge fixes to ccv/chains/evm

* Update deployment pkg

* Update chains/evm/deployment

* Update ccv/chains/evm/deployment

* Add RMNProxy and Router ops

* Bump deps

* WIP

* Update

* Fix tests

* Various idempotency improvements

* Update

* Update core deployment

* Update tokenReceiverAllowed

* Update

* Update

* Import config from pre 2.0.0 pools

* Pin to develop

* Update to support 1.5.0, proxy 1.5.0, and validations against current chain support

* Pin develop

* Address comments

* Update

* Comments

* Gen ops

* Update

* Comments

* Update

---------

Co-authored-by: AnieeG <anindita.ghosh@smartcontract.com>

* Generate OPS for latest contracts (#1788)

* gen first

* gen ramps

* fix abi/bin gen

* bump chainlink-evm/gethwrappers/helpers ref

* Gen all metadata (#1796)

* fix pool CCV inbound outbound config + idempotent Lombard verifier path (#1795)

* CCIP-9553 - ConfigureTokensForTransfers pulls existing tokenTransferFeeConfig from OnRamp / FeeQuoter (#1793)

* Simon/ccv offchain/aggregator changeset (#1777)

* CCV Offchain: Add AggregatorConfig adapter and generate_aggregator_config changeset

- Add AggregatorConfigAdapter interface and AggregatorConfigRegistry in adapters/offchain_config.go
- Add EVM implementation in ccv/chains/evm/.../adapters/aggregator_config_adapter.go
- Add GenerateAggregatorConfig changeset and test
- Register EVM aggregator adapter in init

* PR comments

* PR comments

* tidy

* PR comments

* Update deployment/v1_7_0/changesets/deploy_chain_contracts.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Mod tidy

* Add finality to get CCVs (#1804)

* add finality param to getccs

* add test

* cache destAddressBytesLength

* rm duplicate check

* minor gas fix + comment

* removal of unused items

* fix overflow issue

* Revert on invalid input

* extra validation

* comment

* getCCVsAndMinBlockDepth

* add sender

* wrap

* fix test

* fix comments

* Fix token transfer import (#1813)

* Second batch gen (#1798)

* gen pools

� Conflicts:
�	ccv/chains/evm/deployment/v1_7_0/sequences/tokens/configure_token_pool_for_remote_chain.go

* committee & fix param named ramp

* bump deps

* go mod

* fix conflicts

* fix CI

* skip broken test

* Fix lombard verifier adapter rotation and add more validations (#1805)

* Deploy true LinkToken instead of BurnMintERC20WithDrip (#1775)

* Deploy LinkToken instead of BurnMintERC20WithDrip

* Bump ccv

* Register 1.5.1

* Use MustParse bc passing known version

* Update

* Fixes

* Fix nil deref

* test-deployments-crosschain fixes

* Revert minVersion handling

* Bump

* Fix getCCVs call

* USDC Token Pool Liquidity migration changeset (#1603)

* CCIP-9555 (#1801)

* Create reusbale sequence MigrateLockReleasePoolLiquidity. Then append sequence to end of ConfigureTokensForTransfers changeset and use sequence in a standalone changeset MigrateLockReleasePoolLiquidity

* Replace bespoke operations with auto generated ones

* Reaplce remainng bespoke operations with auto generated ones

* Refactor config to require less input

* Rename config values

* Refactor

* Fix CI issue

* Fix bug in operations generation

* Fix other gen config error

* Please

* Run go mod tidy

* Add bytecode README back

* Fix go.sum

* transfer ownership in 2.0 deploy (#1810)

* timelock 2.0 seq

* test

* comments

* no deploy, only xfer

* tests

* cr comments

* tests

* tests

* Fixes to support chainlink-ccv update (#1816)

* Deploy LinkToken instead of BurnMintERC20WithDrip

* Bump ccv

* Register 1.5.1

* Use MustParse bc passing known version

* Update

* Fixes

* Fix nil deref

* test-deployments-crosschain fixes

* Revert minVersion handling

* Fixes to support integration with devenv

* Fix registration of USDCTokenPoolProxy

* 2.0.0 -> 1.7.0 to avoid 1.7.0 being counted as 1.6.1

* Bump

* Fix getCCVs call

* Failing test, MockReceiverV2

* Update

* Fix

* CCTPThruCCV remotes

* Update

* Pin deployment dependencies to develop commit (#1828)

* Ccip 8555 import cfg from previous versions before deploying contracts (#1824)

* fix: resolve merge conflicts and add main-only additions

- Add GetLaneVersionForRemoteChain helper to laneversionresolver
- Add UpdateMCMSConfig method to v1_6_0 EVMAdapter
- Add AdditionalFeeQuoterConfig and related fields to FeeQuoterUpdateInput
- Remove unused fmt import in devenv/cldf.go
- Update go.mod/go.sum after dependency reconciliation

* Simon/ccv offchain migration (#1830)

* CCV Offchain: Add VerifierConfig adapter and apply_verifier_config changeset

- Add VerifierConfigAdapter interface and VerifierConfigRegistry in adapters/verifier_config.go
- Add EVM implementation in ccv/chains/evm/.../adapters/verifier_config_adapter.go
- Add ApplyVerifierConfig changeset and test
- Register EVM verifier adapter in init

* CCV Offchain: Add TokenVerifierConfig adapter and generate_token_verifier_config changeset

- Add TokenVerifierConfigAdapter interface and TokenVerifierConfigRegistry in adapters/token_verifier_config.go
- Add EVM implementation in ccv/chains/evm/.../adapters/token_verifier_config_adapter.go
- Add GenerateTokenVerifierConfig changeset and test
- Register EVM token verifier adapter in init

* CCV Offchain: Add CommitteeVerifierContract adapter and configure_committee_verifiers changeset

- Add CommitteeVerifierContractAdapter interface and CommitteeVerifierContractRegistry in adapters/committee_verifier_contract.go
- Add EVM implementation in ccv/chains/evm/.../adapters/committee_verifier_contract_adapter.go
- Add ConfigureCommitteeVerifiers changeset and test
- Register EVM committee verifier contract adapter in init

* Parity with chainlink-ccv/deployments

* Hardening and more tests

* PR comments

* Bumps deps

* tidy

* Change verifier version

* Change verifier version

* Change onramp version

* Only include chains executor is on in config

* MinimumBlockDepth

* combine 1.6 and 2.0 connect lanes (#1794)

* wip

* compile

* wip

* paths

* might be passing

* skip populate pre 2

* add canton

* comments

* x-ref

* x-ref

* Update deployment/lanes/connect_chains.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update ccv/chains/evm/deployment/v1_7_0/sequences/configure_chain_for_lanes.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* simplify due to infer

* tests

* bugs

* merge conflicts

* fq param split

* cv split

* gomod

* bad merge

* tests

* make generate

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Final batch of operations (#1829)

* delete unused typeAndVersion

* mock receiver

� Conflicts:
�	ccv/chains/evm/deployment/v1_7_0/sequences/deploy_chain_contracts.go
�	ccv/chains/evm/deployment/v1_7_0/sequences/deploy_chain_contracts_test.go
�	ccv/chains/evm/deployment/v1_7_0/testsetup/testsetup.go

* CCTP verifier

* Lombard verifier

* Proxy

* executor

* versioned verifier resolver and create 2 factory

* rm all 1.7 ops

* fix rebase

* fix expectedToken check in LombardVerifier._validatePayload + rename block depth to block confirmations (#1832)

* fix(LombardVerifier): resolve to local adapter when configured to match bridge payload token
* rename block depth to block confirmations

* restore needed test contracts

* bump go eth & put back latest 1.6 bindings (#1851)

---------

Co-authored-by: Suryansh <39276431+0xsuryansh@users.noreply.github.com>
Co-authored-by: crispymangoes <ryan.buxman@smartcontract.com>
Co-authored-by: kylesmartin <54827727+kylesmartin@users.noreply.github.com>
Co-authored-by: crispymangoes <77207459+crispymangoes@users.noreply.github.com>
Co-authored-by: Makram <makramkd@users.noreply.github.com>
Co-authored-by: AnieeG <anindita.ghosh@smartcontract.com>
Co-authored-by: Kodey Kilday-Thomas <kodey.kildaythomas@smartcontract.com>
Co-authored-by: Mateusz Sekara <mateusz.sekara@gmail.com>
Co-authored-by: pavel-raykov <165708424+pavel-raykov@users.noreply.github.com>
Co-authored-by: Oliver Townsend <133903322+ogtownsend@users.noreply.github.com>
Co-authored-by: Balamurali Gopalswami <167726375+b-gopalswami@users.noreply.github.com>
Co-authored-by: Abdelrahman Soliman (Boda) <2677789+asoliman92@users.noreply.github.com>
Co-authored-by: Austin <107539019+0xAustinWang@users.noreply.github.com>
Co-authored-by: Anindita Ghosh <88458927+AnieeG@users.noreply.github.com>
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
Co-authored-by: Chris De Leon <147140544+chris-de-leon-cll@users.noreply.github.com>
Co-authored-by: Agustina Aldasoro <agusaldasoro@users.noreply.github.com>
Co-authored-by: Balamurali Gopalswami <balamurali.gopalswami@smartcontract.com>
Co-authored-by: Joe Huang <joe.huang@smartcontract.com>
Co-authored-by: Jonghyeon Park <jadepark.dev@gmail.com>
Co-authored-by: Friedemann Fürst <59653747+friedemannf@users.noreply.github.com>
Co-authored-by: Chunkai Yang <matYang@users.noreply.github.com>
Co-authored-by: Kyle Martin <kyle.martin@smartcontract.com>
Co-authored-by: tt-cll <141346969+tt-cll@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Agustina Aldasoro <agustina.aldasoro@smartcontract.com>
Co-authored-by: Simon B.Robert <simon.robert@smartcontract.com>
Co-authored-by: Tobías Lichtig <toblich@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants