CCIP-9735: Removing LBTC validation in set candidate changeset#21583
CCIP-9735: Removing LBTC validation in set candidate changeset#21583b-gopalswami wants to merge 3 commits intodevelopfrom
Conversation
|
👋 b-gopalswami, thanks for creating this pull request! To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team. Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks! |
|
✅ No conflicts with other open PRs targeting |
There was a problem hiding this comment.
Pull request overview
Risk Rating: MEDIUM (changes validation behavior in deployment changeset config paths)
This PR removes LBTC-specific pre-validation from the CCIP home changeset, aiming to avoid misleading “validation” against non-canonical on-chain state and to rely on plugin failure for misconfiguration detection instead.
Changes:
- Removed the LBTC handler config validation (
validateLBTCConfig) and its dependency ontoken_pool. - Updated
validateExecOffchainConfigto skip LBTC-specific validation with an explanatory comment block.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
winder
left a comment
There was a problem hiding this comment.
This doesn't make sense. The validation you're disabling would allow misconfigurations to be deployed on production.
The source pool address is defined outside of the durable pipeline:
https://github.com/smartcontractkit/chainlink-deployments/blob/a02e2006d0372493794bca721aa53847f875a1e2/domains/ccip/shared/configs/mainnet/config.go#L751
@winder The existing validation doesn't really adds any value. It just gives us false hope that there is a validation. It just loads the given address as token pool and trying to call GetToken method. This validation will pass for any pool and there is no specific validation that this is valid Lombard pool. We are not storing their pool or token address in our AddressBook or Datastore either. Not just one token like USDC, they have more than one token at this point and may have more in the future as well. I have a ticket to expand LBTC for Solana and the existing validation doesn't supports non-evm. I was trying to enable a support for Solana but the existing validation itself doesn't makes much sense to me. |





This pull request simplifies the validation logic for LBTC handler configuration in the
cs_ccip_home.gofile. The main change is the removal of the previously implemented LBTC config validation, which was deemed unnecessary and potentially misleading. Now, the code relies on user-provided addresses and clear plugin failure in case of misconfiguration, rather than preemptive validation.Validation logic changes:
validateLBTCConfigfunction, eliminating checks for LBTC source pool addresses against the on-chain state and EVM client. This avoids giving users a false sense of security, since there is no standard Lombard token or pool stored in state.validateExecOffchainConfigfunction to skip LBTC-specific validation and returnnildirectly, with explanatory comments about the rationale.Dependency cleanup:
token_poolfrom the file, as it is no longer needed after removing LBTC validation.Jira: https://smartcontract-it.atlassian.net/browse/CCIP-9735