feat(cct-sdk): Add CrossChainToken admin operations for EVM - #432
mervin-link wants to merge 2 commits into
Conversation
|
You must have Developer access to commit code to Chainlink Labs on Vercel. If you contact an administrator and receive Developer access, commit again to see your changes. Learn more: https://vercel.com/docs/accounts/team-members-and-roles/access-roles#team-level-roles |
CI Test Report❌ 3 of 3049 tests did not pass (pass 3040, fail 3, cancelled 0, skipped 6) in 5m 42s Failed suites: Failed testsSummaryCoverage report |
Review — PR #432 (DAPP-11562)
|
3. Live proof (Ethereum Sepolia, chainId 11155111) — verbatimFixtures (clickable Sepolia Etherscan links; every transaction is listed in full in §3.1a):
3.1 Happy path, setCCIPAdmin round-trip, and guards (live, verbatim — full values)(The 3.1a Complete transaction list (every tx above, plus the begin+cancel cycle and cleanup — full hashes, each linked)3.2 Verification summary
|
4. MAJOR —
|
| Bug proven live | Fix built + green | Fix proven live | |
|---|---|---|---|
| §4 accept ordering | ✅ wrong "must be the pending default admin (zero address)" message | ✅ reorder + regression test; 9/9, tsc/lint 0 | ✅ now the renounceRole guidance |
5. NITs (optional, not applied)
as TokenVersioncasts inresolveCrossChainToken— the siblingparseTokenPoolVersionavoids these via anis TokenPoolVersionpredicate; a one-lineisTokenVersionguard would match the pattern and drop both casts.CCTOperationUnsupportedError(fromresolveTokenEncoder) is omitted from the@throws— correct here, sinceresolveCrossChainTokenpins v2.0.0 so the floor-match always resolves and the throw is unreachable for these ops.
6. Types / build / tests (verified in isolation)
Fresh worktree at 7f43e150 (clean, no leftover edits). SDK workspace:
committed head: tsc --noEmit EXIT 0 · oxfmt EXIT 0 · oxlint EXIT 0 · 4 new op suites: tests 33, pass 33, fail 0
with §4 fix: tsc EXIT 0 · oxfmt EXIT 0 · oxlint EXIT 0 · accept suite 9/9 (adds the sender-set renunciation test)
No any/unsafe as/! beyond the sibling-sanctioned versions[i]!. A full npm run check would EXIT 1 only on the routine generated-file drift (selectors.ts/api/index.ts), not this diff.
7. Recommendation
Approve. Four correctly-gated CrossChainToken admin ops, grounded to every relevant chainlink-ccip line (§1), sibling-consistent (§2), and proven live end-to-end (§3). Fold in the §4 MAJOR (accept error-ordering — fix implemented, green, live-proven before→after) before merge; the §5 NITs are optional. Nothing blocks the current diff's behavior.
@aelmanaa Addressed the validation ordering for |
What
setCCIPAdminoperationWhy
Notes
setCCIPAdmin(0x0)is supported byCrossChainToken, unlikeBaseERC20.