[CCIP-8506] Include SUI in the fast-curse tooling API#21436
[CCIP-8506] Include SUI in the fast-curse tooling API#21436smickovskid wants to merge 5 commits intodevelopfrom
Conversation
|
✅ No conflicts with other open PRs targeting |
There was a problem hiding this comment.
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. |
| env.BlockChains.SuiChains()[chainSel].Client, | ||
| devInspectSigner, | ||
| state.MCMSPackageID, | ||
| role, | ||
| ) |
There was a problem hiding this comment.
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.
|


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