Skip to content

add 2.0 integration guide#1974

Open
tt-cll wants to merge 5 commits intomainfrom
tt/guide
Open

add 2.0 integration guide#1974
tt-cll wants to merge 5 commits intomainfrom
tt/guide

Conversation

@tt-cll
Copy link
Copy Markdown
Collaborator

@tt-cll tt-cll commented Apr 13, 2026

No description provided.

@tt-cll tt-cll requested review from a team as code owners April 13, 2026 19:52
@github-actions
Copy link
Copy Markdown

👋 tt-cll, 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!

Copilot AI review requested due to automatic review settings April 13, 2026 21:01
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

Adds a dedicated CCIP 2.0 integration guide to the deployment tooling documentation, and links it from the main docs index and the existing “Implementing Adapters” guide so integrators can follow a 2.0-specific path.

Changes:

  • Add new CCIP 2.0 Integration Guide doc covering 2.0-specific interfaces, registries/dispatch flow, and an integration checklist.
  • Link the new guide from deployment/docs/index.md.
  • Add an upfront callout in implementing-adapters.md redirecting 2.0 integrators to the new guide.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
deployment/docs/index.md Adds the new 2.0 guide to the documentation index table.
deployment/docs/implementing-adapters.md Adds a prominent note directing CCIP 2.0 integrators to the new guide.
deployment/docs/ccip-2.0-integration-guide.md New end-to-end CCIP 2.0 integration documentation (interfaces, flow, registration, checklist).

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


**Registration:**
```go
adapters.GetDeployChainContractsRegistry().Register(chainsel.FamilyMyChain, &MyDeployAdapter{})
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

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

These registration snippets use chainsel.FamilyMyChain, but most other docs in deployment/docs/ use the chain_selectors import name (e.g. implementing-adapters.md). For consistency and to reduce copy/paste friction, consider using chain_selectors.FamilyMyChain (or explicitly show the import/alias you expect readers to use).

Suggested change
adapters.GetDeployChainContractsRegistry().Register(chainsel.FamilyMyChain, &MyDeployAdapter{})
adapters.GetDeployChainContractsRegistry().Register(chain_selectors.FamilyMyChain, &MyDeployAdapter{})

Copilot uses AI. Check for mistakes.

Note over Devenv: Phase 2: Token Deployment (per chain)
Devenv->>CS: TokenExpansion changeset
CS->>Reg: TokenAdapterRegistry.GetTokenAdapter()
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

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

In the sequence diagram, TokenAdapterRegistry.GetTokenAdapter() is shown without parameters. In code the lookup requires (chainFamily, version), so it may be clearer to annotate that here (or rename the callout to something like "Resolve token adapter by (family, poolVersion)"), to prevent readers from looking for a no-arg method.

Suggested change
CS->>Reg: TokenAdapterRegistry.GetTokenAdapter()
CS->>Reg: TokenAdapterRegistry.GetTokenAdapter(chainFamily, version)

Copilot uses AI. Check for mistakes.
| Concept | 1.6 | 2.0 |
|---------|-----|-----|
| **Execution** | Implicit (part of OffRamp) | Explicit Executor contracts with qualifiers |
| **OCR** | OCR3 configured on OffRamp | No OCR -- off-chain consensus handled differently |
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

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

The comparison table says "No OCR" for 2.0, but the codebase still relies on OCR key bundles (OCR2) for node chain config/signing keys in the 2.0 offchain flow. Consider changing this cell to something more precise like "No OCR3 (OffRamp OCR3 config not used in 2.0)" to avoid implying that OCR-related configuration disappears entirely.

Suggested change
| **OCR** | OCR3 configured on OffRamp | No OCR -- off-chain consensus handled differently |
| **OCR** | OCR3 configured on OffRamp | No OCR3 on OffRamp -- OCR key bundles still used elsewhere in 2.0 offchain flow |

Copilot uses AI. Check for mistakes.
Comment on lines +84 to +86
**Source:** [v2_0_0/adapters/deploy_chain_contracts.go](../v2_0_0/adapters/deploy_chain_contracts.go)
**Registry:** `DeployChainContractsRegistry` via `adapters.GetDeployChainContractsRegistry()`
**Key:** `chainFamily` (version-agnostic within 2.0)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

nit: this all renders on the same line, bulleting them may look cleaner:

Suggested change
**Source:** [v2_0_0/adapters/deploy_chain_contracts.go](../v2_0_0/adapters/deploy_chain_contracts.go)
**Registry:** `DeployChainContractsRegistry` via `adapters.GetDeployChainContractsRegistry()`
**Key:** `chainFamily` (version-agnostic within 2.0)
* **Source:** [v2_0_0/adapters/deploy_chain_contracts.go](../v2_0_0/adapters/deploy_chain_contracts.go)
* **Registry:** `DeployChainContractsRegistry` via `adapters.GetDeployChainContractsRegistry()`
* **Key:** `chainFamily` (version-agnostic within 2.0)

Comment on lines +106 to +108
**Source:** [v2_0_0/adapters/chain_family.go](../v2_0_0/adapters/chain_family.go)
**Registry:** `ChainFamilyRegistry` via `adapters.GetChainFamilyRegistry()`
**Key:** `chainFamily` (version-agnostic within 2.0)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
**Source:** [v2_0_0/adapters/chain_family.go](../v2_0_0/adapters/chain_family.go)
**Registry:** `ChainFamilyRegistry` via `adapters.GetChainFamilyRegistry()`
**Key:** `chainFamily` (version-agnostic within 2.0)
* **Source:** [v2_0_0/adapters/chain_family.go](../v2_0_0/adapters/chain_family.go)
* **Registry:** `ChainFamilyRegistry` via `adapters.GetChainFamilyRegistry()`
* **Key:** `chainFamily` (version-agnostic within 2.0)

| `CCTPChain` / `RemoteCCTPChain` | [v2_0_0/adapters/cctp.go](../v2_0_0/adapters/cctp.go) | Only if your chain supports USDC via CCTP |
| `LombardChain` / `RemoteLombardChain` | [v2_0_0/adapters/lombard.go](../v2_0_0/adapters/lombard.go) | Only if your chain supports Lombard |

## CCV Devenv Interfaces
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is good documentation - though I wonder if we should have it in the devenv package as well (or instead?).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

yeah maybe this section can be sparser on devenv. I wanted to have something explaining how the tooling API is called for someone performing an integration, but maybe that detail should be in a different doc

@github-actions
Copy link
Copy Markdown

Metric tt/guide main
Coverage 70.1% 69.8%

@tt-cll tt-cll enabled auto-merge April 17, 2026 11:35
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.

3 participants