Skip to content

feat(cct-sdk): Add deploy evm token pool + version resolution#307

Open
apedrob wants to merge 20 commits into
cct-sdkfrom
feature/DAPP-10545-deploy-evm-pool
Open

feat(cct-sdk): Add deploy evm token pool + version resolution#307
apedrob wants to merge 20 commits into
cct-sdkfrom
feature/DAPP-10545-deploy-evm-pool

Conversation

@apedrob

@apedrob apedrob commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

What

  • Add deployTokenPool to EVMTokenManager (build + execute): deploys a TokenPool at 2.0.0, type selects the contract (BurnMintTokenPool, BurnFromMintTokenPool, BurnWithFromMintTokenPool, LockReleaseTokenPool)
    • generateUnsignedDeployTokenPool for offline/multisig; deployTokenPool signs + submits, returns { hash, contractAddress }
  • Add resolveTokenPool: read onchain typeAndVersion, narrow to a known pool type + version
  • transferOwnership resolves the pool's real type/version to pick the ABI and floor-match the encoder (was a hardcoded interface)
  • Slim version file to the version/resolution axis; move deploy artifacts (creation-bytecode map + DeployableTokenPoolType) next to the deploy op

Why

  • CCT needs first-class pool deployment to complete the 2.0.0 pool deployment
  • Resolving type/version on-chain keeps encoder/ABI selection correct as pool versions evolve

Testing

  • CI for deployTokenPool (golden-vector init-code per type incl. lockBox, param validation, execute paths)
  • transferOwnership probe + version-resolution tests; full CCT suite green, typecheck + lint clean

@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

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

@apedrob apedrob changed the title Better separation of concerns and abstractions feat(cct-sdk): Add deploy evm token pool + version resolution Jul 22, 2026
@apedrob
apedrob marked this pull request as ready for review July 22, 2026 11:35
@apedrob
apedrob requested review from a team, PabloMansanet and aelmanaa as code owners July 22, 2026 11:35
@apedrob
apedrob requested a review from mervin-link July 22, 2026 11:36
Comment thread ccip-sdk/src/cct/evm/token-pool/operations/deploy-token-pool.ts Outdated
Comment thread ccip-sdk/src/cct/evm/token-pool/operations/deploy-token-pool.ts Outdated
Comment thread ccip-sdk/src/cct/evm/token-pool/operations/deploy-token-pool.ts Outdated
Comment thread ccip-sdk/src/cct/evm/index.ts Outdated
@apedrob
apedrob requested a review from mervin-link July 23, 2026 12:49

@mervin-link mervin-link left a comment

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: Since we are resolving transferOwnership to token pool interface, maybe it's better to rename it specific to token pool. But it's not a blocker.

@aelmanaa

Copy link
Copy Markdown
Collaborator

Re-checked at fa96c23.

The previous lockBox correctness issue is fixed:

  • LockRelease now requires lockBox
  • zero lockBox is rejected early

Remaining lockbox gap (still blocking for me):
LockRelease is not fully exercisable end-to-end through SDK-only operations.

What is missing:

  1. No deployLockBox operation to create the required lockbox from the SDK flow
  2. No documented lockbox caller-authorization step before pool usage

Please resolve with one of these paths:

  • Preferred: add deployLockBox and document the full LockRelease sequence including authorization
  • Alternative: explicitly scope LockRelease as partial in this PR and link a follow-up issue in PR description and docs

@aelmanaa

Copy link
Copy Markdown
Collaborator

The LockRelease deployTokenPool example still omits lockBox.
Please include lockBox in the example so copy-paste usage compiles and matches runtime requirements.

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