Skip to content

Reapply "Implement disable lane (#1741)" (#1752)#1764

Merged
tt-cll merged 2 commits intomainfrom
tt/revert2
Mar 3, 2026
Merged

Reapply "Implement disable lane (#1741)" (#1752)#1764
tt-cll merged 2 commits intomainfrom
tt/revert2

Conversation

@tt-cll
Copy link
Copy Markdown
Collaborator

@tt-cll tt-cll commented Feb 27, 2026

This reverts commit f21cb2f.

merge once #1615 merges

@tt-cll tt-cll marked this pull request as ready for review March 3, 2026 20:45
@tt-cll tt-cll requested review from a team as code owners March 3, 2026 20:45
Copilot AI review requested due to automatic review settings March 3, 2026 20:45
@tt-cll tt-cll requested review from a team as code owners March 3, 2026 20:45
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR re-applies the “disable lane” capability by introducing a DisableLane changeset and chain-specific implementations (EVM + Solana) that disable a remote chain’s send/receive configuration, plus an integration test to validate the disabled state.

Changes:

  • Add a new DisableLane changeset that disables both directions of a lane via per-chain adapter sequences.
  • Extend the LaneAdapter interface with DisableRemoteChain() and implement it for EVM and Solana (v1.6.0).
  • Add an integration test that connects an EVM↔SVM lane and asserts the lane is disabled correctly on both sides.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
integration-tests/deployment/connect_chains_test.go Adds checkLaneDisabled helper and a TestDisableLane_EVM2SVM integration test.
deployment/lanes/product.go Extends LaneAdapter interface with DisableRemoteChain().
deployment/lanes/disable_lane.go Adds new DisableLane changeset + input/config types.
chains/solana/deployment/v1_6_0/sequences/disable_remote_chain.go Adds Solana disable-remote-chain sequence wiring to new operations.
chains/solana/deployment/v1_6_0/operations/offramp/offramp.go Adds DisableSourceChain operation for Solana OffRamp.
chains/solana/deployment/v1_6_0/operations/fee_quoter/fee_quoter.go Adds DisableDestChain operation for Solana FeeQuoter.
chains/evm/deployment/v1_6_0/sequences/disable_remote_chain.go Adds EVM disable-remote-chain sequence via router ramp updates.
.gitignore Ignores .claude.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

// EVM Router: OffRamp must be removed for the remote chain
offRampDestAddr, err := evmAdapter.GetOffRampAddress(e.DataStore, evmChain.Selector)
require.NoError(t, err, "must get offRamp from evmAdapter")
isOffRamp, err := routerOnDest.IsOffRamp(nil, solanaChain.Selector, common.Address(offRampDestAddr))
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

offRampDestAddr is a []byte from GetOffRampAddress, so common.Address(offRampDestAddr) is an invalid conversion and will not compile. Convert using common.BytesToAddress(offRampDestAddr) (or equivalent) before passing it to IsOffRamp.

Suggested change
isOffRamp, err := routerOnDest.IsOffRamp(nil, solanaChain.Selector, common.Address(offRampDestAddr))
isOffRamp, err := routerOnDest.IsOffRamp(nil, solanaChain.Selector, common.BytesToAddress(offRampDestAddr))

Copilot uses AI. Check for mistakes.
Comment on lines +74 to +77
chainAAdapter, exists := laneRegistry.GetLaneAdapter(chainAFamily, lane.Version)
if !exists {
return cldf.ChangesetOutput{}, fmt.Errorf("no LaneAdapter registered for chain family '%s' version %s", chainAFamily, lane.Version)
}
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

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

lane.Version is a pointer and can be nil in DisableLaneConfig. As written, a nil Version will cause a panic during adapter lookup (and in the %s formatting in the error message). Add explicit input validation (e.g., return an error when lane.Version == nil) before calling GetLaneAdapter / formatting it.

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 3, 2026

Metric tt/revert2 main
Coverage 70.1% 69.8%

@tt-cll tt-cll added this pull request to the merge queue Mar 3, 2026
Merged via the queue into main with commit b1a0d27 Mar 3, 2026
57 of 58 checks passed
@tt-cll tt-cll deleted the tt/revert2 branch March 3, 2026 21:33
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.

5 participants