Skip to content

[CCIP-8506] Include SUI in the fast-curse tooling API#21436

Open
smickovskid wants to merge 5 commits intodevelopfrom
ds/CCIP-8506
Open

[CCIP-8506] Include SUI in the fast-curse tooling API#21436
smickovskid wants to merge 5 commits intodevelopfrom
ds/CCIP-8506

Conversation

@smickovskid
Copy link
Contributor

@smickovskid smickovskid commented Mar 6, 2026

CCIP-8506 Include SUI in the fast-curse tooling API

@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

✅ No conflicts with other open PRs targeting develop

@trunk-io
Copy link

trunk-io bot commented Mar 6, 2026

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

Copy link
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

Risk Rating: MEDIUM

Adds SUI support to the fast-curse tooling by introducing a SUI fastcurse adapter, SUI curse/uncurse sequences (RMN remote), and supporting SUI MCMS deploy/proposal utilities within the deployment changeset framework.

Changes:

  • Register SUI in the fastcurse curse registry and implement a SUI CurseAdapter (curse/uncurse, subject conversion, on-chain checks).
  • Add SUI RMN Remote curse/uncurse sequences that produce MCMS batch transactions.
  • Add SUI MCMS deploy sequence + proposal utilities and a DeploySuiMCMS changeset, with unit tests for key helpers/sequences.

Scrupulous human review recommended (high-impact blocks):

  • deployment/ccip/changeset/sui/cs_deploy_sui_mcms.go: proposal generation logic (currently builds proposals from empty batches) and state reload assumptions.
  • deployment/ccip/changeset/sui/mcmsutil/mcms.go: proposal generation path / chain lookup assumptions (environment/state correctness).
  • deployment/ccip/changeset/sui/sequence/rmn_remote.go: MCMS transaction construction for SUI (argument ordering/fields correctness vs SUI MCMS SDK expectations).

Suggested reviewers (per .github/CODEOWNERS for /deployment/ccip):

  • @smartcontractkit/ccip-tooling, @smartcontractkit/ccip-offchain, @smartcontractkit/operations-platform, @smartcontractkit/core

Reviewed changes

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

Show a summary per file
File Description
deployment/ccip/changeset/sui/sequence/rmn_remote.go New SUI curse/uncurse sequences producing MCMS batch operations.
deployment/ccip/changeset/sui/sequence/rmn_remote_test.go Unit tests for SUI curse/uncurse sequences and chain-not-found behavior.
deployment/ccip/changeset/sui/sequence/deploy_mcms.go Wrapper sequence to deploy SUI MCMS and return key outputs/proposals.
deployment/ccip/changeset/sui/mcmsutil/mcms.go SUI timelock role mapping and proposal generation helper.
deployment/ccip/changeset/sui/mcmsutil/mcms_test.go Tests for SUI timelock role mapping.
deployment/ccip/changeset/sui/dependencies.go Adds ChainSelector to SUI changeset dependency struct.
deployment/ccip/changeset/sui/cs_deploy_sui_mcms.go New changeset to deploy SUI MCMS across chains and optionally generate proposals.
deployment/ccip/changeset/sui/adapters/init.go Registers SUI as a supported fastcurse family/version.
deployment/ccip/changeset/sui/adapters/fastcurse.go Implements SUI fastcurse adapter (init, on-chain queries, sequences).
deployment/ccip/changeset/sui/adapters/fastcurse_test.go Tests adapter initialization and selector/subject conversions.

Comment on lines +48 to +52
env.BlockChains.SuiChains()[chainSel].Client,
devInspectSigner,
state.MCMSPackageID,
role,
)
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

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

env.BlockChains.SuiChains()[chainSel] is accessed without checking whether the chain selector exists in the environment. If chainSel is not present, this can result in a nil/zero client being passed to suisdk.NewInspector, leading to harder-to-debug failures. Consider looking up the chain with the ok form and returning an explicit error when missing.

Copilot uses AI. Check for mistakes.
@cl-sonarqube-production
Copy link

Quality Gate failed Quality Gate failed

Failed conditions
10.2% Duplication on New Code (required ≤ 10%)

See analysis details on SonarQube

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.

2 participants